Mercurial > dive4elements > river
view flys-backend/contrib/shpimporter/uesg.py @ 2858:c3b2673eafbf
Adjusted PostgreSQL port of MINFO schema to match Oracle one.
flys-backend/trunk@4322 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 27 Apr 2012 15:47:00 +0000 |
parents | bd9e76e0b55d |
children | b0132e1b9719 |
line wrap: on
line source
import ogr from importer import Importer TABLE_NAME="floodmaps" PATH="Hydrologie/UeSG/Berechnung" class UESG(Importer): def getPath(self, base): return "%s/%s" % (base, PATH) def getTablename(self): return TABLE_NAME def isGeometryValid(self, geomType): if geomType == 3 or geomType == 6: return True else: return False def getKind(self, path): kind = 0 if path.find("Berechnung") > 0: kind = kind + 100 if path.find("Aktuell") > 0: kind = kind + 10 else: kind = kind + 20 if path.find("Land") > 0: kind = kind + 2 else: kind = kind + 1 else: kind = kind + 200 return kind def createNewFeature(self, featureDef, feat, **args): kind = self.getKind(args['path']) newFeat = ogr.Feature(featureDef) newFeat.SetGeometry(feat.GetGeometryRef()) if self.IsFieldSet(feat, "river_id"): riverId = feat.GetField(feat) else: riverId = self.river_id if feat.IsFieldSet("diff"): diff = feat.GetFieldAsDouble("diff") else: diff = 0 if feat.IsFieldSet("count"): count = feat.GetFieldAsInteger("count") else: count = 0 if feat.IsFieldSet("area"): area = feat.GetFieldAsDouble("area") else: area = 0 if feat.IsFieldSet("perimeter"): perimeter = feat.GetFieldAsDouble("perimeter") else: perimeter = 0 groupId = 2 newFeat.SetField("river_id", riverId) newFeat.SetField("diff", diff) newFeat.SetField("count", count) newFeat.SetField("area", area) newFeat.SetField("perimeter", perimeter) newFeat.SetField("kind", kind) newFeat.SetField("name", args['name']) return newFeat