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
