[Actualizado] Prognos: aplicación para monitorear el estado del tiempo en Cuba.

Saludos comunidad:

Soy de las personas que me preocupo bastante sobre el clima, y, no porque me guste andar mucho al aire libre, sino para saber al menos cuando debo traer la capa, o la camisa de mangas largas para protegerme del sol. Soy un asiduo lector de la web del Instituto de Meteorología, de esta forma me mantengo al día sobre el comportamiento del clima.

Pero, soy de los que me encantan las aplicaciones de escritorio, y, durante mucho tiempo usé plasmoides en KDE(como LCD Weather Station, Weather Forecast, YAWP, etc) que consultaban el estado del tiempo, pero, usan servicios foráneos, tales como:

  • AccuWeather Weather Service.
  • BBC Weather from UK MET Office.
  • Debian Weather Service.
  • NOAA’s National Weather Service.

No tengo nada en contra de estos servicios, todo lo contrario, están muy bien diseñados y funcionan a las 1k de maravillas, pero, como nuestro vino es amargo, pero es nuestro vino, me di a la tarea de hacer una aplicación Made in Cuba, que monitoree el estado del tiempo.

Génesis

Lo primero que hice fue consultar el sitio de Instituto de Meteorología, y ver de que forma podía acceder a estos datos. La forma más usual y sensata, es definir, un servicio web, donde, dicha institución publique sus datos para que sean consultados de terceros, al no existir esta posibilidad, tuve que parsear el RSS del sitio, tarea nada elegante, pero funcional. Y sin más muelas les presento a:

Prognos

Prognos(del griego prognostikon) es una aplicación para monitorear el estado del tiempo, única y exclusivamente, en Cuba.  Esta programada usando el lenguaje de programación Python versión 2.7 y el poderoso framework Qt4.

Actualmente se encuentra en fase de pruebas y bajo desarrollo. Cualquier sugerencia, bugs, criticas, donaciones, ofertas de trabajo, invitaciones, etc son bienvenidas.

Requerimientos

  • python-lxml
  • python-qt4
  • python-urllib2

Características

  • Icono de la bandeja y de la ventana se actualizan en dependencia del estado del tiempo.
  • Muestra la temperatura en grados Celcius, Fahrenheit y Kelvin.
  • Autenticación mediante proxy(por ahora solamente esta funcionalidad, ya que en nuestra gran mayoría salimos usando proxys).
  • Actualiza el pronóstico de la temperatura en dependencia de la hora del día.
  • Historial de pronóstico guardado en una base de datos(sqlite3).
  • Ventana emergente con pronóstico extendido.(aproximadamente 5 días).

Modo de uso

Ejecutar python setup.py install como root.

Luego de que se instale, lo ejecutamos, nos saldrá la ventana de configuración, donde le definimos nuestros parámetros, y luego pulsamos el botón Actualizar. En dependencia de nuestro ancho de banda, actualizará nuestros datos.

Historial de cambios

  • Los datos son guardados en una base de datos y solo encuestará el sitio del InsMet en caso de que sea necesario.
  • Corregidos los errores en Unicode.
  • Añadido diálogo de pronóstico extendido.
  • Añadidas nuevas escalas de temperatura.
  • Añadido tooltip en el icono de la bandeja del sistema.
  • Algunos errores corregidos y pequeñas optimizaciones.
  • Eliminado selección de lenguaje(provisional).

En esta versión, cuando actualiza el pronóstico, se guarda en un base de datos el pronóstico de los 5 días posteriores a la fecha en que se actualizó. En esos 5 días, no es necesario volver a actualizar el pronóstico. Esta característica fue añadida a petición de algunos usuarios.

Se está trabajando en versiones para otras plataformas(incluye versión para móviles).

Es necesario tener actualizada la fecha del sistema para que Prognos funcione sin dificultades.

Capturas:

 

Donde obtenerlo

Desde GitHub prognos.tar.gz

Desde GitHub prognos.zip

Desde GUTL

Quieres contribuir?

