python - 如何从经纬度过滤国家?
问题描述
我有一个 200 万行的 CSV。只有纬度和经度两列。我想过滤一个国家。例如,我只想过滤印度的经纬度。
解决方案
有两种方法可以从经纬度查找国家/地区,即在线和离线。我将在下面解释两者:
在线的
您需要安装一个名为geopy
pip install geopy
以下代码将让您使用 OpenStreetMap 地理编码 Web 服务对纬度和经度进行反向地理编码
from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="test_app") # enter a name for your app
location = geolocator.reverse("27.1751, 78.0421")
print(location.raw['address']['country'])
但是,它并不可靠。
离线
更好的选择是使用离线地理编码reverse-geocode
pip install reverse-geocode
这是示例代码
import reverse_geocode
coords = (27.1751, 78.0421), (28.5245, 77.1855)
reverse_geocode.search(coords)
推荐阅读
- python - 矩阵相关给出(nan)值?
- tensorflow - 使用 @tffunction 的 Tensorflow2 警告
- javascript - 如何验证 vue 中的第一个数字不为零?
- c# - 如何使圆形边框和背景颜色完全适合 TextBlock 中的文本范围?
- mysql - 在 MySQL 中查询同一张表时需要帮助
- vue.js - Vue App中main.js & App.vue的作用是什么
- python-3.x - 如何在python中编写嵌套的switch case?
- c# - 无法使用我的自定义 userControl 保存表单
- excel - 是否可以缩短录制的宏?
- amazon-web-services - 我可以在 S3 中保存 Amazon Lex 日志和指标数据吗?