Apa yang saya coba lakukan adalah mengekstrak data ketinggian dari Google maps API di sepanjang jalur yang ditentukan oleh koordinat lintang dan bujur sebagai berikut:
from urllib2 import Request, urlopen
import json
path1 = '42.974049,-81.205203|42.974298,-81.195755'
request=Request('http://maps.googleapis.com/maps/api/elevation/json?locations='+path1+'&sensor=false')
response = urlopen(request)
elevations = response.read()
Ini memberi saya data yang terlihat seperti ini:
elevations.splitlines()
['{',
' "results" : [',
' {',
' "elevation" : 243.3462677001953,',
' "location" : {',
' "lat" : 42.974049,',
' "lng" : -81.205203',
' },',
' "resolution" : 19.08790397644043',
' },',
' {',
' "elevation" : 244.1318664550781,',
' "location" : {',
' "lat" : 42.974298,',
' "lng" : -81.19575500000001',
' },',
' "resolution" : 19.08790397644043',
' }',
' ],',
' "status" : "OK"',
'}']
ketika dimasukkan ke dalam sebagai DataFrame, inilah yang saya dapatkan:
pd.read_json(elevations)
dan inilah yang saya inginkan:
Saya tidak yakin apakah ini mungkin, tetapi yang terutama saya cari adalah cara untuk dapat menggabungkan data ketinggian, lintang dan bujur dalam bingkai data panda (tidak harus memiliki tajuk mutiline yang mewah).
Jika ada yang bisa membantu atau memberikan beberapa saran tentang bekerja dengan data ini, itu akan sangat bagus! Jika Anda tidak tahu bahwa saya belum banyak bekerja dengan data json sebelumnya ...
EDIT:
Metode ini tidak terlalu menarik tetapi tampaknya berhasil:
data = json.loads(elevations)
lat,lng,el = [],[],[]
for result in data['results']:
lat.append(result[u'location'][u'lat'])
lng.append(result[u'location'][u'lng'])
el.append(result[u'elevation'])
df = pd.DataFrame([lat,lng,el]).T
Akhirnya kerangka data memiliki kolom lintang, bujur, ketinggian