如何从 Census FIPS 转换为 Lat Lon?

Posted

技术标签:

【中文标题】如何从 Census FIPS 转换为 Lat Lon?【英文标题】:How do I convert from Census FIPS to Lat Lon? 【发布时间】:2017-03-17 23:44:28 【问题描述】:

我正在尝试通过绘制/操作公共数据集来学习一些编程(python)技能。目前,我正在尝试制作北极的交互式人口地图。我从Alaskan State Department of Labor 下载了阿拉斯加人口普查数据,这给了我在 FIPS 中按人口普查区划分的人口(即 0201301090 是阿留申斯东区的阿库坦市)。有没有办法将 FIPS 转换为 Lat Lon 或在 python 中通过 FIPS 绘制?

【问题讨论】:

【参考方案1】:

您示例中地点的 FIPS 代码(01090 部分)采用人口普查局很久以前停用的样式 (FIPS 55.3),因此找到一个好的数据源有点棘手。我从人口普查局尝试了一堆精美的 GIS 库和大量大型 shp 文件,但尽管您可以非常接近人口普查块和区域,但它们都没有足够的数据来追踪 FIPS 的位置。

但是,我最终发现美国地名委员会有一个有用的数据库here,它仍然使用这种格式。

如果您从该页面底部的“带有联邦代码的州文件”部分下载阿拉斯加文件,则只需使用 python 的内置 csv 阅读器即可轻松解析必要的信息。

import csv
datapath = r"C:\folder\where\you\saved\the\file\AK_FedCodes_20170201.txt"
data = []

with open(datapath) as f:
    reader = csv.reader(f, delimiter="|")
    rows = [row for row in reader]

    for row in rows[1:]:

        name = row[1]
        fips = row[7]+row[10]+row[3]
        lat = row[12]
        lon = row[13]

        data.append("name": name,
                     "fips": fips,
                     "lat": lat,
                     "lon": lon)

        if name == "Akutan":
            print name, fips, lat, lon # just because we can

输出:

Akutan 0201301090 54.1355556 -165.7730556

【讨论】:

我使用了 Here.com API。请看看这是否有帮助:***.com/questions/56639306/… @SunBee:这不会有任何区别,因为关键步骤是映射不寻常的人口普查区 FIPS 代码,here.com 无法提供帮助。

以上是关于如何从 Census FIPS 转换为 Lat Lon?的主要内容,如果未能解决你的问题,请参考以下文章

从 1600 万+ lat/long 获取 FIPS 块代码

sql 通过@maplion为@simplot获取Lat / Long的FIPS代码

如何将足球场上的位置转换为矩形上的坐标?

Lat,Lon,使用Python将CSV值转换为栅格地图

快速将 PFGeoPoint Lat 和 Long 从 Parse 转换为 CLLocation Lat 和 Long

从 shapefile 将 EPSG 3035 转换为 EPSG 4326(lon lat)