aquí va un punto de partida en Python usando un json que saqué de este recorridode brol:
https://gist.githubusercontent.com/anonymous/8db8ad5c32b6b85d7f9e0bf18898d0db/raw/2e83c93047bab7a727f1aefa2561861c7a6323ec/map.geojson el json lo guardé en "aire_brol.json" (adjunto) hay que ejecutar "datos_aire.py" (adjunto) en el plot no hay un mapa detrás, porque no lo se hacer todavía :) pero se exploran las ideas de redondear y del promedio como tienen ya avanzada la parte de hacer el plot en el mapa online. lo que debería sel útil de este código son estas tres listas: x_map=[] y_map=[] p_map=[] x_map y y_map tienen las columnas x y y de cada punto ÚNICO del recorrido p_map es la columna con la concentración p26 para cada punto único pienso en este código como un paso para procesar los datos del sensor antes de ir al heatmap. al ejecutar este script de python deberían ver esto: [image: Imágenes integradas 1]
aire_brol.json
Description: application/json
import numpy as np
import matplotlib.pyplot as plt
import json
#cargar archivo de json con datos
#crear un array con coordenadas y pm25 llamado dataset
with open('aire_brol.json') as json_data:
j = json.load(json_data)
#print type(j['features'])
#print len(j['features'])
dataset=[]
for medicion in j['features']:
#print medicion
coord=[]
coord.append([medicion['geometry']['coordinates'][0],medicion['geometry']['coordinates'][1], medicion['properties']['pm25']])
dataset.append(coord[0])
dataset=np.array(dataset)
#redondear las coordenadas de dataset
#ajustar los decimales en "dec"
dec=4 #numero de decimales de precision de las coordenadas
dataset[:,0]=np.around(dataset[:,0],dec) #redondear los datos x
dataset[:,1]=np.around(dataset[:,1],dec) #redondear los datos y
#buscar posiciones repetidas y guardarlas en "zet"
pos=[(x[0],x[1]) for x in dataset]
zet=set(tuple(i) for i in pos)
#sacar la media de las coordenadas repetidas
#guardar x,y,pm25 en diferentes listas
x_map=[]
y_map=[]
p_map=[]
for position in zet:
heatid=[]
for x in dataset:
if x[:2][0]==position[0]:
heatid.append(x[2])
x_map.append(position[0])
y_map.append(position[1])
p_map.append(np.mean(heatid))
#hacer un plot
plt.scatter(x_map, y_map, marker="s", edgecolors="face", s=50, c=p_map, alpha=0.5)
plt.show()
_______________________________________________ unloquer mailing list [email protected] https://lists.aktivix.org/mailman/listinfo/unloquer

