# Introducción Información obtenida del Automated Surface Observing System (ASOS) de los aeropuertos de todo el mundo. # Instalar paquetes y llamar librerías

#install.packages("riem")
library(riem)
## Warning: package 'riem' was built under R version 4.4.3
#install.packages("tidyverse")
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.4.3
## Warning: package 'ggplot2' was built under R version 4.4.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
#install.packages("ggplot2")
library(ggplot2)
#install.packages("lubridate")
library(lubridate)

Obtener y graficar la información

# PASO 1. Buscar la red (país) - Ejemplo: México, y copiar CODE
view(riem_networks())
# PASO 2. Buscar la estación (ciudad) - Ejemplo: Monterrey, y copiar ID
view(riem_stations("MX__ASOS"))
# PASO 3. Obtener información de la estación
monterrey <- riem_measures("MMMY", date_start = "2026-02-26")
# Análisis Descriptivo
summary(monterrey)
##    station              valid                             tmpf       
##  Length:23          Min.   :2026-02-26 00:42:00.00   Min.   : 60.80  
##  Class :character   1st Qu.:2026-02-26 06:10:00.00   1st Qu.: 67.10  
##  Mode  :character   Median :2026-02-26 11:40:00.00   Median : 77.00  
##                     Mean   :2026-02-26 11:40:10.43   Mean   : 80.83  
##                     3rd Qu.:2026-02-26 17:10:00.00   3rd Qu.: 96.80  
##                     Max.   :2026-02-26 22:40:00.00   Max.   :102.20  
##                                                                      
##       dwpf            relh            drct            sknt             p01i  
##  Min.   :30.20   Min.   : 8.14   Min.   :  0.0   Min.   : 0.000   Min.   :0  
##  1st Qu.:32.00   1st Qu.:10.73   1st Qu.:100.0   1st Qu.: 3.500   1st Qu.:0  
##  Median :37.40   Median :21.77   Median :280.0   Median : 7.000   Median :0  
##  Mean   :37.95   Mean   :27.23   Mean   :202.2   Mean   : 6.739   Mean   :0  
##  3rd Qu.:43.70   3rd Qu.:41.16   3rd Qu.:300.0   3rd Qu.:10.000   3rd Qu.:0  
##  Max.   :48.20   Max.   :59.02   Max.   :330.0   Max.   :15.000   Max.   :0  
##                                                                              
##       alti            mslp           vsby            gust       skyc1          
##  Min.   :29.71   Min.   :1004   Min.   : 8.00   Min.   :14   Length:23         
##  1st Qu.:29.75   1st Qu.:1006   1st Qu.:10.00   1st Qu.:14   Class :character  
##  Median :29.77   Median :1007   Median :10.00   Median :14   Mode  :character  
##  Mean   :29.77   Mean   :1007   Mean   :11.91   Mean   :14                     
##  3rd Qu.:29.80   3rd Qu.:1008   3rd Qu.:15.00   3rd Qu.:14                     
##  Max.   :29.82   Max.   :1008   Max.   :15.00   Max.   :14                     
##                  NA's   :16                     NA's   :22                     
##   skyc2          skyc3          skyc4          skyl1          skyl2        
##  Mode:logical   Mode:logical   Mode:logical   Mode:logical   Mode:logical  
##  NA's:23        NA's:23        NA's:23        NA's:23        NA's:23       
##                                                                            
##                                                                            
##                                                                            
##                                                                            
##                                                                            
##   skyl3          skyl4         wxcodes        ice_accretion_1hr
##  Mode:logical   Mode:logical   Mode:logical   Mode:logical     
##  NA's:23        NA's:23        NA's:23        NA's:23          
##                                                                
##                                                                
##                                                                
##                                                                
##                                                                
##  ice_accretion_3hr ice_accretion_6hr peak_wind_gust peak_wind_drct
##  Mode:logical      Mode:logical      Mode:logical   Mode:logical  
##  NA's:23           NA's:23           NA's:23        NA's:23       
##                                                                   
##                                                                   
##                                                                   
##                                                                   
##                                                                   
##  peak_wind_time      feel          metar           snowdepth     
##  Mode:logical   Min.   :60.80   Length:23          Mode:logical  
##  NA's:23        1st Qu.:67.10   Class :character   NA's:23       
##                 Median :77.00   Mode  :character                 
##                 Mean   :78.50                                    
##                 3rd Qu.:91.34                                    
##                 Max.   :95.76                                    
## 
str(monterrey)
## tibble [23 × 30] (S3: tbl_df/tbl/data.frame)
##  $ station          : chr [1:23] "MMMY" "MMMY" "MMMY" "MMMY" ...
##  $ valid            : POSIXct[1:23], format: "2026-02-26 00:42:00" "2026-02-26 01:40:00" ...
##  $ tmpf             : num [1:23] 89.6 84.2 77 73.4 69.8 68 66.2 66.2 62.6 60.8 ...
##  $ dwpf             : num [1:23] 39.2 37.4 37.4 39.2 42.8 44.6 46.4 48.2 46.4 46.4 ...
##  $ relh             : num [1:23] 17.1 18.9 23.9 29 37.6 ...
##  $ drct             : num [1:23] 130 50 130 100 100 0 0 0 300 290 ...
##  $ sknt             : num [1:23] 8 10 5 4 5 0 0 0 5 7 ...
##  $ p01i             : num [1:23] 0 0 0 0 0 0 0 0 0 0 ...
##  $ alti             : num [1:23] 29.7 29.7 29.8 29.8 29.8 ...
##  $ mslp             : num [1:23] NA NA 1007 NA NA ...
##  $ vsby             : num [1:23] 15 10 10 10 10 10 10 10 10 8 ...
##  $ gust             : num [1:23] NA NA NA NA NA NA NA NA NA NA ...
##  $ skyc1            : chr [1:23] "CLR" "CLR" "CLR" "CLR" ...
##  $ skyc2            : logi [1:23] NA NA NA NA NA NA ...
##  $ skyc3            : logi [1:23] NA NA NA NA NA NA ...
##  $ skyc4            : logi [1:23] NA NA NA NA NA NA ...
##  $ skyl1            : logi [1:23] NA NA NA NA NA NA ...
##  $ skyl2            : logi [1:23] NA NA NA NA NA NA ...
##  $ skyl3            : logi [1:23] NA NA NA NA NA NA ...
##  $ skyl4            : logi [1:23] NA NA NA NA NA NA ...
##  $ wxcodes          : logi [1:23] NA NA NA NA NA NA ...
##  $ ice_accretion_1hr: logi [1:23] NA NA NA NA NA NA ...
##  $ ice_accretion_3hr: logi [1:23] NA NA NA NA NA NA ...
##  $ ice_accretion_6hr: logi [1:23] NA NA NA NA NA NA ...
##  $ peak_wind_gust   : logi [1:23] NA NA NA NA NA NA ...
##  $ peak_wind_drct   : logi [1:23] NA NA NA NA NA NA ...
##  $ peak_wind_time   : logi [1:23] NA NA NA NA NA NA ...
##  $ feel             : num [1:23] 85.7 81.4 77 73.4 69.8 ...
##  $ metar            : chr [1:23] "MMMY 260042Z 13008KT 15SM SKC 32/04 A2971" "MMMY 260140Z 05010KT 10SM SKC 29/03 A2973" "MMMY 260241Z 13005KT 10SM SKC 25/03 A2976 RMK SLP068 52027 992" "MMMY 260340Z 10004KT 10SM SKC 23/04 A2978" ...
##  $ snowdepth        : logi [1:23] NA NA NA NA NA NA ...
# Filtrar información del último mes
mty_ago_24 <- subset(monterrey, valid >= as.POSIXct("2024-08-01 00:00") &
valid <= as.POSIXct("2024-08-31 23:59"))
# Ejercicio 1: Realizar una gráfica de barras de la temperatura promedio
monterrey$temp_c <- (monterrey$tmpf - 32) * 5/9
monterrey$hora <- format(monterrey$valid, "%H:%M")

