<div dir="ltr">Aún sin implementar las buenas ideas que se han planteado en este hilo hoy se hizo (brolin) esta versión del mapa con puntos graduados que empieza a ser más útil que el mapa de calor, ahí ya se pueden consultar medidas en horarios (y días) diferentes.<div><br></div><div><a href="http://www.daquina.io/vizAirePuntosGraduados/">http://www.daquina.io/vizAirePuntosGraduados/</a><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-04-10 17:03 GMT-05:00 daniel gomez <span dir="ltr"><<a href="mailto:danielgomezmarin@gmail.com" target="_blank">danielgomezmarin@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Hola<span class=""><br><span style="font-size:11pt;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:line-through;vertical-align:baseline" id="m_-4640184867321999896gmail-docs-internal-guid-3d424f65-59d4-5bad-2e11-fb118c97d063"><br>Inicialmente será de archivos planos y filtramos al cargarlos y ojalá después que sea una especie de api a la que se le hagan consultas.<br></span></span></div><span style="font-size:11pt;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline" id="m_-4640184867321999896gmail-docs-internal-guid-3d424f65-59d4-a6b7-eb67-3985139f0c7d"><br>Ya está leyendo desde la web. <br></span></div><span style="font-size:11pt;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline" id="m_-4640184867321999896gmail-docs-internal-guid-3d424f65-59d4-a6b7-eb67-3985139f0c7d">desde la dirección que me dió @fede:<br></span></div><div><span style="font-size:11pt;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline" id="m_-4640184867321999896gmail-docs-internal-guid-3d424f65-59d4-a6b7-eb67-3985139f0c7d"><a href="https://raw.githubusercontent.com/daquina-io/visualizacionCalidadAire/master/data/points.csv" target="_blank">https://raw.githubusercontent.<wbr>com/daquina-io/<wbr>visualizacionCalidadAire/<wbr>master/data/points.csv</a><br><br></span></div><div><span style="font-size:11pt;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline" id="m_-4640184867321999896gmail-docs-internal-guid-3d424f65-59d4-a6b7-eb67-3985139f0c7d">estoy atento a que consolidemos un wishlist para irle trabajando. <br><br>Por el momento estoy saltándome los datos "INVALID". Pero ya @brol nos mostró como podemos hacer la calibración de la velocidad con el course:<br></span><span class=""><br>El dato course es el ángulo (0 < course < 360) respecto al norte. <br>Y
 con la velocidad y el tiempo del último punto se puede hacer una 
