2015-11-10 6 views
4

Я искал CLDR и IANA, чтобы найти централизованное картографирование ЛОКоД ООН в Olsen Timezones.Есть ли авторитетный источник, который обеспечивает отображения ЛОКОДОВ ООН в Olsen Timezones?

В идеале я хотел бы иметь, например:

+--------------+--------------------+ 
|un_locode  |timezone   | 
+--------------+--------------------+ 
|USLAX   | America/Los_Angeles| 
+--------------+--------------------+ 

для каждого ООН/ЛОКОД.

Могут ли мои умственные способности меня не понять, как использовать эти источники для достижения моей цели? (Если это так, пожалуйста, помогите мне указать на скрипты, которые позволят мне автоматизировать предоставление этих сопоставлений).

Или эти источники не имеют корреляции данных, которые я ищу? (Если да, сообщите мне, если у вас есть надежный источник).

ответ

1

Я не видел такого источника. Вы можете попытаться создать его, сопоставляя координаты lat/lon для тех записей, которые у них есть, и сопоставляя часовой пояс IANA на one of the methods listed here.

Однако не забудьте прочитать Wikipedia's article about UN/LOCODE, особенно описывая ошибки с координатами. Также обратите внимание, что многие из координат просто не в данных - почему? Я не знаю.

list of UN/LOCODE for the US is here, и показать Лос-Анджелес, чтобы он был US LAX (не UNLAX). Его поле координат пустое.

Если вы можете найти какой-либо другой надежный источник ЛОКОДА для lat/lon, то вы находитесь в бизнесе. Быстрый поиск показал, что GeoNames claims to have this in their premium data subscription, но я еще не исследовал.

+0

Спасибо Мэтту, от моего исследования и с поста вы ссылается, не рекомендуется разрешить часовых поясов в местах с использованием широты/долготы, поскольку временные зоны, в первую очередь политически а не географически. Китай является хорошим примером того, что вся страна компенсирует UTC + 8 политическим институтом, но если вы решили разрешить один из самых западных китайских городов на лат/лон, вы можете в конечном итоге компенсировать часовой пояс так же, как UTC + 6 , – mattbrosenberg

+0

@mattbrosenberg - Это полностью зависит от метода, который вы используете для его решения. Если вы сделаете простой расчет, то вы абсолютно правы. Но большинство методов на ссылочных почтовых картах с границами. Конечно, карты всегда имеют политический контекст. Если вы не согласны с этими картами с политической точки зрения, вы можете настроить их в соответствии с вашими взглядами, и многие решения действительно это делают. –

+0

WRT в Китай, обратите внимание, что политически вся страна находится в UTC + 8 («Азия/Шанхай»), но некоторые из решений действительно включают «Азия/Урумчи» (UTC + 6) в их результатах. См. [Xijiang - Urumqi Time] (https://en.wikipedia.org/wiki/Time_in_China#Xinjiang). В частности, к этой зоне относятся решения, использующие [tz_world maps] (http://efele.net/maps/tz/world/), но другие, такие как API Google, этого не делают. –

2

GeoNames free database of cities (который можно скачать) предоставляет: названия городов, широту/долготу и, самое главное, информацию о часовом поясе. Вы можете довольно быстро создать свою собственную базу данных, связывающую эту информацию с UN/LOCODE code lists на основе имени/страны/координат.

1

Мы столкнулись с одной и той же проблемой и, следовательно, должны были предоставить решение.

Это решение предполагает связывание базы данных UN/LOCODES с базой данных геолокации/часового пояса. Существует несколько предостережений к этому подходу, которые были захвачены ответом Мэтта Джонсона и сопровождающими его комментариями.

А именно:

  • /LOCODE база данных ООН координат не завершена [1], а иногда имеет неточные данные [2]
  • в некоторых случаях, с 1 по 1 соответствия между ООН/LOCODE и часовой пояс невозможен из-за политической природы часовых поясов.
  • эти две точки выше усугубляются неточностями баз данных свободных координат к времени. Полезно получить набор данных, который также включает в себя территориальные воды, чтобы временные интервалы портов могли быть правильно привязаны к стране, в которой они принадлежат.

В следующем репозитории https://github.com/Portchain/un_locodes_sql содержится код для извлечения и связывания данных. Он выводит файл SQL, который можно импортировать в базу данных PostgreSQL. Данные геолокации/часового пояса основаны на модуле geo-tz [3], который, как представляется, отправляет свои данные из создателя временной зоны-границы [4].

Опять же, список, предоставленный нашим хранилищем, является, конечно, неполным и неточным. Если вы видите какую-либо ошибку в данных, откройте проблему github, и давайте сделаем точный, открытый исходный список ЛОКОД ООН, координаты и информацию о часовом поясе.

  • [1] Например, как Лос-Анджелес и Сан-Франциско, США (USLAX & USSFO) отсутствуют координаты в базе данных/ЛОКОДА ООН.
  • [2] Нефтяной порт Абу-аль-Бухуш (AEABU) расположен в Абу-Даби (ОАЭ). Его координаты в базе данных ООН/ЛОКОД позиционируют порт прямо посередине Персидского залива (https://www.port-directory.com/ports/abu_al_bukhoosh/). Когда это разрешено, это заставляет часовую зону быть неизвестной.
  • [3] https://github.com/evansiroky/node-geo-tz
  • [4] https://github.com/evansiroky/timezone-boundary-builder