Información obtenida del Automated Surface Observing System (ASOS) de los aeropuertos de todo el mundo.
#install.packages("riem")
library(riem)
# install.packages("tidyverse")
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.2.0 ✔ readr 2.1.6
## ✔ forcats 1.0.1 ✔ stringr 1.6.0
## ✔ ggplot2 4.0.2 ✔ tibble 3.3.1
## ✔ lubridate 1.9.5 ✔ tidyr 1.3.2
## ✔ purrr 1.2.1
## ── 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)
# 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
ciudad_victoria <- riem_measures("MMCV", date_start = "2026-01-01", date_end = "2026-01-31")
# Análisis Descriptivo
summary(ciudad_victoria)
## station valid tmpf
## Length:469 Min. :2026-01-01 00:40:00 Min. :32.00
## Class :character 1st Qu.:2026-01-08 19:40:00 1st Qu.:57.20
## Mode :character Median :2026-01-16 13:40:00 Median :66.20
## Mean :2026-01-16 08:02:00 Mean :66.16
## 3rd Qu.:2026-01-23 18:40:00 3rd Qu.:75.20
## Max. :2026-01-30 23:40:00 Max. :89.60
##
## dwpf relh drct sknt p01i
## Min. :19.40 Min. : 19.73 Min. : 0.0 Min. : 0.000 Min. :0
## 1st Qu.:37.40 1st Qu.: 41.71 1st Qu.:130.0 1st Qu.: 4.000 1st Qu.:0
## Median :50.00 Median : 54.63 Median :180.0 Median : 6.000 Median :0
## Mean :48.63 Mean : 56.84 Mean :198.7 Mean : 6.603 Mean :0
## 3rd Qu.:60.80 3rd Qu.: 69.19 3rd Qu.:320.0 3rd Qu.: 9.000 3rd Qu.:0
## Max. :68.00 Max. :100.00 Max. :360.0 Max. :21.000 Max. :0
##
## alti mslp vsby gust
## Min. :29.67 Min. :1004 Min. : 0.000 Min. :13.00
## 1st Qu.:29.95 1st Qu.:1014 1st Qu.: 8.000 1st Qu.:18.00
## Median :30.11 Median :1019 Median :10.000 Median :20.00
## Mean :30.12 Mean :1020 Mean : 8.705 Mean :20.75
## 3rd Qu.:30.28 3rd Qu.:1025 3rd Qu.:10.000 3rd Qu.:23.25
## Max. :30.62 Max. :1037 Max. :12.000 Max. :31.00
## NA's :308 NA's :381
## skyc1 skyc2 skyc3 skyc4
## Length:469 Length:469 Length:469 Mode:logical
## Class :character Class :character Class :character NA's:469
## Mode :character Mode :character Mode :character
##
##
##
##
## skyl1 skyl2 skyl3 skyl4
## Min. : 500 Min. : 1000 Min. :20000 Mode:logical
## 1st Qu.: 2000 1st Qu.:10000 1st Qu.:20000 NA's:469
## Median : 7000 Median :20000 Median :20000
## Mean : 9193 Mean :14550 Mean :20000
## 3rd Qu.:20000 3rd Qu.:20000 3rd Qu.:20000
## Max. :25000 Max. :25000 Max. :20000
## NA's :90 NA's :318 NA's :464
## wxcodes ice_accretion_1hr ice_accretion_3hr ice_accretion_6hr
## Length:469 Mode:logical Mode:logical Mode:logical
## Class :character NA's:469 NA's:469 NA's:469
## Mode :character
##
##
##
##
## peak_wind_gust peak_wind_drct peak_wind_time feel
## Mode:logical Mode:logical Mode:logical Min. :27.70
## NA's:469 NA's:469 NA's:469 1st Qu.:57.20
## Median :66.20
## Mean :65.95
## 3rd Qu.:75.20
## Max. :91.47
##
## metar snowdepth
## Length:469 Mode:logical
## Class :character NA's:469
## Mode :character
##
##
##
##
str(ciudad_victoria)
## tibble [469 × 30] (S3: tbl_df/tbl/data.frame)
## $ station : chr [1:469] "MMCV" "MMCV" "MMCV" "MMCV" ...
## $ valid : POSIXct[1:469], format: "2026-01-01 00:40:00" "2026-01-01 01:40:00" ...
## $ tmpf : num [1:469] 60.8 55.4 44.6 42.8 44.6 55.4 62.6 73.4 75.2 77 ...
## $ dwpf : num [1:469] 44.6 46.4 41 41 42.8 48.2 50 55.4 55.4 55.4 ...
## $ relh : num [1:469] 55.1 71.7 87.1 93.3 93.3 ...
## $ drct : num [1:469] 200 230 210 260 250 0 90 190 140 180 ...
## $ sknt : num [1:469] 5 4 3 3 4 0 4 8 12 10 ...
## $ p01i : num [1:469] 0 0 0 0 0 0 0 0 0 0 ...
## $ alti : num [1:469] 30.2 30.2 30.1 30.1 30.1 ...
## $ mslp : num [1:469] NA NA 1020 NA NA ...
## $ vsby : num [1:469] 10 10 5 7 10 10 10 10 10 10 ...
## $ gust : num [1:469] NA NA NA NA NA NA NA 20 22 NA ...
## $ skyc1 : chr [1:469] "SCT" "SCT" "CLR" "SCT" ...
## $ skyc2 : chr [1:469] NA NA NA NA ...
## $ skyc3 : chr [1:469] NA NA NA NA ...
## $ skyc4 : logi [1:469] NA NA NA NA NA NA ...
## $ skyl1 : num [1:469] 20000 20000 NA 20000 10000 20000 20000 20000 20000 20000 ...
## $ skyl2 : num [1:469] NA NA NA NA 20000 NA NA NA NA NA ...
## $ skyl3 : num [1:469] NA NA NA NA NA NA NA NA NA NA ...
## $ skyl4 : logi [1:469] NA NA NA NA NA NA ...
## $ wxcodes : chr [1:469] NA NA NA NA ...
## $ ice_accretion_1hr: logi [1:469] NA NA NA NA NA NA ...
## $ ice_accretion_3hr: logi [1:469] NA NA NA NA NA NA ...
## $ ice_accretion_6hr: logi [1:469] NA NA NA NA NA NA ...
## $ peak_wind_gust : logi [1:469] NA NA NA NA NA NA ...
## $ peak_wind_drct : logi [1:469] NA NA NA NA NA NA ...
## $ peak_wind_time : logi [1:469] NA NA NA NA NA NA ...
## $ feel : num [1:469] 60.8 55.4 43.1 41 42.1 ...
## $ metar : chr [1:469] "MMCV 010040Z 20005KT 10SM SCT200 16/07 A3020 RMK 8/002" "MMCV 010140Z 23004KT 10SM SCT200 13/08 A3020 RMK 8/002" "MMCV 011156Z 21003KT 5SM SKC 07/05 A3013 RMK SLP199 57006 994 RTS" "MMCV 011241Z 26003KT 7SM SCT200 06/05 A3014 RMK 8/002 ISOL AS" ...
## $ snowdepth : logi [1:469] NA NA NA NA NA NA ...
# Filtrar información del último mes
CDV_ene_26 <- subset(ciudad_victoria, 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 diario en agosto en Monterrey en °C.
ciudad_victoria$temp_c <- (ciudad_victoria$tmpf - 32) * 5/9
ciudad_victoria$hora <- format(ciudad_victoria$valid, "%H:00")
# Promedio por hora
temp_hora <- aggregate(temp_c ~ hora, data = ciudad_victoria, FUN = mean, na.rm = TRUE)
barplot(temp_hora$temp_c,
names.arg = temp_hora$hora,
main = "Temperatura Promedio por Hora - Ciudad Victoria Enero 2026",
xlab = "Hora",
ylab = "Temperatura (°C)",
col = "gray",
las = 2)
Durante enero de 2026, Ciudad Victoria presentó temperaturas mínimas alrededor de los 12°C entre las 11:00 y 13:00 horas, y máximas de aproximadamente 24°C entre las 17:00 y 21:00 horas, lo que refleja una amplitud térmica de cerca de 12°C típica de los meses de invierno en la región. El patrón muestra un calentamiento progresivo a lo largo del día conforme el sol calienta la superficie, alcanzando su pico por la tarde antes de comenzar a descender por la noche. Cabe destacar que la estación no registró datos entre las 03:00 y 10:00 horas, por lo que el comportamiento en ese intervalo no puede analizarse.