Metropolitan Council

From OpenStreetMap Wiki
Jump to: navigation, search

The Metropolitan Council is a regional government in the Twin Cities in Minnesota (see wikipedia:Metropolitan Council) The Metropolitan Council is the primary sponsor of MetroGIS (see wikipedia:MetroGIS). MetroGIS hosts datafinder [1], a large GIS data catalog. The Metropolitan Council, and other organizations in the Twin Cities Metropolitan Area, publish GIS data at datafinder.

License Information

Most GIS data published by the Metropolitan Council through datafinder has metadata distribution language that reads:

NOTICE: The Geographic Information System (GIS) Data to which this notice is attached are made available pursuant to the Minnesota Government Data Practices Act (Minnesota Statutes Chapter 13). THE GIS DATA ARE PROVIDED TO YOU AS IS AND WITHOUT ANY WARRANTY AS TO THEIR PERFORMANCE, MERCHANTABILITY, OR FITNESS FOR ANY PARTICULAR PURPOSE. The GIS Data were developed by the Metropolitan Council for its own internal business purposes. The Metropolitan Council does not represent or warrant that the GIS Data or the data documentation are error-free, complete, current, or accurate. You are responsible for any consequences resulting from your use of the GIS Data or your reliance on the GIS Data. You should consult the data documentation for this particular GIS Data to determine the limitations of the GIS Data and the precision with which the GIS Data may depict distance, direction, location, or other geographic features. If you transmit or provide the GIS Data (or any portion of it) to another user, it is recommended that the GIS Data include a copy of this disclaimer and this metadata.

The language is intended to be fit for OpenStreetMap usage.

Imports

These data sets have been imported.

  • Regional Recreation Open Space Features[2]
  • Park and Ride Lots[3]
  • Bus Stops[4]
  • Bus Shelters(Integrated with bus stops data)[5]

Potential Datasources

These data sets have the above distribution language.

  • Counties and Cities & Townships, Twin Cities Metropolitan Area[6]
  • Regional Recreation Open Space Features[7]
  • Regional and State Trails[8]

more at http://www.datafinder.org

Imports Process

Bus Stops

The following Shp-to-osm.jar rules file was used to convert the shapefile.

point,SITE_ID,,metcouncil:site_id,-
point,NODE_ID,,metcouncil:node_id,-
point,SITE_ON,,metcouncil:site_on,-
point,SITE_AT,,metcouncil:site_at,-
point,CORNER_LOC,,metcouncil:corner_loc,-
point,CORN_DESC,,metcouncil:corn_desc,-
point,ROUTES,,metcouncil:routes,-
point,NROUTES,,metcouncil:nroutes,-
point,SITE_HFN,,metcouncil:site_hfn,-
point,DFZ,,metcouncil:dfz,-
point,CITY_ID,,metcouncil:city_id,-
point,WKDY_TRIPS,,metcouncil:wkdy_trips,-
point,SAT_TRIPS,,metcouncil:sat_trips,-
point,SUN_TRIPS,,metcouncil:sun_trips,-

point,SITE_ID,,highway,bus_stop
point,SITE_ID,,source,metc_import_bus_stops
point,SITE_ID,,operator,Metro Transit
point,ROUTES,,route_ref,-
point,SITE_AT,,name,-

The route_ref and name tags needed to be modified further. the ROUTES attribute in the shapefile had the route numbers separated by spaces. The needed to be replace by semicolons(see bus_stop). The SITE_AT attribute, which was used for the name tag in the osm file, was in all caps and needed to be fixed. The following python script was used to do this.

#!/usr/bin/python

import sys
from xml.dom import minidom

def fixCapitalization(str):
    letters = [chr(x) for x in range(65, 90) + range(97, 122)]
    lst = []
    for c in str:
       lst.append(c.lower())

    lst[0] = lst[0].upper()
    for i in range(1, len(lst)):
        if lst[i-1] not in letters:
            lst[i] = lst[i].upper()
    return "".join(lst)

f = open(sys.argv[1])

for line in f:
    if line.strip().find("<tag ") == 0:
        dom = minidom.parseString(line)
        if dom.firstChild.attributes["k"].value == "name":
            name = dom.firstChild.attributes["v"].value
            newName = fixCapitalization(name)
            dom.firstChild.attributes["v"].value = newName
            print "    " + dom.toxml()[len("""<?xml version="1.0" ?>"""):]
        elif dom.firstChild.attributes["k"].value == "route_ref":
            routeRef = dom.firstChild.attributes["v"].value
            newRouteRef = ";".join(routeRef.split())
            dom.firstChild.attributes["v"].value = newRouteRef
            print "    " + dom.toxml()[len("""<?xml version="1.0" ?>"""):]
        else:
            print line,
    else:
        print line,

Bus Shelters

The bus shelters data contains the site_id of the bus stop it corresponds to which is intended to be used to match bus shelters to their corresponding bus stops. A shelter=yes tag was added to any bus stop which had a matching site_id in the bus shelters data.

Park and Ride Lots

The following Shp-to-osm.jar rules file was used to convert the shapefile. From looking at aerial imagery, the CAPACITY attribute is not the actual capacity of the parking lot. It seems that it is the number of spaces which are to be used for park and ride.

point,PR_NUM,,amenity,parking point,PR_NUM,,metcouncil:pr_num,- point,NAME,,name,- point,DESCRIPT,,description,- point,CITY,,metcouncil:city,- point,YEAR_EST,,metcouncil:year_est,- point,CAPACITY,,park_ride_capacity,- point,TOT_USED,,metcouncil:tot_used,-