From 22123b80bafe7d6c82f01c91dfd7e565827bb3ce Mon Sep 17 00:00:00 2001 From: Al Date: Thu, 11 Aug 2016 21:31:39 -0400 Subject: [PATCH] [fix] refactoring geonames script a bit --- resources/boundaries/osm/gb.yaml | 4 +- .../geodata/geonames/create_geonames_tsv.py | 49 +++++++++---------- 2 files changed, 25 insertions(+), 28 deletions(-) diff --git a/resources/boundaries/osm/gb.yaml b/resources/boundaries/osm/gb.yaml index 486bad6a..8f0ce32e 100644 --- a/resources/boundaries/osm/gb.yaml +++ b/resources/boundaries/osm/gb.yaml @@ -1,8 +1,8 @@ --- admin_level: "2": "country" - "4": "country_region" - "5": "state" + "4": "state" + "5": "state_district" "6": "state_district" "8": "city" "10": "suburb" diff --git a/scripts/geodata/geonames/create_geonames_tsv.py b/scripts/geodata/geonames/create_geonames_tsv.py index ee4e3fdf..4d72dc4a 100644 --- a/scripts/geodata/geonames/create_geonames_tsv.py +++ b/scripts/geodata/geonames/create_geonames_tsv.py @@ -141,38 +141,32 @@ geonames_fields = [ GeonamesField('a4.geonames_id as a4_gn_id', 'GEONAMES_ADMIN4_ID'), ] -DUMMY_BOUNDARY_TYPE_INDEX = [i for i, f in enumerate(geonames_fields) - if f.c_constant == 'GEONAMES_BOUNDARY_TYPE'][0] +def geonames_field_index(s): + for i, f in enumerate(geonames_fields): + if f.c_constant == s: + return i + return None -DUMMY_HAS_WIKIPEDIA_ENTRY_INDEX = [i for i, f in enumerate(geonames_fields) - if f.c_constant == 'GEONAMES_HAS_WIKIPEDIA_ENTRY'][0] -GEONAMES_ID_INDEX = [i for i, f in enumerate(geonames_fields) - if f.c_constant == 'GEONAMES_ID'][0] +DUMMY_BOUNDARY_TYPE_INDEX = geonames_field_index('GEONAMES_BOUNDARY_TYPE') +DUMMY_HAS_WIKIPEDIA_ENTRY_INDEX = geonames_field_index('GEONAMES_HAS_WIKIPEDIA_ENTRY') -LANGUAGE_INDEX = [i for i, f in enumerate(geonames_fields) - if f.c_constant == 'GEONAMES_ISO_LANGUAGE'][0] +GEONAMES_ID_INDEX = geonames_field_index('GEONAMES_ID') +LANGUAGE_INDEX = geonames_field_index('GEONAMES_ISO_LANGUAGE') -DUMMY_LANGUAGE_PRIORITY_INDEX = [i for i, f in enumerate(geonames_fields) - if f.c_constant == 'GEONAMES_LANGUAGE_PRIORITY'][0] +DUMMY_LANGUAGE_PRIORITY_INDEX = geonames_field_index('GEONAMES_LANGUAGE_PRIORITY') -CANONICAL_NAME_INDEX = [i for i, f in enumerate(geonames_fields) - if f.c_constant == 'GEONAMES_CANONICAL'][0] +CANONICAL_NAME_INDEX = geonames_field_index('GEONAMES_CANONICAL') -NAME_INDEX = [i for i, f in enumerate(geonames_fields) - if f.c_constant == 'GEONAMES_NAME'][0] +NAME_INDEX = geonames_field_index('GEONAMES_NAME') -COUNTRY_CODE_INDEX = [i for i, f in enumerate(geonames_fields) - if f.c_constant == 'GEONAMES_COUNTRY_CODE'][0] +COUNTRY_CODE_INDEX = geonames_field_index('GEONAMES_COUNTRY_CODE') -POPULATION_INDEX = [i for i, f in enumerate(geonames_fields) - if f.c_constant == 'GEONAMES_POPULATION'][0] +POPULATION_INDEX = geonames_field_index('GEONAMES_POPULATION') -PREFERRED_INDEX = [i for i, f in enumerate(geonames_fields) - if f.c_constant == 'GEONAMES_IS_PREFERRED_NAME'][0] +PREFERRED_INDEX = geonames_field_index('GEONAMES_IS_PREFERRED_NAME') -HISTORICAL_INDEX = [i for i, f in enumerate(geonames_fields) - if f.c_constant == 'GEONAMES_IS_HISTORICAL'][0] +HISTORICAL_INDEX = geonames_field_index('GEONAMES_IS_HISTORICAL') geonames_admin_joins = ''' @@ -241,11 +235,14 @@ postal_code_fields = [ GeonamesField('group_concat(distinct a3.geonames_id) admin3_ids', 'GN_POSTAL_ADMIN3_IDS'), ] -POSTAL_CODE_INDEX = [i for i, f in enumerate(postal_code_fields) - if f.c_constant == 'GN_POSTAL_CODE'][0] +def postal_code_field_index(s): + for i, f in enumerate(postal_code_fields): + if f.c_constant == s: + return i + return None -POSTAL_CODE_POP_INDEX = [i for i, f in enumerate(postal_code_fields) - if f.c_constant == 'GN_POSTAL_COUNTRY_POPULATION'][0] +POSTAL_CODE_INDEX = postal_code_field_index('GN_POSTAL_CODE') +POSTAL_CODE_POP_INDEX = postal_code_field_index('GN_POSTAL_COUNTRY_POPULATION') postal_codes_query = ''' select