From 23b0397c1a23c1f839d199053e2587e8f36fcbd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Camilo=20Gonz=C3=A1lez?= Date: Sun, 15 Sep 2024 21:47:54 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20Primeros=20datos=20de=20aire=20(?= =?UTF-8?q?5min)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aplicaciones/procesador/README.md | 6 + .../procesador/datos/Mapa 7ma - Datos.xlsx | Bin 36532 -> 36479 bytes aplicaciones/procesador/fuente/aplicacion.ts | 12 +- .../procesador/fuente/procesarAire.ts | 161 ++++++++++++++++++ .../fuente/procesarElementosLinea.ts | 15 +- aplicaciones/www/estaticos/datos/aire.json | 1 + aplicaciones/www/estaticos/datos/puntos.json | 2 +- tipos/compartidos.ts | 46 ++--- 8 files changed, 207 insertions(+), 36 deletions(-) create mode 100644 aplicaciones/procesador/fuente/procesarAire.ts create mode 100644 aplicaciones/www/estaticos/datos/aire.json diff --git a/aplicaciones/procesador/README.md b/aplicaciones/procesador/README.md index 1fd74e4..31a8f2b 100644 --- a/aplicaciones/procesador/README.md +++ b/aplicaciones/procesador/README.md @@ -57,6 +57,12 @@ Archivo: **Calles ZAT 7ma v3.xlsx** Exporta `puntos.json` +### Aire + +Archivo: **Puntos Fijos_5 min.xlsx** + +Exporta `aire.json` + ## Habitabilidad y sus dominios ### Calles ZAT 7ma diff --git a/aplicaciones/procesador/datos/Mapa 7ma - Datos.xlsx b/aplicaciones/procesador/datos/Mapa 7ma - Datos.xlsx index 485c9642e3e29b7b8432a20048b32b27a7e9469d..31166d9175134ddc7dc35ca4f8bcc04ea3206866 100644 GIT binary patch delta 15736 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 { const datosRuido = await procesarRuido(); guardarJSON(datosRuido, 'ruido'); + /** Aire */ + const datosAire = await procesarAire(); + guardarJSON(datosAire, 'aire'); + const puntos = await procesarDatosA(); await procesarZat(puntos); - await procesarElementosLinea(puntos); + await procesarElementosLinea(puntos, datosAire); guardarJSON(puntos, 'puntos'); } diff --git a/aplicaciones/procesador/fuente/procesarAire.ts b/aplicaciones/procesador/fuente/procesarAire.ts new file mode 100644 index 0000000..bc43a64 --- /dev/null +++ b/aplicaciones/procesador/fuente/procesarAire.ts @@ -0,0 +1,161 @@ +import { esFecha, esNumero, guardarJSON, mensajes, redondearDecimal } from './utilidades/ayudas'; +import { getXlsxStream } from 'xlstream'; +import { estructuras } from './aplicacion'; +import type { Errata } from './tipos'; +import { Aire, MedicionAire } from '@/tipos/compartidos'; + +export default async function procesarAire(): Promise { + const { aire } = estructuras; + const ruta = `./datos/${aire.archivo}.xlsx`; + const flujo = await getXlsxStream({ + filePath: ruta, + sheet: aire.nombreHoja, + withHeader: true, + ignoreEmpty: true, + }); + + let numeroFila = 2; + let primeraFilaProcesada = false; + const errata: Errata[] = []; + /** + * ID, time, Fecha corta, + * pm25, ebc np_NS, + * DIA, UBICACIÓN, + * MOVIMIENTO, HORA DESDE, HORA HASTA, + * AUTOS, BUS VERDE, BUS AZUL, BUS NARANJA, BUS BLANCO, DUALES, BUS ROJO, BUS AMARILLO, BUS GRIS, + * CAMION PEQUEÑO, CAMION GRANDE, MOTOS, BICICLETAS, TOTAL MIXTOS, TOTAL PESADOS, + * HORA, ID_MEDICIÓN, Lat, Lon + */ + return new Promise((resolver) => { + const datos: Aire = {}; + + flujo.on('data', async (obj) => { + if (!primeraFilaProcesada) { + // console.log(compararListas(Object.keys(raw.obj), ruido.llaves)); + primeraFilaProcesada = true; + } + + const [ + id, + fechaHora, + fecha, + pm25, + ebc, + npNS, + dia, + ubicacion, + mov, + horaA, + horaB, + autos, + busVerde, + busAzul, + busNaranja, + busBlanco, + duales, + busRojo, + busAmarillo, + busGris, + camionPeq, + comionGrande, + motos, + bici, + totalMixtos, + totalPesados, + hora, + idMed, + lat, + lon, + ] = obj.formatted.arr; + + /** Iniciar objeto para guardar datos del punto */ + if (!datos[ubicacion]) { + datos[ubicacion] = { + promedios: { + pm25: 0, + ebc: 0, + npNs: 0, + }, + mediciones: [], + }; + } + + if (fechaHora && esFecha(fechaHora)) { + const mediciones: MedicionAire = [fechaHora, [null, null, null]]; + + if (pm25) { + if (esNumero(pm25)) { + mediciones[1][0] = +pm25; + } else { + errata.push({ fila: numeroFila, error: `El valor de pm25 no es un número: ${pm25}` }); + } + } + + if (ebc) { + if (esNumero(ebc)) { + mediciones[1][1] = +ebc; + } else { + errata.push({ fila: numeroFila, error: `El valor de ebc no es un número: ${ebc}` }); + } + } + + if (npNS) { + if (esNumero(npNS)) { + mediciones[1][2] = +npNS; + } else { + errata.push({ fila: numeroFila, error: `El valor de np_NS no es un número: ${npNS}` }); + } + } + + datos[ubicacion].mediciones.push(mediciones); + } else { + errata.push({ fila: numeroFila, error: `Esta fecha no es válida: ${fechaHora}` }); + } + + numeroFila++; + }); + + flujo.on('close', () => { + if (errata.length) guardarJSON(errata, 'errataAmbiente'); + + for (const nombrePunto in datos) { + let sumaPm25 = 0; + let totalMedicionesPm25 = 0; + let sumaEbc = 0; + let totalMedicionesEbc = 0; + let sumaNpNs = 0; + let totalMedicionesNpNs = 0; + + datos[nombrePunto].mediciones.forEach((medicion) => { + const [pm25, ebc, npNS] = medicion[1]; + + if (pm25) { + sumaPm25 += pm25; + totalMedicionesPm25++; + } + + if (ebc) { + sumaEbc += ebc; + totalMedicionesEbc++; + } + + if (npNS) { + sumaNpNs += npNS; + totalMedicionesNpNs++; + } + }); + + datos[nombrePunto].promedios.pm25 = redondearDecimal(sumaPm25 / totalMedicionesPm25); + datos[nombrePunto].promedios.ebc = redondearDecimal(sumaEbc / totalMedicionesEbc); + datos[nombrePunto].promedios.npNs = redondearDecimal(sumaNpNs / totalMedicionesNpNs); + } + + mensajes.exito(`Datos de Ambiente procesados`); + resolver(datos); + }); + + flujo.on('error', (error) => { + throw new Error(JSON.stringify(error, null, 2)); + }); + }); +} diff --git a/aplicaciones/procesador/fuente/procesarElementosLinea.ts b/aplicaciones/procesador/fuente/procesarElementosLinea.ts index 7b04b07..b451601 100644 --- a/aplicaciones/procesador/fuente/procesarElementosLinea.ts +++ b/aplicaciones/procesador/fuente/procesarElementosLinea.ts @@ -1,11 +1,11 @@ import { getXlsxStream } from 'xlstream'; import { estructuras } from './aplicacion'; import slugificar from 'slug'; -import type { ElementosPorPunto, Punto } from '@/tipos/compartidos'; +import type { Aire, Punto } from '@/tipos/compartidos'; import type { Errata } from './tipos'; import { esNumero, mensajes } from './utilidades/ayudas'; -export default async (puntos: Punto[]): Promise => { +export default async (puntos: Punto[], aire: Aire): Promise => { const { linea } = estructuras; const ruta = `./datos/${linea.archivo}.xlsx`; const flujo = await getXlsxStream({ @@ -20,7 +20,6 @@ export default async (puntos: Punto[]): Promise => { return new Promise((resolver) => { const errata: Errata[] = []; - const elementosProcesados: ElementosPorPunto = {}; flujo.on('data', async (obj) => { if (!primeraFilaProcesada) { @@ -28,7 +27,7 @@ export default async (puntos: Punto[]): Promise => { primeraFilaProcesada = true; } - const { nombre, latitud, longitud, puntoRuido, ilustracion } = obj.formatted.obj; + const { nombre, latitud, longitud, puntoRuido, ilustracion, idAire } = obj.formatted.obj; const slug = slugificar(nombre); const punto = puntos.find((punto) => punto.slug == slug); @@ -50,6 +49,14 @@ export default async (puntos: Punto[]): Promise => { } } + if (idAire) { + if (aire[idAire]) { + punto.idAire = idAire; + } else { + errata.push({ fila: numeroFila, error: `El punto ${idAire} no existe en los datos de aire` }); + } + } + /** Coordenadas de los puntos */ if (latitud && longitud && esNumero(latitud) && esNumero(longitud)) { punto.lat = latitud; diff --git a/aplicaciones/www/estaticos/datos/aire.json b/aplicaciones/www/estaticos/datos/aire.json new file mode 100644 index 0000000..b48c6b5 --- /dev/null +++ b/aplicaciones/www/estaticos/datos/aire.json @@ -0,0 +1 @@ +{"KR7XCL52":{"promedios":{"pm25":88.23,"ebc":22.85,"npNs":86066.78},"mediciones":[["2023-09-20 17:10",[null,null,null]],["2023-09-20 17:15",[17.94333333333333,4.467925000000001,8624.42382]],["2023-09-20 17:20",[21.816666666666666,5.963598666666667,10454.27542]],["2023-09-20 17:25",[25.083333333333336,9.124731,22215.24836]],["2023-09-20 17:30",[28.396666666666665,10.620892333333334,20531.76726]],["2023-09-20 17:35",[20.253333333333334,5.514432000000001,10691.124160000001]],["2023-09-20 17:40",[27.743333333333332,10.648253000000002,14934.78268]],["2023-09-20 17:45",[28.25666666666666,10.661676666666668,47022.66336]],["2023-09-20 17:50",[34.019999999999996,12.077065000000001,129639.58758]],["2023-09-20 17:55",[42.699999999999996,21.682892000000002,98008.20884]],["2023-11-03 16:15",[null,null,null]],["2023-11-03 16:20",[190.65666666666667,109.044551,152365.26056]],["2023-11-03 16:25",[118.53333333333333,44.636669,223340.80483999997]],["2023-11-03 16:30",[117.80999999999999,45.65548166666667,108914.5792]],["2023-11-03 16:35",[121.07666666666664,45.63967100000001,135256.40786]],["2023-11-03 16:40",[78.91333333333333,16.706510333333334,44828.976859999995]],["2023-11-03 16:45",[133.63,63.31273666666666,140729.59948]],["2023-11-03 16:50",[100.44999999999999,25.585765333333335,239391.98961999998]],["2023-11-03 16:55",[369.9033333333333,51.89150633333334,107992.10634000001]],["2023-11-03 17:00",[113.95999999999997,21.543522,122476.83230000001]],["2023-11-03 17:05",[80.49999999999999,11.595327333333334,73834.82879999999]],["2023-11-03 17:10",[74.17666666666666,12.424643,39626.82676]],["2023-11-03 17:15",[102.55,22.162833,101552.604]],["2023-11-03 17:20",[147.20999999999998,20.13144466666667,210795.84875999996]],["2023-11-03 17:25",[70.93333333333332,8.576901666666666,34557.4885]],["2023-11-03 17:30",[89.15666666666667,15.478001,78163.512]],["2023-11-03 17:35",[79.33333333333333,12.017005000000001,127464.85376]],["2023-11-03 17:40",[123.2,24.287519666666668,52224.573019999996]],["2023-11-03 17:45",[76.16,10.261764333333334,95087.04752]],["2023-11-03 17:50",[57.959999999999994,4.260615333333333,21913.74054]],["2023-11-03 17:55",[66.47666666666666,6.573644,23296.67466]]]},"AK7XCL81":{"promedios":{"pm25":75.51,"ebc":16.01,"npNs":61757.77},"mediciones":[["2023-09-27 07:00",[65.78055555555555,27.70404388888889,113158.33871666668]],["2023-09-27 07:05",[63.14,27.29945166666667,50980.05626]],["2023-09-27 07:10",[52.733333333333334,17.221101333333337,81677.80024000001]],["2023-09-27 07:15",[55.71999999999999,16.177828333333334,65053.08132]],["2023-09-27 07:20",[48.58,13.390787666666668,32626.426759999995]],["2023-09-27 07:25",[42.67666666666666,10.527645333333336,101432.51161999999]],["2023-09-27 07:30",[63.09333333333334,20.068048,104826.23514]],["2023-09-27 07:35",[96.76333333333332,22.744568,82768.87470000001]],["2023-09-27 07:40",[53.94666666666667,15.332111666666668,41989.03858000001]],["2023-09-27 07:45",[50.86666666666666,12.640936,57937.796519999996]],["2023-09-27 07:50",[100.91666666666666,25.449655,282880.1326]],["2023-09-27 07:55",[67.73666666666665,17.02547,63048.85338]],["2023-09-27 08:00",[54.529999999999994,11.331936000000002,33953.787299999996]],["2023-09-27 08:05",[7.839999999999999,9.321850999999999,35060.28258]],["2023-09-27 08:10",[8.006666666666666,7.465740333333334,47132.828839999995]],["2023-09-27 08:15",[null,12.680437,87980.88684]],["2023-09-27 08:20",[null,12.248569666666667,76540.52978]],["2023-09-27 08:25",[null,16.414141333333337,72090.20034000001]],["2023-09-27 08:30",[null,11.599203,58768.572739999996]],["2023-09-27 08:35",[null,16.540293000000002,67831.29698000001]],["2023-09-27 08:40",[null,12.365353,56903.89738]],["2023-09-27 08:45",[null,13.227188333333334,65509.09362]],["2023-09-27 08:50",[null,18.85024166666667,31632.457039999998]],["2023-09-27 08:55",[null,9.359632333333334,61986.15244]],["2023-09-27 09:00",[null,13.921471666666667,40694.25638]],["2023-09-27 09:05",[null,10.222725333333335,72911.01396000001]],["2023-09-27 09:10",[null,13.231115333333332,47317.97614]],["2023-09-27 09:15",[null,10.800764333333333,53182.740739999994]],["2023-09-27 09:20",[null,13.01069,28622.3254]],["2023-09-27 09:25",[null,9.677719333333334,null]],["2023-09-27 09:30",[null,null,null]],["2023-09-27 16:25",[null,31.186488666666662,13010.34408]],["2023-09-27 16:30",[100.19333333333334,28.166317666666668,5702.85052]],["2023-09-27 16:35",[106.88999999999999,24.771824000000002,6562.469799999999]],["2023-09-27 16:40",[164.29,33.657008000000005,1949.3619000000003]],["2023-09-27 16:45",[91.25666666666666,17.352514666666668,8143.89056]],["2023-09-27 16:50",[118.74333333333331,39.86169366666667,9419.963619999999]],["2023-09-27 16:55",[89.90333333333334,18.583924333333336,3624.1280600000005]],["2023-09-27 17:00",[129.80333333333334,54.271961333333344,14817.07628]],["2023-09-27 17:05",[76.27666666666667,19.372327333333335,3283.9791400000004]],["2023-09-27 17:10",[60.970000000000006,9.896835666666666,1767.4390600000002]],["2023-09-27 17:15",[110.27333333333334,63.357679000000005,4719.54622]],["2023-09-27 17:20",[86.38,22.138937333333335,7384.518679999999]],["2023-09-27 17:25",[76.16,13.892211666666665,2255.99778]],["2023-09-27 17:30",[54.483333333333334,5.169985333333334,1752.9933400000002]],["2023-09-27 17:35",[71.51666666666667,16.651404,1731.1280600000002]],["2023-09-27 17:40",[67.69,14.482853,3342.3485199999996]],["2023-09-27 17:45",[115.47666666666665,43.701504,3341.46886]],["2023-09-27 17:50",[73.73333333333333,21.266784,1739.78324]],["2023-09-27 17:55",[65.91666666666666,14.228984000000002,1883.48704]],["2023-09-28 07:05",[null,null,null]],["2023-09-28 07:10",[38.59333333333333,11.135380666666666,67337.0355]],["2023-09-28 07:15",[79.21666666666665,30.54880033333334,48123.56279999999]],["2023-09-28 07:20",[56.67666666666666,12.99298,66781.86910000001]],["2023-09-28 07:25",[61.32000000000001,14.769934666666666,78425.06577999999]],["2023-09-28 07:30",[265.15999999999997,81.14593666666667,197029.35004]],["2023-09-28 07:35",[75.41333333333333,16.788566666666668,174983.02244000003]],["2023-09-28 07:40",[48.55666666666666,7.210382666666668,77080.46424]],["2023-09-28 07:45",[184.82333333333332,31.910134666666664,335253.7407]],["2023-09-28 07:50",[78.51666666666667,13.999729333333335,89248.55626]],["2023-09-28 07:55",[134.75,20.181828333333335,148309.99112]],["2023-09-28 08:00",[52.15,5.6182793333333345,76033.47214]],["2023-09-28 08:05",[124.48333333333332,22.61115266666667,66865.41928]],["2023-09-28 08:10",[120.77333333333334,20.91930866666667,82509.16238]],["2023-09-28 08:15",[71.53999999999999,9.158534,126439.71907999998]],["2023-09-28 08:20",[72.14666666666668,10.456394666666666,86310.92588]],["2023-09-28 08:25",[179.27,13.167102666666665,98875.89494]],["2023-09-28 08:30",[49.11666666666666,2.8765403333333333,32118.295940000004]],["2023-09-28 08:35",[55.97666666666667,5.644279666666668,71578.20300000001]],["2023-09-28 08:40",[52.54666666666666,4.317159,85573.83761999999]],["2023-09-28 08:45",[31.429999999999996,1.536997,15789.628700000001]],["2023-09-28 08:50",[48.11333333333333,4.597079666666667,95920.94717999999]],["2023-09-28 08:55",[35.58333333333333,2.6691146666666667,31401.434439999994]],["2023-09-28 09:00",[61.29666666666666,10.943779000000001,40434.77452]],["2023-09-28 09:05",[80.91999999999999,16.984839666666666,129019.60678]],["2023-09-28 09:10",[50.93666666666666,5.026450666666667,42364.69392]],["2023-09-28 09:15",[40.973333333333336,4.145988000000001,37150.42616]],["2023-09-28 09:20",[46.129999999999995,4.921968333333334,46769.81778]],["2023-09-28 09:25",[49.60666666666667,3.203790333333333,40422.60406]],["2023-09-28 09:30",[53.83,3.533273333333333,33968.9358]],["2023-09-28 09:35",[179.1533333333333,14.972136666666668,119303.21868]],["2023-09-28 09:40",[38.89666666666666,2.299040333333333,48457.96512]],["2023-09-28 09:45",[76.32333333333334,13.009951333333333,243147.78817999997]],["2023-09-28 09:50",[26.996666666666663,2.2949573333333335,52502.433059999996]],["2023-09-28 09:55",[21.44333333333333,1.5700336666666665,30842.449920000003]],["2023-09-28 10:00",[57.46999999999999,9.080923666666667,56753.4682]],["2023-09-28 10:05",[41.766666666666666,4.849780333333333,35969.623479999995]],["2023-09-28 10:10",[51.68333333333334,8.007010333333334,27382.92302]],["2023-09-28 10:15",[null,3.7451126666666674,null]]]},"KR7XCL106":{"promedios":{"pm25":36.93,"ebc":13.97,"npNs":40154.39},"mediciones":[["2023-09-28 16:45",[null,null,null]],["2023-09-28 16:50",[29.796666666666663,9.558857,61640.95668]],["2023-09-28 16:55",[33.063333333333325,5.417104,21392.34708]],["2023-09-28 17:00",[42.093333333333334,34.193229333333335,42829.60724]],["2023-09-28 17:05",[13.37,1.284589,6135.85438]],["2023-09-28 17:10",[17.10333333333333,3.233357333333333,64506.67]],["2023-09-28 17:15",[37.029999999999994,13.718178333333332,18665.045820000003]],["2023-09-28 17:20",[19.62333333333333,5.910236666666666,53997.739199999996]],["2023-09-28 17:25",[33.39,10.261794666666669,41018.220239999995]],["2023-09-28 17:30",[35.25666666666666,11.583187,37500.131819999995]],["2023-09-28 17:35",[14.233333333333334,1.8029673333333336,8483.56026]],["2023-09-28 17:40",[40.57666666666667,13.775171666666669,40226.179500000006]],["2023-09-28 17:45",[81.94666666666667,18.933607000000002,83519.6402]],["2023-09-28 17:50",[64.44666666666664,53.88184033333333,33868.85384]],["2023-09-28 17:55",[50.39999999999999,13.146338333333333,25963.78112]],["2023-09-29 17:00",[12.833333333333332,34.97191133333334,132930.50738]],["2023-09-29 17:05",[23.263333333333332,12.555157999999999,65325.91825999999]],["2023-09-29 17:10",[13.626666666666665,5.580369666666668,70415.84741999999]],["2023-09-29 17:15",[12.016666666666664,3.9990463333333333,13697.52728]],["2023-09-29 17:20",[56.56,15.456158666666667,28527.46742]],["2023-09-29 17:25",[31.96666666666667,24.297401333333333,59851.784360000005]],["2023-09-29 17:30",[19.249999999999996,9.614836,11845.041399999998]],["2023-09-29 17:35",[32.666666666666664,21.653401,43374.19788000001]],["2023-09-29 17:40",[20.626666666666665,8.624616,13277.62708]],["2023-09-29 17:45",[13.206666666666667,3.8169413333333324,9726.795520000001]],["2023-09-29 17:50",[19.88,7.230608000000001,24699.049]],["2023-09-29 17:55",[27.929999999999996,22.307875333333335,30593.78922]],["2023-10-12 07:00",[30.263333333333332,18.289399333333332,null]],["2023-10-12 07:05",[36.14333333333333,23.510256000000002,null]],["2023-10-12 07:10",[43.72666666666666,24.526322333333336,null]],["2023-10-12 07:15",[42.7,21.27433,null]],["2023-10-12 07:20",[117.13333333333335,31.23802733333333,null]],["2023-10-12 07:25",[41.81333333333333,18.928910000000002,null]],["2023-10-12 07:30",[55.276666666666664,22.64387766666667,null]],["2023-10-12 07:35",[52.64,20.74354333333333,null]],["2023-10-12 07:40",[48.11333333333333,18.11276133333333,null]],["2023-10-12 07:45",[43.260000000000005,11.33671,null]],["2023-10-12 07:50",[44.70666666666666,14.040590666666668,null]],["2023-10-12 07:55",[66.15,15.878375333333333,null]],["2023-10-12 08:00",[39.64333333333333,7.264026000000001,null]],["2023-10-12 08:05",[50.75,13.615781666666667,null]],["2023-10-12 08:10",[52.84999999999999,14.312580333333333,null]],["2023-10-12 08:15",[52.45333333333333,14.483007000000004,null]],["2023-10-12 08:20",[45.779999999999994,11.579696333333334,null]],["2023-10-12 08:25",[49.95666666666666,14.42913266666667,null]],["2023-10-12 08:30",[44.893333333333324,12.140461666666665,null]],["2023-10-12 08:35",[36.516666666666666,7.957719,null]],["2023-10-12 08:40",[37.28666666666666,10.744657,null]],["2023-10-12 08:45",[58.00666666666666,23.302612666666665,null]],["2023-10-12 08:50",[42.11666666666667,10.538374000000001,null]],["2023-10-12 08:55",[36.82,6.911366000000001,null]],["2023-10-12 09:00",[34.3,9.690058333333331,null]],["2023-10-12 09:05",[28.723333333333336,7.6409210000000005,null]],["2023-10-12 09:10",[32.50333333333333,6.4971060000000005,null]],["2023-10-12 09:15",[30.893333333333334,4.07638,null]],["2023-10-12 09:20",[36.93666666666667,18.040843333333335,null]],["2023-10-12 09:25",[23.496666666666663,6.925662333333333,null]],["2023-10-12 09:30",[20.486666666666668,6.236323,null]],["2023-10-12 09:35",[23.68333333333333,8.479611666666667,null]],["2023-10-12 09:40",[13.836666666666664,3.3485663333333333,null]],["2023-10-12 09:45",[28.93333333333333,11.054658,null]],["2023-10-12 09:50",[13.899999999999999,6.512068666666667,null]],["2023-10-12 09:55",[null,27.654896,null]],["2023-10-12 10:00",[null,9.274643333333334,null]],["2023-10-12 10:05",[null,5.375139,null]],["2023-10-12 10:10",[null,5.7415563333333335,null]],["2023-10-12 10:15",[null,78.44813133333335,null]],["2023-10-12 10:20",[null,1.7516216666666664,null]],["2023-10-12 10:25",[null,2.577806,null]],["2023-10-12 10:30",[null,2.7475910000000003,null]],["2023-10-12 10:35",[null,1.1380190000000001,null]],["2023-10-12 10:40",[null,null,null]]]},"KR7XCL60":{"promedios":{"pm25":81.12,"ebc":18.9,"npNs":82967.65},"mediciones":[["2023-09-29 07:00",[56.07000000000001,13.080195333333336,134101.93308000002]],["2023-09-29 07:05",[92.72666666666666,32.279426666666666,138469.16942]],["2023-09-29 07:10",[76.06666666666666,22.878163,190844.05838]],["2023-09-29 07:15",[77.91,20.766027333333337,97675.61526000002]],["2023-09-29 07:20",[192.70999999999998,38.01957133333334,232600.29164]],["2023-09-29 07:25",[166.24999999999997,26.21860266666667,91160.60074]],["2023-09-29 07:30",[66.73333333333332,13.021675333333334,112384.84908]],["2023-09-29 07:35",[68.90333333333334,12.695221,131385.03048000002]],["2023-09-29 07:40",[83.95333333333332,21.71251133333333,125094.5054]],["2023-09-29 07:45",[70.65333333333334,15.326285333333335,111368.91942]],["2023-09-29 07:50",[71.07333333333334,12.383011666666667,183984.55678]],["2023-09-29 07:55",[61.34333333333333,12.247953666666668,72508.83208]],["2023-09-29 08:00",[85.53999999999999,13.567708,82594.08738000001]],["2023-09-29 08:05",[68.57666666666667,8.867345666666669,39942.8912]],["2023-09-29 08:10",[61.06333333333333,11.929821,60808.32692]],["2023-09-29 08:15",[77.32666666666667,30.49795466666667,71162.85025999999]],["2023-09-29 08:20",[64.72666666666666,19.155392666666668,42497.83794]],["2023-09-29 08:25",[68.48333333333332,19.957604333333332,69704.19092]],["2023-09-29 08:30",[59.75666666666666,13.244744333333335,30509.997120000004]],["2023-09-29 08:35",[62.95333333333333,15.552305999999998,38348.921220000004]],["2023-09-29 08:40",[66.03333333333333,15.67029566666667,34732.05442000001]],["2023-09-29 08:45",[65.33333333333333,16.658565000000003,37772.16206]],["2023-09-29 08:50",[57.79666666666667,13.078757999999999,33616.17994]],["2023-09-29 08:55",[50.913333333333334,13.109352666666666,35199.16218]],["2023-09-29 09:00",[47.13333333333333,11.725765333333332,37001.648239999995]],["2023-09-29 09:05",[39.736666666666665,12.435962,90689.75956]],["2023-09-29 09:10",[45.336666666666666,21.281953,104297.57273999999]],["2023-09-29 09:15",[67.41,42.560595,87293.97436]],["2023-09-29 09:20",[24.896666666666665,10.972756666666665,25425.969279999998]],["2023-09-29 09:25",[11.736666666666666,2.4441853333333334,18890.26414]],["2023-09-29 09:30",[null,null,null]],["2023-11-02 16:40",[null,null,null]],["2023-11-02 16:45",[125.58,34.478059,107179.83256000001]],["2023-11-02 16:50",[127.49333333333331,43.441141333333334,87140.12068]],["2023-11-02 16:55",[103.50666666666666,22.55525066666667,79827.99046]],["2023-11-02 17:00",[99.23666666666665,16.854196333333334,51841.81006]],["2023-11-02 17:05",[79.21666666666665,18.76952,46028.4589]],["2023-11-02 17:10",[136.66333333333336,16.630254666666666,177889.3356]],["2023-11-02 17:15",[105.21,18.828630333333333,64245.93976]],["2023-11-02 17:20",[108.45333333333333,18.638055333333334,76913.43153999999]],["2023-11-02 17:25",[111.69666666666667,19.618522000000002,53166.54638]],["2023-11-02 17:30",[79.33333333333333,10.736084333333334,43652.944019999995]],["2023-11-02 17:35",[90.11333333333333,17.49042166666667,90794.48246]],["2023-11-02 17:40",[98.14,22.988581,83910.6501]],["2023-11-02 17:45",[92.14333333333333,18.782199333333335,52242.85562]],["2023-11-02 17:50",[97.90666666666667,22.502172000000005,87634.97024000001]],["2023-11-02 17:55",[86.72999999999999,14.982737000000004,69008.76202]]]},"KR7XCL130":{"promedios":{"pm25":23.75,"ebc":11.48,"npNs":58583.65},"mediciones":[["2023-10-13 07:00",[27.276666666666664,13.815442666666666,67807.11006]],["2023-10-13 07:05",[55.13666666666667,38.30146833333333,61039.51548]],["2023-10-13 07:10",[27.626666666666665,17.625505333333333,84551.89676]],["2023-10-13 07:15",[11.223333333333333,3.9194026666666666,84191.13138]],["2023-10-13 07:20",[26.413333333333334,21.320504333333336,41620.33174]],["2023-10-13 07:25",[15.376666666666665,9.566191,21767.84826]],["2023-10-13 07:30",[18.526666666666664,5.230481666666668,22763.572239999998]],["2023-10-13 07:35",[17.009999999999998,8.931743333333333,47169.037540000005]],["2023-10-13 07:40",[12.833333333333332,5.751020666666667,41612.55782]],["2023-10-13 07:45",[18.083333333333332,4.895300666666667,26855.114160000005]],["2023-10-13 07:50",[25.73666666666666,13.26160066666667,29288.98808]],["2023-10-13 07:55",[14.116666666666665,5.188208666666667,68291.36654]],["2023-10-13 08:00",[26.623333333333328,11.481752333333334,70976.43434]],["2023-10-13 08:05",[21.07,9.758312666666669,25513.959179999998]],["2023-10-13 08:10",[22.609999999999996,11.073293000000001,66454.17916]],["2023-10-13 08:15",[34.88333333333333,14.918339333333336,101138.91626]],["2023-10-13 08:20",[18.316666666666666,6.590224666666667,49744.03859999999]],["2023-10-13 08:25",[21.39666666666667,10.294027333333334,37126.16846]],["2023-10-13 08:30",[15.470000000000002,3.404054,77911.67452]],["2023-10-13 08:35",[7.513333333333334,1.4481236666666666,11189.616320000001]],["2023-10-13 08:40",[6.906666666666666,0.8665123333333333,4795.87874]],["2023-10-13 08:45",[22.47,10.877918333333335,24674.4611]],["2023-10-13 08:50",[19.109999999999996,10.509935333333333,37902.34094]],["2023-10-13 08:55",[26.25,13.588363000000001,40406.293359999996]],["2023-10-13 09:00",[12.646666666666665,3.2727566666666674,19947.975100000003]],["2023-10-13 09:05",[15.05,4.3421373333333335,21405.869899999998]],["2023-10-13 09:10",[23.776666666666664,9.692239,22190.9972]],["2023-10-13 09:15",[21,8.080615666666667,54849.37596]],["2023-10-13 09:20",[14.886666666666665,5.0043516666666665,23221.53344]],["2023-10-13 09:25",[13.556666666666663,4.288739333333334,80848.57186]],["2023-10-13 09:30",[10.779999999999998,2.6227530000000003,34078.8225]],["2023-10-13 09:35",[17.346666666666664,7.016482333333333,35774.853820000004]],["2023-10-13 09:40",[null,null,null]],["2023-10-13 16:50",[null,null,null]],["2023-10-13 16:55",[12.308333333333332,4.234839333333333,null]],["2023-10-13 17:00",[12.669999999999998,10.776271666666668,null]],["2023-10-13 17:05",[12.693333333333332,7.6032366666666675,null]],["2023-10-13 17:10",[10.943333333333332,22.518008333333334,null]],["2023-10-13 17:15",[18.71333333333333,7.445476000000001,null]],["2023-10-13 17:20",[13.953333333333333,8.300420333333335,null]],["2023-10-13 17:25",[18.876666666666665,3.8714830000000005,null]],["2023-10-13 17:30",[13.09,3.9541809999999997,null]],["2023-10-13 17:35",[9.356666666666666,11.278036,null]],["2023-10-13 17:40",[6.626666666666665,2.070632666666667,null]],["2023-10-13 17:45",[17.639999999999997,1.7749526666666668,null]],["2023-10-13 17:50",[8.586666666666668,8.178041666666667,null]],["2023-10-13 17:55",[7.9333333333333345,4.763605,null]],["2023-10-18 06:40",[null,54.61144791666666,null]],["2023-10-18 06:45",[55.23,38.92971133333333,null]],["2023-10-18 06:50",[43.026666666666664,28.197656666666667,46645.69388]],["2023-10-18 06:55",[13.043333333333333,4.116317333333333,41338.20668]],["2023-10-18 07:00",[44.68333333333334,22.598704333333334,44839.44588]],["2023-10-18 07:05",[56.746666666666655,38.55941833333334,331533.14652]],["2023-10-18 07:10",[20.743333333333332,7.542663333333334,61411.05466]],["2023-10-18 07:15",[42.30333333333333,27.359101000000003,93734.47186]],["2023-10-18 07:20",[34.019999999999996,17.836331333333334,74635.52888]],["2023-10-18 07:25",[68.57666666666667,38.637342333333336,80363.48356000001]],["2023-10-18 07:30",[41.99999999999999,5.150273333333334,63566.655119999996]],["2023-10-18 07:35",[55.136666666666656,28.584017000000006,396308.5114]],["2023-10-18 07:40",[46.50333333333332,24.578836333333335,47234.66788]],["2023-10-18 07:45",[28.35,9.238357333333335,54463.22352]],["2023-10-18 07:50",[57.283333333333324,28.729854999999997,107383.16395999999]],["2023-10-18 07:55",[15.14333333333333,4.233973333333334,41770.61908]],["2023-10-18 08:00",[17.476666666666667,5.052483333333333,36826.83402]],["2023-10-18 08:05",[10.056666666666667,1.1300519999999998,68071.25638]],["2023-10-18 08:10",[16.8,5.455732333333333,124035.43179999999]],["2023-10-18 08:15",[45.26666666666666,22.832707333333335,36447.13916]],["2023-10-18 08:20",[20.580000000000002,5.773922,50460.25591999999]],["2023-10-18 08:25",[19.646666666666665,5.275141666666666,26257.803739999996]],["2023-10-18 08:30",[29.4,8.111898666666667,44910.19116]],["2023-10-18 08:35",[13.3,2.336719,69600.84428]],["2023-10-18 08:40",[30.076666666666664,7.450289000000001,25753.64402]],["2023-10-18 08:45",[8.889999999999999,2.0596853333333334,53161.56142]],["2023-10-18 08:50",[14.163333333333332,2.8615699999999995,30666.48724]],["2023-10-18 08:55",[15.726666666666665,4.695922,97515.90174]],["2023-10-18 09:00",[33.24999999999999,17.537699666666672,13592.26194]],["2023-10-18 09:05",[17.779999999999998,7.0905450000000005,35229.24516]],["2023-10-18 09:10",[16.053333333333335,6.497483333333332,31168.04218]],["2023-10-18 09:15",[39.92333333333333,10.377649333333332,122384.9971]],["2023-10-18 09:20",[96.83333333333334,36.307007666666664,14770.754160000002]],["2023-10-18 09:25",[9.053333333333331,2.8214976666666667,33053.62602]],["2023-10-18 09:30",[10.243333333333332,1.9984703333333336,12116.647280000001]],["2023-10-18 09:35",[7.933333333333332,1.7018919999999997,18159.85342]],["2023-10-18 09:40",[null,null,null]]]},"KR7XCL160":{"promedios":{"pm25":32.1,"ebc":10.49,"npNs":64729.28},"mediciones":[["2023-10-19 07:05",[null,null,null]],["2023-10-19 07:10",[null,2.4384093333333334,48405.96922]],["2023-10-19 07:15",[19.693333333333335,4.667109666666667,35720.46378]],["2023-10-19 07:20",[31.453333333333326,11.436668333333333,58470.374840000004]],["2023-10-19 07:25",[58.28666666666667,10.546272666666667,329996.44535999995]],["2023-10-19 07:30",[15.35333333333333,1.904369666666667,55809.43166]],["2023-10-19 07:35",[67.22333333333333,16.717277,102482.30226]],["2023-10-19 07:40",[72.68333333333331,10.967668000000002,69574.6943]],["2023-10-19 07:45",[53.50333333333333,14.442556333333334,85495.7862]],["2023-10-19 07:50",[62.276666666666664,16.447655333333337,91345.40776]],["2023-10-19 07:55",[24.068333333333335,10.546587333333331,358680.40644]],["2023-10-19 08:00",[12.488,10.160931333333334,45458.92398]],["2023-10-19 08:05",[9.790666666666665,2.8833676666666666,53721.20486]],["2023-10-19 08:10",[22.633333333333333,16.768187333333337,107908.741]],["2023-10-19 08:15",[22.306666666666665,7.485606333333334,45676.36636]],["2023-10-19 08:20",[16.776666666666667,8.938365333333333,31479.57926]],["2023-10-19 08:25",[12.88,14.22344,69210.28948]],["2023-10-19 08:30",[33.24999999999999,3.436354,122431.1857]],["2023-10-19 08:35",[15.353333333333333,10.135188666666668,42360.87884]],["2023-10-19 08:40",[22.47,3.8225279999999997,45297.22059999999]],["2023-10-19 08:45",[18.85333333333333,7.158605333333334,26112.41994]],["2023-10-19 08:50",[9.333333333333332,15.398485666666668,56179.214159999996]],["2023-10-19 08:55",[null,17.370929999999994,57689.64890000001]],["2023-10-19 09:00",[null,3.8441993333333335,47498.60653999999]],["2023-10-19 09:05",[null,2.330422,38304.056059999995]],["2023-10-19 09:10",[null,3.3937236666666664,54699.4391]],["2023-10-19 09:15",[null,7.627055333333333,66624.81722]],["2023-10-19 09:20",[null,1.6386816666666668,17436.775539999995]],["2023-10-19 09:25",[null,3.9368873333333334,34433.529200000004]],["2023-10-19 09:30",[null,3.332142666666667,36402.36315999999]],["2023-10-19 09:35",[null,1.7881946666666668,112583.2474]],["2023-10-19 09:40",[null,1.9163103333333336,16099.055299999998]],["2023-10-19 09:45",[null,7.715668000000001,33683.532380000004]],["2023-10-19 09:50",[null,2.108394,11134.44028]],["2023-10-19 09:55",[null,2.132803,19483.20168]],["2023-10-20 16:25",[null,null,null]],["2023-10-20 16:30",[18.13,0.9989266666666667,30911.86276]],["2023-10-20 16:35",[22.726666666666667,4.825923666666666,25887.063660000003]],["2023-10-20 16:40",[46.736666666666665,25.599548333333335,52805.61886]],["2023-10-20 16:45",[29.189999999999998,9.036206666666667,27145.84914]],["2023-10-20 16:50",[31.009999999999998,11.175189666666666,42358.44962]],["2023-10-20 16:55",[29.54,8.075554666666665,25192.800419999996]],["2023-10-20 17:00",[26.249999999999993,7.295390666666667,25479.53532]],["2023-10-20 17:05",[43.913333333333334,26.48687066666667,26460.575419999997]],["2023-10-20 17:10",[25.829999999999995,5.7476650000000005,22265.2468]],["2023-10-20 17:15",[34.626666666666665,8.666427,52596.243319999994]],["2023-10-20 17:20",[55.15999999999999,8.439328333333332,85198.4559]],["2023-10-20 17:25",[43.63333333333333,9.044035,50881.69914]],["2023-10-20 17:30",[65.54333333333332,17.05059766666667,45338.48794]],["2023-10-20 17:35",[36.60999999999999,5.591765666666667,24601.50414]],["2023-10-20 17:40",[48.766666666666666,11.938798666666667,65358.29048]],["2023-10-20 17:45",[34.53333333333333,4.9681169999999995,29260.925940000005]],["2023-10-20 17:50",[32.083333333333336,4.3654123333333335,47199.93206000001]],["2023-10-20 17:55",[67.05999999999999,27.819638000000005,43507.9537]],["2023-10-25 16:45",[null,null,null]],["2023-10-25 16:50",[9.627333333333333,10.993642666666668,null]],["2023-10-25 16:55",[6.542666666666666,8.397568666666666,60499.16524]],["2023-10-25 17:00",[7.746666666666667,7.36659,152528.90496]],["2023-10-25 17:05",[null,8.072936666666667,62876.80364]],["2023-10-25 17:10",[null,9.141619666666667,82761.30463999999]],["2023-10-25 17:15",[null,22.345887666666666,60248.32796]],["2023-10-25 17:20",[null,46.660922,153523.82168]],["2023-10-25 17:25",[null,29.163929666666668,81682.26782]],["2023-10-25 17:30",[null,16.100289333333333,68044.77594]],["2023-10-25 17:35",[null,29.677288666666662,90105.90060000001]],["2023-10-25 17:40",[null,10.239383,88645.96208000001]],["2023-10-25 17:45",[null,5.409558000000001,71717.93722]],["2023-10-25 17:50",[null,21.60514766666667,25574.834140000003]],["2023-10-25 17:55",[null,10.430394333333334,58852.820999999996]]]},"KR7XCL170":{"promedios":{"pm25":71.6,"ebc":24.53,"npNs":92280.88},"mediciones":[["2023-10-26 06:50",[133.46666666666664,80.83033291666668,155882.3461]],["2023-10-26 06:55",[112,52.85531533333334,206369.56111999997]],["2023-10-26 07:00",[92.53999999999999,39.527564999999996,126765.77814]],["2023-10-26 07:05",[111.32333333333331,49.70516833333334,138689.31613999998]],["2023-10-26 07:10",[113.93666666666665,56.182511,212602.90464000002]],["2023-10-26 07:15",[116.17666666666665,39.50046100000001,107533.26203999999]],["2023-10-26 07:20",[60.22333333333332,21.83422266666667,89851.59676000001]],["2023-10-26 07:25",[47.459999999999994,13.387425333333335,56203.85693999999]],["2023-10-26 07:30",[49.42,12.378032333333334,238738.63477999996]],["2023-10-26 07:35",[83.34666666666666,24.658428666666666,118635.64164]],["2023-10-26 07:40",[46.08333333333333,9.897426000000001,72491.72256]],["2023-10-26 07:45",[69.20666666666666,20.078674,65261.45087999998]],["2023-10-26 07:50",[56.25666666666666,12.798503666666667,70004.71414000001]],["2023-10-26 07:55",[120.00333333333333,39.93769266666667,78095.02128]],["2023-10-26 08:00",[54.366666666666674,13.003195333333334,77868.10298]],["2023-10-26 08:05",[58.239999999999995,12.107916333333332,77885.90928]],["2023-10-26 08:10",[79.59,17.083682000000003,69336.98884]],["2023-10-26 08:15",[65.61333333333332,11.295104333333333,45947.67711999999]],["2023-10-26 08:20",[95.66666666666666,17.786076,127047.92167999998]],["2023-10-26 08:25",[92.42333333333332,19.26873666666667,78696.73074]],["2023-10-26 08:30",[87.61666666666667,15.727019000000002,74383.55227999999]],["2023-10-26 08:35",[68.43666666666667,9.028686333333335,86249.48472]],["2023-10-26 08:40",[68.69333333333333,26.760118,51738.07433999999]],["2023-10-26 08:45",[88.61999999999998,16.723861,136217.08554]],["2023-10-26 08:50",[69.13666666666666,12.478363333333332,81548.69196]],["2023-10-26 08:55",[56.489999999999995,10.207351,39280.8305]],["2023-10-26 09:00",[81.87666666666667,16.070567333333333,69808.01052000001]],["2023-10-26 09:05",[79.63666666666667,14.940926000000001,67232.02646]],["2023-10-26 09:10",[97.18333333333334,22.032959666666667,97814.59604]],["2023-10-26 09:15",[62.883333333333326,12.245104666666666,36172.617060000004]],["2023-10-26 09:20",[44.70666666666666,6.1524540000000005,78346.40152]],["2023-10-26 09:25",[52.05666666666667,7.032230333333334,69779.03854000001]],["2023-10-26 09:30",[49.419999999999995,5.423982666666666,104828.32644]],["2023-10-26 09:35",[73.71,13.344998333333333,113773.49021999999]],["2023-10-26 09:40",[48.04333333333333,5.890038,46884.208139999995]],["2023-10-26 09:45",[null,null,null]],["2023-10-27 16:40",[null,null,null]],["2023-10-27 16:45",[82.71666666666667,54.328582,97667.09386]],["2023-10-27 16:50",[24.12666666666667,10.709185666666668,37545.0188]],["2023-10-27 16:55",[39.2,18.032707,38777.517139999996]],["2023-10-27 17:00",[22.79666666666666,9.395668333333333,42379.2654]],["2023-10-27 17:05",[38.45333333333333,15.337578666666667,42430.680940000006]],["2023-10-27 17:10",[59.61666666666665,29.687991666666665,99196.89504]],["2023-10-27 17:15",[18.73666666666666,6.2149523333333345,81057.34146]],["2023-10-27 17:20",[75.81,25.437566000000004,73011.81484]],["2023-10-27 17:25",[56.11666666666666,23.944150999999998,69708.58282000001]],["2023-10-27 17:30",[31.313333333333325,8.306529000000001,45580.80514]],["2023-10-27 17:35",[24.756666666666668,9.253706,23556.800020000002]],["2023-10-27 17:40",[53.71333333333333,32.214644,70754.48215999999]],["2023-10-27 17:45",[70.32666666666667,31.186155000000003,76254.4541]],["2023-10-27 17:50",[69.13666666666667,29.959699,115053.92942000001]],["2023-10-27 17:55",[68.62333333333333,27.57472666666667,81535.91476]],["2023-11-08 06:30",[4.754166666666666,64.13400583333333,1.0420749999999999]],["2023-11-08 06:35",[33.36666666666666,43.127392,9939.31368]],["2023-11-08 06:40",[110.03999999999999,66.17072,199979.62406]],["2023-11-08 06:45",[58.70666666666666,26.739764333333333,90701.275]],["2023-11-08 06:50",[90.08999999999999,50.06514333333333,83363.68260000001]],["2023-11-08 06:55",[148.91333333333333,76.32956099999998,164602.59118000002]],["2023-11-08 07:00",[151.59666666666664,73.39942866666667,196617.23364]],["2023-11-08 07:05",[109.50333333333333,37.18704733333333,129672.0223]],["2023-11-08 07:10",[71.00333333333332,27.596235333333333,110279.8017]],["2023-11-08 07:15",[47.83333333333333,17.55733466666667,79840.58946]],["2023-11-08 07:20",[59.383333333333326,26.35165866666667,87799.58230000001]],["2023-11-08 07:25",[49.81666666666666,19.973261,158496.78418000002]],["2023-11-08 07:30",[34.019999999999996,13.653460333333337,151059.55082]],["2023-11-08 07:35",[41.97666666666667,13.405443333333334,99279.01486]],["2023-11-08 07:40",[41.86,12.528490333333334,62806.06741999999]],["2023-11-08 07:45",[86.52,29.663223333333338,114494.38238]],["2023-11-08 07:50",[157.49999999999997,57.38273566666667,130381.99504]],["2023-11-08 07:55",[134.47,39.30839733333333,134778.16416000001]],["2023-11-08 08:00",[81.71333333333334,21.026544,94229.83609999999]],["2023-11-08 08:05",[200.41,54.53311966666668,228523.9003]],["2023-11-08 08:10",[48.95333333333333,10.76785966666667,56217.85114]],["2023-11-08 08:15",[64.53999999999999,14.357439000000003,146001.80124]],["2023-11-08 08:20",[63.60666666666666,14.889194333333336,74500.59202000001]],["2023-11-08 08:25",[142.40333333333334,30.033516333333335,120114.00913999998]],["2023-11-08 08:30",[33.95,6.3941056666666665,52170.818]],["2023-11-08 08:35",[59.56999999999999,13.526641333333336,113750.53430000001]],["2023-11-08 08:40",[34.510000000000005,3.247032,63117.73152000001]],["2023-11-08 08:45",[57.60999999999999,13.438308999999999,75785.44383999999]],["2023-11-08 08:50",[60.57333333333334,11.639152666666666,50076.40494]],["2023-11-08 08:55",[69.58,12.394791666666666,105016.58202]],["2023-11-08 09:00",[55.09000000000001,8.875359333333332,51285.8649]],["2023-11-08 09:05",[50.70333333333333,6.179262333333334,45743.54388]],["2023-11-08 09:10",[36.096666666666664,4.088333,25227.94358]],["2023-11-08 09:15",[54.55333333333333,8.62816366666667,85010.27092]],["2023-11-08 09:20",[80.75666666666666,35.96193833333333,99616.01986]],["2023-11-08 09:25",[110.69333333333331,54.95087033333333,83197.53844]],["2023-11-08 09:30",[null,null,null]]]},"KR7XCL186":{"promedios":{"pm25":43.35,"ebc":16.31,"npNs":45197.08},"mediciones":[["2023-11-10 16:00",[null,null,null]],["2023-11-10 16:05",[19.156666666666666,4.294463,null]],["2023-11-10 16:10",[19.903333333333336,4.497390333333334,null]],["2023-11-10 16:15",[29.189999999999998,9.325803666666667,null]],["2023-11-10 16:20",[33.64666666666666,10.061891333333332,36013.918560000006]],["2023-11-10 16:25",[36.33,16.94959933333333,30458.137880000002]],["2023-11-10 16:30",[50.21333333333333,11.705225333333335,14521.27764]],["2023-11-10 16:35",[24.733333333333327,16.185040666666666,50614.11668]],["2023-11-10 16:40",[70.21000000000001,44.36106033333333,42897.41224]],["2023-11-10 16:45",[349.95333333333326,132.11069666666666,253926.01909999998]],["2023-11-10 16:50",[58.286666666666655,37.58233966666667,70968.8246]],["2023-11-10 16:55",[43.33,14.523663000000003,13967.525]],["2023-11-10 17:00",[25.736666666666668,8.038902666666667,21709.39808]],["2023-11-10 17:05",[46.386666666666656,19.143200999999998,129001.02607999995]],["2023-11-10 17:10",[22.56333333333333,4.428359333333333,55547.59728]],["2023-11-10 17:15",[20.953333333333337,5.812311666666667,13947.999780000002]],["2023-11-10 17:20",[10.896666666666665,1.9575386666666668,21191.65214]],["2023-11-10 17:25",[12.529999999999998,2.518310666666667,21481.312039999997]],["2023-11-10 17:30",[15.189999999999998,5.025937333333333,34599.10676]],["2023-11-10 17:35",[23.263333333333332,6.318697,9160.866700000002]],["2023-11-10 17:40",[18.456666666666667,6.132536666666667,9429.33964]],["2023-11-10 17:45",[18.666666666666664,5.494354,10640.8549]],["2023-11-10 17:50",[18.78333333333333,2.5684633333333338,28362.76924]],["2023-11-10 17:55",[28.65333333333333,6.192853333333334,35502.41722]]]}} \ No newline at end of file diff --git a/aplicaciones/www/estaticos/datos/puntos.json b/aplicaciones/www/estaticos/datos/puntos.json index 6836250..64d2880 100644 --- a/aplicaciones/www/estaticos/datos/puntos.json +++ b/aplicaciones/www/estaticos/datos/puntos.json @@ -1 +1 @@ -[{"id":"0","slug":"plaza-de-bolivar","nombre":"Plaza de Bolivar","caminabilidad":0.53,"seguridad":0.63,"movilidad":0.75,"ambiente":0.69,"infraestructura":0.54,"habitabilidad":0.65,"proximidad":0.54,"lat":4.5978,"lon":-74.07565},{"id":"1","slug":"avenida-jimenez","nombre":"Avenida Jiménez","seguridad":0.59,"movilidad":0.82,"ambiente":0.69,"infraestructura":0.57,"habitabilidad":0.67,"proximidad":0.24,"ilustraciones":["iglesia_san_francisco"],"lat":4.60144,"lon":-74.0734},{"id":"2","slug":"calle-19","nombre":"Calle 19","caminabilidad":0.59,"seguridad":0.59,"movilidad":0.79,"ambiente":0.7,"infraestructura":0.57,"habitabilidad":0.68,"proximidad":0.33,"lat":4.6053,"lon":-74.07159},{"id":"3","slug":"calle-26","nombre":"Calle 26","caminabilidad":0.55,"seguridad":0.64,"movilidad":0.77,"ambiente":0.75,"infraestructura":0.57,"habitabilidad":0.7,"proximidad":0.37,"ilustraciones":["planetario"],"lat":4.61134,"lon":-74.06987},{"id":"4","slug":"calle-32","nombre":"Calle 32","caminabilidad":0.55,"seguridad":0.63,"movilidad":0.78,"ambiente":0.73,"infraestructura":0.58,"habitabilidad":0.69,"proximidad":0.43,"ilustraciones":["centro_internacional"],"lat":4.6186,"lon":-74.06807},{"id":"5","slug":"calle-36","nombre":"Calle 36","caminabilidad":0.6,"seguridad":0.61,"movilidad":0.7,"ambiente":0.85,"infraestructura":0.47,"habitabilidad":0.67,"proximidad":0.13,"idRuido":"1","ilustraciones":["parque_nacional"],"lat":4.62475,"lon":-74.06642},{"id":"6","slug":"diagonal-40a","nombre":"Diagonal 40A","caminabilidad":0.6,"seguridad":0.58,"movilidad":0.73,"ambiente":0.79,"infraestructura":0.52,"habitabilidad":0.67,"proximidad":0.38,"ilustraciones":["universidad_javeriana"],"lat":4.63139,"lon":-74.06426},{"id":"7","slug":"calle-45","nombre":"Calle 45","caminabilidad":0.52,"seguridad":0.55,"movilidad":0.73,"ambiente":0.7,"infraestructura":0.5,"habitabilidad":0.65,"proximidad":0.43,"lat":4.62825,"lon":-74.06709},{"id":"8","slug":"calle-53","nombre":"Calle 53","caminabilidad":0.54,"seguridad":0.54,"movilidad":0.74,"ambiente":0.66,"infraestructura":0.49,"habitabilidad":0.65,"proximidad":0.27,"idRuido":"2","lat":4.63949,"lon":-74.0629},{"id":"9","slug":"calle-56","nombre":"Calle 56","caminabilidad":0.51,"seguridad":0.54,"movilidad":0.73,"ambiente":0.67,"infraestructura":0.48,"habitabilidad":0.65,"proximidad":0.19,"lat":4.64198,"lon":-74.06227},{"id":"10","slug":"calle-60","nombre":"Calle 60","caminabilidad":0.56,"seguridad":0.53,"movilidad":0.73,"ambiente":0.69,"infraestructura":0.5,"habitabilidad":0.65,"proximidad":0.28,"idRuido":"3","ilustraciones":["parque_hippies"],"lat":4.64536,"lon":-74.06129},{"id":"11","slug":"calle-67","nombre":"Calle 67","caminabilidad":0.57,"seguridad":0.56,"movilidad":0.76,"ambiente":0.71,"infraestructura":0.53,"habitabilidad":0.68,"proximidad":0.34,"lat":4.6507,"lon":-74.05822},{"id":"12","slug":"calle-70","nombre":"Calle 70","caminabilidad":0.6,"seguridad":0.59,"movilidad":0.76,"ambiente":0.69,"infraestructura":0.55,"habitabilidad":0.7,"proximidad":0.29,"lat":4.65276,"lon":-74.05655},{"id":"13","slug":"calle-72","nombre":"Calle 72","caminabilidad":0.58,"seguridad":0.57,"movilidad":0.76,"ambiente":0.69,"infraestructura":0.55,"habitabilidad":0.7,"proximidad":0.25,"ilustraciones":["edificio_venados"],"lat":4.65487,"lon":-74.05543},{"id":"14","slug":"calle-74","nombre":"Calle 74","caminabilidad":0.61,"seguridad":0.52,"movilidad":0.71,"ambiente":0.7,"infraestructura":0.54,"habitabilidad":0.67,"proximidad":0.28,"lat":4.65672,"lon":-74.05437},{"id":"15","slug":"calle-76","nombre":"Calle 76","caminabilidad":0.58,"seguridad":0.54,"movilidad":0.71,"ambiente":0.7,"infraestructura":0.54,"habitabilidad":0.67,"proximidad":0.28,"lat":4.6587,"lon":-74.0528},{"id":"16","slug":"calle-84","nombre":"Calle 84","caminabilidad":0.53,"seguridad":0.48,"movilidad":0.69,"ambiente":0.69,"infraestructura":0.53,"habitabilidad":0.65,"proximidad":0.34,"ilustraciones":["subida_patios"],"lat":4.66307,"lon":-74.0487},{"id":"17","slug":"calle-85","nombre":"Calle 85","caminabilidad":0.54,"seguridad":0.48,"movilidad":0.7,"ambiente":0.69,"infraestructura":0.55,"habitabilidad":0.66,"proximidad":0.31,"idRuido":"4","lat":4.66517,"lon":-74.04682},{"id":"18","slug":"calle-92","nombre":"Calle 92","caminabilidad":0.5,"seguridad":0.47,"movilidad":0.68,"ambiente":0.73,"infraestructura":0.54,"habitabilidad":0.65,"proximidad":0.15,"ilustraciones":["museo_del_chico"],"lat":4.67139,"lon":-74.0438},{"id":"19","slug":"calle-94","nombre":"Calle 94","caminabilidad":0.52,"seguridad":0.45,"movilidad":0.67,"ambiente":0.71,"infraestructura":0.52,"habitabilidad":0.63,"proximidad":0.09,"ilustraciones":["seminario_conciliar"],"lat":4.67447,"lon":-74.0417},{"id":"20","slug":"calle-100","nombre":"Calle 100","caminabilidad":0.5,"seguridad":0.53,"movilidad":0.69,"ambiente":0.64,"infraestructura":0.55,"habitabilidad":0.64,"proximidad":0.07,"lat":4.67986,"lon":-74.03821},{"id":"21","slug":"calle-106","nombre":"Calle 106","caminabilidad":0.51,"seguridad":0.55,"movilidad":0.7,"ambiente":0.62,"infraestructura":0.58,"habitabilidad":0.64,"proximidad":0.07,"idRuido":"5","ilustraciones":["escuela_caballeria"],"lat":4.68514,"lon":-74.03566},{"id":"22","slug":"calle-116","nombre":"Calle 116","caminabilidad":0.68,"seguridad":0.53,"movilidad":0.72,"ambiente":0.68,"infraestructura":0.46,"habitabilidad":0.65,"proximidad":0.15,"ilustraciones":["fundacion_santa_fe"," centro_comercial_santa_barbara"],"lat":4.69366,"lon":-74.03323},{"id":"23","slug":"calle-127","nombre":"Calle 127","caminabilidad":0.56,"seguridad":0.51,"movilidad":0.71,"ambiente":0.68,"infraestructura":0.4,"habitabilidad":0.63,"proximidad":0.14,"lat":4.70214,"lon":-74.02859},{"id":"24","slug":"calle-134","nombre":"Calle 134","caminabilidad":0.6,"seguridad":0.51,"movilidad":0.69,"ambiente":0.75,"infraestructura":0.41,"habitabilidad":0.63,"proximidad":0.13,"idRuido":"6","lat":4.71168,"lon":-74.02917},{"id":"25","slug":"calle-140","nombre":"Calle 140","caminabilidad":0.57,"seguridad":0.47,"movilidad":0.69,"ambiente":0.8,"infraestructura":0.41,"habitabilidad":0.63,"proximidad":0.14,"ilustraciones":["centro_comercial_palatino"],"lat":4.71619,"lon":-74.02875},{"id":"26","slug":"calle-147","nombre":"Calle 147","caminabilidad":0.63,"seguridad":0.47,"movilidad":0.66,"ambiente":0.78,"infraestructura":0.42,"habitabilidad":0.62,"proximidad":0.11,"lat":4.72271,"lon":-74.02615},{"id":"27","slug":"calle-151","nombre":"Calle 151","caminabilidad":0.54,"seguridad":0.51,"movilidad":0.68,"ambiente":0.81,"infraestructura":0.42,"habitabilidad":0.64,"proximidad":0.12,"lat":4.72562,"lon":-74.02488},{"id":"28","slug":"calle-153","nombre":"Calle 153","caminabilidad":0.61,"seguridad":0.5,"movilidad":0.67,"ambiente":0.79,"infraestructura":0.42,"habitabilidad":0.62,"proximidad":0.12,"lat":4.72759,"lon":-74.02462},{"id":"29","slug":"calle-160","nombre":"Calle 160","caminabilidad":0.59,"seguridad":0.45,"movilidad":0.62,"ambiente":0.66,"infraestructura":0.39,"habitabilidad":0.54,"proximidad":0.15,"lat":4.73504,"lon":-74.02434},{"id":"30","slug":"calle-164","nombre":"Calle 164","caminabilidad":0.61,"seguridad":0.45,"movilidad":0.65,"ambiente":0.72,"infraestructura":0.39,"habitabilidad":0.54,"proximidad":0.2,"lat":4.73928,"lon":-74.02277},{"id":"31","slug":"calle-165","nombre":"Calle 165","caminabilidad":0.59,"seguridad":0.46,"movilidad":0.64,"ambiente":0.71,"infraestructura":0.43,"habitabilidad":0.56,"proximidad":0.19,"ilustraciones":["hospital_simon_bolivar"],"lat":4.74105,"lon":-74.02232},{"id":"32","slug":"calle-170","nombre":"Calle 170","caminabilidad":0.42,"seguridad":0.49,"movilidad":0.65,"ambiente":0.67,"infraestructura":0.41,"habitabilidad":0.56,"proximidad":0.13,"lat":4.74705,"lon":-74.02264},{"id":"33","slug":"calle-175","nombre":"Calle 175","caminabilidad":0.48,"seguridad":0.48,"movilidad":0.62,"ambiente":0.71,"infraestructura":0.38,"habitabilidad":0.57,"proximidad":0.15,"lat":4.75396,"lon":-74.02442},{"id":"34","slug":"calle-180","nombre":"Calle 180","caminabilidad":0.5,"seguridad":0.46,"movilidad":0.63,"ambiente":0.73,"infraestructura":0.38,"habitabilidad":0.56,"proximidad":0.14,"ilustraciones":["abastos_codabas"],"lat":4.75618,"lon":-74.02468},{"id":"35","slug":"calle-183","nombre":"Calle 183","caminabilidad":0.57,"seguridad":0.45,"movilidad":0.63,"ambiente":0.75,"infraestructura":0.41,"habitabilidad":0.56,"proximidad":0.12,"ilustraciones":["barrio_el_codito"],"lat":4.76052,"lon":-74.02634},{"id":"36","slug":"calle-189","nombre":"Calle 189","caminabilidad":0.53,"seguridad":0.45,"movilidad":0.64,"ambiente":0.76,"infraestructura":0.37,"habitabilidad":0.55,"proximidad":0.09,"lat":4.76566,"lon":-74.02755},{"id":"37","slug":"calle-192","nombre":"Calle 192","caminabilidad":0.47,"seguridad":0.45,"movilidad":0.64,"ambiente":0.76,"infraestructura":0.37,"habitabilidad":0.55,"proximidad":0.09,"lat":4.76898,"lon":-74.02734},{"id":"38","slug":"calle-193","nombre":"Calle 193","caminabilidad":0.35,"seguridad":0.47,"movilidad":0.64,"ambiente":0.7,"infraestructura":0.35,"habitabilidad":0.54,"proximidad":0.08,"ilustraciones":["finca_la_suiza"],"lat":4.76966,"lon":-74.02703},{"id":"39","slug":"calle-200","nombre":"Calle 200","caminabilidad":0.37,"seguridad":0.5,"movilidad":0.63,"ambiente":0.59,"infraestructura":0.31,"habitabilidad":0.51,"proximidad":0.05,"ilustraciones":["subestacion_torca"],"lat":4.77711,"lon":-74.02605},{"id":"40","slug":"calle-220","nombre":"Calle 220","caminabilidad":0.3,"seguridad":0.5,"movilidad":0.5,"ambiente":0.46,"infraestructura":0.23,"habitabilidad":0.43,"proximidad":0.06,"lat":4.79862,"lon":-74.0307}] \ No newline at end of file +[{"id":"0","slug":"plaza-de-bolivar","nombre":"Plaza de Bolivar","caminabilidad":0.53,"seguridad":0.63,"movilidad":0.75,"ambiente":0.69,"infraestructura":0.54,"habitabilidad":0.65,"proximidad":0.54,"lat":4.5978,"lon":-74.07565},{"id":"1","slug":"avenida-jimenez","nombre":"Avenida Jiménez","seguridad":0.59,"movilidad":0.82,"ambiente":0.69,"infraestructura":0.57,"habitabilidad":0.67,"proximidad":0.24,"ilustraciones":["iglesia_san_francisco"],"lat":4.60144,"lon":-74.0734},{"id":"2","slug":"calle-19","nombre":"Calle 19","caminabilidad":0.59,"seguridad":0.59,"movilidad":0.79,"ambiente":0.7,"infraestructura":0.57,"habitabilidad":0.68,"proximidad":0.33,"lat":4.6053,"lon":-74.07159},{"id":"3","slug":"calle-26","nombre":"Calle 26","caminabilidad":0.55,"seguridad":0.64,"movilidad":0.77,"ambiente":0.75,"infraestructura":0.57,"habitabilidad":0.7,"proximidad":0.37,"ilustraciones":["planetario"],"lat":4.61134,"lon":-74.06987},{"id":"4","slug":"calle-32","nombre":"Calle 32","caminabilidad":0.55,"seguridad":0.63,"movilidad":0.78,"ambiente":0.73,"infraestructura":0.58,"habitabilidad":0.69,"proximidad":0.43,"ilustraciones":["centro_internacional"],"lat":4.6186,"lon":-74.06807},{"id":"5","slug":"calle-36","nombre":"Calle 36","caminabilidad":0.6,"seguridad":0.61,"movilidad":0.7,"ambiente":0.85,"infraestructura":0.47,"habitabilidad":0.67,"proximidad":0.13,"idRuido":"1","ilustraciones":["parque_nacional"],"lat":4.62475,"lon":-74.06642},{"id":"6","slug":"diagonal-40a","nombre":"Diagonal 40A","caminabilidad":0.6,"seguridad":0.58,"movilidad":0.73,"ambiente":0.79,"infraestructura":0.52,"habitabilidad":0.67,"proximidad":0.38,"ilustraciones":["universidad_javeriana"],"lat":4.63139,"lon":-74.06426},{"id":"7","slug":"calle-45","nombre":"Calle 45","caminabilidad":0.52,"seguridad":0.55,"movilidad":0.73,"ambiente":0.7,"infraestructura":0.5,"habitabilidad":0.65,"proximidad":0.43,"lat":4.62825,"lon":-74.06709},{"id":"8","slug":"calle-53","nombre":"Calle 53","caminabilidad":0.54,"seguridad":0.54,"movilidad":0.74,"ambiente":0.66,"infraestructura":0.49,"habitabilidad":0.65,"proximidad":0.27,"idRuido":"2","idAire":"KR7XCL52","lat":4.63949,"lon":-74.0629},{"id":"9","slug":"calle-56","nombre":"Calle 56","caminabilidad":0.51,"seguridad":0.54,"movilidad":0.73,"ambiente":0.67,"infraestructura":0.48,"habitabilidad":0.65,"proximidad":0.19,"lat":4.64198,"lon":-74.06227},{"id":"10","slug":"calle-60","nombre":"Calle 60","caminabilidad":0.56,"seguridad":0.53,"movilidad":0.73,"ambiente":0.69,"infraestructura":0.5,"habitabilidad":0.65,"proximidad":0.28,"idRuido":"3","ilustraciones":["parque_hippies"],"idAire":"KR7XCL60","lat":4.64536,"lon":-74.06129},{"id":"11","slug":"calle-67","nombre":"Calle 67","caminabilidad":0.57,"seguridad":0.56,"movilidad":0.76,"ambiente":0.71,"infraestructura":0.53,"habitabilidad":0.68,"proximidad":0.34,"lat":4.6507,"lon":-74.05822},{"id":"12","slug":"calle-70","nombre":"Calle 70","caminabilidad":0.6,"seguridad":0.59,"movilidad":0.76,"ambiente":0.69,"infraestructura":0.55,"habitabilidad":0.7,"proximidad":0.29,"lat":4.65276,"lon":-74.05655},{"id":"13","slug":"calle-72","nombre":"Calle 72","caminabilidad":0.58,"seguridad":0.57,"movilidad":0.76,"ambiente":0.69,"infraestructura":0.55,"habitabilidad":0.7,"proximidad":0.25,"ilustraciones":["edificio_venados"],"lat":4.65487,"lon":-74.05543},{"id":"14","slug":"calle-74","nombre":"Calle 74","caminabilidad":0.61,"seguridad":0.52,"movilidad":0.71,"ambiente":0.7,"infraestructura":0.54,"habitabilidad":0.67,"proximidad":0.28,"lat":4.65672,"lon":-74.05437},{"id":"15","slug":"calle-76","nombre":"Calle 76","caminabilidad":0.58,"seguridad":0.54,"movilidad":0.71,"ambiente":0.7,"infraestructura":0.54,"habitabilidad":0.67,"proximidad":0.28,"lat":4.6587,"lon":-74.0528},{"id":"16","slug":"calle-84","nombre":"Calle 84","caminabilidad":0.53,"seguridad":0.48,"movilidad":0.69,"ambiente":0.69,"infraestructura":0.53,"habitabilidad":0.65,"proximidad":0.34,"ilustraciones":["subida_patios"],"idAire":"AK7XCL81","lat":4.66307,"lon":-74.0487},{"id":"17","slug":"calle-85","nombre":"Calle 85","caminabilidad":0.54,"seguridad":0.48,"movilidad":0.7,"ambiente":0.69,"infraestructura":0.55,"habitabilidad":0.66,"proximidad":0.31,"idRuido":"4","lat":4.66517,"lon":-74.04682},{"id":"18","slug":"calle-92","nombre":"Calle 92","caminabilidad":0.5,"seguridad":0.47,"movilidad":0.68,"ambiente":0.73,"infraestructura":0.54,"habitabilidad":0.65,"proximidad":0.15,"ilustraciones":["museo_del_chico"],"lat":4.67139,"lon":-74.0438},{"id":"19","slug":"calle-94","nombre":"Calle 94","caminabilidad":0.52,"seguridad":0.45,"movilidad":0.67,"ambiente":0.71,"infraestructura":0.52,"habitabilidad":0.63,"proximidad":0.09,"ilustraciones":["seminario_conciliar"],"lat":4.67447,"lon":-74.0417},{"id":"20","slug":"calle-100","nombre":"Calle 100","caminabilidad":0.5,"seguridad":0.53,"movilidad":0.69,"ambiente":0.64,"infraestructura":0.55,"habitabilidad":0.64,"proximidad":0.07,"lat":4.67986,"lon":-74.03821},{"id":"21","slug":"calle-106","nombre":"Calle 106","caminabilidad":0.51,"seguridad":0.55,"movilidad":0.7,"ambiente":0.62,"infraestructura":0.58,"habitabilidad":0.64,"proximidad":0.07,"idRuido":"5","ilustraciones":["escuela_caballeria"],"idAire":"KR7XCL106","lat":4.68514,"lon":-74.03566},{"id":"22","slug":"calle-116","nombre":"Calle 116","caminabilidad":0.68,"seguridad":0.53,"movilidad":0.72,"ambiente":0.68,"infraestructura":0.46,"habitabilidad":0.65,"proximidad":0.15,"ilustraciones":["fundacion_santa_fe"," centro_comercial_santa_barbara"],"lat":4.69366,"lon":-74.03323},{"id":"23","slug":"calle-127","nombre":"Calle 127","caminabilidad":0.56,"seguridad":0.51,"movilidad":0.71,"ambiente":0.68,"infraestructura":0.4,"habitabilidad":0.63,"proximidad":0.14,"lat":4.70214,"lon":-74.02859},{"id":"24","slug":"calle-134","nombre":"Calle 134","caminabilidad":0.6,"seguridad":0.51,"movilidad":0.69,"ambiente":0.75,"infraestructura":0.41,"habitabilidad":0.63,"proximidad":0.13,"idRuido":"6","idAire":"KR7XCL130","lat":4.71168,"lon":-74.02917},{"id":"25","slug":"calle-140","nombre":"Calle 140","caminabilidad":0.57,"seguridad":0.47,"movilidad":0.69,"ambiente":0.8,"infraestructura":0.41,"habitabilidad":0.63,"proximidad":0.14,"ilustraciones":["centro_comercial_palatino"],"lat":4.71619,"lon":-74.02875},{"id":"26","slug":"calle-147","nombre":"Calle 147","caminabilidad":0.63,"seguridad":0.47,"movilidad":0.66,"ambiente":0.78,"infraestructura":0.42,"habitabilidad":0.62,"proximidad":0.11,"lat":4.72271,"lon":-74.02615},{"id":"27","slug":"calle-151","nombre":"Calle 151","caminabilidad":0.54,"seguridad":0.51,"movilidad":0.68,"ambiente":0.81,"infraestructura":0.42,"habitabilidad":0.64,"proximidad":0.12,"lat":4.72562,"lon":-74.02488},{"id":"28","slug":"calle-153","nombre":"Calle 153","caminabilidad":0.61,"seguridad":0.5,"movilidad":0.67,"ambiente":0.79,"infraestructura":0.42,"habitabilidad":0.62,"proximidad":0.12,"lat":4.72759,"lon":-74.02462},{"id":"29","slug":"calle-160","nombre":"Calle 160","caminabilidad":0.59,"seguridad":0.45,"movilidad":0.62,"ambiente":0.66,"infraestructura":0.39,"habitabilidad":0.54,"proximidad":0.15,"idAire":"KR7XCL160","lat":4.73504,"lon":-74.02434},{"id":"30","slug":"calle-164","nombre":"Calle 164","caminabilidad":0.61,"seguridad":0.45,"movilidad":0.65,"ambiente":0.72,"infraestructura":0.39,"habitabilidad":0.54,"proximidad":0.2,"lat":4.73928,"lon":-74.02277},{"id":"31","slug":"calle-165","nombre":"Calle 165","caminabilidad":0.59,"seguridad":0.46,"movilidad":0.64,"ambiente":0.71,"infraestructura":0.43,"habitabilidad":0.56,"proximidad":0.19,"ilustraciones":["hospital_simon_bolivar"],"lat":4.74105,"lon":-74.02232},{"id":"32","slug":"calle-170","nombre":"Calle 170","caminabilidad":0.42,"seguridad":0.49,"movilidad":0.65,"ambiente":0.67,"infraestructura":0.41,"habitabilidad":0.56,"proximidad":0.13,"idAire":"KR7XCL170","lat":4.74705,"lon":-74.02264},{"id":"33","slug":"calle-175","nombre":"Calle 175","caminabilidad":0.48,"seguridad":0.48,"movilidad":0.62,"ambiente":0.71,"infraestructura":0.38,"habitabilidad":0.57,"proximidad":0.15,"lat":4.75396,"lon":-74.02442},{"id":"34","slug":"calle-180","nombre":"Calle 180","caminabilidad":0.5,"seguridad":0.46,"movilidad":0.63,"ambiente":0.73,"infraestructura":0.38,"habitabilidad":0.56,"proximidad":0.14,"ilustraciones":["abastos_codabas"],"lat":4.75618,"lon":-74.02468},{"id":"35","slug":"calle-183","nombre":"Calle 183","caminabilidad":0.57,"seguridad":0.45,"movilidad":0.63,"ambiente":0.75,"infraestructura":0.41,"habitabilidad":0.56,"proximidad":0.12,"ilustraciones":["barrio_el_codito"],"lat":4.76052,"lon":-74.02634},{"id":"36","slug":"calle-189","nombre":"Calle 189","caminabilidad":0.53,"seguridad":0.45,"movilidad":0.64,"ambiente":0.76,"infraestructura":0.37,"habitabilidad":0.55,"proximidad":0.09,"idAire":"KR7XCL186","lat":4.76566,"lon":-74.02755},{"id":"37","slug":"calle-192","nombre":"Calle 192","caminabilidad":0.47,"seguridad":0.45,"movilidad":0.64,"ambiente":0.76,"infraestructura":0.37,"habitabilidad":0.55,"proximidad":0.09,"lat":4.76898,"lon":-74.02734},{"id":"38","slug":"calle-193","nombre":"Calle 193","caminabilidad":0.35,"seguridad":0.47,"movilidad":0.64,"ambiente":0.7,"infraestructura":0.35,"habitabilidad":0.54,"proximidad":0.08,"ilustraciones":["finca_la_suiza"],"lat":4.76966,"lon":-74.02703},{"id":"39","slug":"calle-200","nombre":"Calle 200","caminabilidad":0.37,"seguridad":0.5,"movilidad":0.63,"ambiente":0.59,"infraestructura":0.31,"habitabilidad":0.51,"proximidad":0.05,"ilustraciones":["subestacion_torca"],"lat":4.77711,"lon":-74.02605},{"id":"40","slug":"calle-220","nombre":"Calle 220","caminabilidad":0.3,"seguridad":0.5,"movilidad":0.5,"ambiente":0.46,"infraestructura":0.23,"habitabilidad":0.43,"proximidad":0.06,"lat":4.79862,"lon":-74.0307}] \ No newline at end of file diff --git a/tipos/compartidos.ts b/tipos/compartidos.ts index b610115..7d74d3a 100644 --- a/tipos/compartidos.ts +++ b/tipos/compartidos.ts @@ -1,10 +1,12 @@ +export type Medicion = number | null; + export type Ruido = [ /** fecha y hora de la medición de niveles de ruido. */ - hora: number | null, + hora: Medicion, /** Leq-1: contiene los niveles intermedios de ruido en esos 10 segundos de medición. Con este dato la experta menciona se puede comparar con la normativa de un máximo de 80db. En promedio se observó que los niveles de ruido son cercanos a 80db pero no superaron la normativa nacional. */ - leq1: number | null, + leq1: Medicion, /** Lmax: contiene los niveles máximos de ruido captados en esos 10 segundos de medición. */ - lmax1: number | null, + lmax1: Medicion, ]; export interface DatosRuido { @@ -38,6 +40,7 @@ export interface Punto { proximidad?: number; caminabilidad?: number; idRuido?: string; + idAire?: string; ilustraciones?: string[]; } @@ -52,32 +55,15 @@ export type LlavesDatosPunto = export type LlavesZats = 'habitabilidad' | 'ambiente' | 'infraestructura' | 'movilidad' | 'proximidad'; -export interface ElementosPorPunto { - [ - /** indica el número de paradero en el cual se tomó la información. */ - punto: number - ]: { - ilustraciones?: { - /** Ruta al archivo de la ilustración */ - ruta: string; - nombre: string; - descripcion?: string; - }[]; - /** Ruta al archivo del podcast */ - podcast?: { - ruta: string; - nombre: string; - descripcion?: string; - }[]; - perfiles?: { - ruta: string; - nombre: string; - descripcion?: string; - }[]; - textos?: { - /** Ruta al archivo de la ilustración */ - texto: string; - categoria?: string; - }[]; +export type LlavesAire = 'pm25' | 'ebc' | 'npNs'; + +export type ValoresMedicionAire = [pm25: Medicion, ebc: Medicion, npNs: Medicion]; + +export type MedicionAire = [fecha: string, ValoresMedicionAire]; + +export interface Aire { + [nombre: string]: { + promedios: { [llave in LlavesAire]: number }; + mediciones: MedicionAire[]; }; }