Created
August 25, 2012 23:00
-
-
Save mapmeld/3471916 to your computer and use it in GitHub Desktop.
Adding street network to cases prediction data
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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