La información del clima se obtiene del ASOS (Automated Surface Observing System) ubicados e los aeropuertos de las ciudades del mundo. # Instalar paquetes y llamar librerías
# install.packages("riem") # sirve para accesar al ASOS para obtener datos climáticos
library(riem)
## Warning: package 'riem' was built under R version 4.3.3
# install.packages("tidyverse") #Manipulación de datos
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.3
## Warning: package 'ggplot2' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.3 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.0 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── 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") # Gráficas con mejor diseño que plot
library(ggplot2)
# install.packages("plotly")
library(plotly)
## Warning: package 'plotly' was built under R version 4.3.3
##
## Attaching package: 'plotly'
##
## The following object is masked from 'package:ggplot2':
##
## last_plot
##
## The following object is masked from 'package:stats':
##
## filter
##
## The following object is masked from 'package:graphics':
##
## layout
view(riem_networks()) #todos los install deben ir con gato
# MX__ASOS
# view(riem_stations("MX__ASOS"))
# MMMY
clima_mty <- riem_measures("MMMY")
clima_mty_feb <- subset(clima_mty, valid >= as.POSIXct("2024-02-01 00:000") & valid <= as.POSIXct("2024-02-29 23:59"))
str(clima_mty_feb)
## tibble [713 × 32] (S3: tbl_df/tbl/data.frame)
## $ station : chr [1:713] "MMMY" "MMMY" "MMMY" "MMMY" ...
## $ valid : POSIXct[1:713], format: "2024-02-01 06:40:00" "2024-02-01 07:04:00" ...
## $ lon : num [1:713] -100 -100 -100 -100 -100 ...
## $ lat : num [1:713] 25.8 25.8 25.8 25.8 25.8 ...
## $ tmpf : num [1:713] 57.2 55.4 57.2 59 64.4 66.2 69.8 73.4 75.2 77 ...
## $ dwpf : num [1:713] 55.4 55.4 55.4 57.2 57.2 57.2 57.2 57.2 57.2 57.2 ...
## $ relh : num [1:713] 93.7 100 93.7 93.7 77.5 ...
## $ drct : num [1:713] 110 0 0 210 0 30 120 110 150 130 ...
## $ sknt : num [1:713] 3 0 0 3 0 4 4 8 5 8 ...
## $ p01i : num [1:713] 0 0 0 0 0 0 0 0 0 0 ...
## $ alti : num [1:713] 30.1 30.1 30.1 30.1 30.1 ...
## $ mslp : num [1:713] NA NA NA NA NA NA NA NA NA NA ...
## $ vsby : num [1:713] 8 2 1.5 2 4 4 5 5 5 7 ...
## $ gust : num [1:713] NA NA NA NA NA NA NA NA NA NA ...
## $ skyc1 : chr [1:713] "BKN" "BKN" "BKN" "BKN" ...
## $ skyc2 : chr [1:713] NA NA "OVC" "OVC" ...
## $ skyc3 : chr [1:713] NA NA NA NA ...
## $ skyc4 : chr [1:713] NA NA NA NA ...
## $ skyl1 : num [1:713] 2000 500 500 500 7000 3500 NA NA NA NA ...
## $ skyl2 : num [1:713] NA NA 1000 1000 NA NA NA NA NA NA ...
## $ skyl3 : num [1:713] NA NA NA NA NA NA NA NA NA NA ...
## $ skyl4 : num [1:713] NA NA NA NA NA NA NA NA NA NA ...
## $ wxcodes : chr [1:713] NA "BR" "BR" "BR" ...
## $ ice_accretion_1hr: logi [1:713] NA NA NA NA NA NA ...
## $ ice_accretion_3hr: logi [1:713] NA NA NA NA NA NA ...
## $ ice_accretion_6hr: logi [1:713] NA NA NA NA NA NA ...
## $ peak_wind_gust : logi [1:713] NA NA NA NA NA NA ...
## $ peak_wind_drct : logi [1:713] NA NA NA NA NA NA ...
## $ peak_wind_time : logi [1:713] NA NA NA NA NA NA ...
## $ feel : num [1:713] 57.2 55.4 57.2 59 64.4 66.2 69.8 73.4 75.2 77 ...
## $ metar : chr [1:713] "MMMY 011240Z 11003KT 8SM BKN020 14/13 A3007 RMK 8/500" "MMMY 011304Z 00000KT 2SM BR BKN005 13/13 A3007 RMK 8/500" "MMMY 011340Z 00000KT 1 1/2SM BR BKN005 OVC010 14/13 A3007 RMK 8/5//" "MMMY 011445Z 21003KT 2SM BR BKN005 OVC010 15/14 A3008 RMK SLP/// 5//// 9// 8/5// BINOVC" ...
## $ snowdepth : logi [1:713] NA NA NA NA NA NA ...
plot(clima_mty_feb$valid,clima_mty_feb$relh,type="l",main="Humedad Relativa en Monterrey durante Febrero 2024", xlab="Fecha", ylab="Humedad Relativa (%)")
#Promediar Humedad Relativa Diaria
clima_mty_feb$date <- as.Date(clima_mty_feb$valid)
#Agregamos columna que no exisitía, la cual se fue hasta final llamada Date
cmfd <- aggregate(clima_mty_feb, by=list(date=clima_mty_feb$date), FUN=mean)
str(cmfd)
## 'data.frame': 30 obs. of 34 variables:
## $ date : Date, format: "2024-02-01" "2024-02-02" ...
## $ station : num NA NA NA NA NA NA NA NA NA NA ...
## $ valid : POSIXct, format: "2024-02-01 14:44:41" "2024-02-02 12:10:37" ...
## $ lon : num -100 -100 -100 -100 -100 ...
## $ lat : num 25.8 25.8 25.8 25.8 25.8 ...
## $ tmpf : num 67.3 70.4 72.2 69.3 65.7 ...
## $ dwpf : num 56.2 55 42.4 27.6 26.2 ...
## $ relh : num 69.5 62.9 45.5 29 23.7 ...
## $ drct : num 97.4 134.6 188.8 281.7 297.5 ...
## $ sknt : num 4.79 5 11.08 9.71 8.29 ...
## $ p01i : num 0 0 0 0 0 0 0 0 0 0 ...
## $ alti : num 30 29.7 29.6 29.8 30.1 ...
## $ mslp : num NA NA NA NA NA NA NA NA NA NA ...
## $ vsby : num 5.71 7.67 12.12 11.88 11.29 ...
## $ gust : num NA NA NA NA NA NA NA NA NA NA ...
## $ skyc1 : num NA NA NA NA NA NA NA NA NA NA ...
## $ skyc2 : num NA NA NA NA NA NA NA NA NA NA ...
## $ skyc3 : num NA NA NA NA NA NA NA NA NA NA ...
## $ skyc4 : num NA NA NA NA NA NA NA NA NA NA ...
## $ skyl1 : num NA NA NA NA NA ...
## $ skyl2 : num NA NA NA NA NA NA NA NA NA NA ...
## $ skyl3 : num NA NA NA NA NA NA NA NA NA NA ...
## $ skyl4 : num NA NA NA NA NA NA NA NA NA NA ...
## $ wxcodes : num NA NA NA NA NA NA NA NA NA NA ...
## $ ice_accretion_1hr: num NA NA NA NA NA NA NA NA NA NA ...
## $ ice_accretion_3hr: num NA NA NA NA NA NA NA NA NA NA ...
## $ ice_accretion_6hr: num NA NA NA NA NA NA NA NA NA NA ...
## $ peak_wind_gust : num NA NA NA NA NA NA NA NA NA NA ...
## $ peak_wind_drct : num NA NA NA NA NA NA NA NA NA NA ...
## $ peak_wind_time : num NA NA NA NA NA NA NA NA NA NA ...
## $ feel : num 67.3 70 71.2 68.6 65.7 ...
## $ metar : num NA NA NA NA NA NA NA NA NA NA ...
## $ snowdepth : num NA NA NA NA NA NA NA NA NA NA ...
## $ date : Date, format: "2024-02-01" "2024-02-02" ...
# Graficar la Humedad Relativa promedio por día
plot(cmfd$date,cmfd$relh,type="l",main="Humedad Relativa en Monterrey durante Febrero 2024", xlab="Fecha", ylab="Humedad Relativa (%)")
#Primero debemos obtener los datos de sólo 2024
clima_pue <- riem_measures("MMPB")
clima_pue_feb <- subset(clima_pue, valid >= as.POSIXct("2024-02-01 00:000") & valid <= as.POSIXct("2024-02-29 23:59"))
#Agregar tabla del clima en Celcius
clima_pue_feb$centi <- clima_pue_feb$tmpf-32*0.5556
cmfp <- aggregate(clima_pue_feb, by=list(centi=clima_pue_feb$centi), FUN=mean)
cmfp$date <- as.Date(cmfp$valid)
# Gradicar la Humedad Relativa promedio por día
plot(cmfp$date,cmfp$centi.1,type="l",main="temperatura promedio diaria durante febrero 2024 en Puebla", xlab="Temperatura Promedio (%)", ylab="Fecha")
En este ejercicio se hizo de ASOS (Automated Surface Observing System), plataforma que funciona como una red de estaciones meteorológicas automatizadas. Está diseñada para funcionar en aeropuertos, tanto grandes como pequeños, pero también proporciona información valiosa para la investigación meteorológica, hidrológica y climatológica. Además de la instalación de distintas librerias como ser tidyverse, ggplot2 y plotly, para así obtener datos de distintos paises, ciudades y obtener pronósticos o estadísticas de temperatura, cambios de humedad, etc.
Este modelo será de utilidad y podrá ser usada para la toma de decisiones de distintas aerolineas, servicios de transporte y hasta de hoteles varios.