我也在SO的GIS部分发布了这个问题。由于我不确定这是否是一个“纯粹的”蟒蛇问题,我也在这里再问一遍。
我想知道是否有人在使用栅格而不使用ArcGIS 获取高程数据方面有经验,而是以python list
或dict
的形式获取信息?
我将我的XY数据作为元组列表。
我想循环遍历列表或将其传递给函数或类方法以获取xy对的相应高程。
我对该主题进行了一些研究, gdal API听起来很有希望。任何人都可以建议我如何处理事情,陷阱,示例代码?其他选择?
感谢您的努力,LarsVegas
答案 0 :(得分:2)
我建议您查看Google Elevation API
使用起来非常简单:
{
"results" : [
{
"elevation" : 1608.637939453125,
"location" : {
"lat" : 39.73915360,
"lng" : -104.98470340
},
"resolution" : 4.771975994110107
}
],
"status" : "OK"
}
请注意,免费版本每天限制为2500个请求。
答案 1 :(得分:1)
我们使用此代码获取给定纬度/经度的高程(注意:我们只要求打印高程,以及舍入的纬度和长值)。
import urllib.request
import json
lati = input("Enter the latitude:")
lngi = input("Enter the longitude:")
# url_params completes the base url with the given latitude and longitude values
ELEVATION_BASE_URL = 'http://maps.googleapis.com/maps/api/elevation/json?'
URL_PARAMS = "locations=%s,%s&sensor=%s" % (lati, lngi, "false")
url=ELEVATION_BASE_URL + URL_PARAMS
with urllib.request.urlopen(url) as f:
response = json.loads(f.read().decode())
status = response["status"]
result = response["results"][0]
print(float(result["elevation"]))
print(float(result["location"]["lat"]))
print(float(result["location"]["lng"]))
答案 2 :(得分:0)
查看altimeter Google Elevation API的包装器
答案 3 :(得分:-1)
这是我建立的另一个不错的API:https://algorithmia.com/algorithms/Gaploid/Elevation
import Algorithmia
input = {
"lat": "50.2111",
"lon": "18.1233"
}
client = Algorithmia.client('YOUR_API_KEY')
algo = client.algo('Gaploid/Elevation/0.3.0')
print algo.pipe(input)