[Dive4elements-commits] [PATCH 1 of 3] Improve debug output for unsupported features and skipped shapefiles

Wald Commits scm-commit at wald.intevation.org
Fri Feb 15 11:55:38 CET 2013


# HG changeset patch
# User Andre Heinecke <aheinecke at intevation.de>
# Date 1360925518 -3600
# Branch dami
# Node ID 998b29c8d2fdaaa2515a3ea64f617388846762aa
# Parent  71e1b96f47948a92a57cc93148912c21ebe7af33
Improve debug output for unsupported features and skipped shapefiles

diff -r 71e1b96f4794 -r 998b29c8d2fd flys-backend/contrib/shpimporter/importer.py
--- a/flys-backend/contrib/shpimporter/importer.py	Thu Feb 14 17:45:13 2013 +0100
+++ b/flys-backend/contrib/shpimporter/importer.py	Fri Feb 15 11:51:58 2013 +0100
@@ -77,15 +77,18 @@
 
     def walkOverShapes(self, shape):
         (name, path) = shape
-        if not self.isShapeRelevant(name, path):
-            shpimporter.INFO("Skip shapefile '%s'" % path)
-            return
 
         shp = ogr.Open(shape[1])
         if shp is None:
             shpimporter.ERROR("Shapefile '%s' could not be opened!" % path)
             return
 
+        if not self.isShapeRelevant(name, path):
+            shpimporter.INFO("Skip shapefile: '%s' of Type: %s" % (path,
+                utils.getWkbString(shp.GetLayerByName(name).GetGeomType())))
+            return
+
+
         shpimporter.INFO("Processing shapefile '%s'" % path)
         srcLayer = shp.GetLayerByName(name)
 
@@ -172,7 +175,7 @@
 
         geomType    = -1
         success     = 0
-        unsupported = 0
+        unsupported = {}
         creationFailed = 0
         featureDef  = destLayer.GetLayerDefn()
 
@@ -206,11 +209,13 @@
                 else:
                     creationFailed = creationFailed + 1
             else:
-                unsupported = unsupported + 1
+                unsupported[utils.getWkbString(geomType)] = \
+                        unsupported.get(utils.getWkbString(geomType), 0) + 1
 
         shpimporter.INFO("Inserted %i features" % success)
         shpimporter.INFO("Failed to create %i features" % creationFailed)
-        shpimporter.INFO("Found %i unsupported features" % unsupported)
+        for key, value in unsupported:
+            shpimporter.INFO("Found %i unsupported features of type: %s" % (value, key))
 
         if self.tracking_import:
             unhandled = []
diff -r 71e1b96f4794 -r 998b29c8d2fd flys-backend/contrib/shpimporter/utils.py
--- a/flys-backend/contrib/shpimporter/utils.py	Thu Feb 14 17:45:13 2013 +0100
+++ b/flys-backend/contrib/shpimporter/utils.py	Fri Feb 15 11:51:58 2013 +0100
@@ -60,3 +60,30 @@
     except UnicodeDecodeError:
         # Probably European Windows names so lets try again
         return unicode.encode(unicode(path, "cp1252"), "UTF-8")
+
+WKB_MAP = {
+    ogr.wkb25Bit :                'wkb25Bit',
+    ogr.wkbGeometryCollection :   'wkbGeometryCollection',
+    ogr.wkbGeometryCollection25D :'wkbGeometryCollection25D',
+    ogr.wkbLineString :           'wkbLineString',
+    ogr.wkbLineString25D :        'wkbLineString25D',
+    ogr.wkbLinearRing :           'wkbLinearRing',
+    ogr.wkbMultiLineString :      'wkbMultiLineString',
+    ogr.wkbMultiLineString25D :   'wkbMultiLineString25D',
+    ogr.wkbMultiPoint :           'wkbMultiPoint',
+    ogr.wkbMultiPoint25D :        'wkbMultiPoint25D',
+    ogr.wkbMultiPolygon :         'wkbMultiPolygon',
+    ogr.wkbMultiPolygon25D :      'wkbMultiPolygon25D',
+    ogr.wkbNDR :                  'wkbNDR',
+    ogr.wkbNone :                 'wkbNone',
+    ogr.wkbPoint :                'wkbPoint',
+    ogr.wkbPoint25D :             'wkbPoint25D',
+    ogr.wkbPolygon :              'wkbPolygon',
+    ogr.wkbPolygon25D :           'wkbPolygon25D',
+    ogr.wkbUnknown :              'wkbUnknown',
+    ogr.wkbXDR :                  'wkbXDR'
+}
+
+def getWkbString(type):
+    return WKB_MAP.get(type) or "Unknown"
+


More information about the Dive4elements-commits mailing list