Skip to content

Instantly share code, notes, and snippets.

@mapmeld
Created August 25, 2012 23:00
Show Gist options
  • Save mapmeld/3471916 to your computer and use it in GitHub Desktop.
Save mapmeld/3471916 to your computer and use it in GitHub Desktop.
Adding street network to cases prediction data
# HouseNet.py
# upload housing cases into the graph database
import urllib, urllib2
cases = open('cases-predicted.csv', 'r')
caseout = open('PROP1NetworkedResults.csv', 'w')
streetids = { }
streetmatches = { }
skipto = "1903 houstonave";
skipcount = 0
for line in cases:
# add cases to neo4j
outcome = line.split(',')[0]
line = line.replace(outcome + ',', '', 1)
streetslug = line[1: line.find(',') - 1]
streetslug = streetslug.lower().replace(' ','').replace('street','st').replace('avenue','ave').replace('lane','ln').replace('first','1st').replace('trail','trl').replace('place','pl').replace('road','rd').replace('cove','cv').replace('terrace','ter').replace('court','ct').replace('circle','cir').replace('second','2nd').replace('third','3rd').replace('fourth','4th').replace('fifth','5th').replace('sixth','6th').replace('seventh','7th').replace('eighth','8th').replace('ninth','9th')
# adjust slug for special cases
if(streetslug.find('stln') > -1):
streetslug = streetslug.replace('stln','streetln')
elif(streetslug.find('brdway') > -1):
streetslug = streetslug.replace('brdway','broadway')
elif(streetslug.find('cvdr') > -1):
streetslug = streetslug.replace('cvdr','covedr')
elif(streetslug.find('\'') > -1):
streetslug = streetslug.replace('\'',''')
elif(streetslug.find('lndr') > -1):
streetslug = streetslug.replace('lndr','lanedr')
elif(streetslug.find('aveof') > -1):
streetslug = streetslug.replace('aveof','avenueof')
elif(streetslug.find('plrd') > -1):
streetslug = streetslug.replace('plrd','placerd')
elif(streetslug.find('lny') > -1):
streetslug = streetslug.replace('lny','laney')
elif(streetslug.find('jasamine') > -1):
streetslug = streetslug.replace('jasamine','jasmine')
elif(streetslug.find('ctland') > -1):
streetslug = streetslug.replace('ctland','courtland')
# skippable
if(skipcount > 0):
if(number + " " + streetslug == skipto):
skipcount = skipcount - 1
continue
# get street id from slug, so it can be followed
streetid = "-1"
streetlist = []
if(streetids.has_key(streetslug)):
# remember what was returned from the server
streetid = streetids[streetslug]
streetlist = streetmatches[streetslug]
else:
# get an id from the street name
streetid = urllib2.urlopen('http://localhost:3000/streetname/' + streetslug).read()
if(streetid == '-1'):
# street name not recognized
print "did not find " + streetslug
continue
streetids[streetslug] = streetid
# list streets in network
streetlist = urllib2.urlopen('http://localhost:3000/streetlist/' + streetid).read().split('</p><p>')
streetlist[0] = streetlist[0].split('<p>')[1]
streetlist[len(streetlist)-1] = streetlist[len(streetlist)-1].split('</p>')[0]
streetmatches[streetslug] = streetlist
caseout.write(outcome + line.replace(',"F","","",',',"' + streetslug + ' ' + ' '.join(streetlist) + '",',1))
#print line.replace(',"F","","",',',"' + streetslug + ' ' + ' '.join(streetlist) + '",',1)
print streetslug
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment