[GRASS-user] error in t.rast.accdetect

Veronica Andreo veroandreo at gmail.com
Thu Apr 27 11:27:10 PDT 2017


An update:

I investigated outputs a bit more... The output maps that are registered in
the occurrence strds contain the range of values that is described for
indicator strds (from 1 to 3), and are in fact generated by something like
this: if(isnull(eip1_2005_09_28), if(isnull(eip1_2005_09_29), null(), 1),
if(isnull(eip1_2005_09_29), null(), 2)) <<-- that seems to be the
indicator. The occurrence maps that are supposed to store the time in days
from the beginning of the cycle, are not there (or they are overwritten at
some point, dunno).

In summary, the indicator maps are generated and registered in the
occurrence strds. The occurrence maps are not created (or they are
overwritten, dunno) and indicator strds is empty.

My question would however, if the output are two strds, wouldn't we need to
provide two basenames??

best,
Vero

2017-04-27 19:22 GMT+02:00 Veronica Andreo <veroandreo at gmail.com>:

> Hello list,
>
> I have accumulated a daily time series of temperatures with BEDD method by
> means of t.rast.accumulate, and now, I need to identify where do the cycles
> occur and how much do they last. However, when I run t.rast.accdetect, all
> goes fine until I get this error:
>
> Traceback (most recent call last):
>   File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-
> linux-gnu/scripts/t.rast.accdetect", line 592, in <module>
> ERROR: Unable to execute transaction:
> INSERT INTO raster_base ( name ,creator ,mapset     ,creation_timemain()
>
> ,temporal_type ,id   File "/home/veroandreo/software/
> grass7_trunk/dist.x86_64-pc-linux-gnu/scripts/t.rast.accdetect", line
> 437, in main
> ) VALUES ('eip2_2003_08_01' ,'veroandreo' ,'lst'
> ,'2017-04-27 18:55:42.175407' ,'absolute' ,'eip2_2003_08_01 at lst') ;
> INSERT INTO raster_absolute_time ( start_time ,id ,end_time ) VALUES
> ('2003-08-01 00:00:00' ,'eip2_2003_08_01 at lst' ,'2003-08-02 00:00:00') ;
> INSERT     register_null, empty_maps, dbif)
> INTO  File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-
> linux-gnu/scripts/t.rast.accdetect", line 479, in
> create_strds_register_maps
>  raster_spatial_extent ( north ,bottom ,west ,top ,proj ,east
> ,id ,south ) VALUES (2428000.000000 ,0.000000 ,4821000.000000 ,0.000000
> ,'XY' ,6309000.000000 ,'eip2_2003_08_01 at lst' ,1312000.000000) ;
> INSERT INTO raster_metadata     (map.insert(dbif)
>  max  File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-
> linux-gnu/etc/python/grass/temporal/abstract_map_dataset.py", line 283,
> in insert
>  ,rows ,min ,datatype ,number_of_cells
> ,cols ,ewres ,nsres ,id ) VALUES (3.000000 ,1488 ,1.000000 ,'CELL' ,1660608
> ,1116     return AbstractDataset.insert(self, dbif=dbif, execute=execute)
> ,1000.000000   File "/home/veroandreo/software/
> grass7_trunk/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/abstract_dataset.py",
> line 403, in insert
> ,1000.000000 ,'eip2_2003_08_01 at lst') ;
> INSERT INTO raster_stds_register ( id ,registered_stds ) VALUES
> ('eip2_2003_08_01 at lst' ,NULL) ;
>     dbif.execute_transaction(statement)
>   File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-
> linux-gnu/etc/python/grass/temporal/core.py", line 1020, in
> execute_transaction
>     return self.connections[mapset].execute_transaction(statement)
>   File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-
> linux-gnu/etc/python/grass/temporal/core.py", line 1314, in
> execute_transaction
>     self.cursor.executescript(statement)
> sqlite3.IntegrityError: UNIQUE constraint failed: raster_base.id
>
> I have no clue of what is wrong... Here are the commands I'm using (I'm
> following the example in t.rast.accumulate manual page)
>
> # accumulation
> t.rast.accumulate -n input=reconstructed_lst output=daily_bedd \
>  start="2003-04-01" stop="2005-09-30" \
>  cycle="6 months" offset="6 months" granularity="1 day" \
>  basename=daily_bedd suffix=gran method=bedd limits=14,32 \
>  scale=0.02 shift=-273.15 --o
>
> # detect cycle 1:
> t.rast.accdetect input=daily_bedd \
>   occurrence=occurrence_eip1 start="2003-04-01" stop="2005-09-30" \
>   cycle="6 months" offset="6 months" range=109,218 \
>   basename=eip1 indicator=indicator_eip1
>
> The maps are created (basename=eip1) and they contain data, the occurrence
> strds is also created and contains the eip1 maps, but the indicator strds
> is empty. And this one (the indicator strds) is the one needed to identify
> where do the target cycles occur.
>
> I would really appreciate any help and advice... please :)
>
> Thanks much
> Vero
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20170427/03c74515/attachment-0001.html>


More information about the grass-user mailing list