source: subversion/applications/utils/change_tags/massgis.py @ 13199

Revision 13199, 4.3 KB checked in by cmarqu, 5 years ago (diff)

Add function ramps for moving names of ramps to "k=orig_name".

Line 
1__version__ = "0.1"
2
3def conservation_organization(tags, type):
4    """Fix for a MassGIS OpenSpace todo: typo in 'conservation_organization'
5       in bulk import.
6    """
7   
8    if type == "node":
9        return False 
10   
11    changed = False
12   
13    if 'ownership' in tags and tags['ownership'] == 'conservation_rganization':
14        tags['ownership'] = 'conservation_organization'
15        changed = True
16   
17    tags['created_by'] = 'change_tags.py - massgis %s' % __version__
18
19    return changed   
20
21def playgrounds(tags, type):
22    changed = False
23   
24    if type == "way" and 'name' in tags:
25        name = tags['name']
26   
27        if name.endswith("Playground"):
28            if not 'leisure' in tags or tags['leisure'] != "playground":
29                changed = True
30                tags['leisure'] = 'playground'
31    tags['created_by'] = 'change_tags.py - massgis area_names %s' % __version__
32
33    return changed   
34
35def more_shrt_nms(tags, type):
36    import re
37    map = {
38      " Rec Area$": ' Recreation Area', 
39      " Nwr$": ' National Wildlife Refuge', 
40      " Wma$": ' Wildlife Management Area', 
41      " Nha$": ' Natural Heritage Area', 
42      " Wce$": ' Wildlife Conservation Easement', 
43      " Mdws$": ' Meadows', 
44      " Reserv\.$": ' Reservation', 
45      " St Forest$": ' State Forest', 
46      " Conservation La$": ' Conservation Land', 
47      " Cons Lnd$": ' Conservation Land', 
48      " Cons Land$": ' Conservation Land', 
49      " Cons Area$": ' Conservation Area', 
50      " Consv Land$": ' Conservation Land', 
51      " Sanc$": ' Sanctuary', 
52      " Consv Prjt$": ' Conservation Project',
53      " Pk$": ' Park',
54      " Conserv\. Land$": " Conservation Land"
55    }
56    remap = {}
57    for key, value in map.items():
58        pat = re.compile(key)
59        remap[pat] = value
60       
61    changed = False
62   
63    if type == "way" and 'name' in tags:
64        name = tags['name']
65        for key, value in remap.items():
66            new_name = key.sub(value, name)
67            if new_name != name:
68                tags['name'] = new_name
69                changed = True
70                break
71         
72    tags['created_by'] = 'change_tags.py - massgis short_names %s' % __version__
73
74    return changed   
75
76
77def area_names(tags, type):
78    """Fix for MassGIS OpenSpace areas: do better keying based on name, fix some common typos."""
79   
80    changed = False
81   
82    if type == "way" and 'name' in tags:
83        name = tags['name']
84       
85        # Common playground typos
86        if name.endswith("Plgd"):
87            name = name.replace("Plgd", "Playground")
88            tags['name'] = name
89            changed = True
90        elif name.endswith("Plygrd"):
91            name = name.replace("Plygrd", "Playground")
92            tags['name'] = name
93            changed = True
94        elif name.endswith("Playgroung"):
95            name = name.replace("Playgroung", "Playground")
96            tags['name'] = name
97            changed = True
98       
99        if name.endswith("Golf Course"):
100            if not 'leisure' in tags or tags['leisure'] != "golf_course":
101                changed = True
102                tags['leisure'] = "golf_course"
103                if 'landuse' in tags:
104                    del tags['landuse']
105        elif name.endswith("State Park"):
106            if not 'leisure' in tags or tags['leisure'] != "nature_reserve":
107                changed = True
108                tags['leisure'] = 'nature_reserve'
109               
110        elif (name.endswith("Park") and tags['massgis:FEE_OWNER'] != "National Park Service") \
111                or name.endswith("Playground") or name.endswith("Field"):
112            if not 'leisure' in tags or tags['leisure'] != "park":
113                changed = True         
114                tags['leisure'] = "park"
115
116    tags['created_by'] = 'change_tags.py - massgis area_names %s' % __version__
117
118    return changed   
119
120def ramps(tags, type):
121    import re
122
123    changed = False
124   
125    if type == "way" and 'name' in tags and 'highway' in tags:
126        name = tags['name']
127   
128        # re.match checks for a match only at the beginning of the string
129        if re.match("Ramp\W", name, ):
130            changed = True
131            tags['orig_name'] = name
132            del tags['name']
133
134    tags['created_by'] = 'change_tags.py - massgis ramps %s' % __version__
135
136    return changed   
Note: See TracBrowser for help on using the repository browser.