temporalintro.1grass man page

Temporal data processing in GRASS GIS

The temporal enabled GRASS introduces three new data types that are designed to handle time series data:

These new data types can be managed, analyzed and processed with temporal modules that are based on the GRASS GIS temporal framework.

Temporal data management in general

Space time datasets are stored in a temporal database. A core principle of the temporal framework is that temporal databases are mapset specific. A new temporal database is created when a temporal command is invoked in a mapset that does not contain any temporal databases yet. For example, when a mapset was recently created.

Therefore, as space-time datasets are mapset specific, they can only register raster, 3D raster or vector maps from the same mapset.

By default, space-time datasets can not register maps from other mapsets. This is a security measure, since the registration of maps in a space-time dataset will always modify the metadata of the registered map. This is critical if:

  • The user has no write access to the maps from other mapsets he wants to register
  • If registered maps are removed from other mapsets, the temporal database will not be updated and will contain ghost maps

SQLite3 or PostgreSQL are supported as temporal database backends. Temporal databases stored in other mapsets can be accessed as long as those other mapsets are in the user’s current mapset search path (managed with g.mapsets). Access to space-time datasets from other mapsets is read-only. They can not be modified or removed.

Connection settings are performed with t.connect. As default, a SQLite3 database will be created in the current mapset that stores all space-time datasets and registered time series maps.

New space-time datasets are created in the temporal database with t.create. The name of the new dataset, the type (strds, str3ds, stvds), the title and the description must be provided for creation. Optionally, the temporal type (absolute, relative) and the semantic information can be provided.

The module t.register is designed to register raster, 3D raster and vector maps in the temporal database and in the space-time datasets. It supports different input options. Maps to register can be provided as a comma separated string at the command line, or in an input file. The module supports the definition of time stamps (time instances or intervals) for each map in the input file. With  t.unregister maps can be unregistered from space-time datasets and from the temporal database.

Use only temporal commands like t.register to attach a time stamp to raster, 3D raster and vector maps. The commands r.timestamp, r3.timestamp and v.timestamp should not be used, since they do not register maps in the temporal database and modify only the metadata of the map in the spatial database. However, maps with timestamps attached with *.timestamp modules can be registered in space-time datasets using the existing timestamp.

The module t.remove will remove the space-time datasets from the temporal database and optionally all registered maps. It will take care of multiple map registration, hence if maps are registered in several space-time datasets in the current mapset. Use t.support to modify the metadata of space time datasets or to update the metadata that is derived from registered maps. This module also checks for removed and modified maps and updates the space-time datasets accordingly. Rename a space-time dataset with t.rename.

To print information about space-time datasets or registered maps, the module  t.info can be used. t.list will list all space-time datasets and registered maps in the temporal database.

To compute and check the temporal topology of space-time datasets the module t.topology was designed. The module t.sample samples input space-time dataset(s) with a sample space-time dataset and prints the result to standard output. Different sampling methods are supported and can be combined.

List of general management modules:

  • t.connect
  • t.create
  • t.rename
  • t.remove
  • t.register
  • t.unregister
  • t.info
  • t.list
  • t.sample
  • t.support
  • t.topology

Modules to visualize space-time datasets and temporal data

  • g.gui.animation
  • g.gui.timeline
  • g.gui.mapswipe
  • g.gui.tplot

Modules to process space-time raster datasets

The focus of the temporal GIS framework is the processing and analysis of raster time series. Hence, the majority of the temporal modules are designed to process space-time raster datasets. However, there are several modules to process space-time 3D raster datasets and space-time vector datasets.

Querying and map calculation

Registered maps of a space-time raster dataset can be listed using t.rast.list. This module supports several methods to list maps and uses SQL queries to determine how these maps are selected and sorted. Subsets of space-time raster datasets can be extracted with t.rast.extract that allows performing additional mapcalc operations on the selected raster maps.

  • t.rast.extract
  • t.rast.gapfill
  • t.rast.mapcalc
  • t.rast.colors
  • t.rast.neighbors

Moreover, there is v.what.strds, that uploads space-time raster dataset values at positions of vector points, to the attribute table of the vector map.

Aggregation and accumulation analysis

The temporal framework supports the aggregation of space-time raster datasets. It provides three modules to perform aggregation using different approaches. To aggregate a space-time raster map using a temporal granularity like 4 months, 7 days and so on use t.rast.aggregate. The module t.rast.aggregate.ds allows the aggregation of a raster map time series using the intervals of the maps (raster, 3D raster and vector) of another space-time dataset. A simple interface to r.series is the module t.rast.series that processes the whole input space-time raster dataset or a subset of it.

  • t.rast.aggregate
  • t.rast.aggregate.ds
  • t.rast.series
  • t.rast.accumulate
  • t.rast.accdetect

Export/import conversion

Space-time raster datasets can be exported with t.rast.export as a compressed tar archive. Such archives can then be imported using t.rast.import.

The module t.rast.to.rast3 converts space-time raster datasets into space-time voxel cubes. All 3D raster modules can be used to process such voxel cubes. This conversion allows the export of space-time raster datasets as netCDF files that include time as one dimension.

  • t.rast.export
  • t.rast.import
  • t.rast.out.vtk
  • t.rast.to.rast3
  • r3.out.netcdf

Statistics and gap filling

  • t.rast.gapfill
  • t.rast.univar

Modules to manage, process and analyze STR3DS and STVDS

Several space-time vector dataset modules were developed to allow the handling of vector time series data.

  • t.vect.extract
  • t.vect.import
  • t.vect.export
  • t.vect.observe.strds
  • t.vect.univar
  • t.vect.what.strds
  • t.vect.db.select

The space-time 3D raster dataset modules are doing exactly the same as their raster pendants, but with 3D raster map layers:

  • t.rast3d.list
  • t.rast3d.extract
  • t.rast3d.mapcalc
  • t.rast3d.univar

See also

  • Gebbert, S., Pebesma, E., 2014. TGRASS: A temporal GIS for field based environmental modeling. Environmental Modelling & Software 53, 1-12. (DOI)
  • Temporal data processing (Wiki)
  • Vaclav Petras, Anna Petrasova, Helena Mitasova, Markus Neteler, FOSS4G 2014 workshop:
    Spatio-temporal data handling and visualization in GRASS GIS
  • GEOSTAT 2012 TGRASS Course

Source Code

Available at: Temporal data processing in GRASS GIS source code (history)

Main index | Temporal index | Topics index | Keywords index | Graphical index | Full index

© 2003-2017 GRASS Development Team, GRASS GIS 7.2.1 Reference Manual


GRASS 7.2.1 Grass User's Manual