您的示例中的地點(01090部分)的FIPS代碼採用人口調查局早已退休的樣式(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