# -*- coding: utf-8 -*-
# ---------------------------------------------------------------------------
# thesis.py
# Created on: 2017-05-15 21:40:55.00000
# (generated by Kevin Magnan)
# Description:
# ---------------------------------------------------------------------------
# Set the necessary product code
# import arcinfo
# Import arcpy module
import arcpy
from arcpy import env
env.workspace = "C:/Users/kjmag/Google Drive/Documents/UCHICAGO/MA Thesis/Data/master/thesis.gdb/layers"
print "environment set successfully"
# Process: Add Field
arcpy.AddField_management("census_tracts_join", "orig_area", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
print "done1"
# Process: Calculate Field
arcpy.CalculateField_management("census_tracts_join", "orig_area", '!Shape_Area!', "PYTHON")
print "done2"
# Process: Identity
arcpy.Identity_analysis("wards", "census_tracts_join", "identity", "ALL", "", "NO_RELATIONSHIPS")
print "done3"
# Process: Add Field (2)
arcpy.AddField_management("identity", "pct_orig", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
print "done4"
# Process: Calculate Field (2)
arcpy.CalculateField_management("identity", "pct_orig", "!Shape_area! / !orig_area!", "PYTHON", "")
print "done5"
# Process: Add new proportion fields
newfields = ["new_pop", "new_male", "new_female", "new_under18", "new_18t34", "new_35t64", "new_over65", "new_white", "new_black", "new_nothisp", "new_hisp", "new_pop25",
"new_lesshs", "new_hs", "new_bach", "new_schoolpop", "new_dropout", "new_enroll", "new_workpop", "new_employ", "new_unemploy", "new_ag_income_hh",
"new_numhh", "new_own", "new_rent", "new_povpop", "new_pov", "new_notpov"]
print "newfields variable set"
for x in newfields:
arcpy.AddField_management("identity_cleaned", x, "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
print "Add done"
# Process: Calculate new field values
arcpy.CalculateField_management("identity_cleaned", "new_pop", "!po! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_male", "!male! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_female", "!female! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_under18", "!under18! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_18t34", "!age18t34! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_35t64", "!age35t64! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_over65", "!over64! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_white", "!white! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_black", "!black! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_nothisp", "!not_hisp! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_hisp", "!hisp! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_pop25", "!pop25! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_lesshs", "!less_hs! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_hs", "!hs! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_bach", "!bach! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_schoolpop", "!schoolpop! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_dropout", "!dropout! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_enroll", "!enroll! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_workpop", "!workpop! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_employ", "!employ! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_unemploy", "!unemploy! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_ag_income_hh", "!ag_income_hh! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_numhh", "!houses! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_own", "!own! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_rent", "!rent! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_povpop", "!pov_pop! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_pov", "!pov! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("identity_cleaned", "new_notpov", "!not_pov! * !pct_orig!", "PYTHON", "")
print "Done Calc"
#Process: Dissolve census_tracts into wards
arcpy.Dissolve_management("identity_cleaned", "dissolve", ["ward"], [["new_pop", "SUM"], ["new_male", "SUM"], ["new_female", "SUM"], ["new_under18", "SUM"], ["new_18t34", "SUM"],
["new_35t64", "SUM"], ["new_over65", "SUM"], ["new_white", "SUM"], ["new_black", "SUM"], ["new_nothisp", "SUM"], ["new_hisp", "SUM"],
["new_pop25", "SUM"], ["new_lesshs", "SUM"], ["new_hs", "SUM"], ["new_bach", "SUM"], ["new_schoolpop", "SUM"], ["new_dropout", "SUM"],
["new_enroll", "SUM"], ["new_workpop", "SUM"], ["new_employ", "SUM"], ["new_unemploy", "SUM"], ["new_ag_income_hh", "SUM"], ["new_numhh", "SUM"],
["new_own", "SUM"], ["new_rent", "SUM"], ["new_povpop", "SUM"], ["new_pov", "SUM"], ["new_notpov", "SUM"]],
"", "")
print "Done Dissolve"
# Process: Add ward_num field
arcpy.AddField_management("dissolve", "ward_num", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
# Process: Calculate ward_num field
arcpy.CalculateField_management("dissolve", "ward_num", "!ward!", "PYTHON", "")
Process: Add new proportion fields
pctfields = ["pct_male", "pct_female", "pct_under18", "pct_18t34", "pct_35t64", "pct_over65", "pct_white", "pct_black", "pct_nothisp", "pct_hisp", "pct_lesshs", "pct_hs",
"pct_bach", "pct_dropout", "pct_enroll", "pct_employ", "pct_unemploy", "pct_hhincome", "pct_own", "pct_rent", "pct_pov", "pct_notpov"]
print "pctfields variable set"
for x in pctfields:
arcpy.AddField_management("dissolve_w_calls_crime", x, "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
print "Add done"
### Process: Calculate new field values
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_male", "!SUM_new_male! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_female", "!SUM_new_female! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_under18", "!SUM_new_under18! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_18t34", "!SUM_new_18t34! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_35t64", "!SUM_new_35t64! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_over65", "!SUM_new_over65! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_white", "!SUM_new_white! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_black", "!SUM_new_black! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_nothisp", "!SUM_new_nothisp! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_hisp", "!SUM_new_hisp! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_lesshs", "!SUM_new_lesshs! / !SUM_new_pop25! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_hs", "!SUM_new_hs! / !SUM_new_pop25! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_bach", "!SUM_new_bach! / !SUM_new_pop25! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_dropout", "!SUM_new_dropout! / !SUM_new_schoolpop! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_enroll", "!SUM_new_enroll! / !SUM_new_schoolpop! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_employ", "!SUM_new_employ! / !SUM_new_workpop! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_unemploy", "!SUM_new_unemploy! / !SUM_new_workpop! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_hhincome", "!SUM_new_ag_income_hh! / !SUM_new_numhh!", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_own", "!SUM_new_own! / !SUM_new_numhh! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_rent", "!SUM_new_rent! / !SUM_new_numhh! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_pov", "!SUM_new_pov! / !SUM_new_povpop! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_notpov", "!SUM_new_notpov! / !SUM_new_povpop! * 100", "PYTHON", "")
print "done"
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_male", "!pct_male! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_female", "!pct_female! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_under18", "!pct_under18! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_18t34", "!pct_18t34! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_35t64", "!pct_35t64! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_over65", "!pct_over65! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_white", "!pct_white! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_black", "!pct_black! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_nothisp", "!pct_nothisp! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_hisp", "!pct_hisp! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_lesshs", "!pct_lesshs! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_hs", "!pct_hs! * 100", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_bach", "!pct_bach! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_dropout", "!pct_dropout! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_enroll", "!pct_enroll! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_employ", "!pct_employ! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_unemploy", "!pct_unemploy! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_own", "!pct_own! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_rent", "!pct_rent! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_pov", "!pct_pov! * 100", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "pct_notpov", "!pct_notpov! * 100", "PYTHON", "")
# Add/Calculate Field
arcpy.AddField_management("dissolve_w_calls_crime", "call911_vcrime", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
arcpy.AddField_management("dissolve_w_calls_crime", "call911_pcrime", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
arcpy.AddField_management("dissolve_w_calls_crime", "call311_vcrime", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
arcpy.AddField_management("dissolve_w_calls_crime", "call311_pcrime", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
arcpy.CalculateField_management("dissolve_w_calls_crime", "call911_vcrime", "!ward_911_call_rate! / !violent_crime_rate!", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "call911_pcrime", "!ward_911_call_rate! / !property_crime_rate!", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "call311_vcrime", "!ward_311_call_rate! / !violent_crime_rate!", "PYTHON", "")
arcpy.CalculateField_management("dissolve_w_calls_crime", "call311_pcrime", "!ward_311_call_rate! / !property_crime_rate!", "PYTHON", "")
print "Calculate done"
# set path for OLS outputs
olsmap = "C:/Users/kjmag/Google Drive/Documents/UCHICAGO/MA Thesis/Data/master/thesis.gdb/olsmap"
olsCoef = "C:/Users/kjmag/Google Drive/Documents/UCHICAGO/MA Thesis/Data/master/thesis.gdb/olsCoef"
olsDiag = "C:/Users/kjmag/Google Drive/Documents/UCHICAGO/MA Thesis/Data/master/thesis.gdb/olsDiag"
olsreport = "C:/Users/kjmag/Google Drive/Documents/UCHICAGO/MA Thesis/Data/master/olsreport.pdf"
# Initial OLS
arcpy.OrdinaryLeastSquares_stats("dissolve_w_calls_crime.shp", "ward", "olsmap",
"ward_total_call_rate",
"ward_crime_rate; pct_black; pct_lesshs; pct_dropout; pct_unemploy; pct_hhincome",
"olsCoefTab.dbf", "olsDiagTab.dbf", "olsreport")
### Process: Add Field
arcpy.AddField_management("dissolve_w_calls_crime", "orig_area", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
print "done"
### Process: Calculate Field
arcpy.CalculateField_management("dissolve_w_calls_crime", "orig_area", '!Shape_Area!', "PYTHON")
print "done"
# Process: Identity
arcpy.Identity_analysis("raster", "dissolve_w_calls_crime", "raster_identity", "ALL", "", "NO_RELATIONSHIPS")
print "done"
# Process: Spatial Join
arcpy.SpatialJoin_analysis("dissolve_w_calls_crime", "raster", "raster_spatialjoin")
# Process: Add Field
arcpy.AddField_management("raster_sjoin_clip", "pct_orig_area", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
print "done"
# Process: Calculate Field
arcpy.CalculateField_management("raster_sjoin_clip", "pct_orig_area", "!Shape_area! / !orig_area!", "PYTHON")
print "done"
# Process: Calculate new field values
arcpy.CalculateField_management("raster_intersect", "SUM_new_pop", "!SUM_new_pop! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_male", "!SUM_new_male! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_female", "!SUM_new_female! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_under18", "!SUM_new_under18! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_18t34", "!SUM_new_18t34! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_35t64", "!SUM_new_35t64! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_over65", "!SUM_new_over65! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_white", "!SUM_new_white! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_black", "!SUM_new_black! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_nothisp", "!SUM_new_nothisp! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_hisp", "!SUM_new_hisp! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_pop25", "!SUM_new_pop25! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_lesshs", "!SUM_new_lesshs! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_hs", "!SUM_new_hs! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_bach", "!SUM_new_bach! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_schoolpop", "!SUM_new_schoolpop! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_dropout", "!SUM_new_dropout! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_enroll", "!SUM_new_enroll! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_workpop", "!SUM_new_workpop! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_employ", "!SUM_new_employ! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_unemploy", "!SUM_new_unemploy! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_ag_income_hh", "!SUM_new_ag_income_hh! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_numhh", "!SUM_new_numhh! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_own", "!SUM_new_own! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_rent", "!SUM_new_rent! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_povpop", "!SUM_new_povpop! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_pov", "!SUM_new_pov! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "SUM_new_notpov", "!SUM_new_notpov! * !pct_orig!", "PYTHON", "")
print "done"
Process: Calculate new field values
arcpy.CalculateField_management("raster_intersect", "pct_male", "!SUM_new_male! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_female", "!SUM_new_female! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_under18", "!SUM_new_under18! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_18t34", "!SUM_new_18t34! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_35t64", "!SUM_new_35t64! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_over65", "!SUM_new_over65! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_white", "!SUM_new_white! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_black", "!SUM_new_black! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_nothisp", "!SUM_new_nothisp! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_hisp", "!SUM_new_hisp! / !SUM_new_pop! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_lesshs", "!SUM_new_lesshs! / !SUM_new_pop25! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_hs", "!SUM_new_hs! / !SUM_new_pop25! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_bach", "!SUM_new_bach! / !SUM_new_pop25! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_dropout", "!SUM_new_dropout! / !SUM_new_schoolpop! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_enroll", "!SUM_new_enroll! / !SUM_new_schoolpop! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_employ", "!SUM_new_employ! / !SUM_new_workpop! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_unemploy", "!SUM_new_unemploy! / !SUM_new_workpop! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_hhincome", "!SUM_new_ag_income_hh! / !SUM_new_numhh!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_own", "!SUM_new_own! / !SUM_new_numhh! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_rent", "!SUM_new_rent! / !SUM_new_numhh! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_pov", "!SUM_new_pov! / !SUM_new_povpop! * 100", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "pct_notpov", "!SUM_new_notpov! / !SUM_new_povpop! * 100", "PYTHON", "")
print "done"
# Process: Calculate fields
arcpy.CalculateField_management("raster_intersect", "HOMICIDE", "!HOMICIDE! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "CRIMINAL_SEXUAL_ASSAULT", "!CRIMINAL_SEXUAL_ASSAULT! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "ROBBERY", "!ROBBERY! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "AGGRAVATED_ASSAULT", "!AGGRAVATED_ASSAULT! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "AGGRAVATED_BATTERY", "!AGGRAVATED_BATTERY! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "BURGLARY", "!BURGLARY! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "MOTOR_VEHICLE_THEFT", "!MOTOR_VEHICLE_THEFT! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "LARCENY", "!LARCENY! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "ward_311call_count", "!ward_311call_count! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "ward_911call_count", "!ward_911call_count! * !pct_orig!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "total_311_911_call_count", "!total_311_911_call_count! * !pct_orig!", "PYTHON", "")
# Process: Calculate new field values
arcpy.CalculateField_management("raster_intersect", "violent_crime_rate", "(!HOMICIDE! + !CRIMINAL_SEXUAL_ASSAULT! + !ROBBERY! + !AGGRAVATED_ASSAULT! + !AGGRAVATED_BATTERY!) / !SUM_new_pop!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "property_crime_rate", "(!BURGLARY! + !MOTOR_VEHICLE_THEFT! + !LARCENY!) / !SUM_new_pop!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "ward_311_call_rate", "!ward_311call_count! / !SUM_new_pop!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "ward_911_call_rate", "!ward_911call_count! / !SUM_new_pop!", "PYTHON", "")
arcpy.CalculateField_management("raster_intersect", "ward_total_call_rate", "!total_311_911_call_count! / !SUM_new_pop!", "PYTHON", "")
print "done"
# Process: Add new field values
arcpy.AddField_management("raster_sjoin_clip", "violent_rate_10k", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
arcpy.AddField_management("raster_sjoin_clip", "property_rate_10k", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
arcpy.AddField_management("raster_sjoin_clip", "callrate_311_10k", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
arcpy.AddField_management("raster_sjoin_clip", "callrate_911_10k", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
arcpy.AddField_management("raster_sjoin_clip", "callrate_total_10k", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED")
print "done"
# Process: Calculate new field values
arcpy.CalculateField_management("raster_sjoin_clip", "violent_rate_10k", "(!HOMICIDE! + !CRIMINAL_SEXUAL_ASSAULT! + !ROBBERY! + !AGGRAVATED_ASSAULT! + !AGGRAVATED_BATTERY!) / !SUM_new_pop! * 10000", "PYTHON_9.3", "")
arcpy.CalculateField_management("raster_sjoin_clip", "property_rate_10k", "(!BURGLARY! + !MOTOR_VEHICLE_THEFT! + !LARCENY!) / !SUM_new_pop! * 10000", "PYTHON_9.3", "")
arcpy.CalculateField_management("raster_sjoin_clip", "callrate_311_10k", "!ward_311call_count! / !SUM_new_pop! * 10000", "PYTHON_9.3", "")
arcpy.CalculateField_management("raster_sjoin_clip", "callrate_911_10k", "!ward_911call_count! / !SUM_new_pop! * 10000", "PYTHON_9.3", "")
arcpy.CalculateField_management("raster_sjoin_clip", "callrate_total_10k", "!total_311_911_call_count! / !SUM_new_pop! * 10000", "PYTHON_9.3", "")
print "done"
arcpy.HotSpots_stats("dissolve_join", "HOMICIDE", "homicide_hotspot", "CONTIGUITY_EDGES_CORNERS", "", "NONE", "", "", "", "")