diff --git a/scripts/mkGeolocationTable.py b/scripts/mkGeolocationTable.py index 73d7c23..fd2a891 100755 --- a/scripts/mkGeolocationTable.py +++ b/scripts/mkGeolocationTable.py @@ -41,7 +41,7 @@ def mkGeolocationTable(file=''): import warnings import urllib2 as URL import json as JSON - + # constants namespaces = {'sc3': 'http://geofon.gfz-potsdam.de/ns/seiscomp3-schema/0.7', 'qml': 'http://quakeml.org/xmlns/bed/1.2'} @@ -81,12 +81,22 @@ def mkGeolocationTable(file=''): response = URL.urlopen(url) if ( response.msg == 'OK' ): data = JSON.loads(response.read()) + city = [] try: try: city = data['address']['city'] except: - warnings.warn('Using county instead of city for event {0} at {1} N / {2} E (URL: {3})'.format(publicID, lat, lng, url)) - city = data['address']['county'] + warnings.warn('Request {3} for event {0} at {1} N / {2} E did not provide city attribute\n\t(Response: {4})'.format(publicID, lat, lng, url, data)) + try: + city = data['address']['town'] + warnings.warn('Using attribute town ({1}) for event {0}'.format(publicID, city)) + except: + try: + city = data['address']['county'] + warnings.warn('Using attribute county ({1}) for event {0}'.format(publicID, city)) + except: + warnings.warn('Skipping event') + continue countryCode = data['address']['country_code'].upper() if ( countryCode == 'DE' ): geolocationTable[publicID] = city.encode('utf-8')