Skip to content

Instantly share code, notes, and snippets.

@aaj013
Created August 21, 2018 06:19
Show Gist options
  • Save aaj013/0627a9c6ee5227e1a692265cd557777a to your computer and use it in GitHub Desktop.
Save aaj013/0627a9c6ee5227e1a692265cd557777a to your computer and use it in GitHub Desktop.
import geocoder
import csv
import sys
import time
import json
input_csv = sys.argv[1]
out_provider = sys.argv[2]
out = open("output/output_"+out_provider+"_"+input_csv.strip('.csv')+"_"+str(time.strftime("%s", time.gmtime()))+".geojson","w")
output_geojson = {"type": "FeatureCollection","features": []}
with open(input_csv) as input_file:
reader = csv.reader(input_file)
count = -1
for row in reader:
count+=1
if count == 0:
continue
addr = ''
for column in row:
addr += column+', '
addr=addr.strip(", ")
if out_provider == 'osm':
g = geocoder.osm(addr)
elif out_provider == 'arcgis':
g = geocoder.arcgis(addr)
elif out_provider == 'google':
g = geocoder.google(addr)
else:
print 'ERROR!!!! ;)'
break
if len(g.geojson['features']) == 0:
print 'Place '+str(count)+' Geocode not Found!!'
continue
print 'Writing place '+str(count)
feature_json = {"geometry":g.geojson['features'][0]['geometry'],"type":g.geojson['features'][0]['type'],"properties":{"name":addr}}
output_geojson['features'].append(feature_json)
print 'Final output: \n'
print(json.dumps(output_geojson))
out.write(json.dumps(output_geojson))
out.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment