[GRASS-SVN] r69332 - grass-addons/grass7/vector/v.what.strds
svn_grass at osgeo.org
svn_grass at osgeo.org
Thu Sep 1 01:35:42 PDT 2016
Author: lucadelu
Date: 2016-09-01 01:35:42 -0700 (Thu, 01 Sep 2016)
New Revision: 69332
Modified:
grass-addons/grass7/vector/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-addons/grass7/vector/v.what.strds/v.what.strds.py
===================================================================
--- grass-addons/grass7/vector/v.what.strds/v.what.strds.py 2016-09-01 08:31:53 UTC (rev 69331)
+++ grass-addons/grass7/vector/v.what.strds/v.what.strds.py 2016-09-01 08:35:42 UTC (rev 69332)
@@ -53,7 +53,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:
@@ -61,6 +61,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),
@@ -68,13 +69,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
############################################################################
@@ -111,6 +117,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)
@@ -119,13 +126,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
@@ -146,7 +152,7 @@
False, None,
"equal", False,
False)
-
+ #TODO check granularity for multiple STRDS
for i in xrange(len(mapmatrizes[0])):
isvalid = True
mapname_list = []
@@ -186,11 +192,13 @@
if len(pymap.dblinks) == 0:
try:
+ pymap.close()
grass.run_command("v.db.addtable", map=output)
except CalledModuleError:
dbif.close()
grass.fatal(_("Impossible add table to vector %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