是否有一个信誉良好的来源提供UN / LOCODE到奥尔森时区的映射?

时间:2015-11-10 20:20:12

标签: timezone mapping iana cldr

我一直在研究CLDRIANA,以便找到UN / LOCODE到Olsen时区的集中映射。

理想情况下,我希望有例如:

+--------------+--------------------+
|un_locode     |timezone            |
+--------------+--------------------+
|USLAX         | America/Los_Angeles|
+--------------+--------------------+
每个UN / LOCODE

我的nube技能是否让我无法理解如何使用这些来源达到我的目标? (如果是这样,请帮助我指向允许我自动提供这些映射的脚本)。

或者,这些来源是否无法获得我正在寻找的数据关联? (如果是,请告诉我,如果您有可靠的来源)。

4 个答案:

答案 0 :(得分:2)

GeoNames free database of cities(可供下载)提供:城市名称,纬度/经度,最重要的是时区信息。您可以根据名称/国家/坐标,快速建立自己的数据库,将此信息与UN/LOCODE code lists相关联。

答案 1 :(得分:2)

我们遇到了完全相同的问题,因此不得不提供解决方案。

此解决方案涉及将UN / LOCODES数据库与地理位置/时区数据库相关联。 Matt Johnson的回答和随附的评论记录了这种方法的一些注意事项。

即:

  • UN / LOCODE坐标数据库不完整[1],有时数据不准确[2]
  • 在某些情况下,由于时区的政治性质,UN / LOCODE与时区之间的1对1映射是不可能的。
  • 上述两点因免费坐标到时区数据库的不准确性而恶化。获取包含领海的数据集是有帮助的,这样港口时区就可以正确地链接到他们所属的国家。

以下存储库https://github.com/Portchain/un_locodes_sql包含提取和链接数据的代码。它输出一个可以导入PostgreSQL DB的SQL文件。 地理位置/时区数据基于geo-tz [3]模块,该模块似乎从timezone-boundary-builder [4]中获取数据。

同样,我们的存储库提供的列表当然不完整且不准确。如果您在数据中看到任何错误,请打开github问题,让我们制作一份准确的开源UN / LOCODE列表,坐标和时区信息。

答案 2 :(得分:1)

我没见过这样的消息来源。您可以尝试通过映射具有它们的条目的纬度/经度坐标来创建一个,并通过one of the methods listed here与IANA时区相关联。

但是,请务必阅读Wikipedia's article about UN/LOCODE,特别是用坐标描述错误。另请注意,许多坐标根本就不在数据中 - 为什么?我不知道。

list of UN/LOCODE for the US is here,并将洛杉矶显示为US LAX(不是UNLAX)。其坐标字段为空白。

如果您能找到其他可靠的UN / LOCODE来源,那么您就可以开展业务了。快速搜索发现GeoNames claims to have this in their premium data subscription,但我没有进一步调查。

答案 3 :(得分:0)

CLDR的地图在这里:https://unicode.org/reports/tr35/#Time_Zone_Identifiers

我看到CLDR带有标签,但没有提及。