如何将 Census FIPS 转换为 Lat Lon?
How do I convert from Census FIPS to Lat Lon?
我正在尝试通过绘制 out/manipulating public 数据集来学习一些编程技能 (python)。目前,我正在尝试制作北极的交互式人口地图。我从 Alaskan State Department of Labor 下载了阿拉斯加的人口普查数据,它给我人口除以 FIPS 中的人口普查区(即 0201301090 是阿留申群岛东区的阿库坦市)。有没有办法将 FIPS 转换为 Lat Lon 或通过 FIPS 在 python 中绘制?
您示例中地点的 FIPS 代码(01090 部分)采用人口普查局很久以前就已停用的样式 (FIPS 55.3),因此找到一个好的数据源有点棘手。我尝试了一堆花哨的 GIS 库和许多来自人口普查局的大型 shp 文件,但是尽管您可以非常接近人口普查区和区域,none 其中有足够的数据来追踪 FIPS 的位置。
不过,我最终发现美国地名委员会有一个有用的数据库 here,它仍然使用这种格式。
如果您从该页面底部的 "State Files with Federal Codes" 部分下载阿拉斯加文件,只需 python 的内置 csv [=24] 就可以很容易地解析必要的信息=].
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
我正在尝试通过绘制 out/manipulating public 数据集来学习一些编程技能 (python)。目前,我正在尝试制作北极的交互式人口地图。我从 Alaskan State Department of Labor 下载了阿拉斯加的人口普查数据,它给我人口除以 FIPS 中的人口普查区(即 0201301090 是阿留申群岛东区的阿库坦市)。有没有办法将 FIPS 转换为 Lat Lon 或通过 FIPS 在 python 中绘制?
您示例中地点的 FIPS 代码(01090 部分)采用人口普查局很久以前就已停用的样式 (FIPS 55.3),因此找到一个好的数据源有点棘手。我尝试了一堆花哨的 GIS 库和许多来自人口普查局的大型 shp 文件,但是尽管您可以非常接近人口普查区和区域,none 其中有足够的数据来追踪 FIPS 的位置。
不过,我最终发现美国地名委员会有一个有用的数据库 here,它仍然使用这种格式。
如果您从该页面底部的 "State Files with Federal Codes" 部分下载阿拉斯加文件,只需 python 的内置 csv [=24] 就可以很容易地解析必要的信息=].
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