GeoJSON을 Python 객체로 변환 하시겠습니까? [닫은]


24

사이트, geoJSON 및 Python을 처음 사용합니다.

내 목표는 geoJSON 데이터가있는 파일을 읽고 파이썬 스크립팅을 사용하는 응용 프로그램에서 사용할 모양을 생성하는 데 사용하는 것입니다. 파이썬은 그것을 읽고 약간의 조작을 할 수 있습니다. 몇 가지 예를 찾았지만 geoJSON 계층 구조를 올바르게 통과하지 않습니다.

geoJSON 데이터 파일에서 형상 데이터를 추출하는 방법에 대한 라이브러리 또는 지침을 찾고 있습니다. 다시 말해, "피처 목록 가져 오기 ..."라고 말하고 싶습니다. 그런 다음 각 피처에 대해 지오메트리를 가져 와서 유형을 읽고 좌표를 구합니다. 특정 지오메트리 항목. 기능 목록에서 각 항목에 대해 반복하십시오.

어떤 제안?

답변:


37

json라이브러리를 사용하여 GeoJSON 파일을로드하면 기능 목록 dict이 포함 된 항목이 포함 된 항목 features이 표시됩니다. 각 기능은 차례로로 구성되며 dict, 무엇보다도 항목이 포함되어 있습니다 geometry. 는 geometryA는 dict항목을 포함 type하고 coordinates. 따라서 GeoJSON 파일을 다음과 같이 탐색 할 수 있습니다.

import json

with open('test.json') as f:
    data = json.load(f)

for feature in data['features']:
    print feature['geometry']['type']
    print feature['geometry']['coordinates']

훌륭한 제안. 이것은 내가하려고했던 것보다 훨씬 쉽습니다. 로드를로드로 변경해야했으며 numpy는 현재 Python 설치에서 라이브러리가 아닙니다. 빠른 답변 감사합니다. 이제 나아갈 수있을 것입니다.
Mike Weber

1
Numpy는 기술적으로 필요하지 않습니다. feature [ 'geometry'] [ 'coordinates'] (위)는 단지 파이썬리스트입니다.
sgillies

@sgillies : 좋은 지적입니다. Sean. numpy혼란을 피하기 위해 사용을 제거했습니다 .
Jake

7

내 lib PyGeoj 는 geojson 파일 판독기 및 작성기로 특별히 파일 내용을 속성이있는 객체로 변환하는 간단한 API를 사용하므로 사전을 직접 처리 할 필요가 없습니다. 또한 전체 기능 모음 또는 각 기능에 대한 bbox 계산 및 추가와 같은 편리한 방법이 있습니다.

예를 들어 다음 코드는 포스터가 요청한 작업을 수행합니다.

import pygeoj
testfile = pygeoj.load("test.geojson")
for feature in testfile:
    print feature.geometry.type
    print feature.geometry.coordinates

라이브러리는 _geo_interface_프로젝트의 Github 페이지에있는 문서에서 볼 수 있듯이 프로토콜을 통해 다른 라이브러리에서 오브젝트를 가져 오거나 내보낼 수 있습니다 .


도서관은 훌륭합니다. 오늘 막 사용하기 시작했습니다.
ziggy

파이썬 구문 분석 geojson으로 웹 매핑을 시작하려면 가장 좋은 소프트웨어는 무엇입니까?
ziggy

1
GeoJson으로 작업하는 웹 앱의 경우 Leaflet Javascript 라이브러리를 사용하십시오. 다음은 좋은 예제 스레드입니다. gis.stackexchange.com/questions/68489/…
의견보기

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.