comparison flys-backend/contrib/shpimporter/uesg.py @ 3471:e4250c6e1538 2.8.1

merged flys-backend/2.8.1
author Thomas Arendsen Hein <thomas@intevation.de>
date Fri, 28 Sep 2012 12:14:40 +0200
parents b0132e1b9719
children 59ca5dab2782
comparison
equal deleted inserted replaced
3468:f37e7e8907cb 3471:e4250c6e1538
1 import ogr
2
3 from importer import Importer
4
5
6 TABLE_NAME="floodmaps"
7 PATH="Hydrologie/UeSG/Berechnung"
8
9
10 class UESG(Importer):
11
12 def getPath(self, base):
13 return "%s/%s" % (base, PATH)
14
15
16 def getTablename(self):
17 return TABLE_NAME
18
19
20 def isGeometryValid(self, geomType):
21 if geomType == 3 or geomType == 6:
22 return True
23 else:
24 return False
25
26
27 def getKind(self, path):
28 kind = 0
29 if path.find("Berechnung") > 0:
30 kind = kind + 100
31
32 if path.find("Aktuell") > 0:
33 kind = kind + 10
34 else:
35 kind = kind + 20
36
37 if path.find("Land") > 0:
38 kind = kind + 2
39 else:
40 kind = kind + 1
41 else:
42 kind = kind + 200
43
44 return kind
45
46
47 def createNewFeature(self, featureDef, feat, **args):
48 kind = self.getKind(args['path'])
49
50 newFeat = ogr.Feature(featureDef)
51 newFeat.SetGeometry(feat.GetGeometryRef())
52
53 if self.IsFieldSet(feat, "river_id"):
54 riverId = feat.GetField(feat)
55 else:
56 riverId = self.river_id
57
58 if self.IsFieldSet(feat, "diff"):
59 diff = feat.GetFieldAsDouble("diff")
60 else:
61 diff = 0
62
63 if self.IsFieldSet(feat, "count"):
64 count = feat.GetFieldAsInteger("count")
65 else:
66 count = 0
67
68 if self.IsFieldSet(feat, "area"):
69 area = feat.GetFieldAsDouble("area")
70 else:
71 area = 0
72
73 if self.IsFieldSet(feat, "perimeter"):
74 perimeter = feat.GetFieldAsDouble("perimeter")
75 else:
76 perimeter = 0
77
78 groupId = 2
79
80 newFeat.SetField("river_id", riverId)
81 newFeat.SetField("diff", diff)
82 newFeat.SetField("count", count)
83 newFeat.SetField("area", area)
84 newFeat.SetField("perimeter", perimeter)
85 newFeat.SetField("kind", kind)
86 newFeat.SetField("name", args['name'])
87
88 return newFeat
89

http://dive4elements.wald.intevation.org