3

この質問は、SOのGISセクションにも投稿しました。これがむしろ「純粋な」Pythonの質問であるかどうかわからないので、ここでももう一度質問します。

ArcGISを使用せずにラスターから標高データを取得した経験がある人はいないかと思いましたが、Pythonlistまたはdict

タプルのリストとしてXYデータを取得します。

リストをループするか、関数またはクラスメソッドに渡して、xyペアに対応する標高を取得したいと思います。

私はこのトピックについていくつかの調査を行いましたが、gdalAPIは有望に聞こえます。誰かが私に物事、落とし穴、サンプルコードについて行く方法をアドバイスできますか?別のオプション?

あなたの努力に感謝します、LarsVegas

4

4 に答える 4

2

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"
}

無料版は 1 日あたり 2500 リクエストに制限されていることに注意してください。

于 2012-07-16T13:52:14.210 に答える
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"]))
于 2013-10-10T18:44:56.087 に答える
0

Google Elevation API のラッパーである高度計をご覧ください。

于 2013-03-28T08:02:00.837 に答える
-1

これは、私が作成したもう 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)
于 2016-07-30T12:32:43.083 に答える