1. An apparatus that is configured to identify a moving object in spatial data, the apparatus comprising: a memory coupled to at least one processor; and the at least one processor, configured to: receive, from a spatial data source, a data structure that comprises spatial-temporal data, wherein spatial-temporal data comprises a combination of time series data and spatial data; convert the spatial-temporal data to a sequence of spatial data frames, where the sequence of spatial data frames represents the spatial data as a sequence of image-like objects; determine a location of one or more clusters in the sequence of spatial data frames at two or more of a plurality of time values, the sequence of spatial data frames defining one or more locations of the one or more clusters at the plurality of time values; determine that a first cluster of the one or more clusters in a first of the two or more time values corresponds to a second cluster of the one or more clusters in a second of the two or more time values; wherein, to determine that the first cluster corresponds to the second cluster, the processor is further configured to: determine a location of each cluster at the first of the two or more time values; determine a location of each cluster at the second of the two or more time values; compute a cluster similarity score for one or more of the clusters at the first time value with one or more of the clusters at the second time value; and associate the first cluster with the second cluster based on the similarity score; determine at least one motion vector between the first cluster and the second cluster; and determine a moving object based on information comprising the at least one motion vector, wherein the processor is further configured to generate an output text using a natural language generation system, the output text linguistically describing the moving object.