<div dir="auto"><div><br><div class="gmail_extra"><br><div class="gmail_quote">El 13 abr. 2017 5:47 AM, "daniel gomez" <<a href="mailto:danielgomezmarin@gmail.com">danielgomezmarin@gmail.com</a>> escribió:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div>Hola<br></div>Ya estoy arreglando todos los datos "INVALID":<br></div>1. reviso que el primer dato no sea invalid. si es así, lo arreglo devolviéndome desde el primer registro que no tenga ningún valor inválido.<br></div>1.1 lat y long se pueden predecir con la velocidad y el ángulo como decía brol. así las corrijo. las demás simplemente las estoy copiando. pero creo que se puede hacer mejor. lo pensamos.<br><br></div>2. una vez los primeros datos están correctos. reviso desde el principio hasta el final los inválidos usando la misma metodología para predecir lat y long basado en la velocidad y el ángulo. También, los demás datos que quedan incompletos los copio simplemente.<br><br></div>hay un efecto gracioso de hacer la predicción de la posición de esta manera (ver línea diagonal en donde parece ser la casa de Brol :) )y es que si la velocidad antes de ser invalid era diferente de cero, los nuevos valores de lat y long predichos vana a quedar movidos proporcionalmente a la última velocidad y en la dirección del último ángulo que se había registrado. pensemos en que esto se puede mejorar. para hacer más inteligentemente 1 y 2.<br><br></div>Entonces: ya no hay ningún dato invalid y con eso se hace el plot (ver imagen adjunta).<br><br>@Brol y @fede:<br>no se si seguir o pegármeles a ustedes, porque siento que estamos haciendo lo mismo :)<br></div></div></blockquote></div></div></div><div dir="auto"><br></div><div dir="auto">Nosotros hemos avanzado muy poco en refinar los datos o aplicar lógica a ellos entonces es muy valioso lo que estás logrando, no creo que sea lo mismo .. por el momento sólo hemos avanzado en ir viendo que tipo de visualizacion podria ser más util</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div>Me gusta mucho la leyenda que han puesto en el mapa! con un botón en cada tipo de rango se podría visualizar las zonas que en algún momento han presentado cierto tipo de rango. super útil :)<br><br><div>De todas maneras, el paso siguiente debería ser hacer el los filtros de tiempo.<br><br>En
 ese caso veo que las herramientas que usan ustedes pueden ser mejores 
porque ya tienen interactividad con botones y demás widgets. Los datos 
de esos botones podrían llegar al .py o al .pyo y ahi hacer las 
consultas y luego devolver los datos. Veo que leaflet es en javacript y 
aquí en una búsqueda rápida veo como se pueden interfazar leaflet y 
python:<br><a href="https://github.com/python-visualization/folium" target="_blank">https://github.com/python-<wbr>visualization/folium</a><br></div>podríamos
 mirarlo si hace falta y así vería más claro que cavamos dos túneles 
distintos para encontrarnos en la mitad del camino (folium?)<br><br></div><div>yo sigo trabajando, pensando en esta idea de api que comentaba Brol en el correo pasado:<div class="quoted-text"><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><br></div></div><div>saludos!<br></div><div><br><div><div><br><br><br><div><br><br><br></div></div></div></div></div><div class="elided-text"><div class="gmail_extra"><br><div class="gmail_quote">El 13 de abril de 2017, 9:26, daniel gomez <span dir="ltr"><<a href="mailto:danielgomezmarin@gmail.com" target="_blank">danielgomezmarin@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><div><div>mucho mejor!<br></div>yo sigo en python haciendo lo que hablamos arriba. en este momento estoy trabajando en sanar lo datos "INVALID" como sugería brol.<br></div>Tengo dos preguntas: <br>- la velocidad del sensor es en metros por segundo?<br></div>- a cuanto equivale un metro en latitud y en longitud? (esta seguro está en google)<br></div><div class="m_7856543276839394120HOEnZb"><div class="m_7856543276839394120h5"><div class="gmail_extra"><br><div class="gmail_quote">El 12 de abril de 2017, 23:32, federico lopez <span dir="ltr"><<a href="mailto:fede2001@gmail.com" target="_blank">fede2001@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">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/" target="_blank">http://www.daquina.io/vizAireP<wbr>untosGraduados/</a><br></div><div><br></div><div><br></div></div><div class="m_7856543276839394120m_2219081717510482763HOEnZb"><div class="m_7856543276839394120m_2219081717510482763h5"><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><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_7856543276839394120m_2219081717510482763m_8813759312515614037m_-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_7856543276839394120m_2219081717510482763m_8813759312515614037m_-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_7856543276839394120m_2219081717510482763m_8813759312515614037m_-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_7856543276839394120m_2219081717510482763m_8813759312515614037m_-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/visualizacionCa<wbr>lidadAire/master/data/points.c<wbr>sv</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_7856543276839394120m_2219081717510482763m_8813759312515614037m_-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><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="m_7856543276839394120m_2219081717510482763m_8813759312515614037HOEnZb"><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_7856543276839394120m_2219081717510482763m_8813759312515614037m_-4640184867321999896gmail-docs-internal-guid-3d424f65-59d4-a6b7-eb67-3985139f0c7d"></span></div></div><div class="m_7856543276839394120m_2219081717510482763m_8813759312515614037HOEnZb"><div class="m_7856543276839394120m_2219081717510482763m_8813759312515614037h5"><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_7856543276839394120m_2219081717510482763m_8813759312515614037m_-4640184867321999896HOEnZb"><div class="m_7856543276839394120m_2219081717510482763m_8813759312515614037m_-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_7856543276839394120m_2219081717510482763m_8813759312515614037m_-4640184867321999896m_-3019175759368455055HOEnZb"><div class="m_7856543276839394120m_2219081717510482763m_8813759312515614037m_-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_7856543276839394120m_2219081717510482763m_8813759312515614037m_-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_7856543276839394120m_2219081717510482763m_8813759312515614037m_-4640184867321999896m_-3019175759368455055m_-7562844181393532194h5"><div dir="auto"><span><div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="m_7856543276839394120m_2219081717510482763m_8813759312515614037m_-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_7856543276839394120m_2219081717510482763m_8813759312515614037m_-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_7856543276839394120m_2219081717510482763m_8813759312515614037m_-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_7856543276839394120m_2219081717510482763m_8813759312515614037m_-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_7856543276839394120m_2219081717510482763m_8813759312515614037m_-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" 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" 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></blockquote></div><br></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></div></div>