aproximación a la siguiente posición: x = v*t<br><br></span></div><div>hoy le estuve pensando y hay algo: <br>el primer dato por ejemplo es "INVALID" entonces no se puede sanar el dataset de atrás hacia adelante.<br>de hecho los primeros datos son INVALID.<br>en ese caso deberíamos buscar el primer dato que no sea INVALID.<br></div><div>Una vez lo encontremos nos vamos devolviendo "sanando" el dataset hasta llegar a la primera medición.<br></div><div>y apenas tengamos esos primeros corregidos nos vamos sanando los datos hacia adelante.<br><br></div><div>también atentos a lo que diga @eliette sobre el sensor. para depurar esa medida.<br><br></div><div>pego el "mapa" que hace en este momento <br><span class="HOEnZb"><font color="#888888">:D<br></font></span></div><div><span style="font-size:11pt;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline" id="m_-4640184867321999896gmail-docs-internal-guid-3d424f65-59d4-a6b7-eb67-3985139f0c7d"></span></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">El 10 de abril de 2017, 22:59, brolin <span dir="ltr"><<a href="mailto:brolin108@gmail.com" target="_blank">brolin108@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Ey, una nota que estén animados con esto. Poco a poco lo iremos afinando :D</div><u><div><u><br></u></div>Respondiendo a los approach para analizar los datos:</u><div><br></div><div>Yo creo que inicialmente debemos trabajar en disponer los datos de modo tal como dice @dani:</div><span><div><br></div><div>- día del calendario (osea día por año,mes,día)</div><div>- día de la semana (agrupar todos los lunes, los martes y así) para poder comparar los fines de semana con los demás días.</div><div>- horas, para poder ver los momentos del día más críticos</div></span><div>- <span style="background-color:rgb(153,0,255)"><font color="#ffffff">recorrido de un usuario</font></span></div><div>- <span style="background-color:rgb(153,0,255)"><font color="#ffffff">todos los datos alrededor de un punto</font></span></div><div><br></div><div>Inicialmente será de archivos planos y filtramos al cargarlos y ojalá después que sea una especie de api a la que se le hagan consultas. </div><div><br></div><div>E independizar el análisis de la consulta de los datos. Yo creo que cada registro cuenta así contenga valores inválidos para algunos campos. </div><div><br></div><div>Lo que guardamos realmente son recorridos entonces están íntimamente relacionados con el tiempo. El mapa de calor que hicimos no es la mejor forma para representar esto.</div><div><br></div><div>El análisis del proyecto en python y lo que propone elitte con la normalización en el tiempo, supone análisis por área territorial. Una especie de <a href="https://duckduckgo.com/?q=binning+maps&t=vivaldi&iax=1&ia=images" target="_blank">binning maps</a> e incluso creo que faltaría </div><div>normalizar por el área territorial ¿de qué tamaño debería ser esta área?</div><div><br></div><div>@Eliette, cuándo decís medir el volumen de aire es medir el flujo de aíre que entra cada vez? cuándo voy a menos velocidad entra menos que cuándo voy más rápido?, el razonamiento va por ahí?</div><div>esta es la información que hay del sensor <a href="http://www.sharp-world.com/products/device/lineup/data/pdf/datasheet/gp2y1010au_appl_e.pdf" target="_blank">http://www.sharp-world.<wbr>com/products/device/lineup/dat<wbr>a/pdf/datasheet/gp2y1010au_app<wbr>l_e.pdf</a></div><div><br></div><div>De pronto de alguna manera mecánica sea posible que el sensor "chupe" el aíre de la muestra que va a leer y llene su cavidad con aproximadamente el mismo volumen, no se.</div><div><br></div><div>Otra posibilidad, es analizar los datos con modelos basados en agentes. No se mucho del tema pero lo bueno es que vamos a tener datos para hacer experimentos. </div><div>Hay unos frameworks en python o en netlogo y teoría que se puede revisar. Los enlaces que pego son lo primero que encontré al buscar por la palabra "agent based model"</div><div><br></div><div><a href="https://www.amazon.com/Agent-Based-Models-Quantitative-Applications-Sciences" target="_blank">https://www.amazon.com/Agent-B<wbr>ased-Models-Quantitative-Appli<wbr>cations-Sciences</a><br></div><div><div><a href="https://www.youtube.com/watch?v=bjjoHji8KUQ" target="_blank">https://www.youtube.com/watch?<wbr>v=bjjoHji8KUQ</a></div><div><a href="http://mesa.readthedocs.io/en/latest/" target="_blank">http://mesa.readthedocs.io/en/<wbr>latest/</a></div></div><div><br></div><div>Esta semana le voy a trabajar a tener una especie de api donde enviar y recuperar los datos.</div><div><br></div><div>Saludos</div><div>-</div><div>b</div><div><br></div></div><div class="m_-4640184867321999896HOEnZb"><div class="m_-4640184867321999896h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-04-08 22:59 GMT-05:00 brolin <span dir="ltr"><<a href="mailto:brolin108@gmail.com" target="_blank">brolin108@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Así se ven los datos como flechas giradas según el course<div><img src="cid:ii_j1a5tjbd0_15b50dd65e1beeaa" style="margin-right:25px"><br>​<br></div></div><div class="m_-4640184867321999896m_-3019175759368455055HOEnZb"><div class="m_-4640184867321999896m_-3019175759368455055h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-04-08 22:56 GMT-05:00 brolin <span dir="ltr"><<a href="mailto:brolin108@gmail.com" target="_blank">brolin108@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><u>Respondiendo a cómo predecir la próxima posición</u>: El dato course es el ángulo (0 < course < 360) respecto al norte. Y con la velocidad y el tiempo del último punto se puede hacer una aproximación a la siguiente posición: x = v*t<div><br></div><div>Esto yo no lo haría en el microcontroladorm si no en el servidor cuando se envían los datos. </div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-4640184867321999896m_-3019175759368455055m_-7562844181393532194h5">2017-04-06 2:30 GMT-05:00 daniel gomez <span dir="ltr"><<a href="mailto:danielgomezmarin@gmail.com" target="_blank">danielgomezmarin@gmail.com</a>></span>:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-4640184867321999896m_-3019175759368455055m_-7562844181393532194h5"><div dir="auto"><span><div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="m_-4640184867321999896m_-3019175759368455055m_-7562844181393532194m_8366562972483362275m_-7115848989573445877quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div class="m_-4640184867321999896m_-3019175759368455055m_-7562844181393532194m_8366562972483362275m_-7115848989573445877quoted-text"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div></div></div></div></blockquote><div><br></div></div><div>Creo que la señal del gps es muy sensible y ante árboles o techos se pierde, yo si tomo datos de las otras variables pero no se pueden ver en el mapa porque los datos gps son inválidos. La rutina puede ser almacenar en un buffer la última coordenada válida  y con el course y la velocidad calcular la próxima coordenada si el dato es inválido.</div></div></div></div></blockquote></div></div></div><div dir="auto"><br></div></span><div dir="auto">Si. Esta me parece mucho mejor. Cómo es el course? La última del gps con mezclada con los acelerómetros o las dos últimas del gps?</div><span><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="m_-4640184867321999896m_-3019175759368455055m_-7562844181393532194m_8366562972483362275m_-7115848989573445877quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div class="m_-4640184867321999896m_-3019175759368455055m_-7562844181393532194m_8366562972483362275m_-7115848989573445877quoted-text"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"></div></div></div></blockquote><div><br></div></div><div>Pues yo creo que es una combinación de todas, debería ser posible:</div><div><br></div><div>- Descargarlos a un celular o un compu conectándose a una red que cree el esp (si tiene wifi) </div><div>- Si tiene conexión a internet que envíe los datos a un servidor</div><div>- Que avise si la memoria se está llenando con un led parpadeando</div><div>- Partir los datos por días u otra manera mejor a evaluar</div><div>- <span style="background-color:rgb(153,0,255)">Otras que se nos ocurran</span></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="m_-4640184867321999896m_-3019175759368455055m_-7562844181393532194m_8366562972483362275m_-7115848989573445877quoted-text"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div></div></div></div></div></blockquote></div></div></div></blockquote></div></div></div><div dir="auto"><br></div></span><div dir="auto">Todo suena muy bien. </div><div dir="auto">Yo no se nada de conectividad con redes en cpp y poco de cpp :P. Pero puedo apoyarte por televideo si vas a hacer una sentada próximamente. </div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div></div>
<br></div></div><span>______________________________<wbr>_________________<br>
unloquer mailing list<br>
<a href="mailto:unloquer@lists.aktivix.org" target="_blank">unloquer@lists.aktivix.org</a><br>
<a href="https://lists.aktivix.org/mailman/listinfo/unloquer" rel="noreferrer" target="_blank">https://lists.aktivix.org/mail<wbr>man/listinfo/unloquer</a><br>
<br></span></blockquote></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
unloquer mailing list<br>
<a href="mailto:unloquer@lists.aktivix.org" target="_blank">unloquer@lists.aktivix.org</a><br>
<a href="https://lists.aktivix.org/mailman/listinfo/unloquer" rel="noreferrer" target="_blank">https://lists.aktivix.org/mail<wbr>man/listinfo/unloquer</a><br>
<br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
unloquer mailing list<br>
<a href="mailto:unloquer@lists.aktivix.org">unloquer@lists.aktivix.org</a><br>
<a href="https://lists.aktivix.org/mailman/listinfo/unloquer" rel="noreferrer" target="_blank">https://lists.aktivix.org/<wbr>mailman/listinfo/unloquer</a><br>
<br></blockquote></div><br></div>