是否有可靠的来源提供 UN/LOCODEs 到奥尔森时区的映射?
Is there a reputable source that provides mappings of UN/LOCODEs to Olsen Timezones?
我一直在研究 CLDR and IANA 以找到 UN/LOCODEs 到奥尔森时区的集中映射。
理想情况下,我希望有例如:
+--------------+--------------------+
|un_locode |timezone |
+--------------+--------------------+
|USLAX | America/Los_Angeles|
+--------------+--------------------+
每 UN/LOCODE.
我的 nube 技能是否让我无法理解如何使用这些资源来实现我的目标? (如果是这样,请帮助我指出允许我自动提供这些映射的脚本)。
或者,这些来源是否没有我正在寻找的数据相关性? (如果是这样,请让我知道您是否有可靠的消息来源)。
我没见过这样的来源。您可以尝试通过为那些具有它们的条目映射 lat/lon 坐标,并通过 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 到 lat/lon 的其他可靠来源,那么您就成功了。快速搜索发现 GeoNames claims to have this in their premium data subscription,但我没有进一步调查。
基于name/country/coordinates的GeoNames free database of cities (which is available to download) provides: city names, latitude/longitude and, most importantly, timezone information. You can fairly quickly make your own database connecting this information with the UN/LOCODE code lists。
我们遇到了完全相同的问题,因此必须提供解决方案。
此解决方案涉及 link 使用 geolocation/timezone 数据库连接 UN/LOCODES 数据库。
Matt Johnson 的回答和随附的评论对这种方法提出了一些注意事项。
即:
- UN/LOCODE 坐标数据库不完整[1],有时数据不准确[2]
- 在某些情况下,UN/LOCODE 和时区之间的一对一映射是不可能的,因为时区的政治性质。
- 以上两点由于自由坐标到时区数据库的不准确性而变得更糟。获得一个还包括领海的数据集很有帮助,这样港口时区就可以正确地 linked 到它们所属的国家。
以下存储库 https://github.com/Portchain/un_locodes_sql 包含提取代码和 link 数据。它输出一个可以导入到 PostgreSQL 数据库中的 SQL 文件。
geolocation/timezone 数据基于 geo-tz[3] 模块,该模块的数据似乎来自 timezone-boundary-builder[4]。
同样,我们存储库提供的列表当然是不完整和不准确的。如果您在数据中发现任何错误,请打开一个 github 问题,让我们制作一个准确的开源列表 UN/LOCODE、坐标和时区信息。
- [1] 例如,美国洛杉矶和旧金山 (USLAX 和 USSFO) 在 UN/LOCODE 数据库中缺少坐标。
- [2] Abu al Bukhoosh (AEABU) 的石油港口位于阿布扎比 (UAE)。它在 UN/LOCODE 数据库中的坐标将港口定位在波斯湾 (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
CLDR 的地图在这里:https://unicode.org/reports/tr35/#Time_Zone_Identifiers
我看到 CLDR 被标记但没有被提及。
我一直在研究 CLDR and IANA 以找到 UN/LOCODEs 到奥尔森时区的集中映射。
理想情况下,我希望有例如:
+--------------+--------------------+
|un_locode |timezone |
+--------------+--------------------+
|USLAX | America/Los_Angeles|
+--------------+--------------------+
每 UN/LOCODE.
我的 nube 技能是否让我无法理解如何使用这些资源来实现我的目标? (如果是这样,请帮助我指出允许我自动提供这些映射的脚本)。
或者,这些来源是否没有我正在寻找的数据相关性? (如果是这样,请让我知道您是否有可靠的消息来源)。
我没见过这样的来源。您可以尝试通过为那些具有它们的条目映射 lat/lon 坐标,并通过 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 到 lat/lon 的其他可靠来源,那么您就成功了。快速搜索发现 GeoNames claims to have this in their premium data subscription,但我没有进一步调查。
基于name/country/coordinates的GeoNames free database of cities (which is available to download) provides: city names, latitude/longitude and, most importantly, timezone information. You can fairly quickly make your own database connecting this information with the UN/LOCODE code lists。
我们遇到了完全相同的问题,因此必须提供解决方案。
此解决方案涉及 link 使用 geolocation/timezone 数据库连接 UN/LOCODES 数据库。 Matt Johnson 的回答和随附的评论对这种方法提出了一些注意事项。
即:
- UN/LOCODE 坐标数据库不完整[1],有时数据不准确[2]
- 在某些情况下,UN/LOCODE 和时区之间的一对一映射是不可能的,因为时区的政治性质。
- 以上两点由于自由坐标到时区数据库的不准确性而变得更糟。获得一个还包括领海的数据集很有帮助,这样港口时区就可以正确地 linked 到它们所属的国家。
以下存储库 https://github.com/Portchain/un_locodes_sql 包含提取代码和 link 数据。它输出一个可以导入到 PostgreSQL 数据库中的 SQL 文件。 geolocation/timezone 数据基于 geo-tz[3] 模块,该模块的数据似乎来自 timezone-boundary-builder[4]。
同样,我们存储库提供的列表当然是不完整和不准确的。如果您在数据中发现任何错误,请打开一个 github 问题,让我们制作一个准确的开源列表 UN/LOCODE、坐标和时区信息。
- [1] 例如,美国洛杉矶和旧金山 (USLAX 和 USSFO) 在 UN/LOCODE 数据库中缺少坐标。
- [2] Abu al Bukhoosh (AEABU) 的石油港口位于阿布扎比 (UAE)。它在 UN/LOCODE 数据库中的坐标将港口定位在波斯湾 (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
CLDR 的地图在这里:https://unicode.org/reports/tr35/#Time_Zone_Identifiers
我看到 CLDR 被标记但没有被提及。