2012-07-16 34 views
4

我也在SO的GIS部分发布了这个问题。由于我不确定这是不是一个'纯粹'的python问题,我还会在这里再次提出。栅格:如何使用python获取lat/long的高程?

我不知道是否有人在从光栅获得的高程数据,而不使用ArcGIS一些经验,而得到的信息为Python listdict

我得到我的XY数据作为元组列表。

我想遍历列表或将其传递给函数或类方法以获取xy对的相应高程。

我做了一些关于该主题的研究,并且gdal API听起来很有希望。任何人都可以告诉我如何去处理事情,陷阱,示例代码?其他选项?

感谢你的努力,LarsVegas

回答

3

我建议您查看Google Elevation API

这是非常简单的使用方法:

http://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&sensor=true_or_false

{ 
    "results" : [ 
     { 
     "elevation" : 1608.637939453125, 
     "location" : { 
      "lat" : 39.73915360, 
      "lng" : -104.98470340 
     }, 
     "resolution" : 4.771975994110107 
     } 
    ], 
    "status" : "OK" 
} 

注意,免费版本限制每天2500个请求。

+1

其实我想用我自己的高程数据(其中有0.5x0.5m的分辨率)。 – LarsVegas 2012-07-16 14:02:11

1

我们用这个代码来获得提升对于给定的纬度/经度(包装注意:我们只要求打印抬高,和圆形lat和长值)。

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"])) 
相关问题