[英]OSM API Overpass
我正在嘗試拉動在給定國家/地區輸入 OSM 的所有冰川,但我注意到我只拉動了可用冰川的一小部分。 例如,當我運行以下代碼時:
import overpass from shapely.geometry
import shape, Polygon
api = overpass.API()
api = overpass.API(endpoint="https://overpass.myserver/interpreter")
api = overpass.API(timeout=600)
query = 'area["ISO3166-1"="IS][admin_level=2];(way["natural"="glacier"](area););'
result = api.get(query, verbosity='geom')
import geopandas
results = geopandas.GeoDataFrame.from_features(result['features'])
結果有 132 個特征,如下所示:
我知道這缺少一個大型冰川(Vatnajökull),它確實出現在 OSM 中的 osm id 406429 下。
關於為什么我的查詢沒有出現這種情況的任何想法?
在編寫 Overpass 查詢時,OSM Wiki 標記文檔是一個有用的起點。 這是natural=glacier的文檔。 標簽/值基於文檔應用於節點和封閉方式,並且似乎也應用於基於社區偏好的關系(即使在文檔中不鼓勵這樣做)。
要查詢節點、方式和關系,可以使用縮寫nwr
代替 union (node[natural=glacier];way[natural=glacier];relation[natural=glacier];);
. 作為旁注,您可以刪除admin_level=2
因為 ISO3166-1 代碼是唯一標識符。
這是 Python 請求:
query = 'area["ISO3166-1"="IS"];nwr[natural=glacier](area);out geom;'
response = api.get(query)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.