我试图通过绘制/操作公共数据集来学习一些编程技巧(python)。目前,我正试图制作一个北极人口互动地图。我从Alaskan State Department of Labor下载了阿拉斯加的人口普查数据,这给了我人口除以FIPS中的人口普查区域(即020301090是阿留申东区的阿库塔市)。在python中,有没有一种方法可以将FIPS转换为Lat Lon或按FIPS绘图?

最佳答案

在你的例子中,位置的FIPS代码(01090部分)是一种风格(FIPS 55.3),很早以前就被人口普查局废除了,所以寻找一个好的数据源有点棘手。我试过一堆漂亮的地理信息系统库和人口普查局的许多大型shp文件,但是尽管你可以很接近人口普查数据块和数据块,但没有一个有足够的数据来追踪地点FIP。
然而,我最终发现美国地名委员会有一个有用的数据库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

关于python - 如何从人口普查FIPS转换为拉特朗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42868735/

10-10 13:46