[GRASS-dev] Removed raster produced by t.rast.series still in t.list rast

Nikos Alexandris nik at nikosalexandris.net
Wed Feb 18 02:50:07 PST 2015


Nikos Alexandris:

>> creating a map with
>> t.rast.series ols output=ols_sum method=sum
>> gives the map which is listed normally via
>> 1) g.list rast  &  2) t.list rast
>>
>> Removing the map via
>> g.remove rast name=ols_sum -f
>> is not reflected in t.list rast

>> Shouldn't this be updated in tgis' data base?

Sören Gebbert wrote:

> Only temporal commands can update the temporal database.
> The module g.remove does not know anything about the temporal 
> framework,
> hence g.remove and all other general/spatial commands are unable to
> update the temporal database.

> Implementing temporal database management in the existing C modules 
> is
> tricky, since
> the temporal framework is implemented in Python. More critical is,
> that many temporal modules
> use spatial and general modules in their processing task. Hence, 
> there
> are problems regarding recursion, performance and concurrent temporal
> database read/write access.
> Which module should unregister map layer in case they get overwritten
> within the temporal module? The temporal module that was called or 
> the
> spatial module that was used by the temporal module?
> How does a spatial module know when to unregister a map from the
> temporal database? Should it do it
> always, or only when it is not called from a temporal module? The
> temporal modules will try to gather all the information about
> overwritten, registered and unregistered map layers and perform the
> temporal management tasks (register, unregister, update, ...) much,
> much more efficient then multiple single spatial module calls.
>
> Hence, it is a design decision regarding performance with the 
> drawback
> of more user responsibility about data handling.
>
> As a result you need to use t.unregister to manually unregister the 
> map from the
> temporal database.

Soeren,

all read and understood.  And that's perfectly fine so.  But I still 
think there is a problem (or a design mis-catch).  Let's get this 
step-by-step (in G71, since it t.create doesn't work for me in G7):

t.connect -d
t.create type=strds title="DMSP-OLS Sicily" description="Version 4 
DMSP-OLS Nighttime Lights Time Series over Sicily" output=ols
t.register -i input="ols" 
maps="F162004,F162005,F162006,F162007,F162008,F162009" start="2004-01-01 
00:00:00" increment="1 years" --o
# plus more t.register commands

then

t.rast.series ols output=ols_sum method=sum --o

And now, should the user unregister first, then remove?  Or it doesn't 
matter?  Either way, it doesn't work for me because of:

t.unregister input=ols maps=ols_sum
0..WARNING: Map <ols_sum at sicily> is not registered in space time 
dataset <ols at sicily>

This is clearly, as fas as I can understand, not a user's mistake.  Any 
help?

Thank you so much for the insight, Nikos


More information about the grass-dev mailing list