From ae9e9c36ee46941cb4e803d71e5186b1d7369ac8 Mon Sep 17 00:00:00 2001 From: Pizzibee Date: Thu, 19 Jul 2018 15:35:42 +0200 Subject: [PATCH] google api and minor bugs --- .../api/management/commands/geocode/.DS_Store | Bin 6148 -> 0 bytes .../management/commands/geocode/geocode.py | 44 --- .../commands/importDetailedHospitals.py | 16 +- .../management/commands/importhospitals.py | 42 --- backend/api/management/commands/main.py | 3 - backend/api/source-data/example_geocode.xlsx | Bin 44936 -> 0 bytes backend/api/source-data/hospitals.csv | 282 ------------------ .../{management/commands => utils}/geocode.py | 0 requirements.txt | 42 +++ 9 files changed, 51 insertions(+), 378 deletions(-) delete mode 100644 backend/api/management/commands/geocode/.DS_Store delete mode 100644 backend/api/management/commands/geocode/geocode.py delete mode 100644 backend/api/management/commands/importhospitals.py delete mode 100644 backend/api/management/commands/main.py delete mode 100644 backend/api/source-data/example_geocode.xlsx delete mode 100644 backend/api/source-data/hospitals.csv rename backend/api/{management/commands => utils}/geocode.py (100%) create mode 100644 requirements.txt diff --git a/backend/api/management/commands/geocode/.DS_Store b/backend/api/management/commands/geocode/.DS_Store deleted file mode 100644 index db6d5fb599944be892b217b8202a87b66720ca2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKJBk895Uo-J!Nkz8uiyVePX7uvh|E6Wc&!U>a0lP&G#k4Lb5A>uO>f7WZy#UK86urz7ulAb$o-7aA4#Zv`F!AQhhg diff --git a/backend/api/management/commands/geocode/geocode.py b/backend/api/management/commands/geocode/geocode.py deleted file mode 100644 index 9f99bcc..0000000 --- a/backend/api/management/commands/geocode/geocode.py +++ /dev/null @@ -1,44 +0,0 @@ -def get_google_results(address, api_key=None, return_full_response=False): - - # Set up your Geocoding url - geocode_url = "https://maps.googleapis.com/maps/api/geocode/json?address={}".format(address) - if api_key is not None: - geocode_url = geocode_url + "&key={}".format(api_key) - - # Ping google for the reuslts: - results = requests.get(geocode_url) - # Results will be in JSON format - convert to dict using requests functionality - results = results.json() - - # if there's no results or an error, return empty results. - if len(results['results']) == 0: - output = { - "formatted_address" : None, - "latitude": None, - "longitude": None, - "accuracy": None, - "google_place_id": None, - "type": None, - "postcode": None - } - else: - answer = results['results'][0] - output = { - "formatted_address" : answer.get('formatted_address'), - "latitude": answer.get('geometry').get('location').get('lat'), - "longitude": answer.get('geometry').get('location').get('lng'), - "accuracy": answer.get('geometry').get('location_type'), - "google_place_id": answer.get("place_id"), - "type": ",".join(answer.get('types')), - "postcode": ",".join([x['long_name'] for x in answer.get('address_components') - if 'postal_code' in x.get('types')]) - } - - # Append some other details: - output['input_string'] = address - output['number_of_results'] = len(results['results']) - output['status'] = results.get('status') - if return_full_response is True: - output['response'] = results - - return output \ No newline at end of file diff --git a/backend/api/management/commands/importDetailedHospitals.py b/backend/api/management/commands/importDetailedHospitals.py index 33aadb7..6f4a56e 100644 --- a/backend/api/management/commands/importDetailedHospitals.py +++ b/backend/api/management/commands/importDetailedHospitals.py @@ -9,10 +9,11 @@ from api.models import Hospital from django.conf import settings from datetime import date +from api.utils import geocode def isInt(value): try: - int(eval(value)) + int(eval(str(value))) return True except: return False @@ -38,20 +39,21 @@ def parse_hospital_data(): def transform_hospital_data(row): geolocator = Nominatim() - location = geolocator.geocode(row["ADRES"] + " " + str(row["POST"]) + " " + row["GEMEENTE "]) + location = geolocator.geocode(row["ADRES"] + " " + str(row["POST"]) + " " + row["GEMEENTE "] + " " + ", Belgium") if not location: - lat = "" #todo : add google api in case Nominatim does not work - long = "" + googleResponse = geocode.get_google_results(row["ADRES"] + " " + str(row["POST"]) + " " + row["GEMEENTE "] + " " + ", Belgium", "AIzaSyC9D0vXh84s4FYro6IiZDA08xDOf5ac6Z8") + lat = googleResponse["latitude"] + long = googleResponse["longitude"] else: lat = location.latitude long = location.longitude - if not isInt(row['TOTAAL BEDDEN']): + if not isInt(str(row['TOTAAL BEDDEN'])): beds = 0 else: - beds = int(eval(row["TOTAAL BEDDEN"])) + beds = int(eval(str(row["TOTAAL BEDDEN"]))) try: p = Hospital(name=row['ZIEKENHUIS '], latitude=lat, longitude=long, nbBeds=beds, - siteNbr=int(eval(row["VESTIGINGSNR"])), address=row["ADRES"], postalCode=int(eval(row["POST"])), + siteNbr=int(eval(str(row["VESTIGINGSNR"]))), address=row["ADRES"], postalCode=int(eval(str(row["POST"]))), town=row["GEMEENTE "], website=row["WEBSITE"], telephone=row["TELEFOON"], province=row["PROVINCIE "], type=row["SOORT ZIEKENHUIS"]) yield p except: diff --git a/backend/api/management/commands/importhospitals.py b/backend/api/management/commands/importhospitals.py deleted file mode 100644 index 18035f9..0000000 --- a/backend/api/management/commands/importhospitals.py +++ /dev/null @@ -1,42 +0,0 @@ -import bonobo -import os -import csv - -from bonobo.contrib.django import ETLCommand -from api.models import Hospital -from django.conf import settings -from api.models import Hospital - -def isInt(value): - try: - int(value) - return True - except: - return False - -def parse_hospital_data(): - csvFile = open(os.path.join(settings.BASE_DIR, 'api', 'source-data', 'hospitals.csv')) - reader = csv.DictReader(csvFile) - for row in reader: - yield row - -def transform_hospital_data(row): - if not isInt(row['beds']): - #if number of beds not provided - p = Hospital(name=row['name'], latitude=row['lat'], longitude=row['long'], nbBeds=0) - else: - p = Hospital(name=row['name'], latitude=row['lat'], longitude=row['long'], nbBeds=int(row['beds'])) - yield p - -def load_hospital_data(hospital): - hospital.save() -# https://fair-acc.healthdata.be/api/3/action/group_package_show?id=469baf11-ddd1-4c30-9ad3-a21a7d0f7397 -class Command(ETLCommand): - def get_graph(self, **options): - graph = bonobo.Graph() - graph.add_chain( - parse_hospital_data, - transform_hospital_data, - load_hospital_data - ) - return graph diff --git a/backend/api/management/commands/main.py b/backend/api/management/commands/main.py deleted file mode 100644 index 8a70dd8..0000000 --- a/backend/api/management/commands/main.py +++ /dev/null @@ -1,3 +0,0 @@ -import geocode - -geocode.geocode('example_geocode.xlsx', 'example_geocode_convert.csv', 'Address') diff --git a/backend/api/source-data/example_geocode.xlsx b/backend/api/source-data/example_geocode.xlsx deleted file mode 100644 index 89e88b4dab28a307191c7f2764b3888d0847a023..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44936 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