class: center, middle, inverse, title-slide .title[ # Graficando datos espaciales tidy ] .author[ ### Pao Corrales ] .institute[ ### UBA - CIMA - CONICET ] --- class: center ## Hola! <img src="img/pao_circle.png" width="30%" /> @paobcorrales [paocorrales.github.io](https://paocorrales.github.io/) --- ## Datos espaciales .pull-left[ ### Pueden ser: * **puntos en el espacio** * segmentos * polígonos ] .pull-right[ ### Representados como: * vectores * matrices u arrays * **data.frames** ] --- ## Datos puntuales .pull-left[ ### Grillas regulares ![](espaciales_files/figure-html/unnamed-chunk-2-1.png)<!-- --> ] .pull-right[ ### Grillas irregulares ![](espaciales_files/figure-html/unnamed-chunk-3-1.png)<!-- --> ] --- ```r temperature # datos incluidos en el paquete metR ``` <table> <thead> <tr> <th style="text-align:right;"> lon </th> <th style="text-align:right;"> lat </th> <th style="text-align:right;"> lev </th> <th style="text-align:right;"> air </th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> 0.0 </td> <td style="text-align:right;"> 90 </td> <td style="text-align:right;"> 1000 </td> <td style="text-align:right;"> 274.87 </td> </tr> <tr> <td style="text-align:right;"> 2.5 </td> <td style="text-align:right;"> 90 </td> <td style="text-align:right;"> 1000 </td> <td style="text-align:right;"> 274.87 </td> </tr> <tr> <td style="text-align:right;"> 5.0 </td> <td style="text-align:right;"> 90 </td> <td style="text-align:right;"> 1000 </td> <td style="text-align:right;"> 274.87 </td> </tr> <tr> <td style="text-align:right;"> 7.5 </td> <td style="text-align:right;"> 90 </td> <td style="text-align:right;"> 1000 </td> <td style="text-align:right;"> 274.87 </td> </tr> <tr> <td style="text-align:right;"> 10.0 </td> <td style="text-align:right;"> 90 </td> <td style="text-align:right;"> 1000 </td> <td style="text-align:right;"> 274.87 </td> </tr> <tr> <td style="text-align:right;"> 12.5 </td> <td style="text-align:right;"> 90 </td> <td style="text-align:right;"> 1000 </td> <td style="text-align:right;"> 274.87 </td> </tr> <tr> <td style="text-align:right;"> 15.0 </td> <td style="text-align:right;"> 90 </td> <td style="text-align:right;"> 1000 </td> <td style="text-align:right;"> 274.87 </td> </tr> <tr> <td style="text-align:right;"> 17.5 </td> <td style="text-align:right;"> 90 </td> <td style="text-align:right;"> 1000 </td> <td style="text-align:right;"> 274.87 </td> </tr> <tr> <td style="text-align:right;"> 20.0 </td> <td style="text-align:right;"> 90 </td> <td style="text-align:right;"> 1000 </td> <td style="text-align:right;"> 274.87 </td> </tr> <tr> <td style="text-align:right;"> 22.5 </td> <td style="text-align:right;"> 90 </td> <td style="text-align:right;"> 1000 </td> <td style="text-align:right;"> 274.87 </td> </tr> </tbody> </table> * `lon:` (dim) longitud, ubicación en x * `lat:` (dim) latitud, ubicación en y * `lev:` (dim) nivel de presión en la atmósfera. 1000 hPa es cercano al suelo * `air:` temperatura del aire --- ### Podemos aprovechar todas las herramientas del mundo "tidy" .pull-left[ ** ¿Cuál es la temperatura promedio en la provincia de Córdoba, Argentina?** ```r t_promedio <- temperature %>% filter(between(lat, -33, -31), between(lon, 294, 299)) %>% group_by(lev) %>% summarise(t_prom = mean(air - 273.15)) ``` <table> <thead> <tr> <th style="text-align:right;"> lev </th> <th style="text-align:right;"> t_prom </th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> 10 </td> <td style="text-align:right;"> -51.11498 </td> </tr> <tr> <td style="text-align:right;"> 20 </td> <td style="text-align:right;"> -57.24000 </td> </tr> <tr> <td style="text-align:right;"> 30 </td> <td style="text-align:right;"> -52.82999 </td> </tr> <tr> <td style="text-align:right;"> 50 </td> <td style="text-align:right;"> -59.99998 </td> </tr> <tr> <td style="text-align:right;"> 70 </td> <td style="text-align:right;"> -61.21499 </td> </tr> <tr> <td style="text-align:right;"> 100 </td> <td style="text-align:right;"> -62.15499 </td> </tr> </tbody> </table> ] .pull-right[ ] --- ### Podemos aprovechar todas las herramientas del mundo "tidy" .pull-left[ ** ¿Cuál es la temperatura promedio en la provincia de Córdoba, Argentina?** ```r t_promedio <- temperature %>% filter(between(lat, -33, -31), between(lon, 294, 299)) %>% group_by(lev) %>% summarise(t_prom = mean(air - 273.15)) ``` <table> <thead> <tr> <th style="text-align:right;"> lev </th> <th style="text-align:right;"> t_prom </th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> 10 </td> <td style="text-align:right;"> -51.11498 </td> </tr> <tr> <td style="text-align:right;"> 20 </td> <td style="text-align:right;"> -57.24000 </td> </tr> <tr> <td style="text-align:right;"> 30 </td> <td style="text-align:right;"> -52.82999 </td> </tr> <tr> <td style="text-align:right;"> 50 </td> <td style="text-align:right;"> -59.99998 </td> </tr> <tr> <td style="text-align:right;"> 70 </td> <td style="text-align:right;"> -61.21499 </td> </tr> <tr> <td style="text-align:right;"> 100 </td> <td style="text-align:right;"> -62.15499 </td> </tr> </tbody> </table> ] .pull-right[ ```r t_promedio %>% ggplot(aes(t_prom, lev)) + geom_path() + scale_y_level() + labs(title = "Perfil de temperatura", subtitle = "Córdoba", x = "Temperatura") + theme(aspect.ratio = 1.2/1) ``` ![](espaciales_files/figure-html/unnamed-chunk-10-1.png)<!-- --> ] --- ## Nuestro objetivo hoy <img src="espaciales_files/figure-html/unnamed-chunk-11-1.png" width="60%" style="display: block; margin: auto;" /> --- class: inverse ## Manos a la obra! 1. 💻 Entrá a este proyecto de RStudio Cloud: [rstudio.cloud/content/4312370](https://rstudio.cloud/content/4312370) ❗ (si nunca usaste RStudio Cloud, necesitas una cuenta) 🕔 Puede demorar un par de minutos en abrir 2. 💾 Hacé click en "Save a permanent copy" (arriba a la derecha) 5. ✅ Listo! --- ## ¿Más recursos? * 👉 Tutorial: [Datos espaciales a lo tidy](https://eliocamp.github.io/espaciales-tidy-tutorial/) * [Descarga y lectura de datos](https://eliocamp.github.io/espaciales-tidy-tutorial/useR2021/02_lectura.html) (versión anterior del tutorial) * 👉 Tutorial: [R para clima](https://eliocamp.github.io/r-clima) * 👉 [Documentación de metR](https://eliocamp.github.io/metR/index.html) * 👉 [Repositorio de datos climáticos](https://cds.climate.copernicus.eu/cdsapp#!/home) --- background-image: url(https://github.com/paocorrales/datos-espaciales-ohw22/blob/main/slides/img/background.png?raw=true) background-size: 120% class: inverse, center, middle # ¡Gracias! @paobcorrales | 🌐 paocorrales.github.io