python - 如何将 Census FIPS 转换为 Lat Lon?

标签 python fips census

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

最佳答案

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

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

如果您从该页面底部的“State Files with Federal Codes”部分下载阿拉斯加文件,只需使用 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

关于python - 如何将 Census FIPS 转换为 Lat Lon?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42868735/

相关文章:

python - python 文件中的奇怪行,无法提取列

python - 使用生成器作为子流程输入;得到 "I/O operation on closed file"异常

python - 为什么 `pip list` 不显示 `apt` 在 Debian/Ubuntu 上安装的所有 Python 软件包?

.net - 如果启用了 Windows FIPS 合规性策略,为什么不允许 .NET "Managed"加密类?

sql - 时间点的最近邻

r - R/Leaflet 中的 TopoJSON choropleth?

python - 如何使用 geopandas 高效地进行多边形查询中的一个点?

java - 将 Keycloak 与符合 FIPS 的 JDK 一起使用

ssl - BouncyCaSTLe JSSE 和 BCTLS 密码没有凭证

python - pip install census for census.gov API