Mercurial > dive4elements > river
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 |