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 processstrdshave the naming prefixt.rast. ๐ธ - Space time 3D raster datasets (
str3ds) are designed to manage 3D raster map time series. Modules that processstr3dshave the naming prefixt.rast3d. โจ - Space time vector datasets (
stvds) are designed to manage vector map time series. Modules that processstvdshave the naming prefixt.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 liket.registerto attach a time stamp to raster, 3D raster and vector maps. The commandsr.timestamp,r3.timestampandv.timestampshould 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*.timestampmodules 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.connectt.createt.renamet.removet.registert.unregistert.infot.listt.samplet.supportt.topology
๐ฌ Modules to visualize space-time datasets and temporal data ๐ฌ
g.gui.animationg.gui.timelineg.gui.mapswipeg.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.extractt.rast.gapfillt.rast.mapcalct.rast.colorst.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.aggregatet.rast.aggregate.dst.rast.seriest.rast.accumulatet.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.exportt.rast.importt.rast.out.vtkt.rast.to.rast3r3.out.netcdf
๐ฉน Statistics and gap filling ๐ฉน
t.rast.univart.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.extractt.vect.importt.vect.exportt.vect.observe.strdst.vect.univart.vect.what.strdst.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.listt.rast3d.extractt.rast3d.mapcalct.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
- fedora 44: grass 8.4.2-4.fc44 ยท GPL-2.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms