내가하려는 것은 다음과 같이 위도 및 경도 좌표로 지정된 경로를 따라 Google Maps API에서 고도 데이터를 추출하는 것입니다.
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()
이것은 다음과 같은 데이터를 제공합니다.
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"',
'}']
DataFrame으로 넣을 때 여기에 내가 얻는 것이 있습니다.
pd.read_json(elevations)
그리고 여기 내가 원하는 것입니다 :
이것이 가능한지 확실하지 않지만 주로 내가 찾고있는 것은 판다 데이터 프레임에 고도, 위도 및 경도 데이터를 함께 넣을 수있는 방법입니다 (멋진 mutiline 헤더가 필요하지 않음).
이 데이터로 작업하는 데 도움이되거나 조언을 해줄 수 있다면 좋을 것입니다! 이전에 json 데이터를 많이 사용하지 않았다고 말할 수 없다면 ...
편집하다:
이 방법은 그다지 매력적이지는 않지만 작동하는 것 같습니다.
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
열 위도, 경도, 고도를 가진 데이터 프레임을 종료합니다.