Temporal data processing/maps registration
Different ways of registering maps in STDS
There are different ways to register maps in stds (space-time data set) with FAQ section for more details). Time instances are defined by an occurrence date, say only start time. On the other hand, time intervals are defined by both start and end time.. The best one in each case will depend on your data and whether you need/have time instances or time intervals (See
If you use either a file with map names or a list of maps (manually typed or asoutput), and you need time instances (temporal type = point), then you set start and increment options (not -i).
# manually typed map list t.register input=precipitation \ maps=prec_01,prec_02,prec_03,prec_04,prec_05,prec_06 \ start="2000-01-01" increment="1 months" # with g.list output t.register input=precipitation \ maps=`g.list type=raster pattern="prec*" separator=comma` \ start="2000-01-01" increment="1 months" # file with only map names t.register input=precipitation file=map_list.txt \ start="2000-01-01" increment="1 months"
You can also get time instances passing a file with map names and start time.
# file with map names and start time only t.register input=precipitation file=map_list_&_start_time.txt
If you need/have data at regular intervals instead, you also need to set the -i flag along with start time. The -i flag and the increment option will only work if a start time is defined (but no end time).
# map list t.register -i input=precipitation \ maps=`g.list type=raster pattern="prec*" separator=comma` \ start="2000-01-01" increment="1 months" # file with only map names t.register -i input=precipitation file=map_list.txt \ start="2000-01-01" increment="1 months"
If you pass a file with map names and start time only, but you want time intervals, then you can useon the STDS to create a correct temporal topology: maps will use the start time of a potential predecessor as end time.
t.register input=precipitation file=map_list_&_start_time.txt t.snap type=strds input=precipitation
Or, you can provide also end_time in the input file (for example, if your time intervals are irregular). If end_time in one map equals start_time of the following,will automatically create intervals.
t.register input=precipitation file=map_list_start_&_end_time.txt
So, to sum up, if you provide a file with time stamps, you should not use -i flag nor increment option. Besides, in the input file you can provide both time instances and time intervals, and also overlapping times. See manual page for input file formats. Whatever the case, when you provide an input file, make sure you delete any blank line at the end of the map list.
If the input option is not used (no stds is provided), maps will be only registered in the temporal database, i.e.: they will be assigned timestamps in the temporal database. If, however, a stds is provided through input, maps will be first registered in the temporal database (if not already registered) and then, in the stds specified. If you want to register maps that have already been registered in that mapset, you don't need to pass information regarding start and end time again, just the list of map names is enough.will read timestamps from the temporal database.
Registering maps in the temporal database and registering maps in stds are two different processes and,does both. If you use the module 'without input option' you are just assigning timestamps to maps in the temporal database (in the temporal framework). If you use t.register 'with the input option' (i.e.: providing a stds), you are registering timestamped maps that were previously registered in the temporal database, either in the same run of the command or a previous one not using input option.
Q: How do I know if my data represents time intervals or time instances?
A: If your data is accumulated for a time period (a day, a week, ...), then you have interval time. If your data represents a value that is valid for a specific time period (daily mean), you have interval time, as well. However, if your data represents a specific state at a point of time that has a smaller period, such as a second for example, then you have time instances.
The next thing to consider is what you want to do with the data. If you want to compute interactions with other time series, then it makes sense to use time intervals to compute temporal overlapping and intersection.