summaryrefslogtreecommitdiff
path: root/s2-geocode-spreadsheet.py
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-11-25 22:19:15 +0100
committerJules Laplace <julescarbon@gmail.com>2018-11-25 22:19:15 +0100
commitee3d0d98e19f1d8177d85af1866fd0ee431fe9ea (patch)
tree41372528e78d4328bc2a47bbbabac7e809c58894 /s2-geocode-spreadsheet.py
parent255b8178af1e25a71fd23703d30c0d1f74911f47 (diff)
moving stuff
Diffstat (limited to 's2-geocode-spreadsheet.py')
-rw-r--r--s2-geocode-spreadsheet.py83
1 files changed, 0 insertions, 83 deletions
diff --git a/s2-geocode-spreadsheet.py b/s2-geocode-spreadsheet.py
deleted file mode 100644
index d0fd2050..00000000
--- a/s2-geocode-spreadsheet.py
+++ /dev/null
@@ -1,83 +0,0 @@
-import os
-import csv
-import click
-import time
-from geopy import geocoders
-from dotenv import load_dotenv
-from util import *
-load_dotenv()
-
-@click.command()
-def s2_geocode_spreadsheet():
- geolocator = geocoders.GoogleV3(os.getenv('MAPS_API_KEY'))
-
- worksheet = fetch_worksheet()
- rows = fetch_google_sheet()
- valid_count = 0
- invalid_count = 0
-
- print("got {} rows".format(len(rows)))
-
- cname_lookup = {}
- for i, row in enumerate(rows):
- if len(row) == 6:
- cname, name, address, lat, lng, org_type = row
- elif len(row) == 7:
- cname, name, address, lat, lng, org_type, extra_address = row
- else:
- print("Weirdly formatted row {}".format(i))
- continue
- if cname == name or cname not in cname_lookup:
- cname_lookup[cname] = i
-
- # 0 cname 1 name 2 address 3 lat 4 lng 5 org_type
- for i, row in enumerate(rows):
- if len(row) == 6:
- cname, name, address, lat, lng, org_type = row
- elif len(row) == 7:
- cname, name, address, lat, lng, org_type, extra_address = row
- else:
- print("Weirdly formatted row {}: {} entries".format(i, len(row)))
- continue
- if lat and lng:
- continue
- c_row = rows[cname_lookup[cname]]
- if c_row[3] and c_row[4]:
- print("name {}, found cname: {}".format(name, cname))
- worksheet.update_cell(i+2, 3, c_row[2])
- worksheet.update_cell(i+2, 4, c_row[3])
- worksheet.update_cell(i+2, 5, c_row[4])
- continue
- if address:
- address_to_geocode = address
- elif name:
- address_to_geocode = name
- elif cname:
- address_to_geocode = cname
-
- if not address_to_geocode:
- continue
-
- print(address_to_geocode)
- location = geolocator.geocode(address_to_geocode)
- if location:
- print("{} found: {}".format(i+1, name))
- print(location.raw)
- worksheet.update_cell(i+2, 3, location.address)
- worksheet.update_cell(i+2, 4, location.latitude)
- worksheet.update_cell(i+2, 5, location.longitude)
- if address and address != location.address:
- worksheet.update_cell(i+2, 7, address)
- valid_count += 1
- row[2] = location.address
- row[3] = location.latitude
- row[4] = location.longitude
- else:
- print("{} not found: {}".format(i+1, address_to_geocode))
- invalid_count += 1
- time.sleep(2)
-
- print("geocoded {} addresses, {} found, {} not found".format(len(rows), valid_count, invalid_count))
-
-if __name__ == '__main__':
- s2_geocode_spreadsheet()