Great that you found it! Thanks a lot, Soeren! I'll keep an eye on it to update as soon as it is available in trunk :)
cheers, Vero 2017-04-27 21:03 GMT+02:00 Sören Gebbert <[email protected]>: > Hi Vero, > this seems to be a bug introduced 14 month ago by someone who > implemented the time suffix. The indicator maps should have added > "_indicator" to their name to distinguish between occurrence and > indicator maps. I will fix this in trunk. > > Ciao > Sören > > 2017-04-27 20:27 GMT+02:00 Veronica Andreo <[email protected]>: > > 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 <[email protected]>: > >> > >> 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@lst') ; > >> INSERT INTO raster_absolute_time ( start_time ,id ,end_time ) VALUES > >> ('2003-08-01 00:00:00' ,'eip2_2003_08_01@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@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@lst') ; > >> INSERT INTO raster_stds_register ( id ,registered_stds ) VALUES > >> ('eip2_2003_08_01@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 > > > > > > > > _______________________________________________ > > grass-user mailing list > > [email protected] > > https://lists.osgeo.org/mailman/listinfo/grass-user >
_______________________________________________ grass-user mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/grass-user
