geocode: add coordinates to BG and EG custodian files
- BG: Add lat/lon from existing GeoNames IDs (28 files) - EG: Map city codes to GeoNames (CAI→Cairo, ALX→Alexandria, etc.) (28 files) - Fix malformed EG-IS-\`A\`-O-SCA.yaml → EG-IS-ISM-O-SCA.yaml - Overall coverage: 96.4% → 96.6%
This commit is contained in:
parent
2137c522db
commit
cc61d99acf
74 changed files with 694 additions and 9 deletions
|
|
@ -145,6 +145,10 @@ location:
|
||||||
geonames_id: 732519
|
geonames_id: 732519
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:51.090293+00:00'
|
normalization_timestamp: '2025-12-09T13:20:51.090293+00:00'
|
||||||
|
latitude: 42.44408
|
||||||
|
longitude: 27.63902
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:37.959549+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Библиотека към Народно Читалище „Димо Николов – 1908” official
|
youtube_search_query: Библиотека към Народно Читалище „Димо Николов – 1908” official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:29.181062+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:29.181062+00:00'
|
||||||
|
|
|
||||||
|
|
@ -145,6 +145,10 @@ location:
|
||||||
geonames_id: 732519
|
geonames_id: 732519
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:51.297577+00:00'
|
normalization_timestamp: '2025-12-09T13:20:51.297577+00:00'
|
||||||
|
latitude: 42.44408
|
||||||
|
longitude: 27.63902
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:38.795424+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Библиотека към Народно Читалище „Димо Николов – 1908” official
|
youtube_search_query: Библиотека към Народно Читалище „Димо Николов – 1908” official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:29.846396+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:29.846396+00:00'
|
||||||
|
|
|
||||||
|
|
@ -145,6 +145,10 @@ location:
|
||||||
geonames_id: 733322
|
geonames_id: 733322
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:51.361454+00:00'
|
normalization_timestamp: '2025-12-09T13:20:51.361454+00:00'
|
||||||
|
latitude: 41.95077
|
||||||
|
longitude: 23.55831
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:44.914573+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Библиотека при Народно читалище „Георги Тодоров-1885” official
|
youtube_search_query: Библиотека при Народно читалище „Георги Тодоров-1885” official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:30.505307+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:30.505307+00:00'
|
||||||
|
|
|
||||||
|
|
@ -145,6 +145,10 @@ location:
|
||||||
geonames_id: 733322
|
geonames_id: 733322
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:51.406917+00:00'
|
normalization_timestamp: '2025-12-09T13:20:51.406917+00:00'
|
||||||
|
latitude: 41.95077
|
||||||
|
longitude: 23.55831
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:39.188678+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Библиотека при Народно читалище „Георги Тодоров-1885” official
|
youtube_search_query: Библиотека при Народно читалище „Георги Тодоров-1885” official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:31.187390+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:31.187390+00:00'
|
||||||
|
|
|
||||||
|
|
@ -145,6 +145,10 @@ location:
|
||||||
geonames_id: 731108
|
geonames_id: 731108
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:51.640351+00:00'
|
normalization_timestamp: '2025-12-09T13:20:51.640351+00:00'
|
||||||
|
latitude: 41.56667
|
||||||
|
longitude: 23.73333
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:45.009762+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-0130005 official
|
youtube_search_query: Library BG-0130005 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:31.923614+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:31.923614+00:00'
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,10 @@ location:
|
||||||
geonames_id: 727962
|
geonames_id: 727962
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:51.746784+00:00'
|
normalization_timestamp: '2025-12-09T13:20:51.746784+00:00'
|
||||||
|
latitude: 41.45498
|
||||||
|
longitude: 23.28628
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:41.130295+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Библиотека при Народно читалище „Яне Сандански-1946” official
|
youtube_search_query: Библиотека при Народно читалище „Яне Сандански-1946” official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:32.591939+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:32.591939+00:00'
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,10 @@ location:
|
||||||
geonames_id: 727962
|
geonames_id: 727962
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:51.857993+00:00'
|
normalization_timestamp: '2025-12-09T13:20:51.857993+00:00'
|
||||||
|
latitude: 41.45498
|
||||||
|
longitude: 23.28628
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:42.414160+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Библиотека при Народно читалище „Яне Сандански-1946” official
|
youtube_search_query: Библиотека при Народно читалище „Яне Сандански-1946” official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:33.257161+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:33.257161+00:00'
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,10 @@ location:
|
||||||
geonames_id: 730464
|
geonames_id: 730464
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:51.934972+00:00'
|
normalization_timestamp: '2025-12-09T13:20:51.934972+00:00'
|
||||||
|
latitude: 41.52222
|
||||||
|
longitude: 23.86861
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:37.443529+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-0130003 official
|
youtube_search_query: Library BG-0130003 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:33.916328+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:33.916328+00:00'
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,10 @@ location:
|
||||||
geonames_id: 729634
|
geonames_id: 729634
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:51.983209+00:00'
|
normalization_timestamp: '2025-12-09T13:20:51.983209+00:00'
|
||||||
|
latitude: 41.48782
|
||||||
|
longitude: 23.30392
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:40.564263+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Читалищна библиотека „Отец Паисий” official
|
youtube_search_query: Читалищна библиотека „Отец Паисий” official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:34.565585+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:34.565585+00:00'
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,10 @@ location:
|
||||||
geonames_id: 728205
|
geonames_id: 728205
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.023879+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.023879+00:00'
|
||||||
|
latitude: 41.63333
|
||||||
|
longitude: 23.96667
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:40.289469+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Читалищна библиотека “Просвета-1937” official
|
youtube_search_query: Читалищна библиотека “Просвета-1937” official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:35.219443+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:35.219443+00:00'
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,10 @@ location:
|
||||||
geonames_id: 728205
|
geonames_id: 728205
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.063405+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.063405+00:00'
|
||||||
|
latitude: 41.63333
|
||||||
|
longitude: 23.96667
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:44.661730+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Читалищна библиотека “Просвета-1937” official
|
youtube_search_query: Читалищна библиотека “Просвета-1937” official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:35.873186+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:35.873186+00:00'
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,10 @@ location:
|
||||||
geonames_id: 728195
|
geonames_id: 728195
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.110926+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.110926+00:00'
|
||||||
|
latitude: 41.65
|
||||||
|
longitude: 23.26667
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:41.806036+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-0130001 official
|
youtube_search_query: Library BG-0130001 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:36.527702+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:36.527702+00:00'
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,10 @@ location:
|
||||||
geonames_id: 728195
|
geonames_id: 728195
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.151286+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.151286+00:00'
|
||||||
|
latitude: 41.65
|
||||||
|
longitude: 23.26667
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:37.709987+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-0130001 official
|
youtube_search_query: Library BG-0130001 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:37.188079+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:37.188079+00:00'
|
||||||
|
|
|
||||||
|
|
@ -145,6 +145,10 @@ location:
|
||||||
geonames_id: 725586
|
geonames_id: 725586
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.218974+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.218974+00:00'
|
||||||
|
latitude: 42.02528
|
||||||
|
longitude: 23.68417
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:43.041277+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-0130004 official
|
youtube_search_query: Library BG-0130004 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:37.845289+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:37.845289+00:00'
|
||||||
|
|
|
||||||
|
|
@ -145,6 +145,10 @@ location:
|
||||||
geonames_id: 732263
|
geonames_id: 732263
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.297290+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.297290+00:00'
|
||||||
|
latitude: 42.05
|
||||||
|
longitude: 25.6
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:37.558971+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-2620000 official
|
youtube_search_query: Library BG-2620000 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:38.507775+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:38.507775+00:00'
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,10 @@ location:
|
||||||
geonames_id: 733738
|
geonames_id: 733738
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.343996+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.343996+00:00'
|
||||||
|
latitude: 43.0393
|
||||||
|
longitude: 24.69255
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:38.073930+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-0130002 official
|
youtube_search_query: Library BG-0130002 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:39.168843+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:39.168843+00:00'
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,10 @@ location:
|
||||||
geonames_id: 731750
|
geonames_id: 731750
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.385656+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.385656+00:00'
|
||||||
|
latitude: 42.45
|
||||||
|
longitude: 24.38333
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:42.560405+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Културен център Библиотека „Просвета-1886” official
|
youtube_search_query: Културен център Библиотека „Просвета-1886” official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:39.828686+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:39.828686+00:00'
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,10 @@ location:
|
||||||
geonames_id: 731750
|
geonames_id: 731750
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.423305+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.423305+00:00'
|
||||||
|
latitude: 42.45
|
||||||
|
longitude: 24.38333
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:36.654778+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Културен център Библиотека „Просвета-1886” official
|
youtube_search_query: Културен център Библиотека „Просвета-1886” official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:40.490371+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:40.490371+00:00'
|
||||||
|
|
|
||||||
|
|
@ -145,6 +145,10 @@ location:
|
||||||
geonames_id: 728448
|
geonames_id: 728448
|
||||||
feature_code: PPLA2
|
feature_code: PPLA2
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.470400+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.470400+00:00'
|
||||||
|
latitude: 42.49518
|
||||||
|
longitude: 24.19021
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:41.561084+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-1320000 official
|
youtube_search_query: Library BG-1320000 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:41.151627+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:41.151627+00:00'
|
||||||
|
|
|
||||||
|
|
@ -145,6 +145,10 @@ location:
|
||||||
geonames_id: 733618
|
geonames_id: 733618
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.524861+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.524861+00:00'
|
||||||
|
latitude: 42.01667
|
||||||
|
longitude: 24.86667
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:41.932206+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-1620001 official
|
youtube_search_query: Library BG-1620001 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:41.806284+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:41.806284+00:00'
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,10 @@ location:
|
||||||
geonames_id: 730988
|
geonames_id: 730988
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.595161+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.595161+00:00'
|
||||||
|
latitude: 42.01667
|
||||||
|
longitude: 24.71667
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:42.746953+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-2420002 official
|
youtube_search_query: Library BG-2420002 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:42.464004+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:42.464004+00:00'
|
||||||
|
|
|
||||||
|
|
@ -145,6 +145,10 @@ location:
|
||||||
geonames_id: 730565
|
geonames_id: 730565
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.650671+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.650671+00:00'
|
||||||
|
latitude: 42.63333
|
||||||
|
longitude: 24.8
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:41.469746+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-1620000 official
|
youtube_search_query: Library BG-1620000 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:43.116946+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:43.116946+00:00'
|
||||||
|
|
|
||||||
|
|
@ -145,6 +145,10 @@ location:
|
||||||
geonames_id: 730866
|
geonames_id: 730866
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.699870+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.699870+00:00'
|
||||||
|
latitude: 43.71667
|
||||||
|
longitude: 26.83333
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:44.256682+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-1720000 official
|
youtube_search_query: Library BG-1720000 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:43.771232+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:43.771232+00:00'
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,10 @@ location:
|
||||||
geonames_id: 727462
|
geonames_id: 727462
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.742143+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.742143+00:00'
|
||||||
|
latitude: 42.33855
|
||||||
|
longitude: 23.55805
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:35.934662+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-2320000 official
|
youtube_search_query: Library BG-2320000 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:44.429842+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:44.429842+00:00'
|
||||||
|
|
|
||||||
|
|
@ -145,6 +145,10 @@ location:
|
||||||
geonames_id: 730073
|
geonames_id: 730073
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.788441+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.788441+00:00'
|
||||||
|
latitude: 42.88333
|
||||||
|
longitude: 26.45
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:37.300285+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-2020000 official
|
youtube_search_query: Library BG-2020000 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:45.087117+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:45.087117+00:00'
|
||||||
|
|
|
||||||
|
|
@ -145,6 +145,10 @@ location:
|
||||||
geonames_id: 730496
|
geonames_id: 730496
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.868948+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.868948+00:00'
|
||||||
|
latitude: 42.61667
|
||||||
|
longitude: 25.4
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:38.847068+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-2420000 official
|
youtube_search_query: Library BG-2420000 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:45.738151+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:45.738151+00:00'
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,10 @@ location:
|
||||||
geonames_id: 727838
|
geonames_id: 727838
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.940065+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.940065+00:00'
|
||||||
|
latitude: 42.3
|
||||||
|
longitude: 25.93333
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:36.498169+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-2420001 official
|
youtube_search_query: Library BG-2420001 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:46.394966+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:46.394966+00:00'
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,10 @@ location:
|
||||||
geonames_id: 731233
|
geonames_id: 731233
|
||||||
feature_code: PPL
|
feature_code: PPL
|
||||||
normalization_timestamp: '2025-12-09T13:20:52.989667+00:00'
|
normalization_timestamp: '2025-12-09T13:20:52.989667+00:00'
|
||||||
|
latitude: 43.12778
|
||||||
|
longitude: 25.70167
|
||||||
|
geocoding_timestamp: '2025-12-09T20:51:43.758232+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
youtube_status: NOT_FOUND
|
youtube_status: NOT_FOUND
|
||||||
youtube_search_query: Library BG-0420000 official
|
youtube_search_query: Library BG-0420000 official
|
||||||
youtube_search_timestamp: '2025-12-09T08:50:47.052626+00:00'
|
youtube_search_timestamp: '2025-12-09T08:50:47.052626+00:00'
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,12 @@ location:
|
||||||
region_code: ALX
|
region_code: ALX
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.353814+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.353814+00:00'
|
||||||
|
city: Alexandria
|
||||||
|
latitude: 31.20176
|
||||||
|
longitude: 29.91582
|
||||||
|
geonames_id: 361058
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.993254+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,12 @@ location:
|
||||||
region_code: ALX
|
region_code: ALX
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.368532+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.368532+00:00'
|
||||||
|
city: Alexandria
|
||||||
|
latitude: 31.20176
|
||||||
|
longitude: 29.91582
|
||||||
|
geonames_id: 361058
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.587384+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,12 @@ location:
|
||||||
region_code: ALX
|
region_code: ALX
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.389275+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.389275+00:00'
|
||||||
|
city: Alexandria
|
||||||
|
latitude: 31.20176
|
||||||
|
longitude: 29.91582
|
||||||
|
geonames_id: 361058
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.911959+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,12 @@ location:
|
||||||
region_code: ALX
|
region_code: ALX
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.403860+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.403860+00:00'
|
||||||
|
city: Alexandria
|
||||||
|
latitude: 31.20176
|
||||||
|
longitude: 29.91582
|
||||||
|
geonames_id: 361058
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.273511+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,12 @@ location:
|
||||||
region_code: AST
|
region_code: AST
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.420856+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.420856+00:00'
|
||||||
|
city: Assiut
|
||||||
|
latitude: 27.18096
|
||||||
|
longitude: 31.18368
|
||||||
|
geonames_id: 359783
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:52.900410+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.529765+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.529765+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:02.181456+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.546994+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.546994+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:01.879733+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.574602+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.574602+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:01.747894+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.589395+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.589395+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:02.029274+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.626735+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.626735+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:01.926885+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.648683+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.648683+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:02.195743+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.664000+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.664000+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:01.513913+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.679180+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.679180+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:01.903642+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.698208+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.698208+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:01.476557+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.716605+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.716605+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:02.058436+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.732617+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.732617+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.664197+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.747417+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.747417+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.478356+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.767017+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.767017+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:54.132822+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.782524+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.782524+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:55.086687+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.801850+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.801850+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:52.932236+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.815469+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.815469+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.121684+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.838454+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.838454+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.617048+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.850521+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.850521+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.092940+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.864345+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.864345+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.362496+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.883449+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.883449+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.398547+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.901361+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.901361+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.222960+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.913980+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.913980+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.428143+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.929836+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.929836+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:54.421956+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.942731+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.942731+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.152999+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.954581+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.954581+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:54.976236+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.971248+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.971248+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.504845+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:15.984211+00:00'
|
normalization_timestamp: '2025-12-09T13:32:15.984211+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:54.076403+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:16.000376+00:00'
|
normalization_timestamp: '2025-12-09T13:32:16.000376+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:54.941429+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:16.020329+00:00'
|
normalization_timestamp: '2025-12-09T13:32:16.020329+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.005364+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:16.037081+00:00'
|
normalization_timestamp: '2025-12-09T13:32:16.037081+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.871205+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,12 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:16.052040+00:00'
|
normalization_timestamp: '2025-12-09T13:32:16.052040+00:00'
|
||||||
|
city: Cairo
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.545252+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:16.068156+00:00'
|
normalization_timestamp: '2025-12-09T13:32:16.068156+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:01.864476+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:16.085807+00:00'
|
normalization_timestamp: '2025-12-09T13:32:16.085807+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:02.232230+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:16.103659+00:00'
|
normalization_timestamp: '2025-12-09T13:32:16.103659+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:01.658871+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:16.120962+00:00'
|
normalization_timestamp: '2025-12-09T13:32:16.120962+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:01.776237+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,11 @@ location:
|
||||||
region_code: C
|
region_code: C
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T13:32:16.161958+00:00'
|
normalization_timestamp: '2025-12-09T13:32:16.161958+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:53.057618+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location normalized on 2025-12-09T12:10:56Z
|
- Canonical location normalized on 2025-12-09T12:10:56Z
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:16.182402+00:00'
|
normalization_timestamp: '2025-12-09T13:32:16.182402+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:01.762919+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,10 @@ location:
|
||||||
country: EG
|
country: EG
|
||||||
geonames_id: 360630
|
geonames_id: 360630
|
||||||
normalization_timestamp: '2025-12-09T13:32:16.198399+00:00'
|
normalization_timestamp: '2025-12-09T13:32:16.198399+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geocoding_timestamp: '2025-12-09T20:52:01.617483+00:00'
|
||||||
|
geocoding_method: GEONAMES_ID_LOOKUP
|
||||||
provenance:
|
provenance:
|
||||||
notes:
|
notes:
|
||||||
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
- Canonical location added via normalize_custodian_files.py on 2025-12-08T23:12:51Z
|
||||||
|
|
|
||||||
|
|
@ -52,13 +52,7 @@ custodian_name:
|
||||||
source: palestinian_heritage_extraction
|
source: palestinian_heritage_extraction
|
||||||
confidence: 0.9
|
confidence: 0.9
|
||||||
extraction_timestamp: '2025-12-06T18:54:54.701573+00:00'
|
extraction_timestamp: '2025-12-06T18:54:54.701573+00:00'
|
||||||
description: "Palestinian Archives Gathering (تجمع الأرشيفات الفلسطينية) is a digital\
|
description: "Palestinian Archives Gathering (تجمع الأرشيفات الفلسطينية) is a digital umbrella \nplatform project led by Rasha Shaheen. The initiative is based at the Egyptian Museum \nin Cairo, Egypt.\n\nThe project was featured in UNESCO and ICA (International Council on Archives) \ndocumentation on global efforts to safeguard and promote documentary heritage, \nparticularly focusing on Palestinian archival materials.\n\nThe platform serves as an aggregation and coordination point for Palestinian \narchival initiatives across the diaspora.\n"
|
||||||
\ umbrella \nplatform project led by Rasha Shaheen. The initiative is based at the\
|
|
||||||
\ Egyptian Museum \nin Cairo, Egypt.\n\nThe project was featured in UNESCO and ICA\
|
|
||||||
\ (International Council on Archives) \ndocumentation on global efforts to safeguard\
|
|
||||||
\ and promote documentary heritage, \nparticularly focusing on Palestinian archival\
|
|
||||||
\ materials.\n\nThe platform serves as an aggregation and coordination point for\
|
|
||||||
\ Palestinian \narchival initiatives across the diaspora.\n"
|
|
||||||
founder: Rasha Shaheen
|
founder: Rasha Shaheen
|
||||||
ghcid:
|
ghcid:
|
||||||
ghcid_current: EG-CA-CAI-D-PAG
|
ghcid_current: EG-CA-CAI-D-PAG
|
||||||
|
|
@ -71,8 +65,7 @@ ghcid:
|
||||||
- ghcid: EG-CA-CAI-D-PAG
|
- ghcid: EG-CA-CAI-D-PAG
|
||||||
valid_from: '2025-12-07T01:40:00.000000+00:00'
|
valid_from: '2025-12-07T01:40:00.000000+00:00'
|
||||||
ghcid_numeric: 9711908441858038101
|
ghcid_numeric: 9711908441858038101
|
||||||
reason: Location corrected to Egyptian Museum Cairo based on UNESCO/ICA documentation
|
reason: Location corrected to Egyptian Museum Cairo based on UNESCO/ICA documentation and Google Maps verification
|
||||||
and Google Maps verification
|
|
||||||
- ghcid: PS-WE-RAM-D-PAGW
|
- ghcid: PS-WE-RAM-D-PAGW
|
||||||
valid_from: '2025-12-06T19:07:04.674545+00:00'
|
valid_from: '2025-12-06T19:07:04.674545+00:00'
|
||||||
ghcid_numeric: 12132199637978317992
|
ghcid_numeric: 12132199637978317992
|
||||||
|
|
@ -81,3 +74,8 @@ location:
|
||||||
city: Cairo
|
city: Cairo
|
||||||
country: EG
|
country: EG
|
||||||
normalization_timestamp: '2025-12-09T10:54:41.565987+00:00'
|
normalization_timestamp: '2025-12-09T10:54:41.565987+00:00'
|
||||||
|
latitude: 30.06263
|
||||||
|
longitude: 31.24967
|
||||||
|
geonames_id: 360630
|
||||||
|
geocoding_timestamp: '2025-12-09T20:54:54.808148+00:00'
|
||||||
|
geocoding_method: EG_CITY_CODE_LOOKUP
|
||||||
|
|
|
||||||
190
scripts/geocode_eg_from_city_code.py
Executable file
190
scripts/geocode_eg_from_city_code.py
Executable file
|
|
@ -0,0 +1,190 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Add lat/lon coordinates to Egyptian custodian files based on city codes.
|
||||||
|
|
||||||
|
City code mapping for Egypt:
|
||||||
|
- CAI = Cairo
|
||||||
|
- ALX = Alexandria
|
||||||
|
- ASS = Assiut
|
||||||
|
- NIL = Nile (various locations, use Cairo as proxy)
|
||||||
|
- GIZ = Giza
|
||||||
|
- LUX = Luxor
|
||||||
|
"""
|
||||||
|
|
||||||
|
import sqlite3
|
||||||
|
from pathlib import Path
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
from ruamel.yaml import YAML
|
||||||
|
|
||||||
|
GEONAMES_DB = Path("data/reference/geonames.db")
|
||||||
|
CUSTODIAN_DIR = Path("data/custodian")
|
||||||
|
|
||||||
|
yaml = YAML()
|
||||||
|
yaml.preserve_quotes = True
|
||||||
|
yaml.width = 4096
|
||||||
|
|
||||||
|
# Egypt city code mappings (city_code -> GeoNames city name)
|
||||||
|
EG_CITY_MAPPING = {
|
||||||
|
'CAI': 'Cairo',
|
||||||
|
'ALX': 'Alexandria',
|
||||||
|
'ASS': 'Assiut', # Assiut city
|
||||||
|
'NIL': 'Cairo', # Default to Cairo for Nile-related
|
||||||
|
'GIZ': 'Giza',
|
||||||
|
'LUX': 'Luxor',
|
||||||
|
'ASW': 'Aswan',
|
||||||
|
'POR': 'Port Said',
|
||||||
|
'SUE': 'Suez',
|
||||||
|
'MAN': 'Mansoura',
|
||||||
|
'TAN': 'Tanta',
|
||||||
|
'ISM': 'Ismailia',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def get_coords_for_city(conn: sqlite3.Connection, city_name: str, country_code: str = 'EG') -> tuple[float, float, int] | None:
|
||||||
|
"""Get lat/lon and geonames_id for a city."""
|
||||||
|
cursor = conn.execute(
|
||||||
|
"""SELECT latitude, longitude, geonames_id
|
||||||
|
FROM cities
|
||||||
|
WHERE country_code = ?
|
||||||
|
AND (name = ? OR ascii_name = ?)
|
||||||
|
AND feature_code IN ('PPL', 'PPLA', 'PPLA2', 'PPLA3', 'PPLC')
|
||||||
|
ORDER BY population DESC
|
||||||
|
LIMIT 1""",
|
||||||
|
(country_code, city_name, city_name)
|
||||||
|
)
|
||||||
|
row = cursor.fetchone()
|
||||||
|
if row:
|
||||||
|
return row[0], row[1], row[2]
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def process_file(filepath: Path, conn: sqlite3.Connection) -> bool:
|
||||||
|
"""Process a single custodian file. Returns True if updated."""
|
||||||
|
with open(filepath, 'r', encoding='utf-8') as f:
|
||||||
|
data = yaml.load(f)
|
||||||
|
|
||||||
|
if not data:
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Check if already has coordinates
|
||||||
|
location = data.get('location', {})
|
||||||
|
if location.get('latitude') and location.get('longitude'):
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Get city code from location_resolution or GHCID
|
||||||
|
city_code = None
|
||||||
|
|
||||||
|
ghcid = data.get('ghcid', {})
|
||||||
|
loc_res = ghcid.get('location_resolution', {})
|
||||||
|
if loc_res.get('city_code'):
|
||||||
|
city_code = loc_res['city_code']
|
||||||
|
|
||||||
|
# Also try to extract from ghcid_current (e.g., EG-C-CAI-L-...)
|
||||||
|
if not city_code and ghcid.get('ghcid_current'):
|
||||||
|
parts = ghcid['ghcid_current'].split('-')
|
||||||
|
if len(parts) >= 3 and parts[0] == 'EG':
|
||||||
|
city_code = parts[2]
|
||||||
|
|
||||||
|
if not city_code:
|
||||||
|
print(f" No city code found: {filepath.name}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Map city code to city name
|
||||||
|
city_name = EG_CITY_MAPPING.get(city_code)
|
||||||
|
if not city_name:
|
||||||
|
print(f" Unknown city code {city_code}: {filepath.name}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Look up coordinates
|
||||||
|
result = get_coords_for_city(conn, city_name)
|
||||||
|
if not result:
|
||||||
|
print(f" City not found in GeoNames: {city_name} ({city_code}): {filepath.name}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
lat, lon, geonames_id = result
|
||||||
|
|
||||||
|
# Update location block
|
||||||
|
if 'location' not in data:
|
||||||
|
data['location'] = {}
|
||||||
|
|
||||||
|
data['location']['city'] = city_name
|
||||||
|
data['location']['latitude'] = lat
|
||||||
|
data['location']['longitude'] = lon
|
||||||
|
data['location']['geonames_id'] = geonames_id
|
||||||
|
data['location']['geocoding_timestamp'] = datetime.now(timezone.utc).isoformat()
|
||||||
|
data['location']['geocoding_method'] = 'EG_CITY_CODE_LOOKUP'
|
||||||
|
|
||||||
|
# Write back
|
||||||
|
with open(filepath, 'w', encoding='utf-8') as f:
|
||||||
|
yaml.dump(data, f)
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
import argparse
|
||||||
|
parser = argparse.ArgumentParser(description='Geocode Egyptian institutions by city code')
|
||||||
|
parser.add_argument('--dry-run', action='store_true', help='Show what would be done')
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
conn = sqlite3.connect(GEONAMES_DB)
|
||||||
|
|
||||||
|
# Find EG files
|
||||||
|
files = list(CUSTODIAN_DIR.glob("EG-*.yaml"))
|
||||||
|
print(f"Found {len(files)} EG files")
|
||||||
|
|
||||||
|
updated = 0
|
||||||
|
skipped = 0
|
||||||
|
|
||||||
|
for filepath in files:
|
||||||
|
if not filepath.is_file():
|
||||||
|
continue
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(filepath, 'r', encoding='utf-8') as f:
|
||||||
|
data = yaml.load(f)
|
||||||
|
|
||||||
|
if not data:
|
||||||
|
continue
|
||||||
|
|
||||||
|
location = data.get('location', {})
|
||||||
|
if location.get('latitude'):
|
||||||
|
skipped += 1
|
||||||
|
continue
|
||||||
|
|
||||||
|
if args.dry_run:
|
||||||
|
# Check what would happen
|
||||||
|
ghcid = data.get('ghcid', {})
|
||||||
|
city_code = ghcid.get('location_resolution', {}).get('city_code')
|
||||||
|
if not city_code and ghcid.get('ghcid_current'):
|
||||||
|
parts = ghcid['ghcid_current'].split('-')
|
||||||
|
if len(parts) >= 3 and parts[0] == 'EG':
|
||||||
|
city_code = parts[2]
|
||||||
|
|
||||||
|
if city_code and city_code in EG_CITY_MAPPING:
|
||||||
|
city_name = EG_CITY_MAPPING[city_code]
|
||||||
|
result = get_coords_for_city(conn, city_name)
|
||||||
|
if result:
|
||||||
|
print(f"Would update: {filepath.name} -> {city_name} ({result[0]}, {result[1]})")
|
||||||
|
updated += 1
|
||||||
|
else:
|
||||||
|
print(f" City not in GeoNames: {city_name}")
|
||||||
|
else:
|
||||||
|
print(f" Unknown/no city code: {filepath.name} ({city_code})")
|
||||||
|
else:
|
||||||
|
if process_file(filepath, conn):
|
||||||
|
print(f"Updated: {filepath.name}")
|
||||||
|
updated += 1
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error: {filepath.name}: {e}")
|
||||||
|
|
||||||
|
conn.close()
|
||||||
|
|
||||||
|
print(f"\nSummary:")
|
||||||
|
print(f" Updated: {updated}")
|
||||||
|
print(f" Skipped (already has coords): {skipped}")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
160
scripts/geocode_from_geonames_id.py
Executable file
160
scripts/geocode_from_geonames_id.py
Executable file
|
|
@ -0,0 +1,160 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Add lat/lon coordinates to custodian files that have geonames_id but missing coordinates.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
python scripts/geocode_from_geonames_id.py --country BG
|
||||||
|
python scripts/geocode_from_geonames_id.py --country EG
|
||||||
|
python scripts/geocode_from_geonames_id.py # Process all countries
|
||||||
|
"""
|
||||||
|
|
||||||
|
import sqlite3
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
from ruamel.yaml import YAML
|
||||||
|
|
||||||
|
GEONAMES_DB = Path("data/reference/geonames.db")
|
||||||
|
CUSTODIAN_DIR = Path("data/custodian")
|
||||||
|
|
||||||
|
yaml = YAML()
|
||||||
|
yaml.preserve_quotes = True
|
||||||
|
yaml.width = 4096
|
||||||
|
|
||||||
|
def get_coords_from_geonames(conn: sqlite3.Connection, geonames_id: int) -> tuple[float, float] | None:
|
||||||
|
"""Get lat/lon for a GeoNames ID."""
|
||||||
|
cursor = conn.execute(
|
||||||
|
"SELECT latitude, longitude FROM cities WHERE geonames_id = ?",
|
||||||
|
(geonames_id,)
|
||||||
|
)
|
||||||
|
row = cursor.fetchone()
|
||||||
|
if row:
|
||||||
|
return row[0], row[1]
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def process_file(filepath: Path, conn: sqlite3.Connection) -> bool:
|
||||||
|
"""Process a single custodian file. Returns True if updated."""
|
||||||
|
with open(filepath, 'r', encoding='utf-8') as f:
|
||||||
|
data = yaml.load(f)
|
||||||
|
|
||||||
|
if not data:
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Check if already has coordinates
|
||||||
|
location = data.get('location', {})
|
||||||
|
if location.get('latitude') and location.get('longitude'):
|
||||||
|
return False # Already has coordinates
|
||||||
|
|
||||||
|
# Try to find geonames_id in location or location_resolution
|
||||||
|
geonames_id = None
|
||||||
|
|
||||||
|
# Check location block
|
||||||
|
if location.get('geonames_id'):
|
||||||
|
geonames_id = location['geonames_id']
|
||||||
|
|
||||||
|
# Check ghcid.location_resolution
|
||||||
|
if not geonames_id:
|
||||||
|
ghcid = data.get('ghcid', {})
|
||||||
|
loc_res = ghcid.get('location_resolution', {})
|
||||||
|
if loc_res.get('geonames_id'):
|
||||||
|
geonames_id = loc_res['geonames_id']
|
||||||
|
|
||||||
|
if not geonames_id:
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Look up coordinates
|
||||||
|
coords = get_coords_from_geonames(conn, geonames_id)
|
||||||
|
if not coords:
|
||||||
|
print(f" Warning: GeoNames ID {geonames_id} not found in DB for {filepath.name}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
lat, lon = coords
|
||||||
|
|
||||||
|
# Update location block
|
||||||
|
if 'location' not in data:
|
||||||
|
data['location'] = {}
|
||||||
|
|
||||||
|
data['location']['latitude'] = lat
|
||||||
|
data['location']['longitude'] = lon
|
||||||
|
data['location']['geocoding_timestamp'] = datetime.now(timezone.utc).isoformat()
|
||||||
|
data['location']['geocoding_method'] = 'GEONAMES_ID_LOOKUP'
|
||||||
|
|
||||||
|
# Write back
|
||||||
|
with open(filepath, 'w', encoding='utf-8') as f:
|
||||||
|
yaml.dump(data, f)
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
import argparse
|
||||||
|
parser = argparse.ArgumentParser(description='Add coordinates from GeoNames IDs')
|
||||||
|
parser.add_argument('--country', type=str, help='Country code to process (e.g., BG, EG)')
|
||||||
|
parser.add_argument('--dry-run', action='store_true', help='Show what would be done without making changes')
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
if not GEONAMES_DB.exists():
|
||||||
|
print(f"Error: GeoNames DB not found at {GEONAMES_DB}")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
conn = sqlite3.connect(GEONAMES_DB)
|
||||||
|
|
||||||
|
# Find files to process
|
||||||
|
if args.country:
|
||||||
|
pattern = f"{args.country}-*.yaml"
|
||||||
|
else:
|
||||||
|
pattern = "*.yaml"
|
||||||
|
|
||||||
|
files = list(CUSTODIAN_DIR.glob(pattern))
|
||||||
|
print(f"Found {len(files)} files matching {pattern}")
|
||||||
|
|
||||||
|
updated = 0
|
||||||
|
skipped = 0
|
||||||
|
no_geonames = 0
|
||||||
|
|
||||||
|
for filepath in files:
|
||||||
|
# Skip subdirectories
|
||||||
|
if not filepath.is_file():
|
||||||
|
continue
|
||||||
|
|
||||||
|
try:
|
||||||
|
if args.dry_run:
|
||||||
|
# Just check if it would be updated
|
||||||
|
with open(filepath, 'r', encoding='utf-8') as f:
|
||||||
|
data = yaml.load(f)
|
||||||
|
if data:
|
||||||
|
location = data.get('location', {})
|
||||||
|
if not location.get('latitude'):
|
||||||
|
geonames_id = location.get('geonames_id') or data.get('ghcid', {}).get('location_resolution', {}).get('geonames_id')
|
||||||
|
if geonames_id:
|
||||||
|
coords = get_coords_from_geonames(conn, geonames_id)
|
||||||
|
if coords:
|
||||||
|
print(f"Would update: {filepath.name} -> ({coords[0]}, {coords[1]})")
|
||||||
|
updated += 1
|
||||||
|
else:
|
||||||
|
no_geonames += 1
|
||||||
|
else:
|
||||||
|
no_geonames += 1
|
||||||
|
else:
|
||||||
|
skipped += 1
|
||||||
|
else:
|
||||||
|
if process_file(filepath, conn):
|
||||||
|
print(f"Updated: {filepath.name}")
|
||||||
|
updated += 1
|
||||||
|
else:
|
||||||
|
skipped += 1
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error processing {filepath.name}: {e}")
|
||||||
|
|
||||||
|
conn.close()
|
||||||
|
|
||||||
|
print(f"\nSummary:")
|
||||||
|
print(f" Updated: {updated}")
|
||||||
|
print(f" Skipped (already has coords): {skipped}")
|
||||||
|
if no_geonames:
|
||||||
|
print(f" No GeoNames ID: {no_geonames}")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Loading…
Reference in a new issue