ShapelyとFionaをご覧ください。Fionaは、gdalのラッパーで、空間ファイルのインポートとエクスポートを簡単にします。Shapelyはジオメトリ機能を提供します。これはあなたにアイデアを与える非常に簡単な例です。ポリゴン属性をそのポリゴン内のすべてのポイントに結合します。
私が使用したサンプルデータは、これらのポリゴンとこれらのポイントです。
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コードを削除して、単純なpython関数にそれを取り除くのは、それほど難しくないはずです。fTools
doSpatialJoin.py
compute()