Goal
- More complete coverage of the "landuse" tag, specifically landuse=residential. Initially starting with the city of Kenmore and potentially expanding to King County.
Data Source
- King County GIS [1] , specifically the "Property" dataset
Data Translation
- Each parcel in the property dataset as a "PRESENTUSE" field (aka what is this parcel presently used for). The possible values are enumerated here : [2]
- Initially I am focused on correctly marking areas as landuse=residential
- The following values from the input dataset will be mapped to landuse=residential
| Code
|
Description
|
Example Parcel (todo)
|
| 2
|
Single family (residential use / zone)
|
|
| 3
|
Duplex
|
|
| 4
|
Triplex
|
|
| 5
|
4-plex
|
|
| 7
|
Houseboat
|
|
| 8
|
Mobile home
|
|
| 11
|
Apartment
|
|
| 16
|
Apartment (Mixed use)
|
|
| 17
|
Apartment (Co-op)
|
|
| 18
|
Apartment (Subsidized)
|
|
| 20
|
Condominium (Residential)
|
|
| 25
|
Condominium (Mixed use)
|
|
| 29
|
Townhouse plat
|
|
| 38
|
Mobile home park
|
|
| 48
|
Condominium (Mobile Home Park)
|
|
| 49
|
Retirement facility
|
|
| 57
|
Group home
|
|
| 341
|
Rooming House
|
|
| 342
|
Fraternity / Sorority House
|
|
- Other values to consider for potentially being residential
| Code
|
Description
|
Notes
|
|
| 6
|
Single family (C/I Zone)
|
|
|
| 9
|
Single family (C/I use)
|
|
|
| 300
|
Vacant (Single-family)
|
"Single family" seems misleading here. This is used for various parcels without anything built on them, including Parks.
|
|
| 301
|
Vacant (Multi-family)
|
|
|
Data Manipulation for use in OSM
- People have different opinions about how landuse areas should be mapped. How big should each polygon be? Should they cross roads (only small residential roads maybe)? If not crossing a road should it extend to the road centerline or stop at the edge of the road?
- I plan to combine neighboring parcels that are both landuse=residential to form larger polygons where possible. If I can come up with a good solution for automating the process of allowing these residential polygons to cross small roads (highway=residential ?) then I'll do it (as this will result in a smaller/simpler dataset). Otherwise I'll just only do the neighboring parcel merging and therefore not have the resulting areas cross any roads.
- The polygons from the King County GIS are more detailed than is necessary for OSM. I will simplify the resulting polygons to reduce the number of nodes.
Handling existing OSM data (todo)
- Exclude the area from the import if it overlaps with existing landuse=* tags or non-residential amenities? Maybe replace existing unnamed landuse=residential areas that overlap with the imported ones, but don't import if it overlaps with landuse=[anything except residential] ?
Tech Process
- Using some custom java code for parsing kml (todo replace with an existing library)
- Currently using JTS Topology Suite (Java) [3]
- CascadedPolygonUnion class for merging the adjacent polygons
- TopologyPreservingSimplifier for simplifying the resulting polygons
- todo : how to download osm data and translate to JTS polygons
- todo : JTS Polygon -> OSM XML ?
- osm xml -> ... upload somehow ...
Results so far
- Process King County file (600k+ parcels)
- Filter to Kenmore residential parcels (~6426 of them)
- kml->JTS polygons (10 of them failed due to being invalid polygons, havent looked at details)
- After merging the 6000+ parcels it results in 353 areas, a few of which have holes (OSM multipolygon)