Skip to content

Latest commit

 

History

History
369 lines (310 loc) · 17.7 KB

README.md

File metadata and controls

369 lines (310 loc) · 17.7 KB

Introduction

The goal of this project is to prepare and visualize a zoning shapefile in order to encourage and streamline local business and community initiatives.

Currently, each zone is represented by an individual .GeoJSON layer that can be viewed individually by clicking on any of the layers here, or all layers at once here.

A rough draft of a custom Leaflet-based map has been started here. It can be downloaded and viewed locally in browser by opening the index.html file.

Existing documentation detailing zoning data is available here, and will need to be researched in order to further refine any data visualizations.

GIS Steps & Notes

County Parcel data

Geodatabase_County.zip can be downloaded from mcauditor.org, from which the mc_parcel_polygon_e any layer can be attained. The following expression can be used to select just those parcels that are part of the city of Dayton:

"LOC_AREA"  =  'DAYTON' 

Initially there appears to not be a column that refers land use codes that are discussed below.

County Land Use Codes

A list of land use codes can be downloaded in PDF from from mcrealestate.org. (For a list of the other GIS data available, go here) Initially there appears to not be any mention of Non-Conforming Usage that are discussed below.

City Zoning Data

Determining Projection

It was 100% clear what projection the original file is in. Loading zoning_aug62015.shp file into QGIS leads to the following generated CRS:

**USER:100000
+proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs

However, upon importing the included zoning_aug62015.prj to the prj2epsg website, the following results were gotten:

Results
Found a single exact match for the specified search terms:
3735 - NAD_1983_StatePlane_Ohio_South_FIPS_3402_Feet

In QGIS, zoning_aug62015.shp is Saved as…(reprojected) with CRS:3735 formally designated.

Unique values in NEW_ZONE column

Presuming environment is set up to run QGIS modules externally, getUniqueAttributes_v1.py can be run to print out total number of unique values in NEW_ZONE column, and a list of all unique names. Here are the 26 unique values found in zoning_aug62015.shp file:

[NULL, u'AP', u'BP', u'CBD', u'CI', u'EGC', u'EMF', u'ENC', u'ER-3', u'ER-4', u'I-1', u'I-2', u'MGC', u'MH', u'MMF', u'MNC', u'MR-5', u'OS', u'SGC', u'SMF', u'SNC', u'SR-1', u'SR-2', u'T', u'UBD', u'WO']

Adding full names to attribute column in QGIS

In field calculator, with Create new field checked, create a new field with the follwing settings:
1. Output field name: zone_name
2. Output field type: Text(string)
3. Output field width: 50

Then run the following expression. Once that has completed, click the Save edits button to save changes.

CASE WHEN  "NEW_ZONE" IS  NULL  THEN 'null'
WHEN "NEW_ZONE" = 'AP' THEN 'Airport'
WHEN "NEW_ZONE" = 'BP' THEN 'Business Park'
WHEN "NEW_ZONE" = 'CBD' THEN 'Central Business District'
WHEN "NEW_ZONE" = 'CI' THEN 'Campus Institutional'
WHEN "NEW_ZONE" = 'EGC' THEN 'Eclectic General Commercial'
WHEN "NEW_ZONE" = 'EMF' THEN 'Eclectic Multi-Family'
WHEN "NEW_ZONE" = 'ENC' THEN 'Eclectic Neighborhood Commercial'
WHEN "NEW_ZONE" = 'ER-3' THEN 'Eclectic Residential'
WHEN "NEW_ZONE" = 'ER-4' THEN 'Eclectic Residential'
WHEN "NEW_ZONE" = 'I-1' THEN 'Light Industrial'
WHEN "NEW_ZONE" = 'I-2' THEN 'General Industrial'
WHEN "NEW_ZONE" = 'MGC' THEN 'Mature General Commercial'
WHEN "NEW_ZONE" = 'MH' THEN 'Manufactured Home'
WHEN "NEW_ZONE" = 'MMF' THEN 'Mature Multi-Family'
WHEN "NEW_ZONE" = 'MNC' THEN 'Mature Neighborhood Commercial'
WHEN "NEW_ZONE" = 'MR-5' THEN 'Mature Residential'
WHEN "NEW_ZONE" = 'OS' THEN 'Open Space'
WHEN "NEW_ZONE" = 'SGC' THEN 'Suburban General Commercial'
WHEN "NEW_ZONE" = 'SMF' THEN 'Suburban Multi-Family'
WHEN "NEW_ZONE" = 'SNC' THEN 'Suburban Neighborhood Commercial'
WHEN "NEW_ZONE" = 'SR-1' THEN 'Suburban Residential'
WHEN "NEW_ZONE" = 'SR-2' THEN 'Suburban Residential'
WHEN "NEW_ZONE" = 'T' THEN 'Transitional'
WHEN "NEW_ZONE" = 'UBD' THEN 'Urban Business District'
WHEN "NEW_ZONE" = 'WO' THEN 'Wellhead Operation'
ELSE 'not found'
END

Delete unneeded columns

Toggle on edit mode and delete all columns except zone_name. Then, choose Save as option, specifying .GeoJSON format and EPSG:4326 CRS.

Export separate layers as GeoJSON

Use Split Vector Layer tool (Vector → Data Management Tools → Split Vector Layer) to output a layer for each unique attribute/s. Rename and reformat to minimal names and lower, snake_case. [1]

Employ Ben Balter’s excellent script to batch export .shp to GeoJSON files:

#geojson conversion
function shp2geojson() {
  ogr2ogr -f GeoJSON -t_srs crs:84 "$1.geojson" "$1.shp"
}

#unzip all files in a directory (only if dealing zip files!) #for var in *.zip; do unzip "$var"; done

#convert all shapefiles for var in .shp; do shp2geojson ${var%.}; done

**Note: ogr2ogr is needed. That and other environment details are highlighted by Balter on his site.

Understanding City Zoning Data

Decoding values

Page 95 of the City of Dayton, Ohio Zoning Code PDF file summarizes the full names of all NEW_ZONE values found in zoning_aug62015.shp file. For quick reference, see Value and Full Name columns below. (Description and Misc columns are for unofficial notes.)

Value Full Name Description Misc
NULL One instance, appears to be Westwood Elementary, Westwood Park, and some land north of the park
AP Airport
BP Business Park
CBD Central Business District
CI Campus Institutional
EGC Eclectic General Commercial
EMF Eclectic Multi-Family
ENC Eclectic Neighborhood Commercial
ER–3 Eclectic Residential
ER–4 Eclectic Residential
I–1 Light Industrial
I–2 General Industrial
MGC Mature General Commercial
MH Manufactured Home
MMF Mature Multi-Family
MNC Mature Neighborhood Commercial
MR–5 Mature Residential
OS Open Space
SGC Suburban General Commercial
SMF Suburban Multi-Family
SNC Suburban Neighborhood Commercial
SR–1 Suburban Residential
SR–2 Suburban Residential
T Transitional
UBD Urban Business District
WO Wellhead Operation

Codes for Use Regulations

Beginning on page 95, meanings of the following are provided:

  • P: permitted by right as a principal use (p. 96)
  • P:* Same as above, though the characteristics of these uses require development standards that are unique to the specific use, and these standards are not common to the uses generally permitted in the District (p. 96)**
  • C: A use listed in a Permitted Use Schedule is permitted as a conditional use in a District (p. 97)
  • A: permitted as a subordinate building or use when it is clearly incidental to and located on the same zoning lot as the principal building or use, i.e., accessory use p. 97
  • PD: Permitted as part of a Planned Development (p. 104)

Miscellaneous

Definitions

Non-Conforming Usage

Non-conforming usage can mean a parcel within a given zone may have been grandfathered into a zone despite not fullfilling a given zone’s requirements, and thus can be referred to as a non-conforming parcel. On page 51, there is further explanation:

non-conforming uses, buildings, lots, and structures are subject to regulations limiting their use, restoration, reconstruction, extension, and substitution.

Retail

On page 83, Retail is defined as the following:

An establishment engaged in the selling or renting of goods or merchandise to the general public for personal or household consumption, and rendering services incidental to the sale of such products. Such an establishment is open to the general public during regular business hours and has display areas that are designed and laid out to attract the general public. In determining a use to be a retail use, the proportion of display area vs. storage area and the proportion of the building facade devoted to display windows may be considered. This term does not include any adult entertainment uses. This term includes, but is not limited to, artist’s studios, dry cleaning establishments, laundromats, portrait studios, and bakeries.

Conditional

Conditional Related to Distance

On page 313 of Dayton’s zoning documentation, the following is stated:

Any building or other facility, on a zoning lot, used to house or exercise livestock shall be at least 200 feet from any lot in a residential zoning district.

This might be an opportunity to build a query based on spatial analysis– i.e., a buffer of all areas that are >= 200 feet from a residential zone district.


  1. NameMangler OSX application used to rename files.  ↩