对地址表进行地理编码:将Fiona集合读取到Python字典需要花费大量时间

时间:2014-03-12 13:58:32

标签: python geocoding fiona

我将一个点形状文件读入Fiona集合。 shapefile包含920万个点。这些要点包括文字地址和邮政编码。我有另一张表,大约有5000万个地址。我想将点的坐标加入到这个表中。

我正在尝试将Fiona集合读入Python字典,如果它们不符合条件,则排除一些记录。我的处理器运行速度为3.2Ghz,我有16Gb的RAM。阅读花了一个多小时。我想结果字典会太大而无法使用。按照我的方法:

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

总的来说,我想要的是使用相应的坐标对地址表进行地理编码。什么是一种简单的方法呢?

0 个答案:

没有答案