joshkwan

An example of visualizing spatial-temporal data in the ArcMap

Blog Post created by joshkwan on Jan 5, 2015

Hi guys,

I recently finished my final year project in which I have to use ArcMap to visualize my time series data generated from Matlab. I ran into a few troubles in the process knowing nothing about ArcGIS and I turned to Google and this community for help and got some of those solved. And now I want to share my experience in case some of you struggling the same problem and share an idea with you.

 

So my idea is an combination of the available solutions on Google or this community, thanks for those contributors that inspired me.

 

The ArcGIS in my university  does not have licences for the Geostatistical Analysis tools, which I think could have done this in an much easier way.

 

My past questions, if you have similar problems as I did, wish you can find a solution to your problems here.

How to import a dataset table into Arcmap and interpret it

How to automate interpolation of temporal data and create animation

similar question I found:

Interpolation for timeseries in ArcGIS - Geographic Information Systems Stack Exchange

 

Key words   visualization, interpolation, time series, spatial-temporal analysis, animation

 

Prerequisite: the stuff you already have

Start from the original data you have, in this example, suppose you have the spatial-temporal data in the format, and this file can be in ".csv" comma delineated, or other format that ArcCatalog supports:

 

yxmonth1month2month3
21.5106.50.210640.0709610.04823
21.5107.50.115990.551930.6087
22.5105.50.0155630.0163930.014246
22.5106.50.0344740.0256670.002998
22.5107.50.0887330.712310.77644

y is the latitude column, x for longitude, column 3 to column n is the array that stored the data corresponding to a specific point in the space at a exact time point, you may want to interpolate the unmeasured area between the points, and I want to visualize in the result, in an image form or animation.

Of course you can have as much as columns of data as long as your computer can handle.

 

In this example, this is the data set for the Pearl River Basin which is in the south China for my project.

 

Then in ArcMap, you should have a shape file for your basin, to use as a mask later on. This shape file should be able to import to ArcMap like this:

Untitled.png

 

Data batch processing: in this example, version 10.1

 

If you want to visualize only one column among the data columns, then it should be fine by the normal procedure or you can choose the columns one by one to interpolate. But in most cases you want to make a batch interpolation for a large quantities, but ArcMap seems cannot automatically select different columns for different time step.

 

To get this done, firstly, you should import it to ArcCatalog by the following ways (in this example, dataset files are ".csv"):

 

1. Create geodatabase (ArcCatalog): right click in the content and select New->File Geodatabase

2. make sure the first row in your data set files contains the names of field information, for example, "longitude, latitude, day001, day002....", or you can set as "Sept1992, Oct1992....". In the preview of the data set, it should be like this:

Untitled.png

3. Go to toolbox, Data Management Tools -> Fields ->transpose Fields

a. Set your original data files as input files.

b. in the "Fields to transpose", check all your data columns, in this examples, "day001" to "day303", note do not choose your location field, x and y;

select your output table, note the default setting may lead to error 000210, table should not have any extent(.dbf by default), just select the database you create just now and type in a new name for your table;

type the name in "Transpose Field" for the field name for your time variable, like simply a "t" is fine;

type the name for the data field, in this example, "i" for "index" is used;

then check x and y in the "attribute field", this would maintain your first two columns without changing them.

then click OKUntitled.png

4. if this works fine, you now should have a table in your geodatabase in which you have only one column that store all the time information, OBJECTID are automatically created by the tool.

Untitled.png

5. Things are done in ArcCatalog, then go to ArcMap, add data to your map by clicking the "+" button and choose the output table created just now.Untitled.png

6. Right click the table Display XY Data -> choose the coordinate (longitude and latitude) to match to your table, click OK. Then you now have a new "event".

Untitled.png

Geoprocessing -> Modelbuilder

Untitled.png

7. In the modelbuilder, Insert->iterator->feature slection, use the "event" created previously as input features, choose the time field "t" in the "Group by field(optional)", use the output of the selection (green one) as the input of the interpolation method you want to use. You can build the model like below, you can add the tools in the model builder by simply dragging the tools in the toolbox to the model builder

Note: to change the output layer symbology, create one layer file using the normal interpolation process manually and set your preferred symbology. Then use "apply symbology from layer" tool.

Untitled.png

8. Change the environment setting of  the model builder(or for the interpolation method only)

right click the blank space (or the interpolation block)-> Properties-> check the "Processing Extent" -> click "Values" -> choose the layer that you want to use as "mask"-> "ok"

Untitled.pngUntitled.png

9. Set your own output paths, name of output files,... etc, validate the entire model and run it.

the model then will automatically interpolate by time step you set.

Note: I did not change the field type of time field to be "date" or "time" because it may result in errors, the values selected in the iterators will contain spaces which will be used as output layer name and that may be the source of error.

10. By the end of the process, you will have a number of layer files. Each of them comes from a single time step. The file name of the layer files is the iterated values: day001, day002,.......day303

11. This the end of the visualizing the data in image form, you can output each of your time step as you want.

 

 

If you want to make those layer files to be a single video, then here is an example.

1. Create a New group layer -> right click -> properties -> "Group" tab -> add-> choose the layer files created by time step.

Untitled.png

2. Animation-> create Group Animation

Untitled.png

3. then it should be very simple, you can adjust the parameters of animation such as duration and save your animation

learn more about animation in ArcGIS, check: Esri Video | Videos Covering GIS Events, Products, People, & Topics 

 

 

That's it. Hope this help.

Outcomes