Si quieres contribuir(que falta que hace) ya sea como beta-tester, artwork, traducciones, o simplemente insultarme, puede llegarte a la página del proyecto(Internet)  o hacer un pull-request en el repositorio oficial.

¿Te resultó interesante? Compártelo ...



Ozkar

Publicado por Ozkar

http://codeshard.github.io/ » Forma parte de GUTL desde el 6 diciembre, 2011. Soy uno ahí, no seas como yo...

Este artículo tiene 64 comentarios

    • Tengo un karma genial para las personas como tu. No puedes comentar sobre Qt4, o Python, o simplemente criticar la aplicación? Debes hacer un comentario completamente, y, parafraseandote, superfluo? Sugiero a los demás administradores poner este comentario a moderación.

    • lo que para uno es alucinante para otros es vital por ejemplo sabias que los buzos nesecitan del parte del tiempo para hacer sus inmerciones que muchos aficionados a deportes como el paracaidismo y el parapenter nesecitan saber el estad de las corrientes termicas. y que a mi por ejemplo me parece fantástico que alguien se le haya ocurrido lo que a mi no

    • y eso pincha en talla ???

      Excelente comentario de un supuesto desarrollador pronto a graduarse de la UCI. Por eso nunca digo en que Universidad me gradué. Deja ver como te respondo: No se men si pincha en talla, debes probarlo en tu propia PC men…

  1. Excelente aporte Oz; es bueno saber que hay desarrolladores (de nuestra ciudad) ‘creando’ aplicaciones realmente útiles para la comunidad de usuarios. Mis !Felicitaciones! we.. 🙂

  2. Resulta interesante esta aplicación, porque se nutre de fuentes cubanas, la voy a probar aún cuando el tiempo no me interesa un comino, me da lo mismo que llueva que caiga granizado.

  3. El juego semántico con las palabras «placer» y «solar» lo he visto en varios comentaros tuyos este año y el anterior y el anterior… y da muestras de tu sentido del humor, un humor recursivo, diría un programador, pero dejando eso atrás, creo que no debes molestarte por comentarios como el de @Frank Alexander, pero te haré una sugerencia en forma de pregunta (que no tiene que ver con el código que escribiste, que no lo he visto): ¿hay una manera de correr la app estando offline?, te explico: revisa la página: http://freed.upr.edu.cu y verás a qué me refiero, por esa página me entero de muchas cosas y en este país somos más de 11 millones sin internet.
    saludos, y fue un verdadero solar (que falta me hace porque estoy construyendo).

    • @hobbit:
      Es que soy fan a Punto y Coma, ellos lo usan mucho.
      Estoy trabajando en esa versión, la versión offline, pero ahora me preocupa más el tema de seguridad de la autenticación. Como acoté en el artículo, en próximas versiones(si el tiempo y las ganas me lo permiten) solo será necesario estar online once a week, esta característica si es ‘mandatory’.
      La idea detrás de Prognos es esa, tener el pronóstico para al menos, una semana, que es el rango de fechas que define en su pronóstico extendido el InsMet.
      Thx a lot por tus sugerencias.

  4. Jajajajajaja, tu sentido del humor, raro, raro de verdad, no le había echado el ojo al código y cuando lo hice me encontré con rubiera_ui.py LOL

    • Exactamente fue lo primero que me llamo la atencion, eso de rubiera_ui.py
      Estoy tratando de hacer un clon de este bicharraco en PHP para hacer un plugin para WordPress. Lo agradecerian sitios que solo tienen visibilidad nacional y que sus servers igual solo leen lo que tenemos en .cu

      • No hay lio, haga lo que necesite. Loque si me ‘fusilas’ las expresiones regulares u otra cosa, recuerda que Prognos es Apache License v2.0

  5. Gracias por el aporte, el conocimiento debe ser patrimonio de la Humanidad. Hace falta que considere otras localidades o por lo menos otras provincias, aunque entiendo que el Instituto de Meteorología tampoco las tiene.

    • Gracias a usted por llegarse y comentar.

      aunque entiendo que el Instituto de Meteorología tampoco las tiene.

      Desafortunadamente, esas localidades son las únicas que contempla el InsMet 🙁

  6. El dilema de InsMet es que los pronósticos son para para días venideros, sería bueno que tuvieran algo como los servicios que mencionas anteriormente y poder saber la temperatura, vientos y demás más actualizado. Yo hice algo como lo tuyo para un sitio que hice en mi pincha para recoger los feed y las noticias y sé de lo que hablas.

    Saludos, Yoandy

  7. Interesante app Ozcar lo instale en Mint 17 y funciona Ok, ahora, existe alguna posibilidad de que cuando minimice la ventana se me quede el icono en el systray y que no se me quede en la barra de tareas pues solo desaparece de la barra de tareas si se minimiza desde el icono del systray, otro que creo que pudieras manejar es que en configuración se pudiera lanzar la aplicación al entrar al sistema (para no tener que abrirlo cada ves que entre a la sesión) las otras recomendaciones que a mi particularmente me gustaria en la app son boberias menores como por ejemplo al poner el mause encima del icono del systray me diera la temperatura o cualquier informacion adicional (algo parecido a como te pone la fecha cuando pones el cursor encima de la hora) por cierto, no se si este listo o no pero el boton prónostico no hace nada (ni idea si deba hacer algo :D) lo otro es que me muestre no solo los datos del dia siguiente sino que muestre si el InsMet lo permite el pronostico del dia en curso y al menos los 3 venideros por lo demas excelente trabajo, felicidades sigue asi de productivo jajajajaja

    • PD: ni idea del porque esta echo asi pero como dato curioso por cosas de la vida la PC tenia la fecha de mañana por lo que pense que el pronostico era el de mañana y nop, pues la fecha que te pone el susodicho es la que tiene la maquina y no la del pronostico 😀

          • Me alegro! Este fin de semana no les prometo adelantar nada porque es el cumple de mi abuela, de mi papa y de mi novia. La semana que viene subo otra versión con improvements. Por ahora anoto sus sugerencias. ya tu nombre va en los THANKS 😀

  8. Seria interesante que agregaran esta aplicacion al curso de python(Olvidado por cierto) ya que esta muy interesante ya que avarca varias funcionalidades que son de gran interes

  9. @Oskar, te felicito acabo de instalar el programa en Linux Mint 17 y funciona muy bien y se actualiza on-line muy rápido. Las sugerencias que te han dado serían necesarias para aumentar las funcionalidades y prestaciones de la aplicación.

    Saludos

    Carlos Parra Zaldivar

    • Ya pronto trabajare en las sugerencias, créame. Me alegro que por ahora funcione en su versión más básica. Gracias por probarlo. Saludos.

    • Saludos a todos,

      por mi parte he instalado la app sin problemas en Linux Mint 17 con Cinnamon, pero no se ejecuta, me informa lo siguiente:

      lordford@lala ~> prognos
      «sni-qt/2295» WARN 15:34:48.642 void StatusNotifierItemFactory::connectToSnw() Invalid interface to SNW_SERVICE
      QSystemTrayIcon::setVisible: No Icon set

      Quisiera me indicaran como puedo «poner a funcionar» Prognos.

      LordFord.

  10. saludos a todos
    Alguien me puede decir o enviarme la dirección del Palacio de Computación de la Habana….??? les agradecería su ayuda porque la verdad que necesito hacer un viaje urgente a la habana y de paso aprovecharé para ir a buscar el repo de Ubuntu 14.10, mi correo: smilsb@infomed.sld.cu

  11. jajajaja, gracias por la nota linuXgirl porque tienes mucha razón en lo que dices, gracias a ti tambien maikel, de todas formas buscando y buscando aqui en el sitio encontré la dirección en el artículo que habla del nuevo servicio de copia de los repos q hace una semana lo estaba buscando y no lo encontraba,

    salu2s

  12. Primero que nada felicidades, buena app, le estuve echando un ojo al codigo, rubiera_ui.py, jajajajaaaaa, esta buena esa

    Hace un tiempo tambien estuve por hacer algo de esto, pero al final no me puse para eso, tengo otras obligaciones.

    Como mejora o mas bien opción, pudieras utilizar la librería feedparser, para interpretar el RSS, estuve trabajando con ella y te puedo asegurar que es bastante buena.

    Como sugerencia te puedo decir que pudieras agregarle la descarga y muestra de las ultimas imagenes satelitales descargadas por el insmet, las mejoras son las del NOAA GOES Project, las imagenes se guarda en http://www.insmet.cu/SATELITE/TMP/, no vas a poder listar el directorio pero la imagenes se guardan con un patron facil de interpretar.

    de esta forma: 070625.jpg, los primeros dos digitos (07) es el dia y los otros cuatro son la hora (06) y los minutos (25), si te pones a buscar un poco mas te daras cuanta que se descargan de manera regular cada 30 minutos

    asi que tomando como referencia esta imagen 070625.jpg, la proxima sera 070655.jpg y luego 070725.jpg, y asi sucesivamente.

    agregandole esto tendrias la app, con los pronosticos y la imagenes setelitales casi en tiempo real.

    un saludo.

    • @zdanloc: Sobre feedparser, estuve pensando seriamente usarla, pero, quise mantenerme lo más low-profile posible con python, y así no obligar a nadie a instalar otra librería, cuando con python-urllib2 y python-lxml y un poco de magia negra con expresiones regulares se puede resolver el problema.
      Lo de las imágenes, jumm, si le extiendo funcionalidades ya ahorita hago un GIS 😀

  13. «sni-qt/3508» WARN 15:45:56.994 void StatusNotifierItemFactory::connectToSnw() Invalid interface to SNW_SERVICE
    QSystemTrayIcon::setVisible: No Icon set
    Traceback (most recent call last):
    File «prognos.py», line 5, in
    prognos.main()
    File «/home/prognos3/prognos/prognos.py», line 399, in main
    prognos = Prognos()
    File «/home/prognos3/prognos/prognos.py», line 119, in __init__
    self.load_data()
    File «/home/prognos3/prognos/prognos.py», line 346, in load_data
    self.label_temperature.setText(self.calculate_temperature(self.settings.value(«Weather/current_day_temp»).toString()))
    TypeError: QLabel.setText(QString): argument 1 has unexpected type ‘NoneType’

    Saludos.

  14. este… me dice este error al ejecutarlo
    «sni-qt/1664» WARN 10:32:42.693 void StatusNotifierItemFactory::connectToSnw() Invalid interface to SNW_SERVICE

      • este, Linux Mint quiana 64-bit ya reinstale ambos el qt-at-spi y qt-at-spi:i386 y el error que me da ahora es

        «sni-qt/7764» WARN 08:08:26.877 void StatusNotifierItemFactory::connectToSnw() Invalid interface to SNW_SERVICE
        Traceback (most recent call last):
        File «/usr/local/bin/prognos», line 5, in
        prognos.main()
        File «/usr/local/lib/python2.7/dist-packages/prognos/prognos.py», line 447, in main
        prognos = Prognos()
        File «/usr/local/lib/python2.7/dist-packages/prognos/prognos.py», line 128, in __init__
        self.load_data()
        File «/usr/local/lib/python2.7/dist-packages/prognos/prognos.py», line 376, in load_data
        self.settings.value(«Weather/current_day_temp»).toString()))
        TypeError: QLabel.setText(QString): argument 1 has unexpected type ‘NoneType’

  15. Está muy buena esta APP,, funciona al 100 me pregunto si existe la posibilidad en otra versión salga el tiempo de la Isla de la Juventud y otras provincias,,, salu2 y gracias

  16. Lo instalé en mi PC ahora mismo, Ubuntu 16.04 con Xfce4, corre genial, el tray icon no da lucha.. felicidades Oz! 😀

  17. Buenas no exite una vercion similar para Android seria genial ya que otros ususrios podrian acceder a la informacion del tiempo en Cuba. Seria muy bueno que se trabajara en ello, asi poder llegar a mas personas. De antemano gracias

Los comentarios están cerrados.