【发布时间】:2019-07-09 00:27:37
【问题描述】:
我正在尝试运行以下代码以使用 geopy 包执行地理编码。
import geopandas as gpd
import pandas as pd
import os
from time import sleep
from geopy.geocoders import Nominatim
end = pd.read_csv ('/home/hammer/transfer/coord.csv', sep=';')
from geopy.exc import GeocoderTimedOut
def do_geocode(coor):
try:
return geopy.geocode(coor)
except GeocoderTimedOut:
return do_geocode(coor)
coor = gpd.tools.geocode(end["address"],
provider = "nominatim", user_agent="gis", country_bias="Brazil", timeout=5)
我想对 90.000 个地址进行地理编码,但我遇到了超时问题。即使使用了上面的这个功能,这里也是来自社区的用户建议。
我认为另一种方法是从 nominatim 创建一个容器 docker。这样我就可以根据需要完成尽可能多的地理编码,而不会受到公共 API 的限制。
为了创建 docker,我使用了这个 peterevans/nominatim 图像,可在此处获得 (https://hub.docker.com/r/peterevans/nominatim/)。但是,我还没有找到应该如何更改脚本以从容器中进行地理编码的任何地方。当我尝试更改提供程序参数时,它会出错并说我只能使用包的参数。
有人可以帮我解决这个问题吗?或者指出另一个可能的解决方案?
【问题讨论】:
标签: python docker gis geocode nominatim