ポイントシェープファイルを Fiona コレクションに読み込みました。シェープファイルには、920 万点のポイントが含まれています。ポイントには、テキストの住所と郵便番号が含まれます。約500万のアドレスを持つ別のテーブルがあります。ポイントの座標をこのテーブルに結合したい。
Fiona コレクションを Python ディクショナリに読み込もうとしていますが、条件を満たさないレコードの一部を除外しています。私のプロセッサは 3.2Ghz で動作し、16Gb の RAM を搭載しています。読み取りには 1 時間以上かかりました。結果の辞書は大きすぎて役に立たないと思います。私のアプローチに従って:
import fiona
import numpy
fiona_collection = fiona.open('addresses_points.shp') #the points file has a lot of addresses, most of them are not interesting for me.
mycity_addresses = {}
mycity_postcodes = xrange(1000, 20001) #series of postcodes I do want to read
for i in fiona_collection:
rec = fiona_collection.next()
if int(rec['properties']['Postcode'][:4]) in mycity_postcodes:
mycity_addresses[rec['id']] = rec
全体として、私が望むのは、それぞれの座標で住所のテーブルをジオコーディングすることです。これを行う簡単な方法は何ですか?