(00:02) Y que sin más dilación podemos comenzar. Lo único que creo que Marina estaba teniendo problemas para entrar. Voy a ver si está no está finalmente. Parece que no. Así que bueno, vamos a cambiar el orden de las charlas y comenzamos con Héctor, que nos hablará de datos temporales en R. Héctor, si como siempre si quieres eh comenzar con presentándote y adelante con tu tutorial. Muchas gracias, Héctor. Muy buenos días a todos.
(00:25) Pues mi nombre es Héctor Villalobos. Yo trabajo en el Centro Interdisciplinario de Ciencias Marinas del Instituto Politécnico Nacional en en la Paz, California Sur, México. Y bueno, pues he estado trabajando con cuestiones de acústica pesquera y análisis de datos principalmente y pues ya tengo, creo que es el tercer año que estamos aquí. colaborando con Marian Emilio y todos los demás en esta en esta actividad. Entonces, bueno, pues les voy a a compartir eh la pantalla
(01:07) y pues comenzamos nada más. Si alguien me confirma, por favor, si se ve. Podemos ver su pantalla. Ah, de momento. Ah, sí, ya no la veo. No, bueno, alguien dice que sí y alguien dice que no. A ver. Yo de momento no la veo, pero si la veis vosotros ya no sé. Yo veo ho en pantalla. A ver, ¿lo veis? ¿Alguien más puede confirmar alguno de los participantes? Sí, se ve. Sí se ve. Se ve, ¿verdad? Adelante. Yo de momento. Bien.
(01:40) Eh, pues nada más un recordatorio muy rápido, ¿no? Aquí en esta página que se está mostrando en este momento, pues tienen todos los enlaces este que vamos a necesitar. En particular, eh, pues yo me voy a quedar con este aquí abierto, el de curso intermedio, primeros pasos, porque pues es el que contiene el enlace justamente de entrada a la plataforma del Jupiter Hub. Y también eh están los enlaces acá abajo a el material que tenemos en GitHub.
(02:09) Entonces, mi siguiente pestaña pues es justamente, ¿no? El la plataforma. Si no entraron ya, pues hay que ir entrando por ahí. Eh, recuerden, hoy vamos a trabajar con R. Entonces, pues hay que seleccionar aquí R y pues darle oportunidad a que inicie. Esperemos que no se presenten los problemas que tuvimos ayer. Pero bueno, entonces ahorita que entre, pues nos va a abrir ya directamente esta interfaz gráfica que es el R Studio que nos va a
(02:46) permitir entonces eh interactuar con con el R, ¿no? Eh, lo comento de una vez, el R Studio solamente es una interfaz gráfica. Eh, nosotros podemos usar el R sin interfaz gráfica o con otras diferentes, ¿no? Está el BS Code, hay una nueva basada en VS Code que también hacen los mismos DR Studio que se llama Positron. Había RKW, R Commander, Tin R, infinidad de pantallas gráficas.
(03:15) Usamos ahora más esta, pues porque es la realmente muy sencilla, integra muy bien las diferentes herramientas. En lo que termina de abrir, me quiero ir hacia acá. Eh, no sé por qué no sacó. Bueno, eh, ¿qué es la el Github? No. Eh, aquí tenemos los materiales de los diferentes cursos. Me meto aquí simplemente para mostrarles que en el caso de este tutorial ustedes lo pueden ver directamente en el GitHub. se van al día de hoy, datos temporales y los archivos que van a encontrar ahí
(04:01) tienen ustedes el que dice datos temporales en r.md. Ese archivo markdown es visualizable directamente ahí en en el navegador en GitHub, ¿no? Y de aquí pues podrían ustedes bajar el otro que es el que vamos a trabajar ahorita, el RMD, es un markdown que es el que voy a mostrarles ahorita en la plataforma. Pues nada más para que estén ubicados, que esos materiales pueden verlos ustedes ahí directamente en el Github. Okay. Si ya ya abrió por acá.
(04:27) Eh, les recuerdo también los que no lo hayan hecho o o lo hicieron el día de ayer, eh, hay que clonar el repositorio. Todavía hice unos cambios ayer en a media mañana. Recuerden que eso lo tienen por acá también, ¿no? Donde dice cómo la en la página inicial que les decía yo de primeros pasos, cómo cargar el repositorio. Tienen ustedes la opción de R y solamente basta presionar este este enlace que está por aquí y se va a clonar el repositorio.
(05:04) Los que no lo hayan hecho, lo hayan hecho ayer al inicio de los tutoriales, recomiendo que lo hagan nuevamente. Pues una vez que está hecho eso, déjenme empezar como si no tuviera nada aquí. Eh, yo voy a ver en el en la en el apartado del lado derecho. Bueno, esto vale decir también que es configurable el orden en el que aparecen las diferentes eh apartados, digamos, que tiene que tiene el R Studio.
(05:37) Normalmente del lado lado izquierdo tenemos el el área del script y del lado de abajo tenemos la consola. Yo los moví y a mí me gusta tener la consola del lado derecho, que es esta parte de acá, que es es el R directamente, ¿no? Es donde yo puedo consultar cosas y demás. Entonces, busque ustedes busquen su pestaña de archivos de files y ahí si ya clonaron el repositorio les va a aparecer talleres intermedios 8, datos temporales en R y el archivo que van a abrir es datos temporales en RMD.
(06:20) Okay, entonces espero que todos estén ahí. Por favor, si hay alguna duda, pues ahí lo lo comentan en el en el Discord o me avisan pues para para ayudarle si es que no están en esa en esa parte. Entonces, bueno, vamos a empezar ya con con el tutorial. Eh, el caso de datos temporales, pues obviamente es cuando la información que estamos trabajando contiene información de una fecha y muy probablemente también de una hora y se necesita definir con
(06:51) toda claridad cómo está organizada esta información, ¿no? Y eso depende mucho el tipo de archivos que van a tener, si van a ser archivos ASKI, archivos de texto o si van a ser archivos en Excel o en algún otro programa. Entonces, usualmente tenemos cosas como esta, ¿no? Lo que ustedes ven aquí. Eso pues ahí evidentemente pues es es una fecha, ¿no? Eh, pero puede estar, decía yo, en un en un archivo de texto y cuando ustedes
(07:23) importen esto en R, R no lo va a reconocer como una fecha, lo va a reconocer como texto, ¿verdad? Si viene de Excel y utiliza alguno de los programas que hay para importar eh archivos de Excel directamente, probablemente lo reconozca como una fecha, pero eso depende mucho de que no haya ambigüedad. ¿Qué es ambigüedad? Bueno, pues que en una misma columna inviertan de repente el orden del mes y del día, ¿no?
(07:51) Entonces, en eso hay que ser muy cuidadosos o que usen, por ejemplo, eh el nombre del mes abreviado eh y le cambian algunas veces mayúsculas, otras minúsculas, a veces completo, ¿no? Entonces, en eso hay que ser muy cuidadoso de que todo sea consistente en los archivos fuentes que ustedes van a estar trabajando. Entonces, eh, pues este parece broma, pero es cierto, ¿no? En Estados Unidos, por ejemplo, les gusta mucho utilizar el formato mes,
(08:24) día, año, pero eso puede ser para nosotros e hablantes llega a ser confuso. es ya inequívoco cuando pues tenemos días que sobrepasan el día 12, ¿no? Ya si es día 13, 14 ya sabemos bien cuál es el día, pero bueno, eso simplemente para que tengan mucho cuidado en cómo está la información que ustedes van a trabajar. Entonces, bueno, pues el chiste es que cuando nosotros importamos cosas NLR, eh estemos seguros de cómo están.
(08:55) Entonces, vamos a empezar a hablar de los eh de las clases de objetos especializadas para contener fechas en el R. Entonces, vean, vamos a ver primero la la más sencilla de todas, que es la clase fecha o la clase date. Aquí en el en estos apartados grises que tenemos con código, el triangulito del lado derecho les permite ejecutar el código. Entonces, en principio no debería haber ningún problema para que ustedes lo ejecuten al mismo tiempo que yo lo voy haciendo.
(09:25) Entonces ahí yo puse nada más una instrucción para pegar eh 2025 con tres números que corresponderían al mes y otros tres que corresponderían al día, ¿no? Entonces eso pues tiene cara de ser una fecha, pero no lo es en sentido estricto, porque vean, por ejemplo, aquí en el caso de de ese mes de julio, pues ahí dice siete nada más. Este, y bueno, pues nosotros normalmente si es así le ponemos un 07, ¿verdad? Y eso lo podemos verificar si le preguntamos, a
(09:59) ver, dime R de qué clase es este vector que acabo de crear que es fechas y me dice, "Es carácter." Entonces, eso es texto, no es una fecha. Y lo puedo convertir yo utilizando la función as date, ¿no? Esta función va a reconocer la estructura que tiene, identifica el año, el mes, el día. y pues ya lo convirtió. Vean, ahora el el que teníamos como si ya nos aparece como 07.
(10:24) Y si le preguntamos la clase del vector porque lo guardamos con el mismo nombre, pues ya me dice, "Ah, pues es una fecha." Y eso ya me permite pues utilizarlo, ¿no? Para diferentes cosas. En este caso, esto está este digamos eh eh codificado internamente como el número de días a partir del que se conoce como el el Unix Time, ¿no?, del primero de enero de 1970. Entonces, si yo le pregunto, le digo, "A ver, dime, dime ese vector fechas, pero sin clase, no on class, me da esos
(11:08) númerotes que corresponden, como decía yo, al número de días transcurridos desde el primero de enero de 1970, ¿no? Eso a lo mejor ahorita les parece poco relevante, pero espero que después vean por qué se los estoy diciendo. Eh, ¿cómo podemos verificar esto? al primero de febrero del 70, pues han transcurrido solamente 31 días, ¿no? Entonces, si yo le digo, "A ver, el 31 conviértemelo a fecha, pues me da de manera correcta el primero de febrero de 1970, ¿no? Entonces estoy
(11:42) pasando, digamos, de Alguien prendió un micrófono? ¿Hay alguna duda?" Bueno, seguimos. Entonces sí vamos bien hasta aquí, ¿no? Vean la las conversiones que estamos haciendo de texto a fecha o de números enteros a fecha, ¿no? Ahora, la función S time en R nos puede decir la fecha de este momento. Entonces, si la presionan, les dice con todo y este, ah, qué curioso, corriéndolo aquí desde desde la plataforma me está dando el tiempo en las en UTC.
(12:24) Eh, si ustedes corren eso localmente les va a decir en la zona de tiempo. Eh, a ver, Marian dice que no ve mi pantalla, pero alguien más tiene ese problema o podemos continuar. Héctor, veo tu pantalla y también con referente a lo que acabas de decir, efectivamente, la función da el tiempo de la computadora o el sistema que donde está corriendo y la plataforma eh sí eh esperaría que estuviera en UTC. Perfecto, muchas gracias Emilio, por la ambas aclaraciones.
(13:01) Eh, bueno, eso es importante, pues, porque también es, o sea, Héctor, yo no lo veo, pero sí que he visto que Giovanni Crillo decía también, no la presentación, no sé si lo ha conseguido poner, digo, porque lo importante es que lo vean ellos. Sí, bueno, hay varios que Pero los demás no sé. Vale, vale. Solo he leído el comentario de Giovanni Grillo que ponía que no, pero por lo demás parece que todo bien, así que nada, sigue. Bueno, okay.
(13:31) Eh, decía yo, esto de la zona de tiempo es bien importante, ¿no? Si ustedes corren este código en su máquina, les va a decir en qué zona de tiempo se encuentran y ese número va a ser diferente. Ah, ya lo ve, Giovanni Grillo dice que ya lo veí. Bueno, seguimos. Eh, entonces si nosotros utilizamos la misma función de hace rato, el asdate, pues ahí descarta, digamos, la parte del tiempo y nos quedamos simplemente con la fecha.
(13:56) ¿Okay? Entonces, es una clase muy básica, una clase que maneja fechas de manera muy muy simple, ¿no? Ahora, hay unas que ya nos permiten incluir la fecha, la hora inclusive la zona del tiempo, ¿no? Estas son basadas en estándares que también tienen que ver con Unix, que es la clase POS LT, sería la primera. En esta es una forma fácil de leer, digamos, para nosotros, para el humano y eh simplemente es una una lista de vectores, ¿no?, que tiene por un lado los segundos, los minutos, la hora, el
(14:35) día, el mes, el año, el el día de la semana, el día del año. una bandera para decirnos si se tiene considerado el horario de verano, la zona de tiempo y el offset con la hora UTC. Entonces, en este caso vamos a usar la función STP STRP time con una cadena. Esta es una cadena de texto, eh, no es fecha todavía, aunque lo parezca. Y yo en esta función le indico formato tiene eso.
(15:07) Si se fijan aquí también es como yo le estoy poniendo es claro que no no haya ambigüedad, ¿no? El digamos este primer combinación de caráteres, el porcentaje y mayúscula, está indicando que esa cadena de texto tiene el año con la centuria incluida. Okay. Es 2025 o 1995, ¿no? Si yo pongo 95 nada más y ese es mi año, pondría una y minúscula. Eso ustedes lo pueden ver consultando la ayuda de la función strp time. Ahí vienen todos los códigos porque hay un montón de cosas que se pueden cambiar. Okay. Viene el guioncito, pues porque mi tabera de texto tiene guion.
(15:48) Si tuviera diagonal, le pongo diagonal y luego continúo con porcentaje m porque ese me da el mes o indica el mes con dos dígitos, ¿no? Lo mismo para el día. viene un espacio y luego porcentaje H, dos puntos, porcentaje M y porcentaje S, ¿no? En todos los casos con dos puntos separando. Y esto pues ya está indicando el formato completo de esto. Lo que me faltaría indicar pues es la zona de tiempo, ¿no? Yo aquí le puse UTC, eh, eso lo convierte y ya efectivamente, aunque se ve igualito que arriba, como yo lo escribí, ya es un tiempo, ¿no?,
(16:32) que puedo yo utilizar en diferentes cosas. En este caso, como decía, este esta clase, la clase POSX LT, es una lista de vectores y ahí si yo le utilizo la función un class, puedo ver cada uno de esos componentes, ¿no? Ahí no le ven ustedes cara de vectores porque solamente metí una fecha, pero pude haber metido 20, 50 fechas y tendría entonces todos los segundos por un lado, todos los minutos, etcétera, etcétera, ¿no?
(17:03) Aquí nada más una nota. A ver qué fecha pusimos. Es es la de hoy, ¿no? ¿Qué le notan a quién es en el mes? Pues dice nueve, no, dice 10. Bueno, eso es porque está indexado de 0 a 11 el mes en este formato. Y el año también está raro, ¿no? Y bueno, el año es porque está codificado como el número de años después de 1900. Okay. Entonces, nada más es para que eso lo lo sepan. Esta clase les permite extraer eh pues partes en particular.
(17:38) Por ejemplo, si yo escribo DT dólar on dice mes que ya vimos que no es septiembre, es octubre, ¿no? Pero está indexado de 0 a 11. Y así yo podría sacar diferentes componentes de esa fecha directamente con el típico signo de dólar que se utiliza en R para extraer información de vectores, ¿no? Entonces avanzo. En el caso de la función ASPOS XLT también la puedo utilizar para convertir lo anterior.
(18:18) De nuevo aquí pues el ejemplo que yo había puesto que dije que dice que se adapta nuestra eh configuración local pues sigue en UTC pues por la máquina donde lo estamos corriendo, ¿no? Pero si yo corrasto localmente en mi máquina, aquí me diría MST, que es la zona de tiempo en la que yo estoy. Por cierto, si tienen dudas de ver zonas de tiempo, pueden escribir aquí en la Ay, ya se congeló. escriben all names en la consola, les va a dar un listado con todas las zonas de tiempo están que son reconocidas, ¿no? Entonces ustedes podrían buscar aquella
(19:04) en la que ustedes están. Y por ejemplo, voy a voy a copiar la que me toca a mí, que es la de América Mazatlán, pero no la tengo que tecar aquí. Aquí está. la puedo copiar. Y en este caso, por ejemplo, no le podría poner aquí TZ America Mazatlan y lo cambia, ¿ven? Ya, ya no dice UTC, dice MST. Eso es bien importante, ¿no? Porque pues cuando trabajamos, por ejemplo, con datos de GPS, eh pues eso viene en hora UTC y si queremos saber las posiciones de lo que
(19:44) sea que hayamos medido, pero en la hora local del lugar tendríamos que hacer la conversión adecuada. Bien, la siguiente clase es la clase POS CT. Esta pues voy a usar directamente la función ASPOSic CT. El formato es el mismo que usé hace un momento. Vean, incluso no lo no lo estoy no le estoy explicando, digamos, como lo hice antes cuando usé la de STRP time porque pues no es ambiguo, ¿no? Afortunadamente en este ejemplito pues no hay ambigüedad,
(20:17) lo convierte sin problema. Y en este caso, cuando aplico la función on class, me da un numerote. Ese numerote es porque ese esa hora está codificada como el número de segundos transcurridos desde el primero de enero de 1970. Okay, de nuevo, espero que ahorita vean por qué es importante eso. Vean, eh, en este ejemplo, si estamos diciendo, a ver, ¿cuántos segundos han pasado al primero de febrero de 1970, siendo que el origen
(20:54) fue el primero de enero, okay, pues han transcurrido 31 días, 24 horas, 60 minutos y 60 segundos, ¿no? 2,678400 segundos han pasado. Okay. Y entonces en la función Asposic CT pues me da correctamente. Aquí ya mi ejemplo ya no me sirve porque como yo lo corrí en local, me hubiera dado eh el 31 de enero a las 5 de la tarde, algo así, justamente el offset que hay en mi zona de tiempo con la aura UTC.
(21:28) Y entonces la siguiente parte de mi ejemplo era que habría que ponerle TZ UTC, pues para que diera de manera correcta. Bueno, y aquí le sumé un segundito nada más para que eh me pusiera tiempo porque acá arriba no me puso hora, ¿no? Porque pues estaba iniciando a las 00 horas de del primero de febrero. Pero entonces si esto ustedes lo ponen local, el primer ejemplo les va a dar en la zona de tiempo en la que estén y va a haber esa ese offset, digamos, con con la hora
(22:05) UTC. Pero si ustedes especifican esa zona, listo, se soluciona. A ver, ahí, bueno, si me ayudan con las preguntas, compañeros, se los agradeceré para ya no están yo saliendo del Discord. Entonces, eh la diferencia entre estas dos clases es que la la que acabamos de ver ahorita, la es más conveniente para utilizarla en tablas, ¿no? Ese es el el formato más utilizado para utilizarlo en tablas.
(22:33) y el otro pues podemos extraer componentes individuales y es más fácil leer para nosotros, ¿no? No quiere decir que en la otra no podamos, ¿no? Pero esta pues es más para Héctor, te interrumpo tantito, hay una pregunta. Sí. Este pregunta Andrea que en el caso del ejercicio del tiempo inicia desde 1970, ¿podemos cambiar la fecha de inicio o en el caso de descargar datos, ¿cómo sabemos la fecha de inicio? Ah, pues ahorita yo creo que en el
(23:12) ejemplo que voy a ver a continuación se va a ver eso, pero ese es un estándar. Eh, normalmente esa se conoce como el Unix Time. A lo mejor Emilio conoce más la historia que yo, pero pues el primero de enero de 1970 es un pues es estándar, digamos, ¿no? No sé si Emilio quiera comentar algo. Es estándar, pero no diría que es completamente universal. Es muy común en computación y en en procesamiento de datos que se se utilice esa referencia.
(23:43) Em, pero pero como digo, no es universal. En Matlab es común que el origen es 1900, creo, ya no me acuerdo bien. E pero eh bueno, esa pregunta me parecía que tenía dos partes. Eh, y una es cómo se sabe el origen eh al descargar datos y eso más bien eh volviendo a lo que ha estado explicando Héctor, depende de en qué formato vienen los datos. Si los datos vienen el formato textual, eh literalmente dice en 1979
(24:18) eh rayó un 02, entonces no hay ningún problema. Eh el problema es cuando vienen, por ejemplo, estoy viendo si Héctor tiene aquí eh digamos en un eh número integral bien largo que significa segundo. Entonces ahí uno tiene que saber cuál es el origen de ese de de esa numeración. Y también ocurre cuando uno hace conversión. Eh, y la conversión usando las funciones que Héctor mencionó, eh, lo ponen en números de
(24:48) segundo. Eh, uno tiene que saber eh a cuál origen lo convirtió. Por ejemplo, lo que le pasó a Héctor que se sorprendió que estaba en UTC porque está acostumbrado a que su computadora estaría el uso horario local. E entonces ahí es cuando es importante saber que están haciendo las funciones y cuál origen eh usan. Muchas gracias, Emilio. Sí, gracias. Sí, esa segunda parte de la pregunta la la voy a explicar en este momento.
(25:13) Miren, vamos a trabajar con unos datos que también les puse ahí en el en el tutorial. Estos datos, si quieren saber ustedes más de ellos, pueden ver este enlace aquí que dice, pues son son datos de temperatura, ¿no? De de la plataforma. Copérnicus, eh y ustedes pueden entrar a los enlaces y ver qué otros qué otras variables hay ahí disponibles y conocer más de este producto, ¿no? Este fue un una selección que hice yo para una parte de México.
(25:48) Este son datos de esta zona del Golfo California de temperatura diaria desde el primero de enero del 2019 al 31 de diciembre de 2020. O sea, yo seleccioné el área, seleccioné las fechas, inclusive un par de profundidades ahí, ¿no? Para bajar ese archivo Net CDF que ya usaron con Jeray, me parece, en los días pasados. Entonces, pues miren, si nosotros abrimos ese archivo net CDF directamente, esta línea, bueno, este este bloquecito
(26:21) de código, podemos encontrar que por ahí está guardado el tiempo, ¿no? Es lo que decía Emilio, justamente esos son los unos números ahí inmensos, solamente estoy mostrando uno, ¿no? La función head aquí me muestra solamente los primeros valores que están guardados ahí. Y eso evidentemente pues no nos sirve de mucho si no conocemos todo lo que platiqué yo hace un momento.
(26:42) Entonces tendríamos que eh digamos inspeccionar un poco el objeto. Miren, aquí en la consola voy a escribir yo NSF, que es el nombre que le puse, ¿no? Con la función NC Open. Yo abrí el archivo Net CDF de Copernicus, que es este su nombre, y con NSF puedo ver todo lo que trae ahí, ¿verdad? Si me pongo por ahí a buscarle, me voy a dar cuenta en algún momento que dice time, ¿no? Dice tamaño 731 y unidades segundos desde 1900, desde el primero de enero de 1970.
(27:21) Entonces, eso ya me permite a mí hacer la conversión adecuada, ¿verdad? Eso creo que ya responde la pregunta de la compañera. Vean acá en en la siguiente línea le digo, "Ver, conviértemelo a POS". No, ¿qué vas a convertirme a POSIX? Pues lo que guardé, o sea, todas las fechas que están guardadas ahí con zona de tiempo UTC en formato año, mes, día. Aquí no estoy poniéndole fecha, perdón, no le estoy poniendo ahora porque no tiene caso, no son son datos diarios, no tengo más que un dato cada día, entonces no necesito ponerle una hora.
(27:53) Y el origen pues ya se lo di, ¿no? El el que el que me dijo este esta información acá en el propio archivo, ¿no? Entonces la conversión pues ya me los da como yo los necesito, ¿no? En formato de tiempo y ya entendible para mí. ¿De acuerdo? Entonces, por eso es importante, ¿no? El el conocer los diferentes objetos en R que pueden manipular esta información y cómo pasar de una a otra.
(28:25) ¿Okay? Esto, bueno, pues puede parecer aquí un poco complejo, pero pues hay diferentes formas, ¿no? De cada quien mata pulgas a su manera, como dicen, ¿no? Entonces, yo tengo por ahí un paquetito en el que ya todo eso está codificado. Aquí les dejé las instrucciones para instalarlo si es que no lo tienen. Bueno, localmente aquí lo tenemos ya instalado en en el en el Jupiter Hub. Entonces, este paquete con leer el archivo directamente con una sola función me va a decir ya todo lo que necesito.
(29:03) Aquí voy a preguntarle a ver ya lo que importaste qué clase tiene pues la clase se llama satín igual que el paquete, ¿no? Y para ver el contenido, voy a poner acá en la consola. Me gusta más cómo se ve ahí. Me dice qué fue lo que importé, ¿no? El título dice se llama teta o así venía en el archivo. Eh, el nombre largo de eso es temperatura. Otra vez viene un nombre, nombre corto, teta o las unidades son grados centrados.
(29:33) El rango temporal es diario con una resolución espacial 9.2 kilómetros y las dimensiones de los datos, ¿no? 61 60 71 y 2. Bueno, la primera se refiere a cuántos valores de longitud tengo. Y allí abajito tengo el mínimo y máximo de longitud. 60 sería el número de latitudes, ¿no? 22 a 27 gr de latitud norte. Y luego tengo el nombre el digamos lo el mínimo y máximo de mi variable, ¿no? De 13.7. 7 a 32.8 y luego el mínimo y máximo del periodo. Ajá. Hola, amor mío.
(30:15) ¿Alguien tiene su micrófono abierto? Lo siento, mi amor bello. Entiendo lo que usted sintió ayer y y he actuado mal en mi vida. Si lo pueden mutear, por favor, para no entrarnos de cosas personales. Creo que ya, ¿verdad? Bueno, gracias, A. Bueno, entonces ahí este el periodo pues me dicen, ¿no? El primer día que tengo en los datos y el último, ¿no? Recuerden ahí son 731 días, son 2 años de datos y además lo tengo a dos profundidades, ¿no? A 0.
(30:42) 49 y 1.5 m. Eso yo lo sé porque por las dimensiones de acá, ¿okay? son dos valores nada más, por eso el mínimo y el máximo pues me está diciendo los dos que tengo. Entonces, bueno, lo lo pueden ver también aquí con la con esta, eh, nada más que me lo parten dos y no no me gusta cómo se ve, pero bueno, es lo mismo. Ahora, eh, ya eso ya lo mencioné aquí. Si si le por ejemplo si yo quiero inspeccionar partes de esto de de mi objeto que acabo
(31:22) de importar t o pongo @ escribo long me da todos los valores de longitud que tengo, las latitudes y de esa misma forma me puedo enterar que ahí mismo están los periodos, ¿no?, que yo tengo guardados. Y en estos en general siempre me pone eh un una fecha inicial y una fecha final. Los datos satelitales así normalmente vienen y en este caso, aunque son diarios, pues lo lo dejo por consistencia, pero el inicio y el final es el mismo, ¿no? Recuerden, son datos
(31:58) diarios, entonces no tiene mucho mucho problema eso. Aquí, bueno, pues en la instrucción que yo escribí solamente era para poner el principio, digamos, el encabez o los primeros valores del tiempo de inicio, el time start y los primeros del final, perdón, los últimos de de ese mismo periodo inicial. ¿Okay? Y estos datos pues ya los puedo yo poner en un en un con la función plot.
(32:22) Hago rápidamente un mapita, ¿verdad? En este caso, como no indiqué nada, me está poniendo el primer día de los datos. Lo puedo graficar los demás días, ¿no? Pero bueno, como aquí nos interesa más el tiempo que las imágenes, me voy a continuar con el siguiente ejemplo, que es, a ver, yo voy a tomar un punto eh marcado aquí en el 110 gr de longitud oeste y 26 gr de latitud norte. Y con esta función voy a extraer todos los valores que están en ese punto.
(32:57) ¿Okay? Entonces, miren, aquí hacemos la extracción y me dice que lo que me resultó es un objeto que tiene un renglón y 1468 columnas. Eso es porque eh recuerden que tenemos dos niveles de profundidad. Entonces, si tengo 731 días multiplicado por 2 me da 1462. Y esos seis que me faltan para completar el número de columnas que dice acá es porque en eso que me extrajo ahí tiene una primera columna con el pues un ID, ¿no? El o sea el punto uno que yo le pedí.
(33:37) Después vienen las coordenadas que yo le pedí que me diera información ahí. Luego viene este que dice D, que ahorita les digo qué es. Y luego viene long y lat. Bueno, long y sería el píxel, las coordenadas del píxel que tiene datos más cercano a donde yo le pedí, ¿de acuerdo? Y la D sería la distancia en kilómetros entre donde yo le pedí el dato y donde había dato. Esto simplemente es una especie de control de calidad para que no sea que yo le pida un punto y me está dando un dato ahí lejano, ¿no? Eso
(34:15) porque yo también puedo hacer clic en el mapa de manera interactiva para decirle este punto, este punto, este punto y ahí sí habría alguna variación de donde yo hice clic y donde hay dato. Y bueno, pues ya después vendrían todos los los valores para todos los días. Eh, para ponerlo, digamos, en una forma más amigable, pues aquí también les puse una función que me hace una especie como que voltea la tabla, la tabla de datos para que me quede más amigable.
(34:41) Miren, yo tengo ya por aquí Héctor, una una de las preguntas. Eh, preguntan por aquí Julio Prado López, ¿puede variar esta conversión de tiempo si es en hora, en días o en meses? Si puede variar. Es que por eso es importante ver el archivo Net CDF, como yo expliqué en este caso, en este en este en particular me está dando esta información, ¿no? Pero no todos vienen igual, ¿no? Aquí me está diciendo lo que tienes ahí
(35:26) son segundos y eso ya me da la pauta de cómo lo voy a convertir, pero es importante. Aunque el archivo Netcdf es, digamos, un formato estándar, no significa que todas las fuentes de datos estén organizadas igual o las variables se llamen igual. Entonces, eh en el caso del paquete Satin, pues tiene, digamos, ya funciones para leer archivos de Copérnicus, para leer archivos de de lotion color de de la NASA.
(35:59) tiene también eh funciones para leer los GHRST que vieron creo que ayer o este con con milagro. Eh, y bueno, pues cada uno de esos define define el formato, ¿no? Entonces sí es importante conocerlo para poderlo convertir de manera adecuada. No sé si contesté la pregunta. Espero que sí. Entonces, bueno, eh decía yo, la función que puse aquí simplemente me convierte, ¿no?, y me pone ya, digamos, en un formato más leíble de tabla con los di la fecha por un lado y en log 1, pues
(36:37) fue la localidad uno, digamos, el punto donde yo le pedí que me diera los valores de temperatura. Y fíjese aquí como en esta parte de lo que de lo que la función formal me devuelve, le digo, solamente dame del renglón 1 al renglón 731. Porque los que seguirían son los de la siguiente profundidad, que en este momento para el ejemplo no me interesan, ¿no? ¿Por qué 731? Porque ya vimos antes que tenemos en los datos 731, ¿de acuerdo?
(37:11) Y bueno, pues ya con estos datos yo puedo hacer un gráfico y aquí la importancia eh de que realmente el lo que ustedes tienen ahí sea una fecha que R reconoce como una fecha, ¿no? Porque eso ya en el plot directamente me permite o permite que el R ponga que qué cuál es el primer día, digamos, ¿no? tiene aquí la costumbre de ponerlos de tal manera que las etiquetas no se encimen, ¿no? Entonces va a poner el espaciamiento
(37:44) tratando de que no haya ese encimamiento de etiquetas, ¿no? Pero ustedes pueden manipular todo eso. Entonces, bueno, aquí tenemos eh 2 años de datos diarios de temperatura en ese píxel que yo seleccioné, ¿de acuerdo? Esto pues igual para alinearme un poquito con lo que hizo Jeray el creo que fue el primer día eh podemos suavizar, ¿no? Est esta información. En el caso de R, a diferencia de del código de Python que vimos ese día, hay un paquete que se
(38:20) llama smooth, que tiene funciones para promedios móviles, media móvil, que eh no produce valores ausentes y y eso es lo que a mí en particular me gusta mucho de R, ¿no? Que podemos consultar la ayuda de una función. Espero que ya sepan todos cómo. Y esa función normalmente, aparte de la explicación con ecuaciones y todo, nos va a poner referencias, ¿no? Entonces, este es un método publicado que explica
(38:55) por qué en este en esta implementación de los promedios móviles no se producen valores faltantes. ¿Recuerdan con Jeray? Había unos datos al inicio y unos al final que se perdían y entre más grande fuera el orden que él le pedía, más datos se perdían. Aquí no, porque aquí tiene un proceso de una especie de retrocálculo, digamos, ¿no? Que a partir de la serie calcula los valores hacia atrás y hacia adelante.
(39:15) Entonces, bueno, aquí si ustedes quieren jugar un poquito con esto, pues pueden cambiar el orden con el 10, por ejemplo, y ese sería un promedio móvil cada 10 días, ¿no? O lo ponen, no sé, cada dos meses y esa serie se va se va a actualizar. Okay. Y bueno, pues vamos a continuar. Este, siguiendo un poquito con esto de las fechas, miren, yo decía que en el caso de la clase postel era más fácil para extraer componentes particulares, pero hay otro paquete que se llama lubridate,
(39:57) que me permite manipular justamente este tipo de de clases de datos e que tiene implementadas funciones, por ejemplo, hasta que dice Mont que extrae, ¿no?, del objeto post XCT directamente el mes. Aquí ya directo, eh, ya no no de 0 a 11 como antes, es directo 1 2 3 et hasta el 12. Y el año pues también como tal, ¿no? Sin necesitar ahí de de recordar que por ejemplo en el POSXLT es desde 1900, aquí es directo.
(40:25) Entonces, en la misma tablita que yo tenía antes, donde estaba la fecha y los valores en en el punto que le pedí, ahora tengo este promedio móvil. Ajá. Luego el mes y el año. Y con esta información yo puedo hacer diferentes eh agregaciones, digamos, ¿no? En este caso uso la función agregate, ¿no? Y le digo, "A ver, dame para los datos de temperatura que están en log 1, agrégamelos por mes y por año y lo que quiero que me calcules es la media.
(41:04) " Entonces, yo tendría aquí mis valores ya promedio, ¿no? Aquí veo los primeros 10 meses, ¿no? Del 2019, pero en la siguiente pestañita pues ya siguen los de 2020, ¿okay? Y ya tendría todos mis mis datos ahí un promedio mensual. Recuerden, son datos diarios, ¿no? Y entonces esto también lo puedo usar. Aquí estoy, miren, estoy generando yo un nuevo objeto como fecha usando la función que les presenté primero, la de asdate, pegando la columna año, la columna mes y le puse un 15 simplemente para poner
(41:46) cada dato el día 15 de cada mes, ¿verdad? Pero ustedes podría poner ahí el día uno o qué sé yo, el que ustedes quisieran, ¿no? Y ya tengo ahora mi gráfico con un valor por mes, ¿no? Un valor diario como en el caso anterior. ¿De acuerdo? Vamos continuar acá con el código. Eh, si alguien dice, "No, pues es que a ver, yo no veo, pues ya sé que aquí es el primero, es enero de 2019, pero tengo que contar porque pues no sé cuál es marzo o así, ¿no? Entonces,
(42:26) bueno, podrían ustedes cambiar un poco esas etiquetas, ¿no? Vean, lo voy a hacer yo aquí con este código de acá. Pongo primero la figura y les explico. Entonces, primero veo a ver cuál es el rango del mes, ¿no? El rango pues me va a decir cuál es el valor mínimo. Ver mejor acá en la consola me dice el primer día y el último día de los datos, ¿no? Entonces yo voy a usar la función sec, ¿verdad? Para construir
(43:02) una secuencia. del primero al último mes. Recuerden, aquí mis etiquetas van cada día 15 porque así se lo pedí, ¿verdad? Luego utilizo la función plot de manera normal, toda esta parte de acá en la que pues aquí al vuelo, digamos, estoy generando en X una nueva fecha. bien ya no tendría caso porque ya la hice arriba. Ver si ya la tengo arriba como codificada como mes, pues la voy a cambiar, voy a poner aquí en mes.
(43:37) No debe modificarse el resultado, es lo mismo. A ver, borro. Sí, para simplificar código le voy a poner aquí mes directamente porque es un vector que hice antes. Acá está arriba, ¿eh? Aquí lo hice arriba, ¿verdad? Si ya lo tengo, lo puedo utilizar abajo, no necesito volverlo a definir, ¿no? Ahora este que fue mi promedio mensual y en este momento aquí yo utilizo esto para suprimir el eje X, ¿no? El X a Xt me suprime el eje X porque lo voy a
(44:12) hacer a continuación. Eh, esta función de aquí, Axis dates, me permite entonces dibujar un nuevo eje en el lado uno de la gráfica, que es el lado de abajo, ¿verdad? En dónde quiero que me ponga etiquetas en el mes. ¿Qué etiquetas quiero que me ponga? Pues estas que hice acá arriba, que son, le puse x mes, ¿verdad? A ver, x mes es eso. Pero fíjense, aquí estoy utilizando esta función que dice format.
(44:40) y le digo, "A ver, solamente quiero de esas etiquetas." A ver, son etiquetas, pero pero son fechas, ¿okay? Están en formato de fecha. Entonces, el format me extrae solamente el mes con el nombre abreviado del mes en inglés también, porque el local de esta computadora está en inglés, ¿verdad? Y entonces eso es lo que me va a permitir poner las etiquetitas acá abajo. Aquí nada más no están todas porque el espacio que tiene el R para desplegar esta gráfica haría que se vieran encimadas. Okay.
(45:22) Entonces, por eso no las pone todas. Pero si ustedes esta gráfica la están haciendo en su en su máquina y le dan más espacio en el eje X, sí les pondría todas las etiquetas. Okay. Y miren, y abajo le estoy diciendo, bueno, quiero que en el mes 1 y en el 13, o sea, en enero del 19 y enero del 2020, me pongas las etiquetas 2019 y 2020. dice línea dos porque lo quiero separadito para que no me lo encime en en de January y pues ya está, ¿no? Ya
(45:59) tengo digamos un eje personalizado, pero todo esto es gracias a que ese tiempo está codificado de manera correcta, ¿no? En objeto. Okay. No, pues continúo acá. Eh, podría yo, por ejemplo, con lo con esas extracciones de de diferentes componentes de la fecha que ya hice, eh, hacer resúmenes y, por ejemplo, calcular el promedio mensual sin importar de qué año es, ¿no? O sea, promediame todos los valores de enero, no importa si es 19 o si es 20 y así con
(46:38) los demás o los promedios anuales, ¿no? sumamente sencillo hacer todo este tipo de cálculos, ¿no? Y ahora otra cosa que me gustaría ya para culminar esta esta parte del tutorial es eh presentarles, digamos eh una manipulación del objeto que importamos antes, que es todo el mapa, digamos, no solamente un píxel, que es lo que venimos haciendo ahorita, ¿no? Si yo quisiera, por ejemplo, ver las temperaturas en cada año, le puedo decir con esta función que se llama satín min,
(47:13) que de todo el objeto, recuerden que teta o voy a volverlo a poner acá, es el que contiene todo lo que yo importé, ¿no? Tenemos eh eh los 731 días de datos y dos profundidades. En esta satin min, si yo no le indico qué profundidad quiero que me que promedie, lo va a hacer con la primera, ¿no? Que es la que me interesa. Pero si no podría decirle yo acá pues dept, ¿no? Si tuviera más, pues le indico cuál. ¿De acuerdo? En ese caso lo dejo así.
(47:48) Entonces, aquí me va a hacer ese promedio. Déjenme volver a mostrarles esto que es el original y el que acabo de promediar ahorita es este. Vean cómo cambian las dimensiones, ¿no? Ahora, obviamente siguen siendo 61* 60, que son las longitudes y latitudes, pero en la siguiente solamente tiene dos. ¿Por qué dos? Bueno, pues porque tengo el promedio de 2019 y tengo el promedio de 2020, ¿okay? O sea, los 365 días de cada
(48:27) año ya se promedieron ahí, ¿verdad? Y eso pues ya me permitiría hacer entonces la figura primero para que va aquí pueden ver el el etiquetado automático que pone, ¿no? Del primero de enero del 19 al 31 de diciembre del 19 y la otra para el siguiente año. Entonces, eso lo hace la función satin min porque pueden manejar el mismo tipo de digamos de de etiquetas o de indicadores de que si es el año o que si es el mes, que vimos hace un momento, ¿no?, cuando empezamos a definir eso,
(49:07) ¿verdad? Por ejemplo, para continuar con esto y quede un poquito más claro, si yo utilizo en en satin min le pongo porcentaje m, ¿qué me va a hacer? pues me va a hacer los promedios mensuales, ¿no? Entonces, en este primero, el promedio, promedio, vean las dimensiones, tiene 61* 60 por 12, es decir, cada una de esas 12 es enero, febrero, marzo, etcétera, hacia hasta diciembre.
(49:44) O sea, los todos los días de cada mes, no importa de qué año se promediaron. Para hacer anomalías normalmente yo necesito una línea base como de 30 años. No podía yo subir un archivo que tuviera 30 años para mostrarles un mejor ejemplo, porque tenemos ciertas limitaciones o complicaciones para hacer eso. Entonces, por eso es que estoy trabajando en un área tan pequeñita y solamente 2 años, ¿no? De datos diarios. Pero bueno, es lo que acabamos de hacer aquí.
(50:09) Y en este otro, si yo le pongo en en el by porcentaje y gu porcentaje m, ¿cuántos me daría? ¿Cuántos creen que sean? Es lo malo que no podamos ser interactivos. Si alguien quiere decir algo, a ver, nadie, nadie adivina. pues 24, ¿no? Porque aquí sí le estoy aquí está separando, ¿no? Los meses que son de 2019 y los meses que son de 2020, ¿no? Entonces tengo los 12 de cada uno de ellos. Por eso las dimensiones son 61 * 60 por 24. Y entonces las anomalías pues se utilizan.
(50:57) Bueno, a ver, quiero las anomalías mensuales con respecto a mi año promedio. Recuerden, ese año promedio ahorita está medio pues no es no es lo mejor porque solamente tengo dos años, no no se va a notar mucho, pero bueno, pues lo hace y podría yo también con las funciones plot pues poner mis anomalías, ¿no? Esta esta es la de aquí en periodo, pues es mi anomalía para enero, ¿verdad?, de 2019.
(51:28) Y yo puedo además decirle pues a un mapa, ¿no? Más bonito que el que el que por defecto pone acá este, pero eso tendrías es ya más lo espacial, ¿no? Que que Marina va a ver con ustedes después. y puedo cambiar los colores del del borde del mapa, el relleno del mapa, los límites de de Z, digamos, de la variable, eh y este los colores que estoy manejando, yo puedo especificarle directamente aquí o bien pasarle una paleta de colores de otros paquetes en
(52:07) R, ¿no? Que pueden este ayudarme a desplegar esa información de manera más clara, ¿no? Entonces, bueno, ahí tendría mis mis este eh mis anomalías para enero y las de agosto, por ejemplo, ¿no? Entonces, bueno, todo esto es gracias a a que conocemos los formatos eh de fecha y hora que existen en R y que podemos este utilizar para esto, ¿no? Pues no sé si haya alguna pregunta. No hay ninguna, no hay ninguna pregunta, pero a lo mejor alguien tiene alguna más.
(52:44) ¿Podéis animaros a preguntar? Hola, Héctor. ¿Qué tal? Buen día. ¿Me escuchas? Sí, sí, adelante. Oye, todo muy claro, te felicito. Muchas gracias. Solo me distraje en el momento de las dimensiones. 60 6160 es la longitud y latitud. ¿Por qué varía de 61 a 60? ¿Por qué no son iguales? Ah, pues porque cuando yo extraje estos datos fue lo que le pedí, ¿no? O sea, yo le dije, "A ver, dame de los 100 - 112 de longitudo oeste a los -107 y resultó que pues ahí me dio me dio 61
(53:23) latitudes diferentes." Okay. Yo puedo sacar un una área de la del tamaño que yo quiera, ¿no? Usualmente lo saco así cuadraditos, digamos, ¿no? Claro, claro, esa era mi duda. Muchas gracias. De nada. ¿Alguien más? ¿Alguna otra duda? En principio, este código ustedes pueden descargarlo en su máquina, ya sea que lo clonen o no, simple bajan el RMD del GitHub y lo pueden este ejecutar en su máquina localmente instalando los paquetes que no tengan.
(53:54) A ver, Juan Carlos tiene la mano levantada. Juan Carlos Saeda, adelante. Hola, Héctor. Gracias por por tu tutorial, muy muy ilustrativo. Solo tengo una consulta con los plot. Cuando realizas estas anomalías, hay una tabla que es dimap. Esa esa se tiene que generar aparte. Una tabla, ¿cuál? Perdón. En el mapa. El mapa. Sí, claro. Sí. Okay. Sí. Bueno, en el caso del del paquete, pues como trae varios ejemplos, pues yo incluí también pues un mapa, ¿no? Está como como dato, digamos, ¿no?
(54:37) Es un es un objeto que es el mapa del noroeste de México. Eh, no, mi tutorial no es de la parte espacial, pero bueno, estos este mapa está extraído de esta base de datos que es la G S HHG. No, aquí está el enlace en la ayuda que estoy mostrando en este momento. Ustedes pueden descargar esos datos y pues también eh importarlos, ¿no?, para las zonas que les interesen. Yo aquí lo extraje pues que me guste ejemplificar, que es la que me me toca, me queda aquí cerquita, ¿no? Pero bueno, podríamos
(55:15) después incluirles un tutorial de cómo cómo manipular esta esta base de datos para hacer sus propios mapas. Muchas gracias. A ver, ¿hay alguna pregunta en el en el Discord, en el chat? Jonathan Herrera dice, "Yo lo ejecuté descargando en mi máquina." Muy bueno. ¿Puedes hacer el proceso de clonación? Sí, claro, se puede clonar el repositorio también. Vamos, en principio no hay nada que actualizarle, pero si sea actualizar, pues sí, este pueden ustedes estar
(55:52) descargando ahí, clonando el repositorio sin problema. Y hay otra persona que dice, "Buenas, para correr el script en nuestra PC, necesitamos un archivo en formato en sí, NFC." en el repositorio. Miren, aquí en el en el en el repositorio, eh, me voy a poner aquí en en la raíz, digamos, ¿no? Está la carpeta que dice datos y ahí está el archivo netd. Entonces, si lo clonan es más fácil, ¿no? Para que puedan correr el ejemplo completo.
(56:33) Y a quien le interese, como les decía en el yo les puse aquí al inicio del tutorial el enlace desde donde descargué los datos, ¿no? Este, estás aquí, ¿no? Pueden ir ahí a la página de de Copérnicus, ver los datos. Ahí que pueden descargar, no sé, quieren datos diarios, mensuales, este, bueno, hay que hacer login. Este no es que crear una cuenta, eh, entran y ya, ¿no? Ahí, miren, en esta en esta base son las variables que tienen, ¿no? Podrían, por ejemplo,
(57:18) salinidad, qué sé yo, ¿no? Este, ¿dónde está potencial? y ya le dicen qué área les interesa, ¿no? ¿Qué sé yo, 40 este 120, ¿ven? Y ahí lo van haciendo ya. ¿Qué fechas quieren? También indican, ¿no? Ahí les va a decir desde dónde están en particular esta base y las profundidades, ¿no? Todo lo que lo que ustedes quieran ahí lo pueden sacar. Nada más ojo porque está limitado el tamaño de la del objeto que pueden descargar de aquí.
(57:50) No, no, no vayan a querer estar todo el mundo este el 93, todas las profundidades y diarios. No, no, no se va a poder. ¿Algo más? Gracias. Jonathan Herrera preguntaba si podrías enseñarles a clonarlo ahora. A clonarlo ahora. Y sí, sí puedo. Mira, la manera más fácil. Y mira, bueno, sí, dime. No, nada, nada, que antes de cambiar de tema de Copéricus, comentaba Julio Prado que que Copernicus cuenta con API para para Python. Pues sí, quieren ser Python, pueden hacerlo con Python. Claro.
(58:46) Este, bueno, a ver, aquí estoy mostrando mi R, mi R estudio en mi máquina. Eh, no, esta no es la del la de el Jupiter Hub. Entonces, voy a voy a venir acá. Déjenme ver dónde lo tengo. Bueno, voy a hacerme una carpeta aquí en mi disco. Acá está proyectos. Miren, aquí en en mi disco local tengo una carpeta que ahorita estoy llamándole OHWE 2025, ¿no? Ok en español 2025 está vacía, ¿no? No hay nada en la carpeta. Okay.
(59:45) Entonces vengo a mi Studio y le voy a decir file new project. y me va a preguntar, ¿crear un proyecto desde un directorio nuevo, uno existente o con control de versión? Bueno, voy a decir con control de versión. ¿Qué control de versión? Ah, pues quiero el kits, ¿no? Okay. ¿Cuál es el repositorio? Ah, bueno, no me lo sé. tengo que venir a buscarlo. Entonces voy aquí a a la que les estaba mostrando hace un momento. Recuerden, estamos 8 de octubre, datos temporales en R.
(1:00:33) Este, aquí viene el copy pad. Denme un segundito. No, no, no, no. Perdón, perdón, perdón, perdón. Me voy a ir más arriba. Me voy a ir hasta talleres intermedios, eh, porque lo que voy a hacer es clonar todo el repositorio. Okay. Entonces, estoy aquí en en el en el gitwog, pero desde arriba, desde talleres intermedios. Okay. Entonces, aquí donde dice code, el botón verde, yo copio el enlace. Okay. Copio ese enlace, me regreso a mi R Studio y lo pego ahí.
(1:01:18) Okay. Y entonces me preguntan, ¿dónde lo vas a poner? Ah, pues mira, lo quiero poner en esta carpeta que dije proyecto Shawig, ¿no? Y entonces normalmente tiene que ser automático. No sé por qué no me lo puso. Que me debe poner el mismo Ah, ya lo puse. Ya, ahí está. Ya no me pone el mismo nombre de acá. Okay. Y entonces ahí le digo crear proyectos y ya lo está clonando y está jalando todo todo todos los tutoriales.
(1:01:49) Eh, ya está bajando nada más el mío y listo, ¿no? Aquí este ya si me voy a files ya me aparecen ahí. Voy 8 de octubre, datos temporales y tengo el archivo RD listo y directo para poderlo correr. No, les voy a mostrar mi carpeta nuevamente, la que les mostré vacía hace un momento. Ya tiene la que se llama talleres intermedios y ahí está todo, ¿no? Todo, todo, todo, incluido lo mío, eh, no nada más este, no nada más ese, sino todos los super.
(1:02:29) Listo. ¿Algo más? No hay más preguntas. Sí, mira, decían, había alguien que preguntaba, "¿Se puede trabajar desde la nube si la cantidad de datos que necesito es muy para necesito procesar es muy grande?" Sí, pues de poder sí se puede, pero miren, el al menos el paquete que yo les mostré hoy, el el satín está pensado para cuando tenemos los datos ya descargados en la compu, sobre todo porque a veces trabajamos en lugares donde la conexión
(1:03:08) eh a a internet no es muy buena, ¿no? Y si queremos, por ejemplo, imagínese si tuviera datos diarios de 30 años y quiero procesarlos, si los quiero bajar de la de o trabajar desde internet, pues va a ser un relajo. Entonces yo normalmente los descargo y los tengo de máquina y así es como lo trabajo. El paquete está pensado para eso, pero sí pues hay otras formas de hacerlo, no es la única. ¿Algo más? Y Micaela Georgini dice si se va
(1:03:55) actualizando todo solo si ustedes modifican el script. No, no, este, a ver, yo puedo ahorita solamente para efectos del ejemplo cambiar algo, ¿no? Por ejemplo, decir, no, pues ya no me gustó esta imagen porque no sé y pues la digamos lo proceso de nuevo para que genere el RMD, que es el que se puede ver ahí. Bueno, lo va a abrir en el navegador el RMD, pero no, eso no me importa.
(1:04:27) Ahorita me regreso a mi R Studio y como está mi máquina configurada aquí, me muestra dónde hubo cambios, ¿no? Estos cambios yo los puedo este marcar. Voy a hacer aquí un pull primero. Dice que está sincronizado con lo que hay en el GitHub. Te voy a decir commits, ¿no? Entonces este le doy commit close push. Ahí esos cambios que yo acabo de hacer en este momento se acaban de ir al repositorio. Okay, yo lo puedo verificar. Vengo para acá. 8 de octubre.
(1:05:18) Miren, ya dice aquí las commit message actualización, ¿no? Datos temporales en R. Si abro el RMD, ya no está mi imagen tan bonita que tenía yo ahí de Winipu, ¿verdad? Entonces, para que ustedes ese cambio lo tengan en su máquina, tienen que volver a a no a clonarlo, porque si su R estudio quedó configurado como el mío, debería aparecerles esta pestaña de gites ahí verían ese cambio y entonces nada más hacen un pull y ya. Okay. A mí aquí pues no puedo mostrárselos porque yo hice el cambio.
(1:06:04) Si puedo regresar mi imagen. Ahí está para que no se quede sin ello. Listo. ¿Alguna más? No, no hay ninguna más. No hay ninguna pregunta más en el Discord. Bueno, pues este muchas gracias, gracias Marina por estar muy pendiente de eso. Este pues ya te tocaría a ti. Adelante. Muy bien. Bueno, muchas gracias a a todo el mundo, muchas gracias a Héctor por la presentación sobre datos temporales y bueno, a ver, yo quería ahora hablaros sobre datos en el fondo, Héctor hablado de datos temporales, pero también
(1:06:47) hablaba de datos espaciales y incorporaba una parte importante geoespacial de latitud, longitud, donde se localizan los datos. Pero, pero bueno, a ver, compartir. A ver, a ver pantalla. A ver, a ver, estoy tratando de compartir pantalla, pero no me deja. A ver, un momento, tengo que ir a seguridad. A ver, que no me está dejando compartir pantalla. Se está compartiendo ya. No, aún no podemos ver tu pantalla, Marina.
(1:08:08) Pues no sé por qué. A ver. En teoría yo le digo que me lo que lo permita. Marina, podríamos intentar con dos opciones. Bueno, eh en la barra superior de de herramientas de tips, puedes irte a la pestaña de compartir y tienes la opción de una eh archivo específico o pantalla. agradeceremos puedas intentar con la opción de pantalla para ver tu pantalla completa. Sí, ahí eso estoy haciendo en compartir pantalla,
(1:09:12) pero no va. Eh, hola, buenos días. Tendrías que revisar si Marina se encuentra como organizadora o moderadora para poder compartir, porque nosotros que estamos acá como invitados no tenemos el permiso. Gracias. Sí, Marina, tú estás como moderadora. No lo supongo que sí. Yo yo sí, yo me inscribí como moderadora, no está permitiendo compartir. ¿Estás en Firefox, no, Marina? Sí, estoy.
(1:09:52) ¿Has instalado yo también ahora, pero a mí parece que si me deja? Yo le doy a Bueno, me lo ha instalado en inglés. Share. Arriba. selecciono en un desplegable eh pantalla completa y a la Yo creo que ahora deberíais estar viendo mi pantalla, ¿no? Sí, a mí se me deja. Sí, podemos ver pantalla, María. Pues yo le digo compartir, seleccionar pantalla y no hace nada. Te sale un desplegable o es otra versión igual.
(1:10:28) Sí, sale permitir Teams ver su pantalla, pantalla uno, que es donde estáis todos y sale a toda la pantalla o en vez de por pantallas todo. A veces a mí me da otras opciones diferentes. No me da la opción, eh, solo me deja como por ventanas individuales o la pantalla uno. ¿Me permite la pantalla uno o la pantalla dos? Porque tengo dos pantallas y no no se está no la veis, no veis ninguna de mis pantallas. Alguno podemos ver. A mí me sale o pantalla, o sea, si sus pantallas o si no en ti screen me dice
(1:11:13) que con esa sí que me deja. A ver, es la última de abajo. A ver, estoy buscando a ver si es que tengo algún permiso que no está activado. A ver, a ver. Sí, comenta que si salga y vuelves a entrar. Normal estas estas cosas. Venga, pues salgo y vuelvo a entrar.
(1:12:25) Venga, voy a salir. Per, es que antes me logr me ha costado entrar, ¿eh? Voy a ver si lo consigo. La verdad es que David est dando más problemas hoy porque a mí otros días he entrado sin problemas en Chrome y hoy lo veía, pero no veía la pantalla de Héctor. No sé, la veía cuando has compartido al principio la prueba y sin embargo después no. Pero bueno, a ver si ahora lo consigue. Si no, no sé si funcionaría que tú compartas tu pantalla, Héctor con su script y ella vaya hablando de ello.
(1:13:00) No sé, sería un poco leoso igual, ¿no? Pues si quieren lo encantamos así. A ver si lo consiguen. Marina, ¿nos escuchas? Sí. A ver un momento que me indica que vaya seguridad y privacidad, pero yo no encuentro seguridad y privacidad de Qué raro, porque yo no lo acabo de instalar y no he tenido que hacer nada. A ver, un momento. No puede ser que donde está el el el en
(1:14:14) el navegador donde escribes la página en donde te quieres conectar, del lado izquierdo hay un candadito y hay un micro y cosas así. Si le picas ahí a lo mejor para los permisos, ¿no? A ver, si a mí me aparecen ahí como los permisos de de la del micrófono y de la cámara. Sí, pero solo solo del micrófono y de la cámara y del audio, los altavoces. No, no me sale nada más.
(1:14:47) Y el candadito, como dice Areli, a la izquierda, justo a la izquierda de eso, hay un candado. No tengo ningún candado. Yo puesto donde sale la cámara y el lo del micrófono. A la izquierda hay un No, que no comentábamos que Héctor comparta su pantalla y tú vas siguiéndolo sobre eso. No sé si es un poco complicado así, pero sí, sí, seas. Sí, sí, vamos a hacerlo así porque si no vamos a tardar mucho tiempo. Sí, por no estar aquí esperando. Vale, pues sí, lo hacemos así. Qué faena. Okay.
(1:15:23) No solucionar, pero bueno, sí lo hacemos así. A ver, pues yo iba a presentar, bueno, hay dos maneras de trabajar con datos eh con datos espaciales. Se puede hacer mediante sistemas de información geográfica, SIG, que que lo conoceréis y y no te aparecerá otro más, Héctor, otra. Si vuelves a entrar en la en el en los talleres intermedios porque he subido una nueva carpeta. Ah, okay. Entonces voy a clonarlo de nuevo. Sí, yo otra vez no veo la pantalla de Héctor. No sé qué pasa hoy, pero Y estoy en el Firefox.
(1:16:25) No se actualizó. ¿Sabes qué? Me di cuenta que lo voy a borrar de aquí. Es este, ¿no? El que estamos ver. No, no quería ver otro, pero si no te aparece podemos ver ese. Pero mi intención era ver otro. Si no, mira, no no lo borres. Entra, entra en datos espaciales. A ver, lo voy a forzar, lo voy a forzar. Déjame ver, dame un segundo. A lo mejor si sales y vuelves a entrar con el stop server, que a veces hay que cerrarlo con el stop server.
(1:17:04) Ah, perdón. Datos espaciales. Ah, lo ves ahora. No, no ha entrado. Bueno, no pasa nada. Podemos ver los datos espaciales con Raster. Entra en el HTML a ver si te abría el HTML en lugar de ese de ahí. No sé si se te abrirá bien. Inténtalo a ver. Ahí está. Sí, aquí lo tenemos. Eh, bueno, pues para trabajar con datos espaciales, eh, por ejemplo, o sea, lo que lo que lo que hay hay varias maneras, ¿no? Una es lo que nos ha enseñado Héctor, que era descargándonos
(1:17:49) Net CDF. Y con datos eh en sí, con datos NC, si los conviertes a raster y trabajamos con formato raster, es mucho más sencillo trabajar a nivel espacial y y combinando la variable espacial y la temporal. Lo que pasa es que para eso necesitamos dos paquetes muy importantes que son Terra y Raster. Y en este caso hemos tenido problemas con el paquete con el paquete raster y entonces dan algunas dificultades.
(1:18:14) Por eso, en lugar de correrlo en el propio en Júpiter, en lugar de hacerlo ahora con la computadora, lo vamos a ver aquí en el HTML, pero en en teoría no debería ser, a mí, por ejemplo, en mi computadora no me da problemas cargarlo y no me da problemas hacerlo funcionar. Entonces, eh bueno, con este tipo de con este tipo de con esta aproximación que es más bien de que viene de una parte de ARGIS, que anteriormente se usaba eran programas de pago que se usaban eh se
(1:18:55) usaban para todo lo que sea geográfico, eran de pago, eran muy caros y ahora ya gracias a al bueno, pues a la a la a la a la amplitud de las de las barreras y y a lograr cosas de libres. Se ha conseguido que eh GIS o sig, en español SIG, en inglés GIS, se implemente en R y podamos trabajar con datos de información geográfica en software libre como SR y gracias a ello nos permite combinar, manipular, almacenar, producir un montón de un montón de archivos y un montón de
(1:19:33) de documentos. Tenemos, empezando desde lo más básico a nivel geográfico, tenemos puntos que, por ejemplo, pueden ser puertos, ciudades, puntos de muestreo. Tenemos líneas que que conectan que conectan diferentes puntos y polígonos que se forman a través de diferentes puntos. Mira, baja, baja para abajo. Y así en esos en esos en esos mapas podemos ver cómo se plotean puntos, se plotean líneas y se dibujan polígonos, por ejemplo, de países.
(1:20:09) A ver, baja un poquito más para abajo. Cada punto tiene dos coordenadas y cada línea está formada por diferentes vectores y los polígonos están formados por múltiples vectores que se conectan entre ellos. Un raster, por ejemplo, es un es un diríamos que es como si un fichero de datos. En este caso, por ejemplo, son datos de temperatura que están geolocalizados y eh tienen una temporalidad.
(1:20:35) Aquí no podemos ver de qué año son, pero normalmente el fichero raster nos informa que de qué año de de qué de qué tiempo y a qué resolución está, qué resolución tiene. A ver, más para abajo. Y un vector solo son líneas, mientras que un raster lo que hace es eh nos dibuja el espacio en cuadrículas y nos da datos en función de cada cuadrícula. Y cada una de las cuadrículas o gris tiene un determinado tamaño que nos hace referencia a mayor o menor resolución,
(1:21:14) si es más pequeñito o o es mucho más grande. A ver, baja para abajo. Y cuando trabajamos con Raster, lo bueno es que luego podemos exportar nuestros resultados como como imagen, como como archivo georreferenciado, que sería GeoTIF oD o gri o eh como texto. Y en la siguiente imagen lo que vemos es eh la diferencia de la resolución. la que está un poquito más abajo, vemos una resolución h una una una resolución alta
(1:21:51) cuando tenemos eh un grit muy grande, por ejemplo, de 1 grado, que son 111 km por 111 km, eso sería un grado que sería el primero, la primera cuadrícula de la izquierda que vemos abajo. Y en la medida en la que en la que aumenta la resolución, el grid de malla, la cuadrícula se haría mucho más pequeña. A ver, baja para abajo. Y esto es algo que tenemos que tener en cuenta porque puede afectar a los cálculos que tengamos en función de de los análisis que estemos haciendo.
(1:22:25) Entonces, eh un raster tiene para cada píxel se le da un valor numérico. Por ejemplo, en esa imagen vemos ahí cada cada valor, o sea, cada cada grit tiene un valor y un raster stack o un raster brick lo que hace es apilar un montón de rasters uno encima del otro y, o sea, uno encima del otro virtualmente, ¿no? Es como yo es como yo me lo imagino. Apilando uno encima del otro, cada uno de ellos hace referencia a un a un año distinto.
(1:22:51) Sería lo mismo que nos ha enseñado Héctor, pero de una manera compilada en un solo objeto. Es igual que los Net CDF o que los Enis, convirtiéndolo a Raster y tendríamos un solo objeto para toda esta base de datos y eh y tienen que tener exactamente las mismas dimensiones. O sea, normalmente un raster es un es un taco que tiene exactamente las mismas dimensiones con diferentes con diferentes con diferentes variables, o sea, perdón, con diferentes años y en principio yo normalmente trabajo con la misma variable, no suelen ser
(1:23:38) normalmente si trabajas con diferentes variables pues tienes raster stack distintos como tacos distintos e para fuente de datos online de abiertos en open, abiertos, disponibles para todo el mundo. Hay un montón de fuentes. En este caso estamos trabajando con datos. Ahora os voy a enseñar unos datos que se subieron a Gearub y que por eso lo hacemos.
(1:24:04) Eh, es mucho más fácil acceder a ellos, pero normalmente tenemos que descargarlos, como ha mencionado Héctor, o bien por un otro compañero que lo ha mencionado, o bien por un API a través de Python, o bien con client a través de R o como he hecho yo siempre, descargando los datos en tu ordenador y trabajando directamente con con datos en el ordenador. En este caso, eh vamos para abajo un poquito. La idea era, yo proponía trabajar con Raster y Terra y con el paquete de RBOC de velocidad del cambio climático que que tiene muchas aplicaciones y a mí
(1:24:43) me parece muy muy útil. Es es muy sencillo de usar. Por ejemplo, e aquí podemos ver el promedio de la tendencia temporal de temperatura a escala global entre el año 2000 y el año 2020. Si le das al código Héctor a Code, mira ahí, por ejemplo, eh, es una pena porque no se muestra en este HTML, pero bueno, una vez abrimos eh claro y tampoco puedo compartiros pantalla, pero bueno, la idea es que que usamos una una función que se llama
(1:25:17) source data y en este caso en el en el fichero RMD, en el fichero de R que está subido, que os lo podríais clonar en vuestro ordenador, y trabajar con él, que deberíais de poder hacerlo ahora, o sea, mientras que estamos hablando podríais deberíais de poder hacer eso. Eh, lo que no sé si los paquetes os funcionarán, es posible que los paquetes no os funcionen y que os den problemas, ¿eh? Pero bueno, el caso es que hay una
(1:25:45) serie de datos que se obtienen a través de source data, de una función que se llama source data, que accede a GitHub y obtenemos unos datos globales que están ya subidos a GitHub y que nos supone no es necesario subirlos a a Júpiter y que podemos trabajar con ellos, que serían la fuente de estos datos que tenemos aquí entre el año 2000 y el 2020. Perdón, Marina.
(1:26:09) Marina, ¿tienes una pregunta de Andrea? que dice en los datos raster los valores numéricos en donde se en dónde se encuentran al centro del píxel, esquina o en medio de alguno de los lados del píxel. eh se eh corresponden a todo el píxel, o sea, cuando cuando tú los descargas a la resolución que tengan, por ejemplo, normalmente tú de Copérnicus o de cualquier servidor online los descargas al te los ofrecen, ¿no? No, normalmente no puedes elegir mucho y te los ofrecen a la mayor resolución que haya. Por ejemplo, es habitual encontrarlos a 0.
(1:26:39) 04 gr, que son como unos eh unos 400 m. por ejemplo. Entonces, tú puedes tener eh cuatro datos cada 1io kilómetro, que eso quiere decir que tiene muchísima resolución y pesan mucho. Entonces, te los descargas en tu fichero, o sea, te los descargas en tu ordenador local y eh eh tiene el mismo valor para eh cada para la cuadrícula entera.
(1:27:13) Y hay una hay una función que es la función del paquete raster que es muy útil que se llama aggregate, que lo que haces es agregar, calcular el promedio de los píxeles. Por ejemplo, tú tienes un píxel muy pequeño y no quieres trabajar con datos de tanta resolución porque entonces pesan mucho y es muy difícil hacerlo funcionar y te va a tardar mucho en calcular. lo que haces es agregar los datos de los datos alrededor de cada píxel y en lugar de tenerlo a 400 m, lo calculas, por
(1:27:49) ejemplo, para eh 0 pun, o sea, lo calculas, por ejemplo, para 0.25º, que serían 250 km. Entonces, eh lo que haces es eh calcular el promedio y solo tienes un valor para todas las para todas tus celdas, las agregas en un solo valor y entonces es mucho más sencillo es mucho más sencillo trabajar con ello. Podemos, no sé si resuelto la pregunta correctamente, pero si es muy es muy es muy importante saber en este caso que un grado
(1:28:27) corresponde con 111 km, que esa suele ser la correspondencia. Casi siempre te dan los datos, o sea, casi siempre te dan la resolución en en grados y es importante convertirlo a kilómetros o a metros para entender a nivel espacial de de cuántos datos estamos hablando. Vale, se puede bajar para abajo y a través de la función, ay, espera un poquito para arriba. Y a través de la función e a ver un poquito para arriba. La de arriba, ¿no? Arriba, arriba, la de min.
(1:28:57) Ay, la de arriba, la que estábamos viendo, a través de la función min, te calcula el promedio de de los datos anualmente. O sea, te está dando el promedio anual de todo de el promedio de todas la serie temporal. Lo que haces es que tú tienes un montón de capas, un montón de capas de cada año, del año 2000, del año 2001, 2002, 2003 y tú le dices, «Calcúlame min.» eh y tú vas tu tu base de datos y te da directamente el promedio de todos esos
(1:29:34) años y entonces tenemos el promedio de entre el año 2000 al 2020 con un con un par de funciones lo tenemos calculado, ¿vale? Ahora sí. Y esto serían grados centígrados. Otra de las funciones que son superútiles es eh la temptrend, que sería la tendencia temporal de temperatura. Por ejemplo, el aquí en este fichero, bueno, como veis, pone raster stack porque eso quiere decir que ya estamos trabajando con un
(1:30:10) fichero raster. La tendencia temporal de temperatura lo que hace es calcular eh para cada tú tienes todo un raster stack con un montón de años del año 2000 al 2020 y con esta función temporal trend lo que hace es de cada celda, de cada celdilla, de cada grit lo que hace es eh una gráfica en la que tú tienes de cada celda de tu mapa cómo ha ido evolucionando la temperatura.
(1:30:37) en a lo largo de los años y lo que hace es calcular el el la recta de regresión y obtener la pendiente de esa recta de regresión y ahí es cuando podemos eh ahí y entonces sabemos cuál es la pendiente de en cada una de tus celdas y podemos ver en qué zona se está calentando el se está calentando el mar más a mayor velocidad, o sea, no sería velocidad, pero a mayor grado a una mayor tasa en grados por año. A ver, baja para abajo. Y aquí tendríamos en en el fichero raster es donde nos indica de qué
(1:31:23) nuestros datos qué proyección tienen. Ahí antes indicaba la proyección el esperad un poquito más para arriba. Aquí en el CRS, o sea, en esta en la información que te da el el raster Stack, podemos ver qué clase tiene, qué dimensiones tiene, que en este esto es el output del de la función tendencia temporal, que en este caso tendría tendría como resultado tres capas, pero si pudiéramos mirar el raster original de temperatura superficial tendríamos 20 capas en en
(1:32:01) lugar R de 3 pondría 20 porque haría referencia a los 20 años de datos que tenemos en el en el raster Stack. Y en las dimensiones 180 y 360 hace referencia al mapa entero de al a las columnas enteras, a las 180 y 360 columnas y celdas que hay en todo en todo un grit. La resolución en este caso es de 1 grado porque normalmente cuando se trabaja a escala de de todo el del del océano global tenemos que trabajar a una resolución alta que en este caso
(1:32:40) sería 1 grado 111 km porque si no sería muy difícil trabajar con ello. Y entonces en la primera en la primera capa que obtenemos serían los resultados de tendencia temporal de temperatura en grados al año. Y podemos ver que eh que hay zonas que se están calentando a 0.06 a una tasa de 0.06 6 gr por año y hay otras como por ejemplo en el sur de Brasil, en el en la zona de Estados Unidos y hay otras que están
(1:33:15) calentándose un ligeramente de manera ligeramente más lenta como en la zona del Caribe. Pero bueno, esto estamos solo teniendo en cuenta años entre el año 2000 y el año 2020. Eh, normalmente cuando se trabaja con datos de clima se trabajan con series temporales de mínimo 30 años. Y también podemos obtener cuál es la significancia de esa de esa regresión, de esa de esa de esa de la línea de regresión en cada punto.
(1:33:40) Por eso es interesante trabajar con Raster, porque nos ayuda a a tener a tenerlo todo ya directamente georreferenciado y espaciado y localizado en el espacio. Entonces, en el en el en el gráfico que pone P valor, lo que nos indica es que que qué zonas son significativas y qué zonas no. En este caso es llamativo que casi todo el océano, hay muchas partes del océano global que están en blanco, que eso quiere decir que están por debajo de cero.
(1:34:14) Habría que ver, habría que cambiar esa escala para ver eh hasta qué punto, cuáles son datos, cuáles son significativos y cuáles no. Con esta escala no podríamos saberlo. Y luego también podemos saber el error estándar de la pendiente de regresión. Y a ver, baja para abajo. Aquí sería de nuevo el las figuras pero más más ampliadas para que las veamos con más detalle. A ver, baja para abajo el error estándar y el y el P valor, que como digo, probablemente todas las zonas
(1:34:58) que son blancas probablemente sean significativas, pero bueno, habría que hacer un zoom por debajo de cero, o sea, entre 0 y 02 para ver exactamente de qué valor estamos hablando. A ver, baja para abajo. Y otra de las cosas que también se pueden calcular es el gradiente espacial, que lo que nos dice es cómo cambia la temperatura en función del espacio. No solamente en función del tiempo, sino en función del espacio.
(1:35:25) ¿Cómo cómo cómo eh en este caso serían las isotermas de temperatura? Si si tenemos, por ejemplo, 20 gr en un sitio, al cabo de 20 años, seguiremos encontrando estos 20 gr. o los encontraremos más lejos, teniendo en cuenta el promedio de temperatura de toda la serie de toda la serie de datos. Y eh lo que nos daría en este caso sería el gradiente espacial y el ángulo al cual gira al cual eh se moverían, por así decirlo, las isotermas de temperatura. A ver, baja para abajo.
(1:36:11) Este sería el gradiente espacial. Y el la otra figura es el ángulo. El ángulo no se suele utilizar apenas. Lo que más se utiliza es el es el gradiente espacial en realidad. Y y bueno, aquí vemos que el que por ejemplo en toda la zona de eh en el gradiente espacial es relativamente bajo en muchas en toda la zona del Ecuador y que conforme se aleja hacia los polos aumenta eh va cogiendo un color más rosa, va
(1:36:43) aumentando de valor y hay algunas zonas en las que es mucho más alto, que eso quiere decir que la temperatura cambia en el espacio. cambia mucho en el espacio espacialmente, quiere decir que tienes que irte muy lejos para encontrar la misma la misma el promedio de la de temperatura eh a lo largo de todos los años en un mismo sitio. Es un es es un poco complejo el gradiente espacial.
(1:37:07) A mí me ha costado siempre entender un poco eh hm cómo cómo entender es un cómo entender este este esta variable, porque siempre hablamos de grados de temperatura por kil por año y en realidad aquí estamos hablando de grados de temperatura por kilómetro a nivel espacial. Podemos ir para abajo. Este sería el gradiente térmicoespacial, que ya es el que hemos visto abajo. Y e y podríamos calcular cuál es la velocidad del cambio climático dividiendo la tendencia temporal de temperatura por el gradiente espacial.
(1:37:53) Y eh dividiendo estos dos estas dos métricas, obtenem podemos saber en qué zonas el cambio climático está siendo más rápido o más lento. Y hay que usar la función GBOC, que para eso necesitamos el paquete GBOC, que depende de los paquetes Raster y Terra. O sea, que estos tres paquetes serían los los más importantes que necesitamos. Y también hay que tener en cuenta a qué a qué resolución se trabaja. Si estamos trabajando a escala de todo el planeta, está bien trabajar a un grado.
(1:38:20) Pero cuando empezamos a trabajar a resoluciones mucho, o sea, a zonas más pequeñas donde la resolución es mayor, eh, hay que tener cuidado porque el el este tipo de métricas pueden estar, o sea, están afectadas por la resolución en la que se trabaja. Entonces, quiere decir que si que si tú haces estos cálculos a un grado, tendrás unos valores y si haces estos cálculos a mucha mayor resolución es posible que
(1:38:56) tengas máximos y mínimos que se disparen. Tendrás máximos y mínimos que estén sobreestimando el valor de la de la velocidad del cambio climático. Y es algo a tener en cuenta, o sea, hay que hay que estimar, o sea, hay que hay que tomar, hay que decidir sobre todo a qué resolución se trabaja cuando trabajamos con rasters. Bueno, y con Raster y con cualquier con cualquier métrica ambiental o cualquier tipo de dato georreferenciado y con y con temporalidad, ¿no? A ver, bajamos
(1:39:31) para abajo. Aquí tendríamos un una de las métricas de la velocidad del cambio climático y que esto serían kilómetros al año. A ver, baja para abajo. Y sí que vemos que en las zonas de sí que vemos que hay que los valores generalizados están más bien en torno a cero y hay valores máximos eh em y tenemos valores máximos que son mucho más pequeños. A ver, baja para abajo. A ver, esta sería otra manera de plotear el la velocidad
(1:40:12) la velocidad climática, que lo que es que es empleando la función raster bis, que también depende de de raster y eh es más fácil de de verlo así. en función de cómo lo visualices es más sencillo. En este caso vemos que eh que toda que en toda la zona más cercana al Ecuador las velocidades de cambio climático son mayores. Y luego en las zonas del Polo Norte, en las Sí, en las zonas del Ártico también son zonas altas.
(1:40:39) Eh, por ejemplo, en el sur del Mar Mediterráneo también es una zona de altas velocidades. Eh, bueno, aquí podemos ver cómo cómo cambia la la velocidad del cambio climático a nivel espacial y en este caso sí que serían kilómetros al año. Estaríamos hablando de de de cuánto se desplazan las isotermas en función del espacio y del tiempo. Sí. A ver, baja para abajo. A ver, ábreme los códigos para ver para ver si hay algo interesante.
(1:41:22) Y luego, eh, lo interesante de trabajar con Raster es que luego le dices eh write raster y te escribe, o sea, y te guarda un fichero directamente, eh, el te guarda los mapas en un formato en un formato GRI o GRD. que los puedes exportar fácilmente a cugis, por ejemplo. No sé si habéis trabajado, no sé si alguien trabaja con Cujis o con o con GIS o con alguno de estos cugises de software libre y se trabaja, hay muchísima gente en la parte de gestión ambiental, por ejemplo, que trabajan muchísimo con cugis.
(1:42:04) Y lo interesante de esto es poder combinar eh R y CGIS, de manera que te descargas los te descargas los productos, los cálculos que has hecho, te los descargas con W raster y los puedes exportar georreferenciados muy fácilmente. Directamente estos ficheros se guardan en tu ordenador y los abres con cugis o con argis o gis y aparecen perfectamente georreferenciados. O sea, es supercmodo de trabajar e con los dos programas. Y luego a la hora de plotear y de hacer mapas, cugujis es estupendo.
(1:42:43) Yo no sé si alguien ha trabajado con Cujis, pero yo no soy experta en Cujis, pero pero visualmente eh es posible crear mapas muy muy interactivos, muy chulos. Estéticamente Cujís tiene muchas ventajas. Y a ver, baja para abajo. Y luego si quisiéramos, por ejemplo, hacer un polígono y hacer un zoom en lugar de trabajar solo con a escala global, queremos hacer un polígono. Yo os he puesto un ejemplo del Mediterráneo, pero eh con esta función de aquí as extent creas un polígono, un espacial polígon y
(1:43:26) tú le dices directamente la la latitud y la longitud que a las que quieres tu polígono. le dices la altura longitud de las de los de los de las de los vértices de tu polígono, eh, y te crea un polígono que luego lo pones encima con la función CRS, que es coordinate reference system y copias. Lo que haces con esa función, con la función CRS, es copiar las el sistema de coordenadas de referencia que tenías originalmente en tu fichero de temperatura.
(1:44:01) Lo copias y a continuación con la función crop cortas el cortas el polígono que te interesa. Eh, es como si dijéramos lo pones encima, le pones encima de tu de tu base de datos que te interesa trabajar, le pones encima el polígono, lo cortas con el crop y obtienes un zoom solo del área que te que te interesa. A ver, baja para abajo que veamos cómo se ha cortado. Aquí en este caso, en este caso, por ejemplo, se cortaría para el Mediterráneo lo de la, o sea, tendríamos
(1:44:40) latitud y longitud en el eje. Queda un poco raro porque esto es el Mediterráneo solo occidental y está a un grit de a un grit bastante grande porque estábamos trabajando a un grado, por eso no se ve no se ve especialmente bien. Pero si encima de si esto nos lo le superpusiéramos un mapa del Mediterráneo, por ejemplo, lo exportáramos a Cujis y le pusiéramos un mapa encima del del Mediterráneo, se vería perfectamente que esto corresponde
(1:45:09) al Mediterráneo occidental. Y a la derecha tenemos la latitud, los grados de latitud y abajo en el eje de las X tenemos los grados de longitud, ¿vale? Y a ver, yo creo que ya, a ver, baja un poquito más para abajo a ver si queda algo más. Sí, es todo hasta ahí. Sí, hasta ahí, hasta ahí tendríamos. Luego tenía, o sea, eh esto es para trabajar en raster, o sea, esto está muy enfocado en el en en trabajar con con datos georreferenciados.
(1:45:49) Luego hay otras veces en las que te Ah, mira, sí. A ver, que estoy viendo aquí el Discord, eh, en los datos. Sí, sí. Ah, mira, veo gente que sí que trabaja con cugis. Yo con Snap no he trabajado nunca, pero con Cujis sí. Pues cualquiera de los cualquiera de los productos, o sea, de los ficheros en sí que ha presentado Héctor, que lo que se abran como raster, tú conviertes los ficheros en SIS, los conviertes a Raster
(1:46:21) Bri o a Raster Stack. trabajas con ellos en R y luego los exportas con Ruster y los abres en Cujis y no funciona funciona muy bien. Y luego la otra de las cosas que os quería enseñar que yo no sé si Héctor a ver si porque a mí sí que me salía entrando de nuevo, no sé si os no sé si os apetece, o sea, uno si tenéis más preguntas de este tema sería lo primero, ver si alguien más tiene preguntas. Hola, buen día. No sé si me escuchan. Sí, sí te oímos.
(1:46:56) Este, bueno, igual continuando con la pregunta de hace rato, yo trabajo con datos de Sentinel 2 de muy alta resolución de 10 eh metros. Hm. Justo yo tengo eh mi pregunta sobre dónde estaban eh eh los datos numéricos, si centro del píxel o de la esquina, es que yo trabajo con diferentes estaciones, este y lo que he usado es la paquetería raster y la función strack porque quiero eh sacar justo como un promedio de los de mi estación como los nueve píxeles
(1:47:45) alrededor, ¿no? Y lo que he notado es que en algunos casos eh o ya yo genero como un este un data frame con las coordenadas y o sea de de estos píxeles y de mis estaciones y en algunas estaciones me extrae, por ejemplo, nada más siete píxeles, en otra me extrae 11, en otra, o sea, no me extrae como los nueve píxeles de mi punto. Por eso me surgía como esa duda de que si sí estaban al centro del píxel o o cómo funcionaba,
(1:48:24) porque aún no entiendo muy bien por qué para ciertas estaciones me extrae por ejemplo nueve valores, 11 valores y y cuando cambio de fecha, porque esto lo hago para diferentes fechas, eh, o sea, pasa lo mismo. Por ejemplo, no sé, mi estación uno, en la fecha uno me extrae nueve y después me extrae 11. Sí, eso es raro. E eso es raro. M normalmente depende de la función que le que le digas a la función extract.
(1:48:57) O sea, normalmente cuando tú le dices extract, que lo que le estás diciendo es de este raster, extráeme los valores de de que de los que tengas de temperatura y dame las coordenadas de ese punto. Normalmente tú le dices eh tú le dices qué función quieres que aplique, si quieres que te dé el promedio, el máximo, el mínimo. Mm. A ver, estoy mirando aquí. Es raro que no te sal que te salgan valores distintos.
(1:49:36) O sea, normalmente te debería de salir el mismo valor para todos los Te debería de salir el mismo valor para todos los años, ¿no? Dices que para cada año te da un valor distinto. Sí, lo trabajo más que nada por días, pero sí a veces este me genera como eh diferentes este cantidad de datos al momento de extraer. Eso es muy raro. A a Eso es muy raro. Normalmente te debería de extraer la misma el mismo valor para todos los años y para todas la para el área de estudio que tú tengas.
(1:50:25) No, porque además lo que lo que tienes es un valor para toda la cuadrícula, no tienes un valor para cada esquina. O sea, normalmente y y trabaja, o sea, estás haciendo el strack de tus valores originales, ¿no? O sea, de tu el strack del de la base de datos original que te has descargado. Ahí tengo como también cierta duda. ¿Por qué hago un eh preprocesamiento? Porque hago una corrección atmosférica. para extraer los datos porque no son como ya el producto eh final porque estoy en el proceso de validación de datos satelitales.
(1:51:02) Entonces, no sé si tenga que ver con eso, que en este caso trabajo con Acolite, eh, y es este, no sé si sea como por ahí que tal vez me genera como me cambia tal vez los píxeles, algo así. Si si estás haciendo un prefiltrado y estás eliminando celdas, por ejemplo, que no son la que no que no que son datos que no te interesan, quizás es por eso, por lo que por lo que luego no te sale el grid entero.
(1:51:33) Si estás haciendo un prefiltrado y descartando datos, por ejemplo, ¿es eso lo que haces en el prefiltrado o no? No, eh, me elimina más que nada como los datos que detecta a veces como nube, pero los pone como na. Si los pone como na te debería entonces de dar todo el valor. Si quieres mándamelo y le echo un vistazo. A mí no me importa echarle un vistazo e intentar ayudarte con eso. Gracias. Y bueno, Marina, Marina, estoy viendo el repositorio y no veo más que el archivo
(1:52:16) RMD que se actualizó hace dos días. Probablemente no losiste. Pues a mí me aparecen aquí. No entiendo. No, pero lo estoy viendo en el repositorio. Eh, lo en el repositorio, no lo no la clonación dentro del Jupiter Hub. Ya no sé por qué a mí me salen, pero claro, yo no sé si por qué motivo me aparecen como nuevos ficheros que yo he subido hace una hora. Me salen duplicate, no, no sé por qué. No entiendo por qué. A ver, voy a actualizarlo.
(1:52:53) Nada, no sé por qué a mí me salen y a ti no. Mm. Bueno, no pasa nada. Yo era por mostrar también eh por mostrar otra otra, o sea, por mostrar otro tipo de datos espaciales, porque no siempre trabajamos con datos Net CDF. Otras veces nos descargamos un fichero que es un que es un data frame, que es una tabla con con coordenadas latitud y longitud, que sería eh pues sería otra manera de trabajar directamente con latitud y longitud y convertir latitud y longitud
(1:53:31) a decimales y plotearlo en un gráfico, o sea, hacer plotear un gráfico que sea latitud frente a longitud y es otra manera de sacar mapas Mapas espaciales. Sería otra manera trabajar con datos espaciales. No sé si tenéis si tenéis más dudas. A ver, alguien trabaja alguien ha trabajado con Raster. A ver, el día lunes, Marina, creo que no estuviste, pero hacían la pregunta si se podía. Bueno, era para Python, pero yo creo que la puedes responder para R.
(1:54:17) Si un archivo geotif, ¿cómo se procesaría? ¿Cómo se procesaría? Eh, en un Ajá, un geotif. Yo creo que, a ver, yo creo que Raster también lo puede importar directamente, ¿no? Sí, normalmente, igual que tú exportas con la función que os he enseñado antes de right raster, exportas un fichero geof, eh, normalmente para abrir un geotif eh sencillamente, yo creo que sencillamente con con raster, con la función raster, eh, mira, aquí lo tengo.
(1:55:06) Yo creo que normalmente necesitas el paquete, a ver, necesitas el paquete Raster o el paquete Terra o el paquete Gedal. Es otro paquete que también se suele usar. Mira, aquí os lo puedo poner. Ah, el chat está desactivado. Lo puedo poner por aquí. Eh, mira, aquí lo he puesto para abrir e Sí, normalmente igual que igual que para guardarlo. Sí, lo he dejado ahí escrito en el chat para que lo para que lo vierais.
(1:56:32) Normalmente puedes abrirlo directamente con la función raster. Con la función raster deberías de de poder abrirlo. Gracias, Marí. Por eso, por eso es tan útil eh sistemas de información geográfica en R. Yo no sé si en Python lo visteis en Python, ¿no? Raster en Python el lunes que os lo presentó Jeray. Puede ser. Sí, se se presentó algo de eso, pero justamente salió la pregunta para los y pues no, esa creo que quedó ahí sin contestar pendiente.
(1:57:07) Sí, pues igual que igual que lo guardas eh igual lo puedes guardar eh como geotif, lo puedes abrir en Raster. Es lo es lo interesante de este tipo de ficheros. Y ahí os he dejado en el en el en la carpeta eh aparecían ahí ya los los ficheros guardados como GRD o GRDI para poder abrirlos directamente. Si si alguien estuviera interesado en abrirlo directamente. Sí, mira, veo que hay gente que trabaja en ARMAP, en Python. A mí siempre me ha resultado, a mí me ha resultado muy útil trabajar con Raster, la verdad me ha sorprendido
(1:57:58) lo cómodo que era. Pues parece que ya no hay más preguntas. No sé si Marian esté por ahí. Ya se fue, pero si no hay más preguntas. Estoy, estoy, sí, estoy por aquí. Muy bien. Pues parece que podemos dar por concluida entonces la sesión de hoy, ¿verdad? Eh, y os emplazo mañana la última sesión de tutorías. No sé si alguien decía algo. No, no. Mañana continuamos entonces con R a la misma hora y veremos cómo realizar informes con Ner en Markown con Nicolás
(1:58:33) y cómo hacer análisis estadístico con con Areli. Así que nada, nos vemos mañana entonces. Muchas gracias a todos. Pues a María, gracias. Gracias. Una cosa, una cosa quería añadir una cosa. Eh, los yo los ficheros que he subido se pueden Una vez resolvamos todo el problema que hemos tenido con los paquetes, debería de poderse Es un remar down lo que lo que lo que yo he subido. O sea, que mañana cuando veáis cómo se trabaja con Rard, eh, en el en el RMD R el fichero RMD que yo he
(1:59:13) subido, eh, funciona igual que en un RMD para que bueno, por si lo queréis le queréis echar un vistazo cuando esté funcionando. Bueno, yo avisaré por el chat cuando estén funcionando los paquetes, pero vaya que es muy útil lo del RMD también. Nada, pues nada, ahora sí, hasta mañana. Gracias, Marina. Gracias, Héctor. Nos vemos mañana.
Usamos cookies para asegurar que te damos la mejor experiencia en nuestra web. Si continúas usando este sitio, asumiremos que estás de acuerdo con ello.