Skip to content

Commit

Permalink
i.sentinel.download: fix footprints
Browse files Browse the repository at this point in the history
  • Loading branch information
metzm committed May 12, 2020
1 parent 1b9ba94 commit 65f4788
Showing 1 changed file with 14 additions and 3 deletions.
Expand Up @@ -334,7 +334,8 @@ def save_footprints(self, map_name):
srs = osr.SpatialReference()
srs.ImportFromEPSG(4326)

layer = data_source.CreateLayer(str(map_name), srs, ogr.wkbPolygon)
# features can be polygons or multi-polygons
layer = data_source.CreateLayer(str(map_name), srs, ogr.wkbMultiPolygon)

# attributes
attrs = OrderedDict([
Expand All @@ -352,7 +353,15 @@ def save_footprints(self, map_name):
for idx in range(len(self._products_df_sorted['uuid'])):
wkt = self._products_df_sorted['footprint'][idx]
feature = ogr.Feature(layer.GetLayerDefn())
feature.SetGeometry(ogr.CreateGeometryFromWkt(wkt))
newgeom = ogr.CreateGeometryFromWkt(wkt)
# convert polygons to multi-polygons
newgeomtype = ogr.GT_Flatten(newgeom.GetGeometryType())
if newgeomtype == ogr.wkbPolygon:
multigeom = ogr.Geometry(ogr.wkbMultiPolygon)
multigeom.AddGeometryDirectly(newgeom)
feature.SetGeometry(multigeom)
else:
feature.SetGeometry(newgeom)
for key in attrs.keys():
if key == 'ingestiondate':
value = self._products_df_sorted[key][idx].strftime("%Y-%m-%dT%H:%M:%SZ")
Expand All @@ -364,8 +373,10 @@ def save_footprints(self, map_name):

data_source = None

# coordinates of footprints are in WKT -> fp precision issues
# -> snap
gs.run_command('v.import', input=tmp_name, output=map_name,
layer=map_name, quiet=True
layer=map_name, snap=1e-10, quiet=True
)

def set_uuid(self, uuid_list):
Expand Down

0 comments on commit 65f4788

Please sign in to comment.