Bay County Florida Import

From OpenStreetMap Wiki
Jump to navigation Jump to search

exclamation mark

Imports and automated edits should only be carried out by those with experience and understanding of the way the OpenStreetMap community creates maps, and only with careful planning and consultation with the local community.
See Import/Guidelines and Automated Edits code of conduct for more information. Imports/automated edits which do not follow these guidelines might be reverted!


This is a proposal to import buildings for Bay County Florida

About

This page is intended to document plans for an upcoming import of Bay County Buildings and Addresses into OSM. This data has no special restrictions on using the data.

We plan to follow the import checklist, but our general high level plan is this:

  • Identify data to import
  • Translate, tag, and otherwise tenderize the data
  • Invite community members to help manually import the outlines
  • Divvy up the work using the HOT Tasking Manager
  • Do the work: Import/merge the data
  • QA the data
  • Beverage of choice & on to the next task

The intent is to begin this effort as soon as possible to aid in whatever way we can with the Michael disaster in the Florida Panhandle.


Import Data

Background

Building footprints and addresses are available from Bay County, Florida


Import Type

This is a community building based effort.

There are currently no plans to script or automate this import.

Data Preparation

Tagging Plans

No source tags will be added.

Changeset Tag

Tag in import-related changesets: #osmus-project-90

Data Transformation

The source files will need to be converted to OSM XML. Shapefiles of buildings and addresses provided by Bay County Florida have been loaded into PostGIS. pgsql2shp was used to extract just building outlines for Franklin County. These shapefiles have been divided into US Census Census Block. Census Blocks are about the right size for a task.

Paul Norman's org2osm was used to convert from Postgresql to an OSM XML for this. The translation script is:

def filterTags(attrs):
    if not attrs:
        return

    tags = {}
    tags['building'] = 'yes'
    if 'ADDR_NUM' in attrs and attrs['ADDR_NUM'] != '':
        tags['addr:housenumber'] = attrs['ADDR_NUM']
    if 'UNIT' in attrs and attrs['UNIT'] != '':
        tags['addr:unit'] = attrs['UNIT']
    if 'STREET' in attrs and attrs['STREET'] != '':
        tags['addr:street'] = attrs['STREET']
    if 'CITY' in attrs and attrs['CITY'] != '':
        tags['addr:city'] = attrs['CITY']
    if 'ZIP' in attrs and attrs['ZIP'] != '':
        tags['addr:postcode'] = attrs['ZIP']
    if 'FEATURECOD' in attrs and attrs['FEATURECOD'] != '':
        if attrs['FEATURECOD'] == 'General':
            tags['building'] = 'yes'
        if attrs['FEATURECOD'] == 'Commercial':
            tags['building'] = 'commercial'
        if attrs['FEATURECOD'] == 'Airport':
            tags['building'] = 'yes'
        if attrs['FEATURECOD'] == 'Religious':
            tags['building'] = 'religious'
        if attrs['FEATURECOD'] == 'Government':
            tags['building'] = 'civic'
        if attrs['FEATURECOD'] == 'Education':
            tags['building'] = 'school'
        if attrs['FEATURECOD'] == 'Hotel/Motel':
            tags['building'] = 'hotel'
        else:
            tags['building'] = 'yes'

    if 'NUMSTORIES' in attrs and attrs['NUMSTORIES'] != '':
        tags['building:levels'] = attrs['NUMSTORIES']


    return tags

Data Merge Workflow

Existing buildings will either be kept or merged with the new outlines. If the new outline is better than the existing data then the two geometries will be merged using the Replace Geometry tool in JOSM. If the existing building in JOSM is better than the new outlines, then the new outline will not be imported.

Team Approach

The work for this effort will be divided up into sections, with each section constituting a census block. Census Blocks will be used by the US Tasking Manager.

References

Using the JSOM, each volunteer will begin to work through the data for that district.

  • Local knowledge
  • Best available imagery
  • Existing OSM data


Workflow

  • Open JOSM and the OSM US Task Manager project 87
  • Click on the task tab above and claim a task on the map to the right by clicking on an area you'd like to work in
  • Click the "JOSM" button, this will open the area in JOSM and load up existing OSM data
  • Click the ".osm" button, this will open new building outline data in a separate layer
  • Select the new building layer and validate the layer, fix all issues
  • Copy all geometry from building layer and paste it into the existing OSM data layer, Ctrl-c, Ctrl-Alt-v.
  • Run validation on the existing OSM data layer that now contains new data, resolve all issues emanating from collisions between existing and new data (see merge rules).
  • Do a sanity check on data:
  • Merge with existing buildings.
    • To merge with a building outline, use the Replace Geometry (Ctrl+Sift+G) by selection the existing building outline and the new address node. Note: Only merge building outline with an address node if the building outline contains just one address node.
  • Change visible storage tanks from building=yes to man_made=storage_tank
  • Upload data to OSM
  • Go back to the Tasking Manager and mark the task as done (but not as validated)


Dedicated Import Account

Users will be expected to obtain an unique import account, for example, user Foo might pick Foo_Import.

QA

Validation

  • Use of validation tools in the Tasking Manager process
  • Use Slack for questions and to help others during the import.