[GRASS-SVN] r69331 - grass/trunk/scripts/v.what.strds
svn_grass at osgeo.org
svn_grass at osgeo.org
Thu Sep 1 01:31:53 PDT 2016
Author: lucadelu
Date: 2016-09-01 01:31:53 -0700 (Thu, 01 Sep 2016)
New Revision: 69331
Modified:
grass/trunk/scripts/v.what.strds/v.what.strds.py
Log:
v.what.strds: add capabilities to use names also for temporal dataset with minutes and seconds granularity
Modified: grass/trunk/scripts/v.what.strds/v.what.strds.py
===================================================================
--- grass/trunk/scripts/v.what.strds/v.what.strds.py 2016-09-01 08:11:51 UTC (rev 69330)
+++ grass/trunk/scripts/v.what.strds/v.what.strds.py 2016-09-01 08:31:53 UTC (rev 69331)
@@ -62,7 +62,7 @@
class Sample(object):
def __init__(self, start=None, end=None, raster_names=None,
- strds_name=None):
+ strds_name=None, granularity=None):
self.start = start
self.end = end
if raster_names is not None:
@@ -70,6 +70,7 @@
else:
self.raster_names = []
self.strds_name = strds_name
+ self.granu = granularity
def __str__(self):
return "Start: %s\nEnd: %s\nNames: %s\n" % (str(self.start),
@@ -77,13 +78,18 @@
str(self.raster_names))
def printDay(self, date='start'):
+ output = ''
if date == 'start':
- return str(self.start).split(' ')[0].replace('-', '_')
+ output = str(self.start).split(' ')[0].replace('-', '_')
elif date == 'end':
- return str(self.end).split(' ')[0].replace('-', '_')
+ output = str(self.end).split(' ')[0].replace('-', '_')
else:
grass.fatal("The values accepted by printDay in Sample are:"
" 'start', 'end'")
+ if self.granu:
+ if self.granu.find('minute') != -1 or self.granu.find('second') != -1:
+ output += '_' + str(self.start).split(' ')[1].replace(':', '_')
+ return output
############################################################################
@@ -127,6 +133,7 @@
first_strds = tgis.open_old_stds(strds_names[0], "strds", dbif)
# Single space time raster dataset
if len(strds_names) == 1:
+ granu = first_strds.get_granularity()
rows = first_strds.get_registered_maps("name,mapset,start_time,end_time",
tempwhere, "start_time",
dbif)
@@ -135,13 +142,12 @@
dbif.close()
grass.fatal(_("Space time raster dataset <%s> is empty") %
first_strds.get_id())
-
for row in rows:
start = row["start_time"]
end = row["end_time"]
raster_maps = [row["name"] + "@" + row["mapset"], ]
- s = Sample(start, end, raster_maps, first_strds.get_name())
+ s = Sample(start, end, raster_maps, first_strds.get_name(), granu)
samples.append(s)
else:
# Multiple space time raster datasets
@@ -162,7 +168,7 @@
False, None,
"equal", False,
False)
-
+ #TODO check granularity for multiple STRDS
for i in range(len(mapmatrizes[0])):
isvalid = True
mapname_list = []
@@ -205,11 +211,14 @@
if len(pymap.dblinks) == 0:
try:
+ pymap.close()
grass.run_command("v.db.addtable", map=output)
except CalledModuleError:
dbif.close()
grass.fatal(_("Unable to add table <%s> to vector map <%s>" % output))
- pymap.close()
+ if pymap.is_open():
+ pymap.close()
+
for sample in samples:
raster_names = sample.raster_names
# Call v.what.rast for each raster map
More information about the grass-commit
mailing list