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)
# Source - https://stackoverflow.com/a/59797619
# Posted by Ronak Shah
# Retrieved 2026-02-26, License - CC BY-SA 4.0
library(dplyr)
# 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("AR__ASOS"))
# PASO 3. Obtener información de la estación
buenos_aires <- riem_measures("SAEZ", date_start = "2026-01-01")
# Análisis Descriptivo
summary(buenos_aires)
## station valid tmpf
## Length:1398 Min. :2026-01-01 00:00:00 Min. : 46.40
## Class :character 1st Qu.:2026-01-15 08:15:00 1st Qu.: 69.80
## Mode :character Median :2026-01-29 08:30:00 Median : 75.20
## Mean :2026-01-29 06:16:17 Mean : 76.05
## 3rd Qu.:2026-02-12 09:45:00 3rd Qu.: 84.20
## Max. :2026-02-25 23:00:00 Max. :102.20
## NA's :1
## dwpf relh drct sknt p01i
## Min. :32.00 Min. : 15.50 Min. : 0.0 Min. : 0.000 Min. :0
## 1st Qu.:53.60 1st Qu.: 39.36 1st Qu.: 70.0 1st Qu.: 5.000 1st Qu.:0
## Median :60.80 Median : 58.16 Median :130.0 Median : 7.000 Median :0
## Mean :58.18 Mean : 58.63 Mean :143.7 Mean : 7.431 Mean :0
## 3rd Qu.:64.40 3rd Qu.: 77.15 3rd Qu.:200.0 3rd Qu.: 9.000 3rd Qu.:0
## Max. :75.20 Max. :100.00 Max. :360.0 Max. :608.000 Max. :0
## NA's :1 NA's :1 NA's :28
## alti mslp vsby gust
## Min. :29.59 Mode:logical Min. :0.06 Min. :18.00
## 1st Qu.:29.83 NA's:1398 1st Qu.:6.21 1st Qu.:20.50
## Median :29.91 Median :6.21 Median :22.00
## Mean :29.90 Mean :5.97 Mean :23.52
## 3rd Qu.:29.97 3rd Qu.:6.21 3rd Qu.:24.00
## Max. :30.21 Max. :6.21 Max. :37.00
## NA's :1 NA's :1371
## skyc1 skyc2 skyc3 skyc4
## Length:1398 Length:1398 Length:1398 Length:1398
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
##
## skyl1 skyl2 skyl3 skyl4
## Min. : 100 Min. : 800 Min. : 3000 Min. :6000
## 1st Qu.:1000 1st Qu.: 4700 1st Qu.: 5000 1st Qu.:6000
## Median :2400 Median : 7000 Median : 7000 Median :6000
## Mean :2453 Mean : 8509 Mean : 9619 Mean :6000
## 3rd Qu.:4000 3rd Qu.:10000 3rd Qu.:17500 3rd Qu.:6000
## Max. :5000 Max. :20000 Max. :20000 Max. :6000
## NA's :1120 NA's :1264 NA's :1356 NA's :1395
## wxcodes ice_accretion_1hr ice_accretion_3hr ice_accretion_6hr
## Length:1398 Mode:logical Mode:logical Mode:logical
## Class :character NA's:1398 NA's:1398 NA's:1398
## Mode :character
##
##
##
##
## peak_wind_gust peak_wind_drct peak_wind_time feel
## Mode:logical Mode:logical Mode:logical Min. : 46.40
## NA's:1398 NA's:1398 NA's:1398 1st Qu.: 69.80
## Median : 75.20
## Mean : 76.01
## 3rd Qu.: 83.62
## Max. :101.09
## NA's :1
## metar snowdepth
## Length:1398 Mode:logical
## Class :character NA's:1398
## Mode :character
##
##
##
##
str(buenos_aires)
## tibble [1,398 × 30] (S3: tbl_df/tbl/data.frame)
## $ station : chr [1:1398] "SAEZ" "SAEZ" "SAEZ" "SAEZ" ...
## $ valid : POSIXct[1:1398], format: "2026-01-01 00:00:00" "2026-01-01 01:00:00" ...
## $ tmpf : num [1:1398] 84.2 86 84.2 80.6 75.2 71.6 71.6 71.6 68 66.2 ...
## $ dwpf : num [1:1398] 62.6 59 64.4 59 60.8 59 57.2 60.8 60.8 53.6 ...
## $ relh : num [1:1398] 48.4 40.2 51.5 47.9 61 ...
## $ drct : num [1:1398] 330 310 180 200 210 150 190 180 170 150 ...
## $ sknt : num [1:1398] 5 4 11 13 11 10 5 10 11 6 ...
## $ p01i : num [1:1398] 0 0 0 0 0 0 0 0 0 0 ...
## $ alti : num [1:1398] 29.7 29.7 29.7 29.8 29.8 ...
## $ mslp : logi [1:1398] NA NA NA NA NA NA ...
## $ vsby : num [1:1398] 6.21 6.21 6.21 6.21 3.11 4.35 6.21 6.21 6.21 6.21 ...
## $ gust : num [1:1398] NA NA NA 29 NA NA NA 20 NA NA ...
## $ skyc1 : chr [1:1398] NA "FEW" "FEW" "FEW" ...
## $ skyc2 : chr [1:1398] NA "FEW" "FEW" "BKN" ...
## $ skyc3 : chr [1:1398] NA "BKN" "BKN" NA ...
## $ skyc4 : chr [1:1398] NA NA NA NA ...
## $ skyl1 : num [1:1398] NA 300 300 5000 5000 700 NA NA NA NA ...
## $ skyl2 : num [1:1398] NA 5000 5000 6000 6000 5000 NA NA NA NA ...
## $ skyl3 : num [1:1398] NA 6000 6000 NA NA 3000 NA NA NA NA ...
## $ skyl4 : num [1:1398] NA NA NA NA NA 6000 NA NA NA NA ...
## $ wxcodes : chr [1:1398] NA NA NA NA ...
## $ ice_accretion_1hr: logi [1:1398] NA NA NA NA NA NA ...
## $ ice_accretion_3hr: logi [1:1398] NA NA NA NA NA NA ...
## $ ice_accretion_6hr: logi [1:1398] NA NA NA NA NA NA ...
## $ peak_wind_gust : logi [1:1398] NA NA NA NA NA NA ...
## $ peak_wind_drct : logi [1:1398] NA NA NA NA NA NA ...
## $ peak_wind_time : logi [1:1398] NA NA NA NA NA NA ...
## $ feel : num [1:1398] 85 85.5 85.7 81.1 75.2 ...
## $ metar : chr [1:1398] "SAEZ 010000Z 33005KT CAVOK 29/17 Q1005 NOSIG" "SAEZ 010100Z 31004KT 9999 FEW003 FEW050CB BKN060 30/15 Q1006 NOSIG" "SAEZ 010139Z 18011KT 150V210 9999 FEW003 FEW050CB BKN060 29/18 Q1007 TEMPO 5000 TSRA FEW050CB" "SAEZ 010200Z 20013G29KT 9999 FEW050CB BKN060 27/15 Q1009 TEMPO 5000 TSRA FEW050CB" ...
## $ snowdepth : logi [1:1398] NA NA NA NA NA NA ...
# Filtrar información del último mes
buenos_aires_ene_26 <- subset(buenos_aires, valid >= as.POSIXct("2026-01-01 00:00") & valid <= as.POSIXct("2026-01-31 23:59"))
# Ejercicio 1: Realizar una gráfica de barras de la temperatura promedio diario en Enero en Buenos Aires en °C.
ggplot(buenos_aires_ene_26, aes(x = valid, y = tmpf)) +
geom_col(fill = "cyan") +
geom_point(color = "blue") +
labs(title = "Temperatura Promedio Diaria en Buenos Aires (Enero 2026)",
x = "Día",
y = "Temperaura (F)")