Mercurial > dive4elements > river
view backend/contrib/shpimporter/floodmarks.py @ 8709:71ae18553377
(issue1754) Also fixup master artifact for already loaded recommendations
As the load many call creates (and needs to create) all artifacts
in the reccomendations this would break "old" recommendations after
a reload through the "Pencil" mode.
A better fix would probably be to just set the master artifiact
in the recommendations but due to the extremly weird interaction
with the server at this point it is not trivial to identify how
this can be done.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Fri, 24 Apr 2015 15:57:23 +0200 |
parents | 90ba3ae2ced1 |
children |
line wrap: on
line source
# -*- coding: utf-8 -*- try: from osgeo import ogr except ImportError: import ogr from importer import Importer import logging import os import re TABLE_NAME="flood_marks" PATH="Hydrologie/HW-Marken" NAME="Floodmarks" logger = logging.getLogger(NAME) class Floodmark(Importer): fieldmap = { "^station$" : "km", "^km$" : "km", "^wsv-km$" : "km", "^FlussKm$" : "km", "^z$" : "z", "^z\d*" : "z", # z02, z1890, usw. "^m+NHN$" : "z", "^Ort$" : "location", "^Pegel$" : "location", } def getPath(self, base): return "%s/%s" % (base, PATH) def getTablename(self): return TABLE_NAME def getName(self): return NAME def isGeometryValid(self, geomType): return geomType == ogr.wkbPoint def isShapeRelevant(self, name, path): return "hw-marken" in name.lower() def createNewFeature(self, featureDef, feat, **args): newFeat = ogr.Feature(featureDef) geometry = feat.GetGeometryRef() geometry.SetCoordinateDimension(2) newFeat.SetGeometry(geometry) self.copyFields(feat, newFeat, self.fieldmap) newFeat.SetField("river_id", self.river_id) filename = os.path.basename(args['path']) # Try to extract the year from the filename match = re.search(r"([_\-])(\d\d\d\d)([_\-])", filename) if match: year = match.groups()[1] year = int(year) newFeat.SetField("year", year) else: logger.warn(u"Could not extract year from filename: %s " % filename) return newFeat