2017-03-17 14 views
2

공공 데이터 세트를 플로팅/조작하여 프로그래밍 (파이썬) 기술을 배우려고합니다. 현재, 나는 북극의 쌍방향 인구지도를 만들기 위해 노력하고있다. 나는에서 Alaskan Census 데이터를 다운로드 받았는데,이 인구 통계는 인구를 FIPS에서 인구 조사로 나눈 값입니다 (즉, Aleutians East Borough의 Akutan City 인 0201301090). FIPS를 Lat Lon으로 변환하거나 FIPS에서 파이썬으로 변환하는 방법이 있습니까?센서스 FIPS에서 Lat Lon으로 변환하려면 어떻게해야합니까?

답변

0

예시에있는 장소 (01090 부분)의 FIPS 코드는 센서스 국에서 오래 전에 사용하지 않는 스타일 (FIPS 55.3)로되어있어 좋은 데이터 소스를 찾기 란 까다 롭습니다. 센서스 국에서 멋진 GIS 라이브러리와 큰 shp 파일을 많이 보았습니다. 그러나 센서스 블록 및 트랙과 거의 가까워졌지만 FIPS를 추적 할만한 충분한 데이터가 없었습니다.

그러나 지리적 명칭에 대한 미국위원회는 여전히이 형식을 사용하는 유용한 데이터베이스 here을 가지고 있음을 발견했습니다.

페이지 하단의 "연방 코드가있는 상태 파일"섹션에서 알래스카 파일을 다운로드하면 파이썬의 내장 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