Skip to main content

Informes en Python 2025

(00:02) organizado por Oanwick en español y la Eite. Hoy continuamos con la formación en Python y tenemos dos nuevas tutorías, datos espaciales con Milagro e informes en Python con Laura. Eh, primeramente vamos a dar unos primer hacer unos primeros comentarios de organización. Eh, Zaira, creo que tú querías comentar algo. Si quieres comenzar tú. Gracias. Agradeceremos a todas y a todos los participantes puedan mantener su cámara encendida a lo largo de la sesión, al igual que estar pendiente del (00:41) enlace de de asistencia que se comparte en el chat de Discord. Gracias, Mari. Gracias, Aira. Vale, y nada más quería comentar que de momento mantenemos el programa que tenemos en el en la en la web de nuestra Dios en español, pero parece que mañana y pasado quizás habría problemas de conexión desde México por problemas climáticos, eh tormentas, no sé si incluso huracán. Por tanto, bueno, vamos a intentar mantener el mismo orden de todas las tutorías para los (01:19) asistentes, para los participantes. Os confirmo que todo va a ser grabado en cualquier caso, con lo que podríais eh visualizar las tutorías después grabadas que estarán colgadas tanto en nuestra página web como en la plataforma de la EIP. Y bueno, eh haré vamos a hacer todo lo posible para mantener, como digo, el mismo orden, pero en todo caso nos vamos a arreglar entre los distintos eh tutores y mentores para para bueno, para que recibáis toda esta formación eh (01:49) también por parte de los profesores de que están en México. Así que bueno, nada más comentaros eso, que quizás haya pequeños cambios de última hora, pero en principio mantenemos el mismo orden. Así que nada más por mi parte, ya podemos dar paso a la tutoría de datos espaciales, Milagros, si quieres comenzar presentándote tú, te doy la palabra. Bárbaro. Bueno, hola a todos. (02:12) Eh, bueno, primero que nada quería agradecer a a bueno, a Marian, a Emilio, eh a Zaira también, a todos los que participaron y participan en la organización del evento. Estoy realmente encantada de ser parte de, bueno, de esta edición del Ocean Hwick. Yo soy Miraru Urricariet, soy oceanógrafa física, egresada de la Universidad de Buenos Aires en Argentina y bueno, ahora estoy haciendo el doctorado también en la misma universidad y actualmente, bueno, vivo en Argentina. (02:48) Estoy en mis últimos momentos de del doctorado en esa etapa. Eh, y bueno, y voy a compartir pantalla. Ustedes me dirán a ver si está todo bien. Vale. Sí, la vemos ya. Perfecto. Bueno, eh hoy vamos a ver cómo visualizar datos geoespaciales eh con Carto Pay. Cartop es una librería de Python eh bien útil para visualizar datos que están en coordenadas espaciales. E y bueno, vamos a es la la librería en la que vamos a trabajar hoy, ¿no? Es la es la principal librería que se usa para para hacer mapas. (03:41) Em, acá les dejo una pequeña nota de la diferencia entre lo que sería Mat Blood Libase Map y Cartopy. MATB Plot Lib es la librería base para graficar cosas en Python. Eh, y Base Map vendría a ser la primera extensión que tiene Matblot Le para hacer mapas. Sin embargo, hoy está en desuso y la que más se usa es Cartopike, que es la que vamos a ver. Eh, hoy Carto Pay integra directamente con Matrotliv, es decir, usa las herramientas que ya (04:18) están desarrolladas por por Matrotliv y agrega distintas herramientas para poder proyectar datos. Ah, ahí me aparece. Ah, perfecto. Ustedes van agregando a la gente, ¿no? Eh, milagro, perdón, ¿podrías aumentar el tamaño del texto? Probablemente es un poco pequeño para mucha gente. Ah, sí, gracias. ¿Lo ven? Sí, claro. Gracias. Em, bien. Entonces, eh base están en desuso ahora, pero si encuentran código utilizando esta librería, eh la lógica es bastante parecida a Cartopay, así que lo que veamos hoy les va a servir. (05:03) E y lo que hace esta librería es entender las coordenadas eh geográficas. Matotli principalmente grafica en coordenadas cartesianas y lo que va a hacer Cartop, bueno, entender que nuestros datos están en latitud, longitud. Entonces, primero, primero que nada, eh tenemos que chequear que todas las librerías necesarias están instaladas en nuestro entorno de trabajo. (05:36) En este caso sí no vamos a tener que correr esta línea, pero si trabajan localmente desde su compu, eh, probablemente tengan que chequear que estas librerías estén instaladas. Vamos a usar hoy Xarri, que es la librería principal para trabajar con datos en formato Netf. Es un formato bien típico de datos espaciales, eh, porque tienen esta estructura de distintas coordenadas. Uno puede en el en estos datasets, que es el el la típica variable de de los de los archivos NETsID, tienen la información (06:18) de el tiempo, eh la latitud, la longitud y también eh varia información sobre la metadata que es muy útil, que ahora en breve vamos a ver. No sé qué tan familiarizados están o no con este tipo de datos, pero bueno, igual eh vamos a a verlos. A ver, vamos a abrir un Exf y ver cómo cómo se estructuran estos datos. Matotli es la librería principal para graficar en Python. Y bueno, vamos a usar estas herramientas de Carto Pie, que en breve vamos a ver para qué sirven. (06:46) Eh, importamos eh esta CMO Ocean, que es una librería que está desarrollada para tener distintos color maps, que son bien lindos y bien útiles para la comunidad del océano. Y bueno, y también vamos a usar Numpie para hacer unos calculitos. Entonces, arrancamos. Si todos están eh si todos tienen acceso a los datos, vamos a arrancar. Bueno, primero vamos a importar las librerías, vamos a correr esa celda y vamos a abrir un archivo de datos de formato Netf que pueden acceder en este (07:35) link. Eh, son datos diarios de eh temperatura superficial del mar. En este caso bajamos para un día en particular. Eh, es el día, creo que es es el el último día disponible que fue el 4 de octubre del 2025, hace 3 días. Entonces, vamos a trabajar sobre con ese con esos datos, con la temperatura superficial del mar global eh hace 3 días. son datos satelitales. Eh, bueno, si los pueden descargar por este link y eh acá tienen el path que los va a llevar, si ustedes corren (08:14) esta línea, lo que va a hacer es definir un path donde está donde están los datos en nuestro entorno de trabajo y va a abrir con ese P un acá le puse DS. Es muy típico que se le llame así a estas variables, eh, porque son se le llama datasets. Algo que yo siempre eh recomiendo es imprimir las las variables para que vayamos viendo esto. Escriban print DS como para ver con este pas y XR y abrimos eh la información que tienen los datos que bajamos. (08:56) Y bueno, y acá las podemos imprimir y las podemos ver, ¿no? Vemos la estructura de este dataset tiene tres dimensiones, latitud, longitud y tiempo. Estos datos, la resolución espacial que tienen es de un cuarto de grado, es decir, va a haber un datos cada 25 km aproximadamente. Eh, y van a tener cobertura global. Ahora igual lo vamos a ver. eh tiene coordenadas latitud, longitud y tiempo. Fíjense que en tiempo solamente acá nos dice que hay un solo tiempo y acá nos dice la información de ese tiempo, ¿no? Es el 4 de octubre del 2025. (09:37) Eh, y vemos que tiene varias variables también, eh, la temperatura, eh, información del error, de la fracción de hielo. Es decir, este tipo de datos es muy común que cuando nosotros los abramos hayan varias variables asociadas. En este tutorial vamos a utilizar la temperatura, o sea, vamos a tener que extraer esta variable analy s stip es la que se llama. Y bueno, y acá también eh tenemos información de la metadata, de dónde se sacaron esos datos. (10:05) Bueno, hay muchísima información que tienen esto, este tipo de de datos eh Netf que es realmente muy útil. Entonces, lo que vamos a hacer va a ser seleccionar la variable que queremos graficar, que va a ser la temperatura. Entonces definimos un SST data eh que va a ser DS, que es nuestro nuestra variable que abrimos antes. Y vamos a poner punto analy s. Eh, y de esta manera vamos a poder extraer únicamente esa variable. (10:45) Acá volvemos a hacer lo mismo, la imprimimos. Y ahora podemos ver eh que nos que ahora tiene bueno, las mismas las mismas dimensiones, pero tenemos una sola variable. Ahora tenemos la temperatura, que es lo que queremos, y tres coordenadas. O sea, esta esta variable que definimos como SST data va a tener tres dimensiones por ahora. Y bueno, fíjense que acá lo que podemos ver también es las unidades están en grados Kelvin. (11:24) Vamos a a querer pasarlas a grado centígrados, que es bueno la unidad de que tenemos más más familiarizada, más sí, más familiarizada los el es ese esos rangos de de datos. Entonces, bueno, lo que vamos a hacer próximamente es extraer el primer tiempo del dataset, que en este caso como tiene un solo tiempo va a ser ese. Pero la idea es pasar a nuestra variable a dos dimensiones, porque lo que nosotros vamos a querer hacer es graficar un mapa (12:04) que tenga dos dimensiones, latitud, longitud. Eh, y bueno, en este caso va a ser para el tiempo el tiempo cero, que bueno, es el único que tenemos, pero esta esta variable eh que nos bajamos podría tener más de un tiempo. Entonces, seleccionamos primero el primer tiempo y acá lo que hacemos es pasarlo a grado Celsius y vamos a ver de imprimir o si quieren también podemos hacer podemos imprimir la dos la 2D primero (12:46) corremos. Fíjense, eh, bueno, acá ya podemos ver que hay una dimensión menos, ¿no? Ya lo ya lo tenemos en dos dimensiones. Únicamente vamos a tener latitud, longitud y para cada uno de los puntos vamos a tener un valor de SST. Fíjense los números, ¿no? Eh, porque estaba en grados Kelvin, pero también definimos ahora sí la variable S, que es la que vamos a eh vamos a usar y graficar. Y si corremos esto mismo, bien, ahora ya hay ya los valores están en grados (13:26) celsus. Y bueno, y ya la tenemos en dos dimensiones lista para poder eh graficar. Entonces, primero vamos a hacer una visualización básica con Matplot L sin ninguna proyección. Es decir, vamos a agarrar sin meternos todavía con la librería de Cartop. Vamos a usar e las la longitud y la latitud como las nuestras coordenadas X e Y. Y vamos a graficar con esta función de Matlot Lib una visualización muy rápida. (13:58) Fíjense, definimos las longitudes, las latitudes y después graficamos con este P color mesh, le ponemos X y las las longitudes en en X y las latitudes en I. y queremos graficar los valores de SST, que tiene dos dimensiones, porque así nosotros lo definimos. Entonces, corremos esa celda para es como una exploración rápida de nuestros datos. Entonces, bien, rápidamente acá podemos eh chequear nuestras nuestras suposiciones, son datos globales, esta es la la los datos (14:51) de temperatura, pero bueno, no tenemos ni la barra de colores, o sea, si quisiéramos saber qué valor de temperatura hay, no sé, en esta latitud, no sabríamos porque así visualmente no no tenemos nada que nos referencieura. Disculpa, haya una duda en el en el chat de Andrea que pregunta si solo se puede utilizar con archivos netdien con ficheros. TIF que también tengan latitud, longitud y y tiempo, ya que usa este tipo de datos eh satelitales. (15:29) Okay. Sí, yo no utilizo ese tipo de datos punto tip, pero sí, o sea, supongo que vos eh no sé qué librería usas para para trabajar con esos datos, eh, pero sí, en principio, eh, Carto Pie es una si la si la pregunta era esa, ¿no? Si si puedo usar cartopai con ese tipo de datos. Sí, no sé si se refiere a car al paquete carto o exarrey. Si es a cartopai, sí, no hay ningún problema. (15:57) Si es eh XRay, no sé porque yo nunca utilicé ese tipo de datos. Quizás alguno de los chicos Sí. Eh, otro compañero, Javier Matos, comenta con un paquete que se llama Rasterio. También se pueden leer ese tipo de datos y ya graficarlos en Cartopay. Gracias, Javier. Exacto. Perfecto. Gracias. Em, sí, esta esta XR únicamente la usamos para tratar eh estos datos en Excide, pero después tanto las herramientas, bueno, de Matle o Cartop en particular, eh, la pueden Sí. (16:38) utilizar también em porque uno va a tener un un va a tener una variable de latitud y longitud y uno con cartopie le va a indicar que lo que un que lo que le estás ingresando están esos datos, esas coordenadas están en latitud longitud. Entonces, no importa como vos hayas abierto esos datos, lo vas a poder utilizar. Bien, entonces ahora eh hacemos un pasito más y ponemos esta este mapa en un contexto de figura. (17:11) Le agregamos eh fíjense que esta línea es bastante similar. Lo único que hacemos es cambiarle el color map por este color map de de CM Ocean y agregamos eh bueno, que nos muestre la color bar que y le ponemos título y nombres a los ejes, pero seguimos trabajando hasta ahora con eh Matlot Le Simplemente lo que hacemos es ponerle contexto de figura. Entonces, le cambiamos la barra de colores y fíjense, ya va ya va tomando otras formas. (17:51) Ahora ya tenemos barra de colores, eh podemos referenciar los datos. Eh, elegimos una barra de colores que nos guste, una paleta de colores que que nos guste más y eh podemos ponerle título eh a y al y nombres a los efes. Pero bueno, todavía no tenemos acá un mapa con con una proyección y también podemos vamos a ver que con con esta herramienta de Cartopie vamos a poder editar nuestros mapas, personalizarlos y ponerles muchas herramientas que son bueno, bien útiles a la hora de de visual visualizar (18:30) eh estos datos geoespaciales. Entonces, bueno, ahora sí vayamos ya teniendo una idea de cómo son nuestros datos y también para ver la diferencia de de Matlot BB Cartopai. Empecemos con e específicamente con esta librería. E bueno, en principio vamos a definir eh una figura y vamos a decirle eh vamos a definir unos ejes. Este ax es muy típico que se escriba así. Vamos a definir unos ejes que son ejes geoespaciales, que esa va a ser la potencialidad que tiene esta (19:10) la librería, y le vamos a indicar en qué proyección queremos o que que en qué proyección eh queremos graficar nuestros datos. Em, esta es una proyección, es la más simple, es la que entiende las latitudes y las longitudes como como una cuadrícula. Eh, y entonces, bueno, primero vamos a ver esta proyección que es la que es la más sencilla. Vamos a seguir graficando con esta función de matot, que es de color mesh. (19:43) Y acá le vamos a indicar, esta es la parte donde le indicamos que cómo están nuestros datos. O sea, nuestros datos están en latitud, longitud, eh, con este tipo de de proyección que es como cuadrada, como es una cuadrícula, pero en principio podríamos tener otras proyecciones, ¿no? O sea, que el desafío de visualizar datos de eh una esfera en un plano eh tiene eh bueno, varias varias opciones posibles. Entonces, después vamos a ver qué otras qué otras opciones tenemos para para proyectar. Pero bueno, en principio vamos con esta que es la más básica. (20:23) Le ponemos acá la nuestra nuestra barra de colores que va a ser la misma que antes, esta que se llama thermal, y le vamos a agregar eh unas líneas de costa. Vamos a la forma de agregárselas es indicándole que a nuestros ejes, a nuestros ejes que eran geo geoespaciales, vamos a agregarle esta función que es coast lines, eh, y vamos a ver que nos va a graficar las líneas de costa porque esta librería Cartopay ya tiene incorporado (21:03) datos sobre información geográfica, ¿no? sobre la delimitación de los continentes, e información de ríos, lagos, etcétera. Entonces, fíjense, perdón, milagro, ¿podemos parar un momento? que no sé si hay personas que están teniendo problemas de para leer los datos. Entonces, solo para confirmar que todo el mundo igual si damos solo un par de minutos que de momento ha habido dos personas en el chat que han dicho que no que les da abrir. Sí. (21:39) Pueden copiar el error que les dio. Sí. A ver, comenta. Vale, hay uno. Andrea Rebeca Lara también tuvo un problema, pero no. Si le dio que le dio error al ejecutar el script. Ah, X. Vale. Y Melisa comenta también tuvo un error de XR is not defined. Eso imagino igual le faltó correr la primera celda de todas, ¿no? Sí, vale. Sí. (22:20) Bueno, van comentando varias cosas, pero sobre todo que todo el mundo se acuerde de hacer un nuevo pool siguiendo los pasos que puso también el compañero Wila Barca en lo de primeros pasos de taller intermedio para estar seguros y seguras de que tenéis la última versión del del código que está mostrando Milagro. Sí. Y okay, sí, igual sí que está viendo igual parece ser como comenta Jesús, es muy probable que igual algunas personas tienen problemas con el paz, eh, que en vez de home Jovian e tienen que poner el (23:03) símbolo este de la ondita para ir a a su a su repositorio principal. Claro, es una Sí, gracias Jesús. Y segur puede ser que ustedes depende dónde estén parados y puede ser que díganme si a ver si si con eso lo pudieron solucionar. E okay. Y luego, ¿vale? Eh, si hay alguien más que por el si pueden por el chat que esté teniendo problemas con los datos, si lo podéis comentar y si no ya podemos dejar que siga milagros con la con la explicación. (23:57) Bueno, problemas siempre a veces con con los carg mientras estamos en eso. Milagro, perdimos tu video. No sé si lo cerraste a propósito. Primero se había congelado. No, no, no. A ver. O solo soy yo. Ay, no sé. No, yo no toqué nada. Si, ya, si se si me veía en el principio. Sí, a mí me sale la imagen congelada. Sí, a ver. Bueno, bueno, de momento nadie más ha puesto que esté teniendo problemas para leer los datos, así que yo creo que igual si puedes seguir cualquier cosa te voy (24:42) comentando. No sé si perdimos a Milagro igual la conexión. Eso estaba pensando yo también. Ahora igual se le ha congelado todo ya. A ver si nos oye. Parece que se ha caído, ¿no? Ahora supongo que entrará ahora en unos minutitos mientras así todo el mundo puede terminar de arreglar su carga de datos. Sí, que no duden en ponerlo por el chat desde que haya problemas técnicos, así podéis seguir bien todo el tutorial. (26:26) Parece que ya todo el mundo consiguió cargar los datos, ¿no? ¿Hay alguien que todavía tenga problemas? Muy bien. Me perdí. Los perdí. Pero vuelto. Pero he vuelto. Sí. Eh, no, no sé qué pasó con la cámara. Eh, quise volver a No sé por qué desapareció, pero no me permite encenderla. Les pido 1 disculpas. Parece que, si no recuerdo mal, todavía tiene algún problema y mal de y Melape, creo que es Leonor todavía tiene algún problema, ¿no? Con los datos. (27:21) Sí. A ver si mientras tú vas eh abriendo miura, a ver si terminamos de arreglar estas cosillas. Perfecto. Pueden ver mi pantalla, ¿verdad? Sí. Eh, lo mismo. Y si haces un poquito de zoom se verá mejor. Okay, sí. Leonor, si puedes especificar un poco más en dónde lo tienes atascado. Como comentaba ayer, en cualquier momento si queréis abrir el micrófono y hablar sois bienvenidos. Eh, suele ser más rápido, pero bueno, no hay problema en que habléis por el chat, como queráis. (28:24) Perfecto. Bueno, esperamos un minutito más a ver si podemos ponernos todos en la misma página. Ya algunos ya lo estuvieron resolviendo, ¿no? Sí, prácticamente todos. Yo creo que queda, no sé si Leonor y quizás alguien más. Bien. V dónde estaba vamos ayudando a Leonor por el chat si te parece y puedes continuar. Milagro. Gracias. Vale, perfecto. Muchas gracias. Eh, bueno, entonces estábamos acá con nuestra primera nuestro primera nuestra primera (29:03) visualización usando Cartopai. Fíjense que eh acá ya tenemos el la línea de los continentes, ¿no? Ya tiene una una una mejor pinta. Em, pero bueno, todavía no tenemos información de los ejes, eh, no podemos referenciar en qué latitud, longitud están nuestros datos. Fíjense que la barra de colores eh, bueno, no va de -30 a 30, es decir, que y nuestros datos no van de -30 a 30, entonces tenemos que todavía ajustar un poco mejor los datos. (29:38) Pero bueno, ya nos el nos entiende que nuestros datos están en latitud, longitud, están geoespacial, eh georreferenciados y eh nos nos permite eh hacer un mapa con determinada proyección y deponer las líneas de costa. Entonces, avanzando un poquito más, lo que vamos a hacer ahora es graficar otra proyección distinta, que es esta proyección eh Miller. Es similar a a Mercator tiene una eh corrección en las altas latitudes. (30:15) Y bueno, vamos a definir los límites mínimo y máximo del plot para mejorar la visualización, porque vemos que acá se pierde, ¿no? Al tener esta barra de colores se pierde bastante de los gradientes que podríamos llegar a ver en nuestro mapa. Em y bueno, y vamos a utilizar estas herramientas de cartopie y estas funciones. Una se llama Ad feature y la otra eh set extend. Lo que vamos a hacer e primero vamos a graficar, vamos a volver a definir eh acá dentro (30:58) de P color M, o sea, vamos a utilizar la misma función que antes. Vamos a definirles cuáles son los valores mínimo y máximo para que nos lo grafique. con B min y B max eh se le indica e bueno, si cuáles son los valores mínimos y máximos que vamos a tener en nuestro en nuestros datos para que pueda graficarlos y y tener una mejor visualización. (31:21) Entonces acá le le ponemos que bueno, efectivamente nos agarre el mínimo de nuestros valores de SS y nuestro máximo y vamos a correr esta línea, esta celda donde Ah, bueno, acá hay una diferencia, un error del código, dice Mercator y en realidad habíamos dicho que íbamos a graficar la Miller, pero bueno, ahí lo pueden lo pueden cambiar la la proyección. Entonces, en esta línea le vamos a decir qué proyección queremos, o sea, que nos genere unos ejes que tengan una determinada proyección, en este caso (32:04) Miller. Y acá esto puede prestar a confusión al principio porque acá le ponemos en este transform otro otro tipo de de proyección porque en realidad lo que le decimos acá es cómo están nuestros datos. Nuestros datos están en latitud, longitud. Entonces vamos a a a poner eh esta plate y entonces de esta manera le vamos a decir, "Okay, nuestros datos están grillados de una manera con una cuadrícula, pero queremos que entiendas eso espacialmente y que eh nos hagas eh (32:48) unos ejes con la la proyección que nosotros elegimos acá. Bien. Eh, bueno, cambiamos la la esto mirar a lo de antes, ¿no? Le pusimos esta nueva eh paleta de colores, le dijimos que nos grafique las líneas y acá agregamos una ad feature eh que es land, que le decimos, bueno, queremos que los continentes los pintes de color gris. Entonces, fíjense, eh, ya tenemos a Ah, y también agregamos grid lines. (33:22) Fíjense que ya tenemos el mapa con una proyección distinta. En este caso, bueno, corrió corrió la otra proyección, me parece, eh, pero y tenemos la proyección que queremos, tenemos la barra de colores, podemos graficar estas estas grid lines, es muy útil para para poder eh referenciar. Ahí se escuchó. No sé si Arena abrir el micrófono, ¿eh? Sí, disculpa milagro era yo, que hay una hay una duda de Cotsi en el en el chat que comenta que le sale un warning e cada mapa (34:07) que dice como download warning e referente al al fichero de de LAN.IP. Sí, no hay ningún problema con eso. Lo que creo que que está diciendo es que en ese warning está diciendo, "Bueno, estoy bajándome como no tengo localmente la información de eh, por ejemplo, los continentes, eh, te está advirtiendo que los está descargando, eh, y si vos no tenés acceso a internet, no te no te va a correr, digamos, eh, (34:41) pero no va a haber ningún problema. Ese warning es simplemente una advertencia, no va a haber ningún problema con con el gráfico, no es un error, sino es el programa que te está avisando que se está descargando eh esta información de eh geográfica, digamos. Entonces, bueno, eh ya agregamos una de estas características con esta función ad feature. (35:10) Tiene otras, por ejemplo, si acá ponemos rivers, eh nos va a graficar los ríos. Eh o si ponemos borders nos va a graficar las los límites políticos de los mapas. Eso lo pueden igual al final del tutorial hay una tarea al respecto como para que ustedes puedan ir probando otras opciones de esto. Em y bueno, yendo a un pasito más, lo que vamos a hacer es redefinirle que nos grafique en otra región espacial. Eh, con este con esta función que habíamos visto antes, set extend, le vamos a decir que queremos que los ejes (35:55) de nuestro mapa tengan una una determinada extensión. Entonces, para eso vamos a definir unas eh longitudes y latitudes determinadas. En este caso, yo elegí unas eh alrededor de de Sudamérica. Ustedes cada uno pueden elegir cambiarlo, modificar esto y poner eh región del océano cerca de donde estén viviendo o de algú del del la región que a ustedes les interese, esto lo pueden modificar. (36:23) Y eh bueno, vamos vamos a decirle, esto es similar, va, que es completamente igual a estas líneas de acá, son iguales a lo que ya teníamos antes. Vamos a agregarle esta línea para eh que nos delimite el gráfico únicamente las longitudes y latitudes que nosotros queremos. Eh, y el resto, bueno, es bastante similar el el resto de las líneas de código. Acá vamos a ver que le podemos poner color a las líneas de colores, también a las líneas, perdón, líneas de costa les (37:02) podemos poner el color que nosotros querramos. también tiene otras tiene muchísimas utilidades. Uno puede las líneas de costa las puede escribir eh con línea punteada si quisiera o cambiarles el grosor. Realmente hay muchas opciones para customizar estos mapas de la manera que más nos guste. E pero bueno, acá solamente vamos a ver eh un un primer pantallazo. Ustedes pueden leer la documentación de estas estas librerías como para poder ver qué otras (37:35) herramientas tiene. Pero bueno, acá ahí ya corrí esta celda y fíjense, eh, acá le le había puesto que ponga las líneas de costa en color rojo, pero bueno, esto lo pueden cambiar, ¿no? Pueden ser negras. y volver a correrlo. Y bueno, van a van a cambiar ahora las líneas de costas, las va a dibujar en color negro y eh bueno, tenemos la proyección que nosotros queremos. Fíjense que nos nos delimitó el gráfico únicamente a las latitudes y longitudes que queríamos. (38:16) Y algo que hicimos, que también está bueno, es eh cuando le ponemos las las grid lines, eh le decimos que no queremos que nos grafique estas líneas de acá, estas dos líneas, no queremos que nos grafique las latitudes y longitudes en la parte superior del gráfico y en el costado, porque si se fijan en este gráfico de acá nos las graficaba en todos lados, ¿no? Bueno, ya con tenerlos abajo y al costado es suficiente. Entonces les ponemos estas dos líneas acá, eh, como para que no lo no lo (38:54) grafique. Y bueno, fíjense que acá le pueden cambiar el tamaño de esas líneas, las pueden hacer más gruesas si quisieran, no sé, 1.5 y volver a correrlo. Pueden cambiarles el color, puedes cambiarles el estilo. Eh, bueno, pueden realmente, fíjense que acá fueron más, ahora son más gruesas, ¿no?, las líneas, ¿eh? Y bueno, y por último, ya yendo al final de lo que es el el tutorial, eh acá hay distintas distintas maneras de plotear nuestros nuestros gráficos, (39:38) nuestros datos, perdón, nuestros datos espaciales. Hasta ahora usamos P color mesh. Lo que hace esta función es colorear cada cuadradito con un color. Es decir, nosotros tenemos como píxeles, ¿no? Como como distintos píxeles que están delimitados por nuestra latitud, longitud y lo que hace P color Mh es asignarle a eh esos a esos puntos un color. Pero existen eh otras maneras, como por ejemplo eh con Turf, que lo que hace es crea polígonos coloreados interpolando (40:16) esos valores. Cuando uno le pone eh muchos niveles a a este contour, uno va a poder tener gradientes suaves de nuestros datos y bueno, es muy es una una función muy muy utilizada para hacer mapas con tour y con y con tour lo que hace es eh grafica únicamente líneas de contorno, o sea, las isolíneas y eh puede ser muy útil poder combinar ambas ambas ambas funciones porque uno puede poner de fondo eh un los colores, un contur que nos (40:58) grafiquen los nuestros gradientes suaves y arriba las líneas de contorno, las isolíneas que nosotros queremos graficar. O sea, por ejemplo, nos interesa graficar una isoterma en este caso, eh, determinada. Queremos ver la isoterma de 14 gr por algún motivo. Entonces, la la podemos graficar. En esta celda lo que tenemos es la diferencia entre tenemos un subplot. (41:20) Esto es una manera de graficar varios plots en una misma figura. Eh, y acá podemos ver la diferencia, ¿no? Si bien acá no se nota muy bien la diferencia del P color mesh porque, bueno, hay muchísimos datos, pero lo que hace es lo que les decía antes, es asignar a cada cuadradito un color. Y fíjense, bueno, el contour nos crea eh con distintos contornos que uno puede elegir la cantidad de contornos que quiere graficar. (41:50) Si uno elige muchos, mucha cantidad de contornos, va a ser un gradiente suave, como les decía. Y este el contour simplemente nos grafica las líneas, ¿no? En este caso nos grafica estas isotermas en acá en negro, pero fíjense, es este, ¿no? El contour para que vean bien. Vamos a ponerle un color que resalte un poquito más, como para que vean qué es lo que está haciendo, porque ahí con se mezcla con el continente y no sé si es que lo pueden ver bien. (42:24) Fíjense acá, le cambié el color, ¿no?, al contour. Y lo que hace es graficarnos estas isotermas. Entonces, bueno, como les decía, eh lo que lo que es muy común es combinar estas formas de estas funciones. Y finalmente acá tenemos un un mapa con, bueno, una estética más cuidada y con varios con el uso de varias herramientas de Cartopay. A ver qué tenemos. Bueno, tenemos la proyección Miller que vimos. eh tenemos un dominio más reducido con las longitudes y latitudes que definimos (43:13) previamente, que ya están ya están corridas de antes. Eh, a con esto le decimos eh queremos que que entiendas la que tenemos los datos en latitud longitud. Ponemos un título. Eh, bueno, y acá es cuando usamos Numpie. lo que hacemos es elegir la cantidad de contornos de niveles que queremos para realizar nuestro contur. En este caso es esto es una manera para generar una variable que vaya de 0 a 20 con 21 niveles, pero esto, bueno, lo (43:51) pueden cambiar en base a eh a su a su gusto o su necesidad. Entonces, lo que vamos a hacer es graficar un conturf para los colores que con la cantidad de niveles que definimos recién previamente em y un contour para graficar isotermas específicas. En este en este caso lo que les decimos es bueno, queremos graficar la la isoterma de 5 gr y la isoterma de 10 gr y que nos grafique con un color gris claro y bueno, con un determinado (44:28) con una un determinado ancho de esas líneas y que entienda que estamos hablando de que nuestros datos están en latitud longitud. E acá también le agregamos eh la tierra. En este caso le vamos a agregar en color eh gris clarito y le vamos a agregar las líneas. Y también vamos a decirle que no queremos valores de de latitud longitud en arriba ni a la derecha. Bueno, y finalmente graficamos la barra de colores. (44:53) Entonces, entendiendo ya lo que lo Uy, me dice, tengo que tengo que reiniciar, me parece. A ver, se me cayó. Estoy, no, en la en la ¿Me escuchan? Sí, te escuchamos bien. Perfecto, porque se me cayó acá el Júpiter. ¿Ya estás de vuelta? Ya estoy de vuelta. No sé qué pasó. Sí, me apareció un cartel como que se había caído el servidor, pero bueno, ahí lo podíamos ver, ¿no? Esa fue alguna inestabilidad del sistema, ¿no? No sé qué fue, pero ya ya está perfecto, perfecto. (45:49) Bueno, entonces ahora estamos corriendo nuestra eh figura final. ¿Escucharon, no? Toda la la aclaración de cada una de las líneas del código. ¿Se escuchó? Creo que sí. Perfecto. Bueno, y ahora está corriendo está corriendo nuestro nuestro mapa. Sí, Jonathan Herrera ya compartió por el el chat que le salió muy bien el gráfico. Perfecto. Bueno, y ahí pueden jugar, ¿no? Pueden ir cambiando. Eh, fíjense unas unas pruebas que que sugiere acá el tutorial al final es bueno, obviamente cambiar la la zona de interés, como les (46:32) decía, a cualquier parte del globo que que les interese. cambiar la proyección de la figura para ver las proyecciones disponibles. También pueden entrar a la a la documentación de de la librería y para añadir fronteras y ríos, bueno, usen esta misma esta misma función y en vez de poner acá land prueben componer riverers también. Bueno, igual todavía a mí me está pensando, no sé, ustedes ya pudieron, la mayoría ya pudo, (47:28) ya pudo graficarlo. Vayan contando a ver si si salió el mapa. La idea también es que les quede, ¿no?, que les quede este código a ustedes de este mapa como para después en a la hora que ustedes quieran graficar pueden venir y usar esto de base e ir modificando según lo que la necesidad que que tengan. Tenemos también Cotsi que compartió un ejemplo que hizo él para para otra zona. Buenísimo. (48:08) Ay, yo lástima que no lo puedo no lo puedo ver ahora, pero pero buenísimo. Cambiaron acá otra latitud, longitud y pudieron graficar en otra en otra región. No sé por qué no está tardando mucho. A mí me está tardando mucho. Quizás tendría que eh reiniciar el carnal. Sí, justo justo lo puso un compañero por el chat, Will Barca, que igual reiniciando el kernel. Pero sí, a mí también antes me pasó que a veces tarda un poquito en cargar cuando nos falla el internet. Sí, pero bueno, van al menos a dos compañeros les ha ido saliendo. (49:04) Han podido. Bueno, ahí yo lo lo reseteé y tengo que volver a correr las líneas. Me parece que quizás es un problema de de mi compu porque fíjate lo que tarda en importar las librerías. Bueno, pero algunos ya les estuvo saliendo, eh, qué lástima que no lo podemos ver, pero bueno, con esto estaríamos eh terminando el tutorial. No sé si tienen dudas, comentarios. (49:53) Está buenísimo que que cada uno comparta ahí eh los mapas que estuvieron haciendo de distintas regiones. Están viendo cómo fue la temperatura hace 3 días. el dato más actual de la base, sí, de lo más reciente que pueden tener. Hay también un una Esteban comenta que le salió un error de que PLT is not defined. Sí, ahí. Eso es porque falta correr acá esta línea. Fíjate de de volver a correr la importación de las librerías en estas celdas cuando definimos PLT. Y Mili, definitivamente hay algún problema en tu (50:53) definitivamente. Yo estoy conectado a también y volví a correr esa línea y fue rapidísimo al instante. Sí. Bueno, pero como les decía ayer, e este sistema eh no es gratis. Eh, por eso les urgía a que e lo cierren todas las noches. Entonces, tenemos una capacidad que definimos eh que es basada en en los recursos que tenemos y y cómo han funcionado las cosas en años anteriores. (51:28) E es posible que hoy hoy tenemos más gente que ayer, por ejemplo, eh un poquito más que que ayer. posible que estemos llegando a cierto límite de de la capacidad que le hemos asignado este sistema y que estemos enfrentándonos a a degradación de del sistema. No sé, luego lo consultaré con con los administradores. Sí, si fuera una sola persona algún problema con esa persona, pero aparentemente más de una persona está teniendo problema, el mismo problema. Claro, sí, sin problema. (52:03) Sí, quizás está saturado el servidor ahí. Bueno, reseteé, pero no sigue tardando bastante. Y si tarda así en importar las librerías, imagínate para hacer el mapa. Eh, si quieres. Bueno, ¿hay alguna otra pregunta? Sí, te iba a comentar que eh Juan Carlos Saavedra pregunta que con los datos perdidos entiendo que los píxeles se presentan en color blanco. Con los Sí, sí, sí. Con con en los en los lugares donde tienen Nans, eh, es que no hay dato ahí. (52:43) En este caso, bueno, en este caso las líneas de costa eh está bastante bastante grandes. Si ustedes hacen un zoom pueden ser que identifiquen esa esa diferencia de de bueno, hasta dónde llegan los datos cerca de la costa y que quizás hay una franja, eso es muy común encima con datos satelitales, eh, sobre todo de otras variables, ¿no? cerca de la costa no tienen tienen NANs, lo que llamamos NANS, que son que que no tiene valor. Ahí es la manera de Python de de entender que ahí no hay ningún número, (53:24) ningún dato, eh, y eso lo grafica en blanco en ese caso. Por eso, fíjense también es sí iba a hacer una Sí, perdón, ay, ay, no, disculpa que se va cortando, no te iba a transmitir la siguiente duda, pero acabares de comentar esto. Disculpa. Sí, no, iba a hacer un comentario de, fíjense también es es una de las si nosotros graficamos esto con con Matlot Le sin las líneas de contornos de los continentes, eh nos podemos estar (54:02) evitando notar esto que acabo de decir, ¿qué qué quizás acá hay datos muy cerca de la costa que los está ploteando de blanco, pero nosotros no sabemos dónde está la costa, eh, y entonces no podemos saber ver que nos estamos perdiendo datos cerca de la costa. Entonces, con Kartopay, que están delimitados los continentes, eh uno ya puede ver eso, ¿no? O sea, en este caso, bueno, tenemos datos hasta casi que la línea de costa, pero es un (54:34) pero podría no ser el caso, digo, ¿no? Y por eso está bueno siempre graficar con la línea de costa. Sí, había. Bueno, también Javier Matos también ya ha mostrado su gráfica de la zona de República Dominicana, pero igual les podías mostrar dónde pueden ajustar el rango de los límites de temperatura, ya que algú a muchos les sale un poco saturado en amarillo, igual no está todo tan caliente. Exacto. (55:06) Si eso me olvidé de comentarles que claro, fíjense que en realidad nuestros datos es de todo el globo, ¿no? Entonces, cuando ustedes grafiquen eh si uno no delimita eh qué valores queremos graficar, bueno, va va a entender en este caso, ¿no? Por ejemplo, que en este caso que definimos nuestra región de estudio y dijimos acá eh defin en este B min y B max ponemos los valores mínimos y máximos. Fíjense que lo definimos como el valor mínimo de ST. Ese si es global, entonces me va a agarrar el menor valor de todo el globo. (55:48) Acá tienen dos, tienen bueno, varias opciones. Una es ponerlo a mano, o sea, saber decir, bueno, ver en el gráfico que tus valores van de eh, no sé, por ejemplo, no sé qué qué rango de temperaturas tendrás, pero ponerle que van, no sé, a partir de los 10 gr o 15º. Bueno, acá en valor mínimo pones 15 y en y en máximo el valor que quieras y lo puedes ir ajustando. Otra opción es si ustedes ya saben que van a trabajar en una determinada (56:19) región, bueno, esto lo pueden recortar mucho antes, digamos, ¿no? O sea, cuando abren sus datos, ustedes tienen se bajan una cobertura global de la temperatura, eh, por ejemplo, bueno, acá no ustedes se bajan el todo el globo, pero en realidad saben que van a querer utilizar solamente una región en particular. Bueno, entonces directamente lo que hacen es definir su variable ese s eh y van a seleccionar las latitudes que quieran. (57:00) Se hace, se puede hacer así, por ejemplo, latitudes. Bueno, no sé, acá ponen lo que quieran, ¿no? Quizás son las que yo utilizaba porque es mi región de estudio esta alrededor de Sudamérica. Entonces, bueno, acá eh longitud igual -82 más o menos 1050. Eh, directamente eh seleccionan esto de seleccionan las latitudes y las longitudes que quieren y ya está. (57:32) Después su su variable no va no va a tener datos en todos lados y de hecho va a ser hasta más liviano graficarlas. Pero bueno, en este caso eh estaba bueno tener los datos globales para que cada uno pueda graficar en la región que quisiera, pero si ustedes ya saben de antemano eh que su región es más limitada, lo hacen mucho antes, directamente antes de de graficar ya eh sí lo extraen, extraen la información en el dominio que quieran. Eso de hecho va a ser hasta más rápido y yo sigo con Sí, no, bueno, no voy a poder, me (58:20) parece. Vale, bueno, nos van llegando también más ejemplos de la zona de de Colombia y luego también, bueno, Emilio ya le respondió un poco a Javier Matos, pero a ver, ¿qué opinas tú también de esto? Eh, Javier comenta eh si existe alguna manera de realizar mapas con Cartopi de alta resolución espacial, porque en otras ocasiones ha trato de realizar mapas para proyectos de trabajo que quiere eh graficar un área de pocos kilómetros. (58:57) Sí. Bueno, si sabes tú cuál es la resolución mínima, si es de de concartopai, de que se de estos mapas que nos están, o sea, vos tenés, o sea, él tiene una buena resolución en sus datos, o sea, sus datos tienen eh su resolución espacial ya de los datos es muy alta. Eso es. Y quiere extraer una figura con una alta resolución. Eso sí, yo entiendo, yo entiendo que sí que quiere igual eh que por ejemplo pues que la línea de costa y el mapa de tierra (59:32) sea también de una resolución muy fina que bueno, lo que Emilio le comenta después que a veces no cuando llegamos al límite de cartopike igual hay que cargar nuestros propios datos de Claro. de todo de costa. Sí, sí, exacto. Vale. Y luego hay otra otro compañero que, bueno, no sabemos muy bien el nombre, e puso las iniciales, creo que tiene un error al poner de ese punto paréntesis, que creo está cargando un (1:00:12) dato que que no se encuentra igual ahí porque carga un dato que es sstmodis.nc. Sí, porque hay una hubo una versión anterior a este seguramente eh le falta actualizar el código porque antes eh estaban para datos de modis, pero ahora estos datos que utilizamos hoy en el tutorial no son los datos de mod. debe tener una versión anterior del código. Sí, le pasa pasaremos otra vez los los primeros pasos para reverificar que todo el mundo tenga el Júpiter actualizado. (1:00:47) Y bueno, de momento no hay más preguntas. Si alguien más eso quiere preguntar por el chat o eso como comentaba Marian también podéis preguntar directamente en el en el team si queréis hablar. Tal vez este es un buen momento para eh eh decir que cada día, el comienzo de la sesión es buena idea eh correr ese enlace para actualizarlo el el repositorio de o el clon de los repositorios o del repositorio. (1:01:19) Eh, por si acaso el instructor o la instructora estuvo trabajando arduamente la noche anterior para asegurar, para cambiar algo, para mejorarlo, para corregir algo. Entonces, lo mejor es comenzar frescos cada día. Tenemos también a Javier Matos que nos comenta que en su zona la temperatura superficial es de casi 35 gr. Así que vemos también cómo va variando la temperatura de todas las zonas de estudio. Buenísimo. Me encanta, me encanta, me encanta. 35 gr. Wow. (1:02:08) Y no sé, aprovechar ahora preguntar a Milagro vuestras dudas para vuestras zonas de estudio. Y bueno, está así en los valores en los valores límites la la temperatura ahí de nuestro compañero. No sé dónde andará, pero los límites del globo, límites superiores. Mientras voy a intentar ingresar al Discord, pero quedo atenta a cualquier duda que surja. De todas maneras, bueno, esto está actualizado en el en el GitHub, lo (1:03:01) pueden lo pueden si si no pudieron seguirlo eh en esta oportunidad lo pueden volver a hacer más tranquilos, actualizar el código. No hace falta, únicamente lo que hace falta tener en cuenta es el paz, que esté que ustedes estén que puedan bajar los datos correctamente. Después todo el código corre sin sin ningún problema. Lo único que le agregamos nosotros son estos print. Ah, que bueno, lo pueden ir agregando o simplemente van a correr todo y van a poder graficar los mapas sin problema. (1:03:33) Simplemente los print los hacíamos como para ir entendiendo cómo estaban estructurados nuestros datos, pero el código va a correr y y si bueno y si siguen teniendo problemas, lo que pueden hacer incluso es eh bajarse otros datos de otros días eh o de otra fuente que quieran y correrlo con eso siempre y cuando lo que tienen que tener en cuenta es de que fíjense que la variable que nosotros usamos para graficar es SS. Esa SST tiene dos dimensiones, latitud, longitud. (1:04:11) Eh, eso es importante porque a veces eh aunque nosotros estemos con un solo tiempo, si nosotros acá queríamos graficar la versión anterior, esta que tenía un tiempo la titula de longitud, en realidad lo que entiende el programa es que estas son tres dimensiones y cuando quieran graficarlo, eh, no el les va a saltar un error. Entonces, lo que tienen que chequear es que sus datos tengan dos dimensiones y eh con eso van a poder usar todo el código sin problemas. Bueno, de momento por el chat no hay más dudas, pues también Jesús eh compa nos (1:04:57) comparto aquí un ejemplo con una proyección un poco un poco distinta, así que van saliendo está todo el mundo probando cosas, así que buenísimo. Y fíjense de esto de probar, de agregarle distintas distintas herramientas como pueden ser los bordes de los de los países o ríos. ¿Alguno probó con cambiar esto? Cambiar acá en vez de poner la tierra, poner otra cosa. Tuvimos diferentes ejemplos. (1:05:34) Creo que un compañero también mostró un mapa con un río, así que van saliendo cosas así. Javier nos compartió, ¿eh? Vale, luego sigue habiendo algún problemita técnico. Creo que se va cayendo la la plataforma, ¿no? A ver, bueno, como comentaban antes, igual es el problema que dice Emilio que está igual saturado, pero va a quedar todo grabado. Vais a tener todos los materiales a disponibles y después el chat. Ah, y okay. Y sí, IR, ahora paso también el formulario de de asistencia, que también es importante que no que no se olvide. (1:06:26) Vale, sí, parece ser que hay al menos cuatro personas que se les cayó la plataforma. Ah, ya. Igual podéis probar desde otra vez, desde los enlaces de los primeros pasos del taller a ver si ahí si lanzándolo desde allí en vez de la página del del cloud. Pero bueno, Emilio es el que controla de esto y luego no sé eh igual si alguien también quiere hacer alguna última pregunta para el tipo de dato que usáis, si no es una malla, si es (1:07:06) otro tipo, también podéis aprovechar para preguntarnos de de vuestros casos específicos. Sí. Bueno, y bueno, nadie tampoco se anima a hablar por el Teams, pero bueno, por el chat ya vamos hablando. Mientras hay silencio, solo quería agradecer a todos y todas que han tan activamente contestado las preguntas que que que surgen. Precisamente eso es lo que eso es lo que queremos eh motivar de cada quien se sienta que pueden responder o por lo menos pueden contribuir a algo, ya sea (1:08:02) reportar al mismo error. Eso en sí es bien útil también. Entonces, les agradezco mucho a todos y todas y sigan así, por favor. Sí, completamente de acuerdo con Emilio. Eh, luego Kevin Tapia nos pregunta si en cuanto a variables ambientales si tenemos algún listado de las que disponemos para trabajar. Eh, ¿cómo si no? No, creo que no entendí la pregunta. Sí. (1:08:35) Bueno, no sé si entiendo yo que igual de dónde descargaste tú estos datos de CST si hay hay alguna otra varia. Bueno, esta esta fuente de datos e es se llama eh remote eh Remote Sensing System. Eh, tiene datos de sarenidad también. Eh, es una página, no sé si pueden ver. Ah, bueno, ahí justo estoy. Sí, se ve bien. Se ve. Sí. Eh, claro, esto es eh S esta página. Comenta Javier Matos si esta página es de Copérnicus. Yo entiendo que no, ¿cierto? Es otra plataforma. Sí, no es es otra plataforma. (1:09:34) Eh, bueno, acá tenemos es es un grupo de investigadores que eh bueno, desarrollan sus propios productos. Eh, creo que que antes pertenecían, no sé si a Noa, pero es como un grupo aparte de investigadores que desarrollan estos estos productos satelitales. Eh, tienen, bueno, tiene muchas variables, pero las que tiene son muy buenas, la calidad de los datos es muy buena. Eh, tenemos alinidad. Bueno, ustedes están pudiendo ver, ¿no? Acá la la lista. Aquí se ve bien. Dos. Perfecto. Tal vez vale la pena mencionar aquí. (1:10:15) Sí, que bueno, primero que ojalá todos esté suficientemente interesados para eh luego participar en el jacatón. E pero esta esta serie de eventos, los talleres intermedio, la el énfasis en en eh el desarrollar el conocimiento de capacidades eh de capacidades de técnicas de Python y de R. Eh, y se utilizan datos específicos eh como parte de este mecanismo y para facilitar los ejemplos, en el pasado hemos tenido tutoriales sobre acceso a datos en línea, una eh diversidad de datos. (1:10:51) E creo, no estoy seguro, Mariam, puede o alguien puede aclararlo, que tenemos eh programado un tutorial similar en entre los tutoriales del jacatón. E y si no e pueden consultar los tutoriales de de años anteriores, eh, que son tenemos dos del año pasado y del año anterior, eh, que son un poco diferentes. Entonces, eso es bueno porque dan una eh gama más amplia de la posibilidad de datos que pueden encontrar. (1:11:33) Sí, hay una una extensa extensas fuentes de de bases de datos. Eh, incluyo, perdón, solo para terminar eso, que el año pasado hubo un tutorial, me parece que de Julia eh sobre Copérnicus o por lo menos que enfatizó acceso a datos de Copernicus. Hm. que para ese sí mencionaba que los de Copérnicus sí que les hace falta crearse una cuenta. No sé si para este que estás mostrando un milagro también es sin usuario. No hace falta no no hace falta. (1:12:09) Es sin usuario y de hecho en el link, o sea, es s super fácil eh de bajar en el link que les mostré directamente. Acá ingresan al directorio, pueden elegir el año. Yo vine el 2025 y elegí el último día. están bueno por separado, ¿no? Los archivos Netf en cada uno de los días. Yo elegí el último. Eh, bueno, fíjense que ahora ya lo actualizaron, ¿eh? No, porque tenemos el día 5, o sea, tenemos está actualizado. Ahora hay un día más del que, o sea, yo me bajé este archivo de acá, eh, pero bueno, simplemente cliquean acá y se lo (1:12:54) descargan. Después, bueno, si ustedes quieren tener todas las series temporales, bueno, van a tener que sí bajar todos con algún tipo o con o con un código, eh, o con herramientas eh del tipo file sila, no sé si la si la utilizan e pero sí van a tener que bajarse todos los días y después concatenarlos. O sea, trabajar un poquito en ese en ese proceso de de recondicionar los datos, pero simplemente para bajarse algún día en particular, vienen acá, aprietan y ya se (1:13:29) descarga. O sea, es realmente muy muy sencillo. Okay. ¿Alguna duda más aparte de lo de los datos para Milagro? Bueno, luego salió una pregunta un poco más genérica que siempre siempre sale, que es entre Julia Python R, cual tiene la curva de aprendizaje más amigable. Bueno, creo que esto ha salido varias veces. No sé si Milagro quieres compartir un poco tu experiencia con esto. (1:14:30) Bueno, yo soy una una chica Python en realidad. R trabajé en, bueno, en la en la universidad, en determinadas materias que estaban, bueno, los códigos en R, pero para mi trabajo eh utilizo Python e así que no podría no podría eh responder a eso. No sé, la curva de aprendizaje es muy muy relativo, me parece. Yo al menos no tengo esa experiencia con con otros lenguajes como para como para decirte mi apreciación personal. (1:15:06) Justo justo Marian compartió un vídeo de R versus Python que hicimos. Ahí alguien dijo que que esa pregunta y la respuesta es religión. Entonces para continuar el tema, el video fue una sesión ecuménica. por lo menos entre Python y R. Eh, a propósito es que vale la pena mencionar Julia, o sea, Julia lenguaje, ¿no? No, Julia, la instructora que tenemos. Eh, hemos hablado un poco el año pasado, sobre todo, si incluir Julia también en este eh jacatón o en estos eventos y (1:15:48) Julia es un lenguaje que va viendo más prominencia y más relevancia. ya se usa eh en muchas cosas, pero lo que concluimos es que ya de por sí tener Python y R a veces es complejo para la gente, eh, y añadir un lenguaje ya sería demasiado. Entonces, no no hemos no abordamos, Julia en este en estos eventos. definitivamente ese video creo que lo van a encontrar muy bueno. (1:16:19) Esa no le llamaría debate, sino intercambio, intercambio de de opiniones ecuménicas. Sí. Bueno, creo que en el en el chat de Discord ya va saliendo un poco también las ventajas y desventajas que ves diferentes personas, pero bueno, sí, yo creo que puede decir que en conclusión no había conclusión. Sí, creo que hemos llegado a un punto que no tiene fin de debate y creo que es de acuerdo. (1:16:56) Creo que es al final es con el que más te familiarizas, al final le coges un poco de cariño y también pues eres defensor más de ese lenguaje. Pero bueno, mayoría de nosotros vamos usando varios, depende de con qué quién trabajes. Y si usas eh scripts anteriores, puedes volver tranquilamente al otro lenguaje de programación. O sea, que bueno, son compatibles y tampoco hay que defender una muerte y negar el otro. Todos tienen su espacio, creo yo. Así que nada, creo que deberíamos ir continuando con la siguiente tutoria. (1:17:23) Si Milagro no ha terminado ya creo que has terminado tu parte, ¿verdad, Milagro? Sí, sí, sí. Por mi parte ya está. Muchas gracias por por tu charla. Y muchas gracias a todos también por todo el debate que está surgiendo en el Discord, que es muy interesante, pero si os parece pasamos ya a la siguiente tutoría de Laura, que nos va a hablar de cómo realizar informes en Python. Y bueno, como siempre digo, primero Laura, prefiero que os presentéis vosotros así de forma más completa, así que si quieres introducir primero con esa parte (1:17:59) y adelante con tu charla. Gracias. Gracias, Marian. Y bueno, sí, gracias a Milagro también por su tutorial, que si está interesante con que llevemos mucho tiempo, siempre aprendemos también nosotros cosas de los compañeros y compañeras. Y bueno, como decía Marian, yo soy Laura Gómez Navarro, ahora mismo soy investigadora posdoctoral en el Instituto de Ciencias del Mar de Barcelona en España.
(1:18:21) Y bueno, como Jeray comentó ayer, yo también empecé como alumna en el Ocean Hwek, la misma edición que Jeray y hace unos 6 años allí en Seattle con Emilio y de ahí pues ya cuando salió esta iniciativa de Jacatun en español, pues e aquí por aquí he estado. Entonces, también mi campo es más el de oonfía física como milagro y llevo mucho tiempo también trabajando con con Python y datos en abierto y con diferentes tipos de datos. Y hoy la herramienta que os quería que quería mostrar es una para generar informes en Python, pero bueno, mientras voy yendo
(1:19:11) al paquete. E sí, también comentar que es una herramienta también útil para automatizar si tenéis algún Júpiter Notebook, que tenéis que generar lo mismo para diferentes casos. A mí a veces también me me ha resultado muy útil en este aspecto. Okay, pues bueno, creo, voy a repetir otra vez. Em, actualicé un poco, como decía Emilio, algunas cosas también eh esta mañana de aquí de de mi lado del del planeta.
(1:19:41) E entonces, espero que ya durante el tutorial de Milagro todo el mundo haya tenido los notebooks actualizados siguiendo los primeros pasos de la de la página web y con eso vamos a empezar. Em, como decía, es una herramienta un poco para eso, para crear informes y también automatizar e ciertas cosas. Entonces, lo que hice fue un poco para que también pudierais poner en práctica lo que visteis ayer con Jeray y luego hice un segundo ejemplo viendo eh las cosas que os había mostrado Milagro.
(1:20:15) Entonces, eh primero de todo, ¿ahora se ve mi pantalla? Se ve tu pantalla, pero si puedes agrandar un poquito más, creo que va mejor. Vale, sí. Okay. Bueno, también comentar que yo lo agrando, pero el Microsoft Teams está bien, que te da la opción de creo que es abajo la izquierda sale un más y un menos. Si si alguien necesita hacer más zoom también está bien que saber que estás ahí, ¿vale? Así es suficiente. Si no en modo general, yo diría que sí, con el más y el menos,
(1:20:54) que mira, yo no lo conocía, no me había fijado. Creo que así ya sí es útil para si alguien está presentando figuras y eso. Vale. Okay. Entonces, antes de empezar, solo dejar un momento que todo el mundo haya conseguido abrir este Jupiter Notebook, que es el que hay muchos notebooks, hay muchos e ficheros, no os asustéis. Como decía, es como vamos a reproducir este notebook plantilla template. Ah, entonces realmente vamos a estar con dos, tres notebooks y y el resto son h
(1:21:31) lo que se genera con esto. E solo por mostraros aquí a la derecha, estamos en esta carpeta del 7 de octubre, estabais aquí en en datos espaciales con con Milagro. Si clicáis aquí en 7 de octubre y luego en Informes Python, ya deberíais estar en la en la localización que que toca, ¿eh? Vale. No sé si se va comentando algo por el chat, si está todo okay. Perdón que estaba sin micro.
(1:22:05) Decías, pero quizás un minutito porque hay alguna persona que tiene que volver a entrar que se le había puesto en negro y alguien dice service available. Felipe, no sé si ya vas consiguiendo entrar. Ah, pero nada, un minutillo si quieres y vas dando la introducción y ya comenzamos. Vale. Sí. Espera un poco. Bueno, acabo de comprobar que a mí también de momento me corre el código que no haya problemas. Pero si vuelvo a comentar que sí, en este notebook, el que es template, así casi nada, será basado un poco en la parte que os enseñó ayer, una versión
(1:22:56) más reducida y luego estaría bien que podéis probar en en hacer más pasos que visteis ayer con Yeray y luego Luego en el template barra baja espacial miraremos de reproducir alguno de los de los pasos que acabamos de ver ahora con con milagros y que tenemos un poco un ejemplo de cada que será simplemente aplicar lo que lo que ya se ha visto hasta ahora. Vale, más o menos ha habido hay más errores o más gente que la ha solucionado para saber si espero un poco
(1:23:33) más o ya parece que todavía hay serviceable para unos cuantos. Jonathan dice, «No carga los rivers del mapa anterior, pero seguimos.» Comenta. Y Milagros no puede ver los archivos. No sé si esto te da indicación. Ya no sé si como decía antes y sobre todo que si hay disculpa, Marian e de otra persona, Alexander decía, «Al dar clic en el link de la plataforma me da error, pero si creo que esto son preguntas más para Emilio.
(1:24:04) A ver si vale. Okay, pues si lo puede ir viendo con Emilio, que justo me va bien, que tengo que ir un momento aquí a abrir la puerta que estoy en casa y y vuelvo en 2 minutos. Muy bien. E bueno, mientras tenemos este momento, desgraciadamente no puedo hacer nada acerca de eso, de ese problema service available. No puedo hacer nada de inmediato.
(1:24:38) E como decía, voy a contactar a los administradores, eh, pero ya que sigue ocurriendo, voy a ver si puede se puede hacer algo inmediatamente, pero no eh no tengo muchas esperanza eh porque no funciona así el servicio de que hay alguien que está disponible eh durante estas horas y aún si estuviera disponible en algunos casos e modificar el sistema no es instantáneo. Están viendo, están pasando enlaces, me parece que les han funcionado algunos de ellos.
(1:25:15) Okay, disculpad que aquí ya son otras, es un poco más tarde. Vale, más o menos. A ver, creo que hay todavía alguna persona que tiene problemas para entrar, pero como es algo que no podemos solucionar ahora mismo, sí, lo bueno sería ir empezando y de todas formas pues tienen la grabación para hacerlo luego tranquilamente cuando precisamente haya menos gente en la plataforma. Sí, justo vi ahora también aquí en el Discord lo que comenta Jesús, que efectivamente si si van directamente al
(1:25:53) GitHub también lo pueden ver, pero bueno, vamos a ir siguiendo lo el notebook que voy a ir mostrando aquí. Entonces, bueno, como decía, la herramienta que vamos a usar es un un paquete de Python que se llama Paper Meal, que es un que nos permite generar de manera automática pues Jupiter Notebooks y generan en nuestro caso como informes en Python y pueden ser diferentes formatos.
(1:26:15) En este caso, si si os fijáis aquí a la izquierda, tenemos por cada fichero Júpiter Notebook, que es el iPad NB este, tenemos un HTML. O sea, yo en mi caso lo que sería si el informe oficial lo guardé HTML, que por ejemplo sé que hay compañeros y compañeras que lo usan para si tienen, por ejemplo, una voya tomando datos initu, pues pueden generar este informe cada día con los datos y ya tienen el el fichero listo para, por ejemplo, compartirlo
(1:26:52) en la web. y la manera en que funciona es que se crea un omb plantilla, en este caso nuestro template. y lo y se corre una sola vez y después ya podemos desde la terminal un código Python o otro Jupiter Notebook correr este eh este fichero template usando diferentes parámetros y generar pues como informes para cada uno de la de los parámetros que que queramos declarar. Ah, en nuestro caso vamos a usar los Jupiter Notebook para generar los
(1:27:32) informes también, pero bueno, como dije, aquí también tenéis más enlaces para ver todo el potencial de esta herramienta y y eso. Aquí tenemos el el nuestro notebook plantilla, ¿no? Entonces, lo importante en verdad no tiene mucho misterio. Esto es un un Júpiter notebook, como los que os mostraron Milagro y y Jerai. Lo único que cambia es que aquí tenemos que tener nuestra celda que se parámetros. Entonces, em definimos aquí nuestros parámetros.
(1:28:03) A esta celda le hemos dado ciertas eh características. Eh, ahora os mostraré al final vamos a a repasarlo todo y al final os muestro cómo a esta celda le podemos dar poner la etiqueta de que esta es la celda de parámetros en la que se tendrá que fijar. Y como este Júpiter Notebook, como comentaba, nos vamos a basar en lo que mostró Jeray, eh lo que vamos a usar como parámetro sobre el queerar va a ser la fecha.
(1:28:33) Entonces, aquí simplemente ponemos una fecha para este ejemplo y luego ya cuando ejecutemos el payer 1000, pues ya elegiremos varias fechas para generar este mismo Júpiter Notebook para cada de las fechas que elijamos. Y luego lo último que un parámetro que suele se suele tener siempre, aunque cambiemos el resto, es el nombre del fichero de salida. En este caso va a ser un simplemente el mismo que que tenemos aquí de template.
(1:29:08) ¿Vale? Pues ejecutamos esta celda y luego también aquí recalcar que en el en los ficheros HTML que se generan, a ver si se abre bien. Vale, como veis, solo sale todo lo que sea como un un print o un output. Entonces, si nos fijamos aquí en esto de parámetros, solo nos aparece esto, fecha. Todo esto que es código, esto no se nos va a guardar en el el fichero HTML. Es como esto es como una instrucción y lo que tenemos en la celda de después sí que nos genera un output, ¿verdad? O sea, todos los outputs es lo que tenemos
(1:29:51) aquí bajo las celdas. Como veis, desde fecha ningún output más hasta que tenemos esta imagen. Y por tanto aquí en el HTML tenemos esto, los títulos, obviamente esto de las que ponemos, esos sí están, pero no nos sale nada más que esto. Entonces está bien que podemos tener como todas estas instrucciones, todo el código en el Júpiter Notebook, pero en el HTML nos queda más limpio y solo va a salir la información que nosotros digamos o las figuras que que generemos.
(1:30:27) Pero bueno, solo era por carificar esto. Si alguien ya se adelantaba a ver algún fichero HTML, no hay ningún error, es normal que salgan menos cosas, ¿vale? Y entonces pues tenemos los notebook, los pasos de siempre, ¿no? Lo primero que hacemos es cargar los diferentes paquetes que vamos a usar. Aquí vamos a usar estos datos de de ERA 5 que traen diferentes datos y entre ellos los datos de CST parecidos también a lo que vimos ahora con a con
(1:30:59) Milagro. E en estos pasos va a ir más rápido porque entiendo que ya se vio con Jerai. y milagro, pero si hay algo que quede duda también se puede aprovechar esto para cualquier cosa que no quedó clara antes, pues también podemos usar este espacio para repasarlo, ¿vale? Y lo siguiente que vamos a hacer ahora tenemos estos datos en varias fechas que cómo podemos eh saber qué qué fecha elegir, ¿no? Aquí el siguiente paso vas a elegir fecha.
(1:31:27) Si este objeto de datos lo ponemos aquí, como dijo Milagro, está bien siempre ver un poco los datos como son. Y aquí nos sale la variable con los valores y aquí las diferentes dimensiones de las que depende, ¿no? Entonces, si hacemos ssttime, vemos, ¿no?, que hay 19 valores de tiempo y lo reejecutamos aquí. pero no salen toda la lista de fechas de las que de las que disponemos. Entonces yo, por ejemplo, pues aquí elegí una de las de las fechas que tenemos por
(1:32:13) en medio, pero solo para lo que lo tengáis en cuenta también, que sí, completamente de acuerdo con lo que os comentaba Milagro, que siempre es bueno, sobre todo cuando es el son los primeros datos que se usan, pues hacer muchos prints o muchas celdas para visualizar los datos para estar seguros y seguras que entendemos lo que que estamos haciendo después. Okay, pues esas son todas las fechas que tenemos.
(1:32:38) Ya definimos la fecha anteriormente en parámetros y ahora aquí lo que hacemos es simplemente seleccionamos la dimensión de tiempo que coincida con esta fecha y llamamos a esta variable SSTEL de que hemos seleccionado solo un tiempo. ¿Vale? Y ahora podemos ya pasar a graficar este este paso de tiempo de temperatura. También igual que lo que se comentaba el taller anterior, usamos el el paquete este de mapas de coloreado de motion, que también tiene la ventaja que todos los los los mapas de colores son
(1:33:24) color brind friendly. Entonces, si alguien tiene alguna daltonía, pues se supone que todos los mapas de colores que propone este paquete, pues eh son más inclusivos en este sentido. Entonces, está bien también porque ya hay muchos mapas de colores eh predefinidos para ciertas variables, como aquí, por ejemplo, pues para temperatura. ¿Vale? Pues aquí ya pasamos a a graficar este dato que seleccionamos y vale, eh el siguiente paso es, vale,
(1:33:58) tenemos un mapa general de temperatura y vamos a graficar la anomalía de SST para ese día en particular. Entonces, lo que hacemos es calculamos la primero la media de CST para todos los años de los que disponemos, todas las fechas que vimos anteriormente y y lo graficamos y esto es el mapa que que nos sale. Okay. Entonces, vamos a pasar a calcular luego la anomalía de SST para el día que estamos para la fecha que la que estamos haciendo esta este notebook plantilla.
(1:34:34) Y la manera en lo que hacemos es cogemos el campo de SST que hemos graficado antes, este, elquetamos la media de todos los años, ¿vale? Y nos queda por último pues este este mapa de anomalía de CST para para esta fecha del 1 de septiembre de 1965. Okay. Pues el último paso aquí, como dije, esto solo he cogido alguno de los pasos que que visteis ayer con Jerai. Y el último paso que se hace es convertir este Jupiter Notebook, que es la lo que tenemos aquí, a fichero HTML.
(1:35:15) Y entonces aquí eh lo que tenemos es usamos también el parámetro que definimos al principio de nombre del fichero de salida. Entonces, aquí llamamos de la misma manera a nuestro Jupiter Notebook y nuestro em fichero HTML que generamos. Aquí obviamente el como este es el fichero plantilla, el nombre de salida va a ser el mismo. No vamos realmente a generar ningún fichero, pero si os fijáis aquí sí que luego vamos a usar esto para ponerle un nombre distinto a
(1:35:56) cada fichero que que generemos, ¿vale? Y bueno, aquí también como pasaba antes con algunas de las celdas que corríamos salen algunos warnings, pero no es nada importante, se puede simplemente ignorar. Y vale, pues con esto lo como se ve aquí justo sale la el último momento en el que se modificó el fichero. Hemos regenerado aquí el HTML que corresponde a nuestro notebook plantilla. Y como veis, hemos pasado de tener todo este Júpiter largo con todos los las líneas
(1:36:34) de código y todo a simplemente tener este fichero HTML que tenemos todo el texto que tenemos en el Jupiter Notebook que recuerdo que es ah en el Jupiter Notebook podemos cuando tenemos texto está en formato markdown. Entonces, todo lo que sea texto aquí en formato Mdown nos va a aparecer junto con todos los outputs de todas las celdas, tanto un print como todas las gráficas, pues la gráfica general de los valores de temperatura para ese día y la gráfica de
(1:37:09) la media de todos los años y finalmente la anomalía de SST para ese día. Entonces, ¿esto para qué nos puede servir? Pues ahora podemos, por ejemplo, si nos piden en el trabajo o lo que sea para un informe o lo necesitamos para nuestro estudio, podemos generar este mismo HTML para todas las fechas que nosotros eh queramos. Podría ser inclusive cada día pues eh correr esto y automáticamente sin tener que escribir el código de cero, pues ya generar este HTML.
(1:37:45) ¿Okay? Pues cómo. Bueno, no sé si ha habido alguna duda hasta aquí. Perdón si voy un poco eh rápido. Eh, pues parece que has leído mentalmente el chat porque pregunta Will, eh, para la sesión actual solo HTML se puede generar, eh, no se pueden generar otros formatos. Creo que inclusive PDF debería funcionar. Sí, yo todo lo que generé de momento es HTML, pero si hay otros formatos así de memoria, no me acuerdo, pero imagino que
(1:38:22) aquí en la en la documentación sale, lo podemos ver más adelante, pero sí, yo creo todo lo que podamos, o sea, si volvemos aquí en verdad es este fichero de esta parte de convert y a ver, voy a intentarlo. Todo lo que normalmente en el entorno del Jupiter Lab o del Jupiter Notebook podamos exportar un Jupiter Notebook aquí manualmente debería funcionar.
(1:38:49) ¿Ves? Por aquí, por ejemplo, sale si vamos a file, save and export notebook as pues nos salen todos estos formatos. fichero ASKI, HTML, Marddown, PDF, muchos otros format formatos que yo misma desconozco. Así que todos los que salen aquí lo podríamos reemplazar a aquí. Pero bueno, como digo yo, los con los que he trabajado principalmente ha sido HTML, sobre todo porque también para mí era una manera de, bueno, no sé si alguien le ha pasado de tener e algún supervisor o supervisora en el trabajo que aún eh igual está trabajando en Mallab o algún
(1:39:34) otro lenguaje de programación. Entonces yo sí tenía que compartir mi código de Python, pues exportándolo como HTML era una buena manera de de compartir el código sin tener que esa persona instalarse nada ni tener nada descargado de del Júpiter Noemook ni ni demás. Andrea ha puesto resultados que le salen a ella con el HTML, pero no entiendo muy bien cuál es la pregunta. No sé si quieres redefinir. Ah, que no le salen las gráficas. A ver.
(1:40:27) Ya es extraño. Eso no. También podéis probar si para saber si es un problema del del servidor u otra cosa, si clicamos aquí en el fichero click derecho y le dais aquí a download a descargar e y luego podéis intentar abrir el fichero localmente, pero no sé, me parece extraño porque en el Júpiter Notebook entiendo que sí que sale todas las figuras sin problemas, No. Will comenta que le funciona sin problemas, pero no sé si se refiere al HTML también o
(1:41:30) Ah, Andrea dice, «En el notebook sí le salen las figuras, pero en el HTML no.» Y Will dice que sí. HTML también. La Will parece que le ha ido bien. Sí, a mí sí que me pasó antes, igual era cuando el servidor fallaba más, que sí que es verdad que tuve que descargar el HTML a local y abrirlo y ahí se veía mejor, pero vale. Bueno, a mí me a mí me pasó igual, lo descargué a local y entonces sí se abrió. Okay, genial. Gracias, Jeray.
(1:42:03) Sí, yo creo que igual cuando le estamos pidiendo demasiado al cloud ya lo del HTML es demasiado. Okay, vale. Si no hay más dudas sobre este primer notebook plantilla, pasamos más a la generación de los de los notebooks. Parece que no hay más preguntas, así que adelante. Vale, pues el siguiente notebook es este Paper 1000 R, que es aquí donde ejecutamos el vamos nuestro notebook plantilla. Y como veis es un si lo hacemos en un Jupiter Notebook es es supercortito.
(1:42:44) Em, lo único que hay que hacer es importar el paquete de Papermal porque luego vamos a ir a leer nuestro notebook plantilla, así que no nos hace falta cargar todos los otros paquetes. Yo aquí he elegido estas tres tres fechas a al azar de todo el listado de de fechas que teníamos y luego para el el nombre de salida em le he puesto este nombre genérico de de output como veis aquí y luego que dependa de las fechas e algunos
(1:43:22) parámetros hay que inicializarlos de alguna manera, así que para este simplemente he puesto eh le he dado el primer valor de las fechas. Así que el primer notebook, el primer nombre salida que tenemos va a ser el primer día y luego ya entramos. Simplemente lo que hay que hacer es hacer un pequeño bucle sobre los parámetros, en este caso fechas. Entonces para cada fecha dentro de fechas, que esta manera también de hacer
(1:43:54) un bucle es que simplemente em a ver voy a poner aquí para que se vea e voy a hacer para que se vea en cada iteración lo que nos da. Entonces, en este bucle, como veis, para cada interacción ya va llamando a cada e cada una de los valores dentro de fechas los llama fecha, así no hay que como jugar con los índices ni nada así en el bucle.
(1:44:22) Y eh luego el único comando que hay que usar es este de llamamos a nuestro paquete eh de papermil que hemos importado aquí y llamamos a la función execute notebook. Entonces, lo primero que le damos es el nombre de nuestro notebook plantilla, donde va a ir a leer todos esto, todo lo que tiene que que correr, o sea, va a llamar directamente a este notebook anterior. ¡Up! Perdonar, ahora. Y luego definimos aquí el el output. O sea, aunque nosotros al final eh hagamos este último paso de convertir nuestro notebook a otro a otro formato, el
(1:45:09) Papermal en verdad lo único que hace es eh generarnos un notebook parecido al nuestro notebook plantilla. Entonces, aquí simplemente define el nombre del fichero que se nos va a generar del nuevo notebook y por último los parámetros. Entonces le decimos que esta es nuestra esto es la vamos a tener el parámetro de fecha y del nombre del del fichero de salida que va a depender que lo vamos a llamar en función de de nuestra fecha.
(1:45:46) Y e a ver, para que sea más fácil, voy a borrar todo esto, así podéis ir viendo cómo cómo van apareciendo los los notebooks a medida que se generan. Vale, ejecutamos esta línea y esta barra significa, pues aquí me está generando el primer notebook, ya se a generarlo al 100%. Y bueno, haido, ha ido un poco más lento, pero como veis aquí ya se generaron tanto el Júpiter Notebook correspondiente a la fecha del 1 de enero de 1959 y su fichero HTML.
(1:46:19) Y bueno, bueno, ya en lo que he explicado el primero ya se han generado los otros tres. Entonces ahora si por ejemplo el que habíamos visto el la segunda fecha que teníamos ya era la misma que en nuestro template. Si voy ahora aquí al del el 1 de enero de 1959, aquí ya se queda de manera general el parámetro base de nuestro template y luego aparece esta otra celda con los valores de de los parámetros que le hemos dado de entrada.
(1:46:57) Entonces, tenemos aquí la fecha del 1 de enero de 1959 y el nombre de nuestro fichero de salida. y ya se ya nos ha generado automáticamente sin tener que copiar, pegar ni nada el notebook y las también las figuras correspondientes. O sea, ya está ya está ya está hecho. Entonces, bueno, en nuestro caso em solo son tres fechas, pero si por ejemplo tenéis que generar un informe de 20 años de este estilo, pues con una simple interacción en un momento ya está todo generado.
(1:47:33) Y también a veces sirve de, bueno, no solo tener ese ese informe ahí, pero también poder ir a verificar detalles para cada fecha específica. Y bueno, esto por el notebook y luego aquí tenemos el el HTML, que pues eso nos ha generado igual que antes e pues lo mismo, solo el texto y las gráficas. Y y otra ventaja también es como bueno, por ejemplo, a mí me ha pasado, pues estamos generando para las diferentes fechas y vemos que uy, nos ha salido aquí el output de
(1:48:18) cuando hemos hecho el print de las fechas, pero esto no lo queremos. Pues no hace falta ahora ir en notebook por notebook modificándolo. Volvemos a nuestro fichero plantilla y bueno, voy aquí a esta celda y digo, «Ya esto no me interesa. Esta celda la quiero quitar, no me interesa esta información para mi informe. La borro aquí puede, por ejemplo, con este símbolo aquí.
(1:48:43) Y ahora voy a reinealizar el kernel y lo corro todo otra vez. los parámetros, la fecha, los paquetes. Vale, pues ya se ha corrido todo y entonces es como decía antes, ahora no hay que ir notebook por notebook, puedo simplemente otra vez correr aquí mi paper me va a generar eh los ficheros otra vez. Hay que ir con cuidado porque ahora me va a sobrescribir los ficheros que que ya tenía. Eso también es importante tenerlo en cuenta.
(1:49:30) Entonces, pues sí, aquí otra vez ya corremos eh para las tres fechas, ¿vale? Y si vamos, por ejemplo, a la primera fecha, pues ahora aquí no quiso. Vale, nos debería haber quitado esto de aquí, pero veo que sigue sigue saliendo. A ver, vamos a ver. Igual sí que es mejor. Antes lo probé y sí que me me sobreescribió todos los datos y ahora igual Vale, bueno, sí que es mejor. Entonces, bueno, antes me sobrescribió los ficheros, pero bueno, si veis que no
(1:50:51) actualizado, se pueden borrar los ficheros y ya lo genera con con el nuevo formato. Pero bueno, veis como como decía, aquí ya no tenemos todo el print de los diferentes valores de tiempo. Bueno, de de este ejemplo cortito, ¿hay alguna primera pregunta? O sea, en verdad la herramienta es bastante básica, es ver, sobre todo en este ejemplo que son más básicos, igual si después hay cosas más elaboradas que se quieren cambiar en estos bucles de
(1:51:25) ejecución, pues igual ahí puede ser más complicado, pero está bien que es una herramienta también para reducir cantidad de trabajo, aunque no sea para la generación de informes. Eh, Laura, hay un error. No sé si puedes mirar un momento la pantalla del Discord y parece que el error es en eh cuando carga el JSON, jon. Path quizás es el problema del PA de otras veces. Mm puede ser porque es verdad, o sea, no hay ningún fichero.
(1:52:05) Hm. Es extraño. Si este error sí que no lo había visto nunca. Es porque intentó intentaste generar Jonathan un fichero en otro formato. Es lo único se me ocurre para que salga este a este error. A ver si Jonathan nos lo puede aclarar de voz o por escrito. Y mientras comento lo que ha escrito Emilio, que bueno, parece que está intentando que vaya mejor la plataforma, desactivando las sesiones de la gente
(1:52:51) que no la ha usado en los últimos 30 minutos. Eso pasa a veces, ¿no? Cierran la sesión y y queda ahí funcionando. Bueno, Andrea ha conseguido los gráficos en HTML. Enhorabuena, Andrea. Muy bien. Qué bien. Sí. Ah, vale. Jonathan va a probar otra vez a ver si porque sí y también bueno esto respuesta cuando es verdad que a veces los errores de Python no son muy claros en dónde está el error. Algunos sí que son Cuando, por ejemplo, nos dice el error que le salió antes al
(1:53:25) compañero de Pelete is not defined, que bueno, se nos olvidaron cargar algunos paquetes, pero otras veces no está muy claro. En caso de dudas, siempre sino un reinicio del del Kerner y volverlo a ejecutar todas las celdas una por una siempre también es es útil. ¿Vale? Y luego a lo último que quería mostrar antes de pasar al ejemplo espacial es que aquí en el Jupiter Lab lo de la característica de las celdas.
(1:53:55) E voy a abrir el el notebook, pero en la otra no la en la plataforma Jupiter Lab, pero en la plataforma Júpiter eh Notebook que se nos carga aquí con los primeros pasos. Si me quierar. Okay. Estoy pidiendo demasiado tener el Jupiter Lab y el Jupiter Hub. Okay. Vale, como veis, al abrirlo en formato Jupiter Hub, como veis aquí, si vamos a la parte de parámetros aquí no sé por qué la interfaz del Júpiter Labe.
(1:54:51) Creo que el año pasado encontré la manera, pero cuando lo hacemos aquí desde el Jupiter Notebook, como veis, estas celdas se las puede etiquetar, se les puede dar un tag nuestra celda de parámetros tiene este tag de parámetes, que es lo que ayuda al paper me poder hablar como con el con el Júpiter Notebook y decirle, «Esta es la celda que contiene esta información sobre la cual tú te vas a basar para iterar.
(1:55:16) » En verdad, entonces junto esto de tener que taguear la celda, junto con lo que junto con crear este bucle aquí, es lo único así que hay un poco complicado del paquete de Papermal. Por el resto es como una vez que tengáis vuestro vuestro código plantilla listo es muy fácil de de reejecutar y puede ayudar a ahorrar mucho tiempo tanto para verificar cálculos como para generar informes, pero también em cuando sabemos que ya un Júpiter Notebook lo vamos a usar eh de esta
(1:56:02) manera también ayuda a que tengamos a veces pues códigos un poco más más limpios, ¿no? Porque ya sabemos que el código lo vamos a hacer en función con estos parámetros en mente, porque igual si no si no tuviéramos esto en mente, a veces pues ya ponemos en el momento de salvar los datos, eh, de guardar los datos, ya ponemos esta esta variable al final.
(1:56:23) Pero bueno, no sé si esto está quedando muy claro, solo que cuando vayáis a crear este notebook, tener muy en cuenta en qué manera os puede ayudar a optimizar también el código, el declarar unos parámetros al principio. Vale. No sé si hay alguna duda más en el chat. Eh, por ahora no hay ninguna ninguna duda más. Hay un comentario de Zaira para si hay alguno que que no está en el Discord, que no olviden de registrar su asistencia el día de hoy, pero por el momento pregunta.
(1:57:08) Okay, pues entonces si con eso podemos pasar al último ejemplo que será de alguna de las partes ahora que del del notebook que enseñó Milagro aquí el en el template espacial lo llamaba aquí. Perdón que el fichero este template espacial. cerrando esto que va un poco más rápido. Vale, perfecto. Vale, pues eso, ahora también otra vez tenemos nuestro template espacial y lo que vamos a hacer pues en el ejemplo anterior de Jerai que visteis datos temporales y tereramos sobre el
(1:58:16) tiempo y ahora aquí para probar diferentes e ejemplos en espacio, pues bueno, que ya está bien que ya muchos no fuisteis fuisteis probando en diferentes zonas. Entonces, otra cosa sobre la que podríamosar es nuestra región o nuestro dominio, ¿no? Entonces, tener las mismas gráficas, pero para diferentes zonas. Entonces, aquí vamos a como parámetros definir nuestro dominio, que sería lo mismo que usasteis antes para definir la la extensión del plot.
(1:58:41) Entonces, tenemos para esta zona que leí yo aquí del Golfo de México la longitud mínima, la longitud máxima, la latitud mínima y la latitud máxima. Y luego pues el como siempre el nombre de del fichero de salida, ¿vale? Okay. Y luego los mismos pasos que antes. Cargamos el los ficheros de datos que estuvisteis ahora trabajando con Milagro. Hacemos un primer plot de nuestra zona al completo y luego em seleccionamos nuestro nuestra
(1:59:25) zona más pequeña. Eh, Milagro Justo os enseñó, yo creo, otro otra manera de seleccionar las zonas. Eh, yo uso este método con el web, que lo que hace es encuentra e los índices eh que corresponden a a los valores de longitud y latitud que corresponden a nuestro dominio y luego e todos los valores, este último paso es que ignore todos los valores de los datos que no que no caigan en este dominio y nos quedamos con un la misma
(2:00:03) valor de SST, pero con un con un dominio más pequeño. Y luego esto que hacemos aquí, como veíais con Milagro, hay estas tres dimensiones y eso. Hay diferentes maneras de procesar los datos para si no necesitamos esta dimensión de tiempo, ya que solo estamos trabajando con datos espaciales. Otro método de que se puede usar con Xarray es esto de squiz que simplemente es como comprimir, es como ignora ignora las dimensiones que sean uno porque no son relevantes.
(2:00:35) Y esto simplemente lo hacemos para que no para que no nos dé problemas el código más adelante, ¿vale? Y entonces ahora si volvemos a a ver esta variable de SS SST, como veis antes de hacer el squish teníamos aquí la dimensión tiempo y ahora aquí después del squish ya ya no nos sale. Pero bueno, como decía, solo al final también está bien ver que cada hacemos todos lo que los profesores y profesoras lo mismo, pero a veces cada uno tiene su su método.
(2:01:12) Y bueno, y ahora si si ploteamos los datos, pues nos salen aquí los valores de temperatura para para el Golfo de México, que está interesante no saar alguna estructura que teníamos por la zona hace tres días como como un remolino aquí. Y vale, lo que vamos a hacer ahora eh acabar de graficar eh más en detalle los datos otra vez siguiendo los pasos que justo hicisteis con con Milagro. Entonces, vamos a cambiar aquí el el color map, etc.
(2:01:43) , y lo último que vamos a hacer es eh calcular la anomalía de SST como hicimos para la parte anterior. Entonces, eh primero vamos aquí a hacer un print de la temperatura media en nuestra zona hace 3 días, que no está mal, no es tanta como la que tenía el compañero en República Dominicana, pero casi 30 gr también. Y luego vamos a hacer la gráfica de la anomalía, en este caso de anomalía espacial.
(2:02:15) Entonces vamos a a ver cómo es el el campo. Si le quitamos esta media espacial a los datos, pues nos sale así podemos identificar con en este caso, eh, por ejemplo, el remolinó que decía antes, pues ahora se ve mejor. es un poco diferente al tratamiento de datos temporales que que visteis con Gerard ayer. Entonces, bueno, unos pequeños ejemplos de algunas de las cosas que visteis ahora con con Milagro y otra vez el último paso de e convertir este Jupiter Notebook en un
(2:02:54) HTML. Vale, esto ya también ya ha corrido. Y si abrimos ahora aquí el HTML, nos sale aquí, pues como decíamos, ¿no? Definimos, nos salen aquí los parámetros al principio y podemos ver las diferentes figuras. Esto del principio, entiendo yo, que es en caso de querer usarlo esto como informe no es tan necesario, pero lo que es interesante que interrumpa porque es del lot anterior este del Golfo, justo. Eh, hay gente que parece que le da invertido, ¿no? Norte, sur. Creo que sí.
(2:03:34) Sí, igual puedes mirar la pantalla. Ah, parece que les dio espejado, ¿no? El gráfico del Yo ahora sí que yo, bueno, de lo que puso Esteban en el Discord, ¿soy yo o yo sí lo veo igual? Le he puesto dos, uno arriba y otro abajo. Y ves que están uno invertido del otro. Ah, sí, el otro sí que sale al revés. Qué extraño. Igual en la Sí, ahí también, ¿no? En la pantalla. La pantalla está. Ah, pues mira, yo ni me había fijado.
(2:04:16) Yo sí, no sé si puede hacer aquí por algún Ah, por cuáles son las latitud cuáles son las latitudes de, o sea, ¿cuáles son los límites de latitudes ahí del Golfo? Sí, creo que va de 20 a 30, si no recuerdo mal. Bueno, 18 32. Sí. Y la igual yo creo que es por el im show que usamos aquí. Aquí estaría mejor usar, por ejemplo, lo que os proponía Milagro de un piccolor mesh, porque el im de graficar los datos.
(2:05:03) A ver si lo corregimos entre todos en un momento, pero bueno, bien visto, porque yo no me había ni fijado en que eso salía al revés. A ver si tenemos suerte. Vale, ahora. Okay, pues yo creo si corregís aquí podéis, bueno, pues ya usar esto parte como ejercicio de elegir el piccolor mesh o un contour que os decía milagro porque el im show es como os muestra directamente los datos, pero yo creo que antes nos salía al revés porque era en función a los
(2:05:38) índices de los datos. Entonces, por ejemplo, esto tiene un creo que no sería al revés porque igual los datos de latitud están guardados en vez de del índice 0 al 30, están guardado del 0 al 30. Entonces, al usar esta este método de graficar los datos, nos no salía invertido. Pero voy a poner la línea también en el en el Discord por si hay alguien que no haya, pero bueno, lo actualizaremos también.
(2:06:03) Si en algún tutorial a veces vemos que hay alguna cosa extraña, lo podemos luego actualizar en el en el GitHub. Vale. Y aquí igual también lo podemos actualizar para la para la anomalía, que lo único que tenemos que hacer, como ya lo tenemos antes, le restamos aquí la media. Vamos a poner otro tipo de color map que también cuando yo la regla que suelo seguir también está bien que ya en todo este paquete de motion también lo tienen bastante bien explicado, pero si los
(2:06:54) datos que tenemos están centrados en en cero, como suelen ser los el caso de los datos de anomalía de CST, usar barras de color divergentes, que eso quiere decir que suele ser como un color más clarito en el centro. y luego va aumentando. Entonces, aquí nos va aumentando a colores más rojos en el positivo y a colores más eh azules en el en el negativo. ¿Vale? Ahy, pues tengo que acordar de cambiar los mínimos también y el máximo.
(2:07:28) Okay. Y vale, ya lo tenemos en el mirando hacia el lado que toca y no al revés. Os voy a copiar también otra vez esta corrección aquí, ¿vale? Y perfecto. Gracias otra vez a a Will, no sé si fue quien lo vio o Esteban. Muchas gracias. Y vale, vamos a volver a generar el fichero HTML. Vale, ahora ya sí lo tenemos orientado hacia el lado que toca. Ay, menos este de aquí no se actualiza. Yo sí, no sé los compañeros, para mí a veces sí que hay veces que los datos se sobreescriben bien y los ficheros y
(2:08:36) otras veces no, nunca está está de más verificar. Vale, volvemos a verificar que todo esté. Perfecto. Ahora ya tenemos todos los datos. Bien. Entonces, bueno, más o menos esto es lo que quería mostrar de la de la herramienta y lo que dejé como ejercicio era para que provees de de generar, igual que tenemos un este paper mil para los datos espaciales, pues intentar copiar este fichero Paper Meal, que se puede hacer aquí, clic derecho, eh, duplicar.
(2:09:25) A ver, y ahora le cambiamos el nombre a barra baja espacial y probar a ver si podríais en vez aquí pues cambiar e en vez de definir diferentes fechas podéis definir diferentes zonas. Estaré bien si, por ejemplo, probáis en usar las diferentes zonas que fueron mostrando los compañeros y compañeras en el chat y generar pues lo mismo para para todas estas zonas.
(2:09:52) Algo a tener en cuenta cuando lo probéis, eh, si nos volvemos al ejemplo del notebook temporal, aquí tenemos los los parámetros, ¿no? Fecha y nombre salida. Y en el paper me tenemos igual fechas en plural porque es una lista y lo y el nombre de salida. Entonces, hay que ver también aquí en los parámetros de nuestro notebook espacial tenemos el dominio que aquí entonces no sería pues podemos llamarlo también dominios y en vez de fechas pues tener pues una serie de longitudes y latitudes.
(2:10:34) Entonces, por ejemplo, podéis simplemente copiar esto que hay aquí para nuestro primer ejemplo del Golfo de México y se puede pegar aquí. Y aquí sería para el segundo ejemplo. Y aquí podéis dejar un comentario para que os acordéis. Volvo de México. El segundo ejemplo a modificar podría ser, creo que hubo la zona de de Colombia que mostró una compañera. Y por y el último ejemplo, ¿cuál fue? Creo que también se mostró República Dominicana, ¿no?
(2:11:23) Y entonces solo queda aquí que ajustéis las longitud mínima, longitud máxima, latitud mínima y latitud eh máxima. Y luego e si queréis la zona del Golfo también hay el nombre de la zona, eh, lo podéis también añadir como parámetro y luego el nombre del del fichero de salida. Esta del del nombre de la zona es parámetro opcional y nada, sería ir probando. Entonces, con esto que que hay aquí tenéis que cambiar pues pues fecha sería dominio dominios, cambiar el nombre del template
(2:12:12) y ya está. Y de ahí ya podríais eh ir adaptando ir adaptando todo también. Em, una cosa que se puede hacer, lo último antes de pasar a las últimas dudas es em cómo asignar. Eh, a ver, estoy pensando una manera sencilla eh de hacer esto. Se puede definir algo aquí que cambie, como decir, si podríamos decir si un if de si la el la longitud mínima que tenemos, entonces e si dominio em aquí aquí dentro nuestro bucle, si el dominio el primer valor que es la longitud
(2:13:14) mínima, es mayor a, no sé qué podemos poner, por ejemplo, -80º de longitud. Podemos decir que la zona eh entonces es igual a e oeste. Entonces, ya tenemos aquí nuestra zona definida que podemos usarla, por ejemplo, en en el valor de en el nombre de salida. Podemos poner, ¿vale? pues nuestro output en función de la zona y algún otro parámetro que que le queramos poner. Pero hay que decir que solo por mostrar que uy, obviamente esto no va a funcionar porque salta actualizar el
(2:13:59) resto, pero solo por mostraros que aquí también podemos hacer cualquier otros ajustes que veáis necesarios para vuestro caso, se puede ir adaptando. Bueno, es una herramienta un poco distinta. lo que está bien es ir jugando y viendo, pensando para qué caso diferente podría ser útil para para cada persona y y eso y sobre todo ir probando eh la ventaja también de todos estos lenguajes eh en abiertos, que hay muchos
(2:14:33) ejemplos también en en línea y ya no sé si hay alguna última duda o algo de duda de si cre para saber si sería esta herramienta útil para para algo en particular. De momento parece que no hay más preguntas, aunque Will está escribiendo. Bueno, nos comentaba antes que consiguió también eh los plots anteriores con HTML, etcétera, pero bueno, ahora está comentando algo.
(2:15:08) Vale, parece muy útil para automatizar la generación de informes diarios. Hm. V me alegro que al menos alguna persona crea que pueda ser útil así a corto plazo. Muy bien. Yo creo que, bueno, conozco a muchos compañeros que trabajan en asesoramiento y que repiten las mismas campañas eh todos los años con el mismo procedimiento, ya que está todo estandarizado, etcétera. Y realmente los informes, este tipo de informes que cargan datos distintos, pero que al final generan informes muy parecidos,
(2:15:45) pues es muy útil tener estas herramientas para acelerar el trabajo. Sí, exacto. Esto lo veremos también para para R que bueno creo que utilices R Python o Julia seguramente Julia tenga algo equivalente pues siempre es útil tener estas herramientas. Javier también comenta que es le parece una herramienta muy interesante y Micaela, lo mismo. Qué bien, me alegro. Sí, aquí, por ejemplo, solo puse un ejemplo muy corto de de pues calculamos la temperatura media
(2:16:26) en el día de del sacamos la fecha de nuestros ficheros y mostramos el cálculo, pero podría ser la media, la varianza o cualquier otro cálculo estadístico que hagáis para diferentes datos o incluso para si tenéis datos a diferentes profundidades en vez de días. E sí se puede ir creando como un poco el Sí, el texto que puse yo es obviamente de sería un informe muy cortito y muy simple, pero de ahí podéis eh poner
(2:16:58) muchas más cosas. Bueno, pues si no hay más preguntas, mira, justo a ver, Micaela nos comenta algo más. Voy adelantando que para mañana esto mantenemos el mismo horario y el mismo programa. Parece que de momento los compañeros de México siguen conectados virtualmente, así que de momento no no va a haber problemas, pero si no tenemos plan B para que recibáis todos los tutoriales, así que no no habría problema tampoco. A ver qué nos comentan.
(2:17:44) Eh, Micaela dice, «Sí, que se hacen seguimientos diarios ahí de algunas pesquerías y tienen que hacer informes de asesoramiento diarios, claro, no solamente ya anuales, sino diarios.» Claro, ahí incluso más importante, ¿no? Tener este tipo de herramientas. Y sí, a Julio Prado también le parece interesante. Y Will comenta que en su trabajo se genera también una bitagora manual con diferentes datos del monitoreo atmosférico y oceánico y que también
(2:18:18) están pensando en automatizar. Claro, yo creo que esto es una herramienta que cambia de muchísimo el trabajo diario de este tipo. Sí, yo recomendaría, bueno, me alegro que la gente esté viendo útil, no sabía si estaba yendo igual muy muy rápido, pero de de probar diferentes cosas. Aquí los ejemplos fueran muy eran muy simples, pero de aprovechar estas semanas de del taller para probar cosas y también que estaremos más atentos al Discord de si hay dudas que surgen más
(2:18:51) adelante. Pero sí sería interesante ver qué tal funciona esta herramienta para todos estos todas estas aplicaciones diferentes o o igual la de R que que no sé si es mañana o pasado que vais a ver igual esa resulta más útil, pero bueno, tendréis dos dos propuestas de herramientas de generación de de informesm Sí, además de por el Discord también tenemos las dos sesiones de de dudas lunes y martes que viene, lo recuerdo.
(2:19:20) Así que bueno, todo lo que probéis con vuestros datos y vuestros ejemplos es durante esta semana, pues os va a ayudar después a, bueno, si os surgen preguntas, quiero decir, pues se pueden resolver por escrito o como digo, en la sesión de de dudas de lunes y martes. Pues parece que no hay nada más. Tú, por tu parte, has acabado, ¿verdad, Laura? Sí, igual lo último que quería eh comentar que en verdad que como esta herramienta del Paper Meal está basada en el Jupiter Notebook, que recuerdo que
(2:19:52) como lo de Júpiter es por Julia Python R, yo creo que si si se usa un Jupiter Notebook, tanto en lenguaje Python como en Julia o R, esta herramienta del del Paper Meal igual podría podría servir igual a a verificar, pero a a tenerlo en cuenta. Pero bueno, está bien que ya habrá mañana una explicación de otras herramientas específicas para para R. Muy bien.
(2:20:22) Pues muchas gracias a Milagro y a Laura por sus tutoriales, como siempre muy interesante y siempre se aprenden cosas nuevas. No sé si Emilio quieres comentar alguna última