如何检查水体是否在给定坐标附近 常常

问题描述

我正在做一个项目,我想通过机器学习识别卫星图像上的水体。 我仍在研究如何生成我的卫星图像数据集 + 同一区域的水面罩。

我想到的程序是:

  1. 使用 country borders of Natural Earth(使用 Numpy 和 Geopandas)在欧洲大陆内绘制一个随机坐标(经度、纬度)
  2. 使用 OpenStreetMapMapbox Vector Tiles API 检查此坐标周围的指定范围内是否存在某个水体。如果没有返回1。
  3. 使用 Mapbox Raster Tiles API
  4. 生成此位置的卫星图像
  5. 使用 Mapbox Static Tiles API 和仅显示水的自定义 MapBox 样式生成此位置的水体掩码。

目前我最关心的是第 2 步。因为我不知道在哪里可以轻松获取信息并且没有请求限制的问题。
我想制作一个包含大约 100000 个图像对的数据集,由于水陆比较低,我预计 2. 步骤会有更多请求。

MapBox Vector Tiles API 的限制为每月 200000 次请求。(see here)
Overpass API 的限制是每天大约 10000 个请求。
我找到了 OSM Water Layer,但我不知道如何使用它并检查指定区域是否有水。

有谁知道我如何才能做到第 2 步。?我正在使用 Python。

解决方法

最有效的方法可能是使用 Osm2pgsql 或 ImpOsm 将特定区域的 OSM 数据导入本地 postGIS 数据库并在那里进行分析。