Shapely 와 Fiona를 살펴볼 수 있습니다 . Fiona는 공간 파일 가져 오기 및 내보내기를 쉽게하기 위해 gdal의 래퍼입니다. 지오메트리 기능을 제공합니다. 다음은 아이디어를 제공하는 매우 간단한 예입니다. 다각형 속성을 해당 다각형 내의 모든 점에 결합합니다.
내가 사용한 예제 데이터는 이러한 다각형 및 이러한 점 .
import fiona
from shapely.geometry import shape
from copy import deepcopy
with fiona.open("planning_neighborhoods.shp", "r") as n:
with fiona.open("Schools_Private_Pt.shp", "r") as s:
# create a schema for the attributes
outSchema = deepcopy(s.schema)
outSchema['properties'].update(n.schema['properties'])
with fiona.open ("Schools_withNbhd.shp", "w", s.driver, outSchema, s.crs) as output:
for school in s:
for neighborhood in n:
# check if point is in polygon and set attribute
if shape(school['geometry']).within(shape(neighborhood['geometry'])):
school['properties']['neighborho'] = neighborhood['properties']['neighborho']
# write out
output.write({
'properties': school['properties'],
'geometry': school['geometry']
})
Join attributes by location
에서 실제 명령 의 소스 코드 , 특히 메소드 를 살펴 보는 것이 좋습니다 . UI 코드를 제거하고 일반 파이썬 함수로 제거하기가 너무 어렵지 않아야합니다.fTools
doSpatialJoin.py
compute()