idx <- seq(1, length(monterrey$temp_c), length.out = 10)

barplot(monterrey$temp_c[idx],
        names.arg = monterrey$hora[idx],
        main = "Temperatura - Monterrey (25 Feb 2026)",
        xlab = "Hora",
        ylab = "Temperatura (°C)",
        col = "steelblue",
        las = 2)

LS0tDQp0aXRsZTogIkFzb3MiDQphdXRob3I6ICJBbnRvbmlvIEdhcmPDrWEgQWNvc3RhIEEwMTYyMTEzOSINCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiBUUlVFDQogICAgdG9jX2Zsb2F0OiBUUlVFDQogICAgY29kZV9kb3dubG9hZDogVFJVRQ0KICAgIHRoZW1lOiBkYXJrbHkNCi0tLQ0KDQohW10oaHR0cHM6Ly9lcy53aWtpcGVkaWEub3JnL3dpa2kvQXJjaGl2bzpNZXhpY29fRmxhZ19NYXAuc3ZnKQ0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IHllbGxvdzsiPkludHJvZHVjY2nDs248L3NwYW4+DQpJbmZvcm1hY2nDs24gb2J0ZW5pZGEgZGVsICpBdXRvbWF0ZWQgU3VyZmFjZSBPYnNlcnZpbmcgU3lzdGVtIChBU09TKSogZGUNCmxvcyBhZXJvcHVlcnRvcyBkZSB0b2RvIGVsIG11bmRvLg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IHllbGxvdzsiPkluc3RhbGFyIHBhcXVldGVzIHkgbGxhbWFyIGxpYnJlcsOtYXM8L3NwYW4+DQpgYGB7cn0NCiNpbnN0YWxsLnBhY2thZ2VzKCJyaWVtIikNCmxpYnJhcnkocmllbSkNCiNpbnN0YWxsLnBhY2thZ2VzKCJ0aWR5dmVyc2UiKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQojaW5zdGFsbC5wYWNrYWdlcygiZ2dwbG90MiIpDQpsaWJyYXJ5KGdncGxvdDIpDQojaW5zdGFsbC5wYWNrYWdlcygibHVicmlkYXRlIikNCmxpYnJhcnkobHVicmlkYXRlKQ0KYGBgDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogeWVsbG93OyI+T2J0ZW5lciB5IGdyYWZpY2FyIGxhIGluZm9ybWFjacOzbjwvc3Bhbj4NCmBgYHtyfQ0KIyBQQVNPIDEuIEJ1c2NhciBsYSByZWQgKHBhw61zKSAtIEVqZW1wbG86IE3DqXhpY28sIHkgY29waWFyIENPREUNCnZpZXcocmllbV9uZXR3b3JrcygpKQ0KIyBQQVNPIDIuIEJ1c2NhciBsYSBlc3RhY2nDs24gKGNpdWRhZCkgLSBFamVtcGxvOiBNb250ZXJyZXksIHkgY29waWFyIElEDQp2aWV3KHJpZW1fc3RhdGlvbnMoIk1YX19BU09TIikpDQojIFBBU08gMy4gT2J0ZW5lciBpbmZvcm1hY2nDs24gZGUgbGEgZXN0YWNpw7NuDQptb250ZXJyZXkgPC0gcmllbV9tZWFzdXJlcygiTU1NWSIsIGRhdGVfc3RhcnQgPSAiMjAyNi0wMi0yNiIpDQojIEFuw6FsaXNpcyBEZXNjcmlwdGl2bw0Kc3VtbWFyeShtb250ZXJyZXkpDQpzdHIobW9udGVycmV5KQ0KIyBGaWx0cmFyIGluZm9ybWFjacOzbiBkZWwgw7psdGltbyBtZXMNCm10eV9hZ29fMjQgPC0gc3Vic2V0KG1vbnRlcnJleSwgdmFsaWQgPj0gYXMuUE9TSVhjdCgiMjAyNC0wOC0wMSAwMDowMCIpICYNCnZhbGlkIDw9IGFzLlBPU0lYY3QoIjIwMjQtMDgtMzEgMjM6NTkiKSkNCiMgRWplcmNpY2lvIDE6IFJlYWxpemFyIHVuYSBncsOhZmljYSBkZSBiYXJyYXMgZGUgbGEgdGVtcGVyYXR1cmEgcHJvbWVkaW8NCg0KYGBgDQoNCmBgYHtyfQ0KbW9udGVycmV5JHRlbXBfYyA8LSAobW9udGVycmV5JHRtcGYgLSAzMikgKiA1LzkNCm1vbnRlcnJleSRob3JhIDwtIGZvcm1hdChtb250ZXJyZXkkdmFsaWQsICIlSDolTSIpDQoNCmlkeCA8LSBzZXEoMSwgbGVuZ3RoKG1vbnRlcnJleSR0ZW1wX2MpLCBsZW5ndGgub3V0ID0gMTApDQoNCmJhcnBsb3QobW9udGVycmV5JHRlbXBfY1tpZHhdLA0KICAgICAgICBuYW1lcy5hcmcgPSBtb250ZXJyZXkkaG9yYVtpZHhdLA0KICAgICAgICBtYWluID0gIlRlbXBlcmF0dXJhIC0gTW9udGVycmV5ICgyNSBGZWIgMjAyNikiLA0KICAgICAgICB4bGFiID0gIkhvcmEiLA0KICAgICAgICB5bGFiID0gIlRlbXBlcmF0dXJhICjCsEMpIiwNCiAgICAgICAgY29sID0gInN0ZWVsYmx1ZSIsDQogICAgICAgIGxhcyA9IDIpDQpgYGANCg0K