t.register(1)
π t.register π
the <code>t.register</code> manual page, straight out of the GRASS GIS User's Manual π¦ temporal, map management, register, time β yes bestie, that's the keyword vibe check and she passed π
β¨ NAME β¨
t.register</purgle> β assigns timestamps and registers raster, vector and raster3d maps in a space time dataset. π
πΈ KEYWORDS πΈ
temporal, map management, register, time
π SYNOPSIS π
t.register
t.register --help
t.register [-i] [input=name] [maps=name[,name,...]] [type=name]
[file=name] [start=string] [end=string] [unit=string]
[increment=string] [separator=character] [--overwrite] [--help]
[--verbose] [--quiet] [--ui]
π Flags π
-iβ creates an interval (that's a start time AND an end time, bestie) in case an increment and the start time are provided β¨--overwriteβ lets output files overwrite existing files, no cap π₯--helpβ prints the usage summary, aka the cheat sheet π«Ά--verboseβ verbose module output, she's chatty π¬--quietβ quiet module output, she's giving mysterious π€«--uiβ forces launching the GUI dialog π₯οΈ
π¦ Parameters π¦
input=nameβ name of the input space time datasetmaps=name[,name,...]β name of the input mapstype=nameβ type of the input map. Options:raster,vector,raster_3d. Default:rasterfile=nameβ input file with map names, one per line. Bonus: you can also specify the start time and the end time per line β¨start=stringβ valid start date and time of the first map. Format for absolute time:"yyyy-mm-dd HH:MM:SS +HHMM", relative time is of type integer.end=stringβ valid end date and time of all map. Format for absolute time:"yyyy-mm-dd HH:MM:SS +HHMM", relative time is of type integer.unit=stringβ time stamp unit. Unit must be set in case of relative timestamps. Options:years,months,days,hours,minutes,secondsincrement=stringβ time increment, works only in conjunction withstartoption. It's the time increment between maps for creation of valid time intervals (format for absolute time:NNN seconds,minutes,hours,days,weeks,months,years; format for relative time is of type integer:5)separator=characterβ field separator character of the input file. Special characters:pipe,comma,space,tab,newline. Default:pipe
π DESCRIPTION π
okay so the module t.register has double functionality (main character energy fr fr) β it either only assigns timestamps to raster, 3D raster and vector maps in the temporal database (that's when the input option is not provided, more on that below π), or on top of that, it also registers them within input space time datasets (stds). The existing timestamp modules r.timestamp, r3.timestamp and v.timestamp do not register the maps in the temporal database of GRASS GIS. BUT π
β timestamps that have been created with those modules can be read and used by t.register. Heads up though: this works only for maps that are not already registered in the temporal database. π
If the input option is not used (i.e., no stds is provided), maps will be only registered in the temporal database with assigned timestamps. If, on the other hand, the input option is used and a stds is provided, maps will be first registered in the temporal database (if not registered before) and then, in the stds specified. And if the user wants to register maps that are already registered in the temporal database in a different stds, there's no need to pass information regarding start and end time β t.register will read timestamps from the temporal database (i.e., in this case only passing map names will be enough). iconic, she does the work for you β¨
Maps can be specified both with their fully qualified map name, meaning e.g. map@mapset, and without the mapset name included. If the mapset name is not provided in the input, t.register will look for the given map on the current search path and assign the matching mapset. If the map is not found on the current search path the module will fail. π Thus, registering maps with fully qualified map name is slightly faster. πββοΈ
The module t.register supports absolute and relative time. The absolute temporal type refers to a fixed date while the relative temporal type refers to data without fixed timestamps (e.g., sequential maps used to calculate multi-decadal averages). ποΈ
Maps can be registered by command line argument (i.e., a list of comma separated map names) or using an input file. The start time, end time and a temporal increment can be provided through command line or in the input file. End time and increment are mutually exclusive. The user can register single maps or a list of maps at once. Maps can be registered in several space time datasets using the same timestamp. For the case of vector time series, the user can also register a single vector map connected to different layers representing time steps using the map:layer notation (see example below). π
The increment option and the -i flag (to create time intervals) work only in conjunction with the start option. If an input file with timestamps (either start time or start time and end time) is used, then the increment option and the -i flag are not supported. π«
Start time and end time with absolute time must be provided using the format yyyy-mm-dd HH:MM:SS +HHMM. It is also supported to specify only the date yyyy-mm-dd. In case of relative time, the temporal unit (years, months, days, hours, minutes or seconds) must be provided. In this case, the relative start time, end time and increment are integers. π’
π₯ NOTES π₯
The timestamps of registered maps will be stored in the temporal database and in the metadata of the grass maps in the spatial database. This assures that timestamps can always be accessed with (r|r3|v).timestamp and the temporal modules. π―
Timestamps should only be modified witht.registerbecause the(r|r3|v).timestampmodules have no access to the temporal database. π fr fr, don't do it any other way.
π«Ά INPUT FILE FORMAT π«Ά
There are several options to register maps by means of a file. The input file consists of a list of map names, optionally along with timestamps. Each map name (and timestamps if provided) should be stored in a new line in this file. π
When only map names are provided, the increment option and the -i flag are supported. However, when along with map names any kind of timestamp is provided as well, the increment option and the -i are no longer supported. β
Specification of map names only (increment option and -i flag supported):
terra_lst_day20020113
terra_lst_day20020114
terra_lst_day20020115
terra_lst_day20020116
terra_lst_day20020117
Specification of map names and absolute start time (date) of the time instances (no support for increment option nor -i flag):
terra_lst_day20020113|2002-01-13
terra_lst_day20020114|2002-01-14
terra_lst_day20020115|2002-01-15
terra_lst_day20020116|2002-01-16
terra_lst_day20020117|2002-01-17
Specification of map names and absolute start time (datetime) of the time instances (no support for increment option nor -i flag):
terra_lst_day20020113|2002-01-13 10:30
terra_lst_day20020114|2002-01-14 10:30
terra_lst_day20020115|2002-01-15 10:30
terra_lst_day20020116|2002-01-16 10:30
terra_lst_day20020117|2002-01-17 10:30
Specification of map names and absolute time interval with start and end time (no support for increment option nor -i flag):
prec_1|2001-01-01|2001-04-01
prec_2|2001-04-01|2001-07-01
prec_3|2001-07-01|2001-10-01
prec_4|2001-10-01|2002-01-01
prec_5|2002-01-01|2002-04-01
prec_6|2002-04-01|2002-07-01
Same as above but with fully qualified map names (no support for increment option nor -i flag):
prec_1@PERMANENT|2001-01-01|2001-04-01
prec_2@PERMANENT|2001-04-01|2001-07-01
prec_3@PERMANENT|2001-07-01|2001-10-01
prec_4@PERMANENT|2001-10-01|2002-01-01
prec_5@PERMANENT|2002-01-01|2002-04-01
prec_6@PERMANENT|2002-04-01|2002-07-01
π Support for semantic labels π
For more information about semantic labels and image collections see i.band.library module. π
Specification of map names and absolute start time (datetime) of the time instances. The last column indicates the related semantic label.
T33UYP_20190331T094039_B01|2019-03-31 09:40:39|S2_1
T33UYP_20190331T094039_B10|2019-03-31 09:40:39|S2_10
T33UYP_20190331T094039_B02|2019-03-31 09:40:39|S2_2
T33UYP_20190331T094039_B05|2019-03-31 09:40:39|S2_5
T33UYP_20190331T094039_B11|2019-03-31 09:40:39|S2_11
T33UYP_20190331T094039_B08|2019-03-31 09:40:39|S2_8
T33UYP_20190331T094039_B12|2019-03-31 09:40:39|S2_12
T33UYP_20190331T094039_B8A|2019-03-31 09:40:39|S2_8A
T33UYP_20190331T094039_B06|2019-03-31 09:40:39|S2_6
T33UYP_20190331T094039_B04|2019-03-31 09:40:39|S2_4
T33UYP_20190331T094039_B03|2019-03-31 09:40:39|S2_3
T33UYP_20190331T094039_B09|2019-03-31 09:40:39|S2_9
In this case t.register assigns to given raster maps a semantic label similarly as r.semantic.label does. Such registered raster maps is possible to filter by a semantic label. π―
Please note that raster maps with semantic labels assigned can be registered only in STRDS created in TGIS DB version 3 or higher. Older versions of TGIS DB are not supported. TGIS DB version can be checked t.connect module. π don't get caught out bestie
β¨ that's part 1, keep scrolling for the rest, we're not done yet β¨
β¨ EXAMPLE β¨
π¦ North Carolina dataset
πΈ Using a text file
Register maps in an absolute space time dataset, creating a time interval π
# first: prepare a text file with a list of input maps (see above)
# second: register maps
t.register -i type=raster input=precipitation_monthly \
file=list_of_input_maps.txt start="2009-01-01" \
increment="1 months"
πΈ Using g.list to generate the input
Register maps in an absolute space time dataset, creating a time interval β¨
t.register -i type=raster input=precipitation_monthly \
maps=`g.list raster pattern="*precip*" sep=comma` start="2009-01-01" \
increment="1 months"
π Register a vector map with layers representing time steps
Picture a vector map of points β those are your meteorological stations π°οΈ β and it's hooked up to different layers that each stand for a daily time step. In this example, only the fifth layer of the vector map gets registered. No cap.
# the layer is specified behind the colon
t.register type=vector input=meteo_stations_nc_daily \
maps=meteo_stations_nc:5 start="2009-01-05"
π§ Synthetic maps
okay so in this one we make 6 raster maps and register them into a single space time raster dataset named precip_abs, with a monthly temporal granularity π. The -i flag generates time intervals of the provided increment. The timestamps we just made get inspected with r.timestamp and t.rast.list. Then we register one more map that already had its timestamp set with r.timestamp. Iconic behaviour, honestly.
r.mapcalc expression="prec_1 = 100"
r.mapcalc expression="prec_2 = 200"
r.mapcalc expression="prec_3 = 300"
r.mapcalc expression="prec_4 = 400"
r.mapcalc expression="prec_5 = 500"
r.mapcalc expression="prec_6 = 600"
t.create type=strds temporaltype=absolute \
output=precip_abs title="Example" \
descr="Example"
t.register -i type=raster input=precip_abs \
maps=prec_1,prec_2,prec_3,prec_4,prec_5,prec_6 \
start="2001-01-01" increment="1 months"
r.timestamp prec_1
1 Jan 2001 00:00:00 / 1 Feb 2001 00:00:00
r.timestamp prec_2
1 Feb 2001 00:00:00 / 1 Mar 2001 00:00:00
t.rast.list input=precip_abs
name|mapset|start_time|end_time
prec_1|PERMANENT|2001-01-01 00:00:00|2001-02-01 00:00:00
prec_2|PERMANENT|2001-02-01 00:00:00|2001-03-01 00:00:00
prec_3|PERMANENT|2001-03-01 00:00:00|2001-04-01 00:00:00
prec_4|PERMANENT|2001-04-01 00:00:00|2001-05-01 00:00:00
prec_5|PERMANENT|2001-05-01 00:00:00|2001-06-01 00:00:00
prec_6|PERMANENT|2001-06-01 00:00:00|2001-07-01 00:00:00
r.mapcalc expression="prec_7 = 700"
r.timestamp map=prec_7 date="1 jul 2001 / 1 aug 2001"
t.register type=raster input=precip_abs maps=prec_7
t.rast.list input=precip_abs
name|mapset|start_time|end_time
prec_1|PERMANENT|2001-01-01 00:00:00|2001-02-01 00:00:00
prec_2|PERMANENT|2001-02-01 00:00:00|2001-03-01 00:00:00
prec_3|PERMANENT|2001-03-01 00:00:00|2001-04-01 00:00:00
prec_4|PERMANENT|2001-04-01 00:00:00|2001-05-01 00:00:00
prec_5|PERMANENT|2001-05-01 00:00:00|2001-06-01 00:00:00
prec_6|PERMANENT|2001-06-01 00:00:00|2001-07-01 00:00:00
prec_7|PERMANENT|2001-07-01 00:00:00|2001-08-01 00:00:00
π Importing and registering ECA&D climatic data
The European Climate Assessment & Dataset (ECA&D) project offers the E-OBS dataset, which is a daily gridded observational dataset for precipitation, temperature and sea level pressure in Europe, based on ECA&D information π. Download and decompress mean temperature data from: here.
# import E-OBS V12 into a lat-long project (alternatively, use r.external)
r.in.gdal -oe input=tg_0.25deg_reg_1950-1964_v12.0.nc \
output=temperature_mean offset=0
r.in.gdal -oe input=tg_0.25deg_reg_1965-1979_v12.0.nc \
output=temperature_mean offset=5479 --o
r.in.gdal -oe input=tg_0.25deg_reg_1980-1994_v12.0.nc \
output=temperature_mean offset=10957 --o
r.in.gdal -oe input=tg_0.25deg_reg_1995-2015_v12.0.nc \
output=temperature_mean offset=16436 --o
# create STRDS
t.create type=strds output=temperature_mean_1950_2015_daily \
temporaltype=absolute semantictype=mean \
title="European mean temperature 1950-2015" \
description="The European daily mean temperature from ECAD"
# create text file with all temperature_mean rasters, one per line,
# a) using a shell script
for i in `seq 1 23922` ; do
echo temperature_mean.$i >> map_list.txt
done
# b) using a Python script
file = open("map_list.txt", "w")
for i in range(23922):
file.write("temperature_mean.%i\n" % (i + 1))
file.close()
# register daily maps using the file created above
t.register -i type=raster input=temperature_mean_1950_2015_daily \
file=map_list.txt start="1950-01-01" increment="1 days"
π SEE ALSO π
r.timestamp,t.create,t.info- Maps registration examples in Temporal data processing Wiki π
π AUTHOR π
SΓΆren Gebbert, ThΓΌnen Institute of Climate-Smart Agriculture π
π SOURCE CODE π
Available at: t.register source code (history)
Accessed: Saturday Jan 17 05:41:53 2026
Main index | Temporal index | Topics index | Keywords index | Graphical index | Full index
Β© 2003-2025 GRASS Development Team, GRASS GIS 8.4.2 Reference Manual
and that's the whole page bestie π«Ά this one came from GRASS 8.4.2, and t.register(1) is literally the last line of it β go register some maps, you're gonna slay β¨π
π¦ 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