Washington landuse import

From OpenStreetMap Wiki
Jump to navigation Jump to search


  • 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)