Selaa lähdekoodia

temporal python library: t.rast.algebra output basename is using leading zeros, working on https://trac.osgeo.org/grass/ticket/2736 please check

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@72417 15284696-431f-4ddb-bdfa-cd5b030d7da7
Luca Delucchi 7 vuotta sitten
vanhempi
commit
8a3e0efba4

+ 3 - 2
lib/python/temporal/temporal_raster_base_algebra.py

@@ -634,9 +634,10 @@ class TemporalRasterBaseAlgebraParser(TemporalAlgebraParser):
                 num = len(t[3])
                 count = 0
                 register_list = []
+                leadzero = len(str(num))
                 for i in range(num):
                     # Check if resultmap names exist in GRASS database.
-                    map_name = self.basename + "_" + str(i) + "@" + self.mapset
+                    map_name = self.basename + "_" + str(i).zfill(leadzero) + "@" + self.mapset
                     if self.stdstype == "strds":
                         new_map = RasterDataset(map_name)
                     else:
@@ -646,7 +647,7 @@ class TemporalRasterBaseAlgebraParser(TemporalAlgebraParser):
                                         "Use --o flag to overwrite existing file"%map_name)
                 map_test_list = []
                 for map_i in t[3]:
-                    newident = self.basename + "_" + str(count)
+                    newident = self.basename + "_" + str(count).zfill(leadzero)
                     if "cmd_list" in dir(map_i):
                         # Build r.mapcalc module and execute expression.
                         # Change map name to given basename.

+ 4 - 3
lib/python/temporal/temporal_vector_algebra.py

@@ -378,9 +378,10 @@ class TemporalVectorAlgebraParser(TemporalAlgebraParser):
                 count = 0
                 returncode = 0
                 register_list = []
+                leadzero = len(str(num))
                 for i in range(num):
                     # Check if resultmap names exist in GRASS database.
-                    vectorname = self.basename + "_" + str(i)
+                    vectorname = self.basename + "_" + str(i).zfill(leadzero)
                     vectormap = VectorDataset(vectorname + "@" + get_current_mapset())
                     if vectormap.map_exists() and self.overwrite == False:
                         self.msgr.fatal(_("Error vector maps with basename %s exist. "
@@ -433,7 +434,7 @@ class TemporalVectorAlgebraParser(TemporalAlgebraParser):
                                 self.removable_maps.pop(map_i.get_name())
                             mapset = map_i.get_mapset()
                             # Change map name to given basename.
-                            newident = self.basename + "_" + str(count)
+                            newident = self.basename + "_" + str(count).zfill(leadzero)
                             m = copy.deepcopy(self.m_rename)
                             m.inputs["vector"].value = (map_i.get_name(),newident)
                             m.flags["overwrite"].value = self.overwrite
@@ -450,7 +451,7 @@ class TemporalVectorAlgebraParser(TemporalAlgebraParser):
                         map_test_extent = map_test.get_temporal_extent_as_tuple()
                         if map_test_extent != map_i_extent:
                             # Create new map with basename
-                            newident = self.basename + "_" + str(count)
+                            newident = self.basename + "_" + str(count).zfill(leadzero)
                             map_result = map_i.get_new_instance(newident + "@" + self.mapset)
 
                             if map_test.map_exists() and self.overwrite is False: