The Hoskinson Health Index Final Project GEOG 375

  • Slides: 32
Download presentation
The Hoskinson Health Index Final Project GEOG 375 Spring 2015 Rosemary Hoskinson

The Hoskinson Health Index Final Project GEOG 375 Spring 2015 Rosemary Hoskinson

Hoskinson Health Index Definition The Hoskinson Health Index is calculated as follows: • Bike

Hoskinson Health Index Definition The Hoskinson Health Index is calculated as follows: • Bike Friendly: +2 for planned bike paths, +5 for existing bike paths • Parks: +1 for a proposed park, +2 for any kind of park that actually exists, +3 if 5 acres <= total acreage <= 10 acres, + 5 if total acreage within the neighborhood > 10 acres. • Food Access: -5 if there is a fast food restaurant in the neighborhood

Overview of Script The Script: • Calculates the health index for each neighborhood in

Overview of Script The Script: • Calculates the health index for each neighborhood in the City of Sacramento • Adds the index to the neigh_hd attribute table • Writes the updated feature class to a new shape file • Creates a map of each neighborhood showing the parks, bike paths and fast food restaurants in the neighborhood. • The Calculated Hoskinson health index is used as the subtitle of the map.

Script Pseudocode Set up variables and paths Create JOIN between parcel features and land

Script Pseudocode Set up variables and paths Create JOIN between parcel features and land use look up table. Must create feature layer and a table view first. Create Feature Layers for bike feature class and neighborhood feature class for later use.

Define Variables • Its good practice to define variables for use in the script.

Define Variables • Its good practice to define variables for use in the script. This also simplifies moving directory structures.

Creating the Join • I joined the parcel layer with a landuse look up

Creating the Join • I joined the parcel layer with a landuse look up table so I could find the fast food restaurants

Creating Feature Layers from Feature Classes • I do select by attribute and location

Creating Feature Layers from Feature Classes • I do select by attribute and location on these later which require feature layers instead of feature classes.

Main Loop Start main neighborhood loop: Loop through each Sacramento Neighborhood keeping a running

Main Loop Start main neighborhood loop: Loop through each Sacramento Neighborhood keeping a running total of the neighborhood’s Health Index.

Main Loop • I use a query 1 variable because for testing I set

Main Loop • I use a query 1 variable because for testing I set it to a small number of neighborhoods, but for the final run I set it to “” to run through all the neighborhoods. • The for hood in hoodrows loop will loop through each neighborhood that the query 1 term matched. In the final run, that was all neighborhoods.

Calculate Bike Friendly Index • Select the current neighborhood by it’s NAME attribute. •

Calculate Bike Friendly Index • Select the current neighborhood by it’s NAME attribute. • Select bike paths by location that intersect with the selected neighborhood. (Neighborhood gets credit for bike path even if the whole path is not in the neighborhood) • +5 if “EX_PROP” = ‘Existing’ • +2 if “EX_PROP” = ‘Proposed’

Calculate Bike Friendly Index

Calculate Bike Friendly Index

Calculate Bike Friendly Index • Use select by attribute with “SUBSET_SELECTION” to get only

Calculate Bike Friendly Index • Use select by attribute with “SUBSET_SELECTION” to get only the bike paths that are actually “Existing” vs. proposed. • Note that I repeated the process for “Proposed. ” • Instead I could have used a search cursor to loop through each bike path in my intersected selection and counted based on the EX_PROP value, but this allowed me to show a “SUBSET_SELECTION”.

Calculate Bike Friendly Index

Calculate Bike Friendly Index

Parks • Clip parks dataset with current neighborhood and recalculate area that is actually

Parks • Clip parks dataset with current neighborhood and recalculate area that is actually in the neighborhood. (Neighborhood only gets credit for acreage actually within the neighborhood) • +5 if “PARKTYPE” <> ‘PROPOSED’ AND total acreage > 10 • +3 if “PARKTYPE” <> ‘PROPOSED’ AND 5<= total acreage <= 10 • +2 if “PARKTYPE” <> ‘PROPOSED’ AND total acreage < 5 • +1 if “PARKTYPE” = ‘PROPOSED’

Parks

Parks

Parks • Use search cursor to loop through each park and calculate the Hoskinson

Parks • Use search cursor to loop through each park and calculate the Hoskinson Index • +5 if “PARKTYPE” <> ‘PROPOSED’ AND total acreage > 10 • +3 if “PARKTYPE” <> ‘PROPOSED’ AND 5<= total acreage <= 10 • +2 if “PARKTYPE” <> ‘PROPOSED’ AND total acreage < 5 • +1 if “PARKTYPE” = ‘PROPOSED’

Parks

Parks

Food Access • Use joined LAND_USE_DESCRIPTIONS table with clipped_parcels shape file. The LAND_USE_DESCRIPTIONS allow

Food Access • Use joined LAND_USE_DESCRIPTIONS table with clipped_parcels shape file. The LAND_USE_DESCRIPTIONS allow us to find which parcels are fast food restaurants. • Use select by location to intersect join parcels with current neighborhood. • Calculate Hoskinson Health index • -5 if “Detail” = ‘Fast Food Service’

Food Access

Food Access

 • END OF NEIGHBORHOOD LOOP to calculate the Health Index

• END OF NEIGHBORHOOD LOOP to calculate the Health Index

Add Calculated Health Index to Neighborhood Attribute Table • Insert field (column) in neighborhood

Add Calculated Health Index to Neighborhood Attribute Table • Insert field (column) in neighborhood shape file attribute table • Update new field for each neighborhood with calculated Hoskinson Health Index • Save updated feature class to new shape file

Add Calculated Health Index to Neighborhood Attribute Table

Add Calculated Health Index to Neighborhood Attribute Table

Copy Updated Feature Class to New Shape File

Copy Updated Feature Class to New Shape File

Create Map for Neighborhood Using the Template Map: • Find Dataframe “Layers” • Loop

Create Map for Neighborhood Using the Template Map: • Find Dataframe “Layers” • Loop through all layers in dataframe to find the neighborhood layer • Loop through all entries in the neighborhood layer to update map with specifics for the neighborhood, including adding Health Index to subtitle • Save map to separate directory

Create Map for Neighborhood

Create Map for Neighborhood

Create Map for Neighborhood

Create Map for Neighborhood

Cleanup • Release cursor variables • Remove join • Use standard error code in

Cleanup • Release cursor variables • Remove join • Use standard error code in “except” clause

Cleanup

Cleanup

Create Map for Neighborhood

Create Map for Neighborhood

Sample Output of Calculating Index

Sample Output of Calculating Index

Sample Output for Updating Hosk. Ind to Neighborhood Shape File

Sample Output for Updating Hosk. Ind to Neighborhood Shape File

Sample Output of Exporting Maps • Notice the deleting of Z’berg Park_map. pdf because

Sample Output of Exporting Maps • Notice the deleting of Z’berg Park_map. pdf because that was one of my test neighborhoods.