微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

没有外部API的情况下如何通过坐标获取国家名称?

如何解决没有外部API的情况下如何通过坐标获取国家名称?

我正在寻找什么?

我正在寻找一个具有方法/模块的python库,该方法/模块无需连接外部API即可获取坐标并返回国家/地区名称

为什么?

我有一个熊猫行df,其中有很多行(更多的是10000),我不想为每行发送请求。

我现在要这样做:

from geopy.geocoders import ArcGIS
...
...
...

geolocator = ArcGIS(scheme='http')

    for index,row in df.iterrows():

        if math.isnan(row['latitude']) or math.isnan(row['longitude']):
            continue
        else:
            try:
                location = geolocator.reverse((row['latitude'],row['longitude']),timeout=30)
                # takes the country
                location = str(location)
                if len(location.split(",")) == 4:
                    country = location.split(",")[3][1:]
                    df.at[index,'country'] = country

如果可以针对所有行发送一个请求,则仍然可以

解决方法

似乎没有现成的库,但是在没有外部API的情况下实现此目的的一种可能解决方案是:

,

如果可以针对所有行发送一个请求,则仍然可以

我认为这是依赖于API的,并且我认为没有人会允许这样的东西(尽管如此,最后一个词取决于每个API的文档)。

话虽如此,但我不明白您如何避免每次输入一个请求。

一种可能性是评估所需的信息粒度,然后决定是否可以使用相同的结果来填充多行,但这又需要做一些额外的工作。 / p>

我曾经不得不做完全相同的事情,尽管这有点乏味,但我能找到的最佳解决方案是提出所有请求。这里有一些想法可能会有所帮助:

  1. 您可以将数据拆分为多个块,以便在出现问题时对其进行管理。
  2. 定期将结果保存到磁盘
  3. 您可以考虑在Google Colab或Kaggle上运行代码,因此,您不必依赖自己的PC来运行,也不必在任务完成时中断连接(我发现这是一个巨大的优势-我不希望这样做)不想依靠我的电脑或完成耗时的任务;))。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。