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.
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).
Capturas:
Donde obtenerlo
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.
Esalucinante preocuparse por el tiempo, velocidad del viento en Km/h, estado del clima.
Y todo tipo de asuntos supérfluos e ignorar la realidad en la que el mundo está inmersa:
http://guinguinbali.com/index.php?lang=es&mod=news&cat=2&id=1386
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.
Nacistes TROLL o fue una eleccion personal?
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…
LOL
BAF!, no t hagas q tambien salistes d esta cueva, es q no estoy ultimamente pa codigos, esta temporada es d mucho WoW pero me cuadra la aplicacion, le metere las manos a ver q tal..
Brother… Y tu fuiste a la Universidad a jugar WoW o a hacerte ingeniero informatico? Ya creo entender por que tus comentarios generalmente son tan desacertados. disculpa la sinceridad, es que a veces me da nostalgia de que Cuba se llene de profesionales medio creibles
Excelente aporte Oz; es bueno saber que hay desarrolladores (de nuestra ciudad) ‘creando’ aplicaciones realmente útiles para la comunidad de usuarios. Mis !Felicitaciones! we.. 🙂
Pues un placer, y más que un placer, un solar 😀
Oye!!! Esa frase es mía y no le puse CopyLeft, ja, ja, ja
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.
Bueno, ustedes se salvan que en Cuba no cae nieve! Jaja
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.
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
LOLBelieve ir or not, ese fue el primer nombre de la app! y si, me sentido del humor digamos que tiene sus particularidades 🙂
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
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.
Desafortunadamente, esas localidades son las únicas que contempla el InsMet 🙁
Oskar funciona bien, es el pronostico o el estado actual del tiempo?, podrias obtener mas datos parseando este archivo http://www.met.inf.cu/pronostico/est.csv es una tablas con los datos de las estaciones de todo el pais en formato csv, creo que te sera mas facil.
Si tienes dudas sobre que numero de estacion es de cada lugar mira aqui http://www.met.inf.cu/asp/genesis.asp?TB0=PLANTILLAS&TB1=ESTACIONES&TB2=EST&TB3=/pronostico/est.csv
@Segator eso cada que tiempo se actualiza?? Otra cosa, hay alguna leyenda de esos datos? algunos se caen de la mata pero la mayoría ni ostia.
Saludos
como dije arriba este sitio lo aclara todo http://www.met.inf.cu/asp/genesis.asp?TB0=PLANTILLAS&TB1=ESTACIONES&TB2=EST&TB3=/pronostico/est.csv ellos lo que hacen es parsear el csv
Ya, es que cuando hice el comentario no había refrescado la página, de todas maneras la pega es que no lo actualicen más seguido.
Saludos
El dato que tienen ahora mismo es de hoy a las 7:00 asi que debe ser frecuentemente la actualizacion
Si, 1 vez por día, a veces 2
Vaya, no sabía de esa. Ahí vienen datos mucho más completos. Y si, creo que es mucho más fácil. Gracias por la sugerencia!!
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
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
alabao Ozkar con C quien rayos sera ese jeje mala mia jajaja respetos jajaja
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 😀
Si esas funcionalidades aun no están terminadas. Liberé esta primera versión llena de bugs para ver estas primeras cosas.
jeje bueno por lo menos ya sabe que hay un gran interes por parte de los usuarios en tu aplicación ejej
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 😀
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
malisima mia por la ortografia, estoy bastante apurado con el trabajo. Mil disculpas ahora fue que me di cuenta
No han dicho cuando pienzan seguir el curso?
jejeje, sip, lo siento por eso, me quede un poco ocupado, ademas, no pense que alguien lo siguiera siquiera….
En cuanto entre en caja, puedo tomarlo de nuevo, a no ser que @Ozkar tenga objecion alguna… 🙂
Anda, anda y ve…
@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.
@Ozkar, posibilidad de portalo a Windows?
Bueh… vamos a ver que se hace en esa dirección, si alguien sabe empaquetarlo, pues que contribuya y ya.
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
Sin mucha muela, frente al Parque de la Fraternidad
Reina y Amistad, Centro Habana. Frente al Parque de La Fraternidad.
Rutas: P-15, P-11, P-14, P-13, P-7, P-12, etc.
Nota: No le preguntes a ningún «habanero» que haya nacido en La Habana, seguro que no sabe dónde está el Parque de La Fraternidad. 😉
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
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 😀
«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.
ops, olvide escribir que es en Ubuntu 14.04 con LXDE, la versión anterior no daba ese problema.
Saludos.
¿Lenguaje o idioma? ¿Falsa cognada?
este… me dice este error al ejecutarlo
«sni-qt/1664» WARN 10:32:42.693 void StatusNotifierItemFactory::connectToSnw() Invalid interface to SNW_SERVICE
Entorno de escritorio?? y versión de Qt instalada? Ah, prueba reinstalando un paquete que en Ubuntu debe llamarse qt-at-spi
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’
Fixed! Descargalo de nuevo y prueba…
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
Lo instalé en mi PC ahora mismo, Ubuntu 16.04 con Xfce4, corre genial, el tray icon no da lucha.. felicidades Oz! 😀
Pensando como los locos.. ¿No se podrá mas adelante llevar a Android? 😀
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