我正在尝试运行以下代码,使用geopy包执行地理编码操作。
我想对9万个地址进行地理编码,但是我遇到了超时问题。虽然使用了此功能,但这是社区中用户的建议。
我的另一个想法是从nominatim创建docker容器。这样,我就可以完成所有需要的地理编码,而不会受到公共API的限制。
要创建docker,我使用了这个peterevans/nominatim镜像,可以在这里找到(https://hub.docker.com/r/peterevans/nominatim/)。然而,我没有找到在脚本中如何更改以从我的容器进行地理编码的方法。当我尝试更改提供程序参数时,它会出现错误,并说我只能使用包的参数。
有人能帮我吗?或者指向另一个可能的解决方案?
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)
我想对9万个地址进行地理编码,但是我遇到了超时问题。虽然使用了此功能,但这是社区中用户的建议。
我的另一个想法是从nominatim创建docker容器。这样,我就可以完成所有需要的地理编码,而不会受到公共API的限制。
要创建docker,我使用了这个peterevans/nominatim镜像,可以在这里找到(https://hub.docker.com/r/peterevans/nominatim/)。然而,我没有找到在脚本中如何更改以从我的容器进行地理编码的方法。当我尝试更改提供程序参数时,它会出现错误,并说我只能使用包的参数。
有人能帮我吗?或者指向另一个可能的解决方案?