temporalintro(1)

โœจ temporalintro(1) โœจ

okay bestie, pull up a chair ๐ŸŽ€ we're reading temporalintro(1), and it's coming to you straight out of the GRASS GIS User's Manual. that's the whole address, that's where it lives, that's the vibe ๐Ÿ’…

real talk though: this page is a big one. like, big big. so it's rolling out in parts, and you're holding part one right now ๐ŸŒธ no skipping ahead, no skimming, i will know ๐Ÿ‘€


so settle in, hydrate, and let's go ๐Ÿ’– next bit's right below, keep scrolling bestie ๐Ÿฆ‹

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

  • Space time raster datasets (strds) are designed to manage raster map time series. Modules that process strds have the naming prefix t.rast. ๐ŸŒธ
  • Space time 3D raster datasets (str3ds) are designed to manage 3D raster map time series. Modules that process str3ds have the naming prefix t.rast3d. โœจ
  • Space time vector datasets (stvds) are designed to manage vector map time series. Modules that process stvds have the naming prefix t.vect. ๐Ÿ’–

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 โœจ

okay so bestie, space time datasets live in a temporal database. The core principle? Temporal databases are mapset specific. A new temporal database gets created when you invoke a temporal command in a mapset that doesn't have any temporal databases yet โ€” like when a mapset was just born. ๐Ÿ‘ถ

So because space-time datasets are mapset specific, they can only register raster, 3D raster or vector maps from the same mapset. No cross-mapset mingling, bestie. ๐Ÿ™…โ€โ™€๏ธ

By default, space-time datasets can not register maps from other mapsets. It's a security thing, because registering maps in a space-time dataset will always modify the metadata of the registered map. And that's critical if:

  • The user has no write access to the maps from other mapsets he/she 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 done with t.connect. By default, a SQLite3 database is created in the current mapset to store all space-time datasets and registered time series maps in that mapset. ๐Ÿ—‚๏ธ

New space-time datasets are created in the temporal database with t.create. You must provide the name of the new dataset, the type (strds, str3ds, stvds), the title and the description. Optionally, you can also provide the temporal type (absolute, relative) and the semantic information. โœจ

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. It also supports defining time stamps (time instances or intervals) for each map in the input file. And with t.unregister you can unregister maps from space-time datasets and from the temporal database. ๐Ÿ”„

Important ๐Ÿซถ 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 because they only modify the metadata of the map in the spatial database, but they do not register maps in the temporal database. However, maps with timestamps attached by means of *.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 takes care of multiple map registration โ€” like 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. And you can rename a space-time dataset with t.rename. ๐Ÿท๏ธ

To print info about space-time datasets or registered maps, use the module t.info. And t.list will list all space-time datasets and registered maps in the temporal database. ๐Ÿ“‹

The module t.topology was designed to compute and check the temporal topology of space-time datasets. Also, 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 processing and analyzing raster time series. So yeah, most of the temporal modules are built for space-time raster datasets (strds). But there are also several modules for space-time 3D raster datasets and space-time vector datasets. ๐Ÿ’ช


๐Ÿ” Querying and map calculation ๐Ÿ”

Maps registered in 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, which lets you do additional mapcalc operations on the selected raster maps. ๐Ÿ”Ž

Several modules in the temporal framework have a where option. This lets you do different selections of maps registered in the temporal database and in space-time datasets. The columns you can use for these selections are: id, name, creator, mapset, temporal_type, creation_time, start_time, end_time, north, south, west, east, nsres, ewres, cols, rows, number_of_cells, min and max. Note that for vector time series (i.e. stvds), some of the columns you can query to list/select vector maps differ from those for space-time raster datasets (check with t.vect.list --help). ๐Ÿ‘€

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

Similar to the where option, selected modules like t.rast.univar support a region_relation option to limit computations to maps of the space time raster dataset that have a given spatial relation to the current computational region. Supported spatial relations are: ๐Ÿ—บ๏ธ

  • "overlaps": process only maps that spatially overlap ("intersect") with the current computational region
  • "is_contained": process only maps that are fully within the current computational region
  • "contains": process only maps that contain (fully cover) the current computational region

Space time raster datasets may contain raster maps with varying spatial extent โ€” like series of scenes of satellite images. For those cases, the region_relation option can be super useful. ๐Ÿ›ฐ๏ธ

Also, there's v.what.strds, which 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 aggregation of space-time raster datasets. It provides three modules to perform aggregation using different approaches. To aggregate a space-time raster dataset using a temporal granularity like 4 months, 7 days, etc., use t.rast.aggregate. The module t.rast.aggregate.ds lets you aggregate a space-time raster dataset using the time intervals of the maps of another space-time dataset (raster, 3D raster and vector). A simple interface to r.series is the module t.rast.series, which 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. Those 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 process those voxel cubes. This conversion also allows exporting 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.univar
  • t.rast.gapfill

๐Ÿงฌ Modules to manage, process and analyze STR3DS and STVDS ๐Ÿงฌ

Several space-time vector dataset modules were developed to handle 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 do 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) - preprint PDF ๐Ÿ“„
  • Gebbert, S., Pebesma, E. 2017. The GRASS GIS temporal framework. International Journal of Geographical Information Science 31, 1273-1292 (DOI) ๐Ÿ“š
  • Gebbert, S., Leppelt, T., Pebesma, E., 2019. A topology based spatio-temporal map algebra for big data analysis. Data 4, 86. (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 GRASS Course ๐ŸŽ“
  • Introduction into raster data processing ๐Ÿ–ผ๏ธ
  • Introduction into 3D raster data (voxel) processing ๐ŸงŠ
  • Introduction into vector data processing ๐Ÿ“
  • Introduction into image processing ๐Ÿ“ท
  • Database management ๐Ÿ—„๏ธ
  • Projections and spatial transformations ๐ŸŒ
  • Graphical User Interface ๐Ÿ–ฅ๏ธ

โœจ SOURCE CODE โœจ

okay bestie, you wanna see where all this magic actually lives?? ๐Ÿ’– it's right here:

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

Accessed: Friday Nov 21 14:02:57 2025


and if you're the kind of girlie who likes to click around and get lost in the sauce (respect, honestly), here's the whole navigation situation:

  • Main index
  • Temporal index
  • Topics index
  • Keywords index
  • Graphical index
  • Full index

ngl, that "history" note is lowkey a little time capsule moment โ€” you can literally watch the page evolve like it's a glow-up montage ๐Ÿฆ‹

ยฉ 2003-2025 GRASS Development Team, GRASS GIS 8.4.2 Reference Manual


aaaand that's a wrap on temporalintro(1)!! ๐ŸŽ€ you made it to the very end, which means you're officially a temporal data main character ๐Ÿ‘‘ go process some time series, you absolute icon ๐Ÿ’…

this page came to you from GRASS 8.4.2 and the man page temporalintro(1) โ€” content accessed Friday Nov 21 14:02:57 2025 โœจ bye bestie, drink some water, run your modules, and remember: every timestamp deserves a little love ๐Ÿซถ๐ŸŒธ

๐Ÿ“ฆ where this page comes from