Ce que j'essaie de faire, c'est d'extraire les données d'altitude d'une API google maps le long d'un chemin spécifié par les coordonnées de latitude et de longitude comme suit:
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()
Cela me donne une donnée qui ressemble à ceci:
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"',
'}']
lors de la mise en tant que DataFrame, voici ce que j'obtiens:
pd.read_json(elevations)
et voici ce que je veux:
Je ne sais pas si cela est possible, mais ce que je recherche principalement, c'est un moyen de pouvoir rassembler les données d'élévation, de latitude et de longitude dans un cadre de données pandas (il n'est pas nécessaire d'avoir des en-têtes mutilines fantaisie).
Si quelqu'un peut aider ou donner des conseils sur l'utilisation de ces données, ce serait formidable! Si vous ne pouvez pas dire que je n'ai pas beaucoup travaillé avec les données json auparavant ...
ÉDITER:
Cette méthode n'est pas très attrayante mais semble fonctionner:
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
finit par dataframe avec des colonnes latitude, longitude, altitude