Teoría

La información del clima se obtiene del ASOS (Automated Surface Observing System) ubicados en los aeropuertos de todas las ciudades del mundo.

Instalar paquetes y llamar librerías

# install.packages("riem") # Accesar al ASOS para obtener datos climáticos 
library(riem)
# install.packages("tidyverse") # Manipulacion 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
## Warning: package 'dplyr' was built under R version 4.3.3
## Warning: package 'lubridate' was built under R version 4.3.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.0     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ 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") # Gráficas con mejor calidad
library(plotly)
## 
## 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
# install.packages("dplyr)
library(dplyr)

Paso 1. Buscar la red del país (México) y copiar CODE

# View(riem_networks())
# MX__ASOS

Paso 2. Buscar la estación o ciudad (Monterrey)

# View(riem_stations("MX__ASOS"))
# MMMY

Paso 3. Obtener datos del clima

clima_mty <- riem_measures("MMMY")

Ejercicio 1. Obtener datos del clima de Monterrey de Febrero 2024

clima_mty_feb <- subset(clima_mty, valid >= as.POSIXct("2024-02-01 00:00") & valid <= as.POSIXct("2024-02-29 23:59"))

Ejercicio 2. Graficar la Humedad Relativa en Monterrey durante Febrero 2024

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)

cmfd <- aggregate(clima_mty_feb$relh, by=list(date = clima_mty_feb$date), FUN=mean)

# Graficar la Humedad Relativa promedio por día 
plot(cmfd$date,cmfd$x, type = "l" ,main = "Promedio Diario de Humedad Relativa en Monterrey durante Febrero 2024", xlab = "Fecha", ylab = "Humedad Relativa (%)")

Ejercicio 3. Graficar la Temperatura (°C) Promedio Diaria en Puebla durante Febrero 2024.

# Paso 1. Buscar la red del país (México) y copiar CODE
#View(riem_networks())
# MX__ASOS

# Paso 2. Buscar la estación o ciudad (Puebla) y copiar CODE
#View(riem_stations("MX__ASOS"))
# MMPB

# Paso 3. Obtener datos del clima de la ciudad 
clima_puebla <- riem_measures("MMPB")

# Paso 4. Obtener datos del clima de Puebla en febrero
clima_pue_feb <- subset(clima_puebla, valid >= as.POSIXct("2024-02-01 00:00") & valid <= as.POSIXct("2024-02-29 23:59"))

# Paso 5. Convertir temperatura en farenheit a celcius 
clima_pue_feb <- clima_pue_feb %>%  mutate(tmpc = (tmpf - 32) * (5/9))

# Promediar la temperatura Celsius por día
promedio_diario <- aggregate(clima_pue_feb$tmpc,by = list(date = as.Date(clima_pue_feb$valid)), FUN = mean)

plot(promedio_diario$date,promedio_diario$x, type = "l",main = "Promedio Diario de temperatura en Puebla durante Febrero 2024", xlab = "Fecha", ylab = " Temperatura (°C)" )

```

Conclusiones

Gracias a este trabajo aprendí que se puede utilizar el lenguaje de programación R para trabajar con sistemas como ASOS que muestran datos climáticos con el fin de poder realizar distintos análisis específicos para diferentes ciudades, en este caso, Monterrey y Puebla.

Es importante recordar que siempre es necesario instalar nuestros paquetes y llamar a las librerías al momento de utilizar R para que todo funcione correctamente. Durante este trabajo se utilizaron diversas librerías como “tidyverse”, “ggplot2”, “riem”, “plotly” y “dplyr” para manipular y visualizar los datos climáticos obtenidos de mejor manera.

La ciudad de Monterrey inició el mes de febrero con un porcentaje de humedad relativa baja que subió con el paso del tiempo. Normalmente, ciudades como Monterrey inician con frentes fríos los meses como febrero y con el paso del tiempo las temperaturas suelen elevarse por lo que esto puede aumentar la evaporación y, por lo tanto, elevar la humedad relativa a mediados y finales del mes en la ciudad. Al analizar los datos obtenidos, se observa un porcentaje de humedad relativa menor al 30% en febrero 5, mientras que en febrero 17-18 se muestra un porcentaje de humedad relativa del 90% en la ciudad de Monterrey.

La ciudad de Puebla tiene disminuciones en su temperatura a partir de mitad del mes de febrero en adelante. Los frentes fríos que se presentan en los inicios del mes como febrero en ciudades del norte del país suelen llegar un poco más tarde a ciudades que se encuentran más al sur del país. Podemos observar que Puebla presenta una temperatura promedio de 17°C en febrero 3, mientras que en febrero 17 presenta una temperatura promedio de 9°C.

LS0tDQp0aXRsZTogIkNsaW1hIg0KYXV0aG9yOiAiQWRyacOhbiBHYXJ6YSAtIEEwMTI4NTQxMiINCmRhdGU6ICIyMDI0LTAyLTI5Ig0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IFRSVUUNCiAgICB0b2NfZmxvYXQ6IFRSVUUNCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFDQogICAgdGhlbWU6IGRhcmsNCi0tLQ0KDQohW10oQzpcXFVzZXJzXFxCb290Q2FtcFxcRG93bmxvYWRzXFxjbGltYS53ZWJwKQ0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogeWVsbG93OyI+VGVvcsOtYTwvc3Bhbj4gDQpMYSBpbmZvcm1hY2nDs24gZGVsIGNsaW1hIHNlIG9idGllbmUgZGVsICoqQVNPUyoqICgqQXV0b21hdGVkIFN1cmZhY2UgT2JzZXJ2aW5nIFN5c3RlbSopIHViaWNhZG9zIGVuIGxvcyBhZXJvcHVlcnRvcyBkZSB0b2RhcyBsYXMgY2l1ZGFkZXMgZGVsIG11bmRvLiANCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IHllbGxvdzsiPkluc3RhbGFyIHBhcXVldGVzIHkgbGxhbWFyIGxpYnJlcsOtYXMgPC9zcGFuPiANCmBgYHtyfQ0KIyBpbnN0YWxsLnBhY2thZ2VzKCJyaWVtIikgIyBBY2Nlc2FyIGFsIEFTT1MgcGFyYSBvYnRlbmVyIGRhdG9zIGNsaW3DoXRpY29zIA0KbGlicmFyeShyaWVtKQ0KIyBpbnN0YWxsLnBhY2thZ2VzKCJ0aWR5dmVyc2UiKSAjIE1hbmlwdWxhY2lvbiBkZSBkYXRvcw0KbGlicmFyeSh0aWR5dmVyc2UpDQojIGluc3RhbGwucGFja2FnZXMoImdncGxvdDIiKSAjIEdyw6FmaWNhcyBjb24gbWVqb3IgZGlzZcOxbyBxdWUgcGxvdCANCmxpYnJhcnkoZ2dwbG90MikNCiMgaW5zdGFsbC5wYWNrYWdlcygicGxvdGx5IikgIyBHcsOhZmljYXMgY29uIG1lam9yIGNhbGlkYWQNCmxpYnJhcnkocGxvdGx5KQ0KIyBpbnN0YWxsLnBhY2thZ2VzKCJkcGx5cikNCmxpYnJhcnkoZHBseXIpDQpgYGANCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IHllbGxvdzsiPlBhc28gMS4gQnVzY2FyIGxhIHJlZCBkZWwgcGHDrXMgKE3DqXhpY28pIHkgY29waWFyIENPREUgPC9zcGFuPiANCmBgYHtyfQ0KIyBWaWV3KHJpZW1fbmV0d29ya3MoKSkNCiMgTVhfX0FTT1MNCmBgYA0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogeWVsbG93OyI+UGFzbyAyLiBCdXNjYXIgbGEgZXN0YWNpw7NuIG8gY2l1ZGFkIChNb250ZXJyZXkpIDwvc3Bhbj4gDQpgYGB7cn0NCiMgVmlldyhyaWVtX3N0YXRpb25zKCJNWF9fQVNPUyIpKQ0KIyBNTU1ZDQpgYGANCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IHllbGxvdzsiPlBhc28gMy4gT2J0ZW5lciBkYXRvcyBkZWwgY2xpbWEgPC9zcGFuPiANCmBgYHtyfQ0KY2xpbWFfbXR5IDwtIHJpZW1fbWVhc3VyZXMoIk1NTVkiKQ0KYGBgDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiB5ZWxsb3c7Ij5FamVyY2ljaW8gMS4gT2J0ZW5lciBkYXRvcyBkZWwgY2xpbWEgZGUgTW9udGVycmV5IGRlIEZlYnJlcm8gMjAyNCA8L3NwYW4+IA0KYGBge3J9DQpjbGltYV9tdHlfZmViIDwtIHN1YnNldChjbGltYV9tdHksIHZhbGlkID49IGFzLlBPU0lYY3QoIjIwMjQtMDItMDEgMDA6MDAiKSAmIHZhbGlkIDw9IGFzLlBPU0lYY3QoIjIwMjQtMDItMjkgMjM6NTkiKSkNCmBgYA0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogeWVsbG93OyI+RWplcmNpY2lvIDIuIEdyYWZpY2FyIGxhIEh1bWVkYWQgUmVsYXRpdmEgZW4gTW9udGVycmV5IGR1cmFudGUgRmVicmVybyAyMDI0PC9zcGFuPiANCmBgYHtyfQ0KcGxvdChjbGltYV9tdHlfZmViJHZhbGlkLGNsaW1hX210eV9mZWIkcmVsaCwgdHlwZSA9ICJsIiAsbWFpbiA9ICJIdW1lZGFkIFJlbGF0aXZhIGVuIE1vbnRlcnJleSBkdXJhbnRlIEZlYnJlcm8gMjAyNCIsIHhsYWIgPSAiRmVjaGEiLCB5bGFiID0gIkh1bWVkYWQgUmVsYXRpdmEgKCUpIikNCg0KIyBQcm9tZWRpYXIgSHVtZWRhZCBSZWxhdGl2YSBkaWFyaWEgDQpjbGltYV9tdHlfZmViJGRhdGUgPC0gYXMuRGF0ZShjbGltYV9tdHlfZmViJHZhbGlkKQ0KDQpjbWZkIDwtIGFnZ3JlZ2F0ZShjbGltYV9tdHlfZmViJHJlbGgsIGJ5PWxpc3QoZGF0ZSA9IGNsaW1hX210eV9mZWIkZGF0ZSksIEZVTj1tZWFuKQ0KDQojIEdyYWZpY2FyIGxhIEh1bWVkYWQgUmVsYXRpdmEgcHJvbWVkaW8gcG9yIGTDrWEgDQpwbG90KGNtZmQkZGF0ZSxjbWZkJHgsIHR5cGUgPSAibCIgLG1haW4gPSAiUHJvbWVkaW8gRGlhcmlvIGRlIEh1bWVkYWQgUmVsYXRpdmEgZW4gTW9udGVycmV5IGR1cmFudGUgRmVicmVybyAyMDI0IiwgeGxhYiA9ICJGZWNoYSIsIHlsYWIgPSAiSHVtZWRhZCBSZWxhdGl2YSAoJSkiKQ0KYGBgDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiB5ZWxsb3c7Ij5FamVyY2ljaW8gMy4gR3JhZmljYXIgbGEgVGVtcGVyYXR1cmEgKMKwQykgUHJvbWVkaW8gRGlhcmlhIGVuIFB1ZWJsYSBkdXJhbnRlIEZlYnJlcm8gMjAyNC4gPC9zcGFuPiANCmBgYHtyfQ0KIyBQYXNvIDEuIEJ1c2NhciBsYSByZWQgZGVsIHBhw61zIChNw6l4aWNvKSB5IGNvcGlhciBDT0RFDQojVmlldyhyaWVtX25ldHdvcmtzKCkpDQojIE1YX19BU09TDQoNCiMgUGFzbyAyLiBCdXNjYXIgbGEgZXN0YWNpw7NuIG8gY2l1ZGFkIChQdWVibGEpIHkgY29waWFyIENPREUNCiNWaWV3KHJpZW1fc3RhdGlvbnMoIk1YX19BU09TIikpDQojIE1NUEINCg0KIyBQYXNvIDMuIE9idGVuZXIgZGF0b3MgZGVsIGNsaW1hIGRlIGxhIGNpdWRhZCANCmNsaW1hX3B1ZWJsYSA8LSByaWVtX21lYXN1cmVzKCJNTVBCIikNCg0KIyBQYXNvIDQuIE9idGVuZXIgZGF0b3MgZGVsIGNsaW1hIGRlIFB1ZWJsYSBlbiBmZWJyZXJvDQpjbGltYV9wdWVfZmViIDwtIHN1YnNldChjbGltYV9wdWVibGEsIHZhbGlkID49IGFzLlBPU0lYY3QoIjIwMjQtMDItMDEgMDA6MDAiKSAmIHZhbGlkIDw9IGFzLlBPU0lYY3QoIjIwMjQtMDItMjkgMjM6NTkiKSkNCg0KIyBQYXNvIDUuIENvbnZlcnRpciB0ZW1wZXJhdHVyYSBlbiBmYXJlbmhlaXQgYSBjZWxjaXVzIA0KY2xpbWFfcHVlX2ZlYiA8LSBjbGltYV9wdWVfZmViICU+JSAgbXV0YXRlKHRtcGMgPSAodG1wZiAtIDMyKSAqICg1LzkpKQ0KDQojIFByb21lZGlhciBsYSB0ZW1wZXJhdHVyYSBDZWxzaXVzIHBvciBkw61hDQpwcm9tZWRpb19kaWFyaW8gPC0gYWdncmVnYXRlKGNsaW1hX3B1ZV9mZWIkdG1wYyxieSA9IGxpc3QoZGF0ZSA9IGFzLkRhdGUoY2xpbWFfcHVlX2ZlYiR2YWxpZCkpLCBGVU4gPSBtZWFuKQ0KDQpwbG90KHByb21lZGlvX2RpYXJpbyRkYXRlLHByb21lZGlvX2RpYXJpbyR4LCB0eXBlID0gImwiLG1haW4gPSAiUHJvbWVkaW8gRGlhcmlvIGRlIHRlbXBlcmF0dXJhIGVuIFB1ZWJsYSBkdXJhbnRlIEZlYnJlcm8gMjAyNCIsIHhsYWIgPSAiRmVjaGEiLCB5bGFiID0gIiBUZW1wZXJhdHVyYSAowrBDKSIgKQ0KYGBgDQpgYGANCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IHllbGxvdzsiPkNvbmNsdXNpb25lczwvc3Bhbj4gDQpHcmFjaWFzIGEgZXN0ZSB0cmFiYWpvIGFwcmVuZMOtIHF1ZSBzZSBwdWVkZSB1dGlsaXphciBlbCBsZW5ndWFqZSBkZSBwcm9ncmFtYWNpw7NuICoqUioqIHBhcmEgdHJhYmFqYXIgY29uIHNpc3RlbWFzIGNvbW8gKkFTT1MqIHF1ZSBtdWVzdHJhbiBkYXRvcyBjbGltw6F0aWNvcyBjb24gZWwgZmluIGRlIHBvZGVyIHJlYWxpemFyIGRpc3RpbnRvcyBhbsOhbGlzaXMgZXNwZWPDrWZpY29zIHBhcmEgZGlmZXJlbnRlcyBjaXVkYWRlcywgZW4gZXN0ZSBjYXNvLCBNb250ZXJyZXkgeSBQdWVibGEuDQoNCkVzIGltcG9ydGFudGUgcmVjb3JkYXIgcXVlIHNpZW1wcmUgZXMgbmVjZXNhcmlvIGluc3RhbGFyIG51ZXN0cm9zIHBhcXVldGVzIHkgbGxhbWFyIGEgbGFzIGxpYnJlcsOtYXMgYWwgbW9tZW50byBkZSB1dGlsaXphciAqKlIqKiBwYXJhIHF1ZSB0b2RvIGZ1bmNpb25lIGNvcnJlY3RhbWVudGUuIER1cmFudGUgZXN0ZSB0cmFiYWpvIHNlIHV0aWxpemFyb24gZGl2ZXJzYXMgbGlicmVyw61hcyBjb21vIOKAnHRpZHl2ZXJzZeKAnSwg4oCcZ2dwbG90MuKAnSwg4oCccmllbeKAnSwg4oCccGxvdGx54oCdIHkg4oCcZHBseXLigJ0gcGFyYSBtYW5pcHVsYXIgeSB2aXN1YWxpemFyIGxvcyBkYXRvcyBjbGltw6F0aWNvcyBvYnRlbmlkb3MgZGUgbWVqb3IgbWFuZXJhLiANCg0KTGEgY2l1ZGFkIGRlIE1vbnRlcnJleSBpbmljacOzIGVsIG1lcyBkZSBmZWJyZXJvIGNvbiB1biBwb3JjZW50YWplIGRlIGh1bWVkYWQgcmVsYXRpdmEgYmFqYSBxdWUgc3ViacOzIGNvbiBlbCBwYXNvIGRlbCB0aWVtcG8uIE5vcm1hbG1lbnRlLCBjaXVkYWRlcyBjb21vIE1vbnRlcnJleSBpbmljaWFuIGNvbiBmcmVudGVzIGZyw61vcyBsb3MgbWVzZXMgY29tbyBmZWJyZXJvIHkgY29uIGVsIHBhc28gZGVsIHRpZW1wbyBsYXMgdGVtcGVyYXR1cmFzIHN1ZWxlbiBlbGV2YXJzZSBwb3IgbG8gcXVlIGVzdG8gcHVlZGUgYXVtZW50YXIgbGEgZXZhcG9yYWNpw7NuIHksIHBvciBsbyB0YW50bywgZWxldmFyIGxhIGh1bWVkYWQgcmVsYXRpdmEgYSBtZWRpYWRvcyB5IGZpbmFsZXMgZGVsIG1lcyBlbiBsYSBjaXVkYWQuIEFsIGFuYWxpemFyIGxvcyBkYXRvcyBvYnRlbmlkb3MsIHNlIG9ic2VydmEgdW4gcG9yY2VudGFqZSBkZSBodW1lZGFkIHJlbGF0aXZhIG1lbm9yIGFsIDMwJSBlbiBmZWJyZXJvIDUsIG1pZW50cmFzIHF1ZSBlbiBmZWJyZXJvIDE3LTE4IHNlIG11ZXN0cmEgdW4gcG9yY2VudGFqZSBkZSBodW1lZGFkIHJlbGF0aXZhIGRlbCA5MCUgZW4gbGEgY2l1ZGFkIGRlIE1vbnRlcnJleS4gDQoNCkxhIGNpdWRhZCBkZSBQdWVibGEgdGllbmUgZGlzbWludWNpb25lcyBlbiBzdSB0ZW1wZXJhdHVyYSBhIHBhcnRpciBkZSBtaXRhZCBkZWwgbWVzIGRlIGZlYnJlcm8gZW4gYWRlbGFudGUuIExvcyBmcmVudGVzIGZyw61vcyBxdWUgc2UgcHJlc2VudGFuIGVuIGxvcyBpbmljaW9zIGRlbCBtZXMgY29tbyBmZWJyZXJvIGVuIGNpdWRhZGVzIGRlbCBub3J0ZSBkZWwgcGHDrXMgc3VlbGVuIGxsZWdhciB1biBwb2NvIG3DoXMgdGFyZGUgYSBjaXVkYWRlcyBxdWUgc2UgZW5jdWVudHJhbiBtw6FzIGFsIHN1ciBkZWwgcGHDrXMuIFBvZGVtb3Mgb2JzZXJ2YXIgcXVlIFB1ZWJsYSBwcmVzZW50YSB1bmEgdGVtcGVyYXR1cmEgcHJvbWVkaW8gZGUgMTfCsEMgZW4gZmVicmVybyAzLCBtaWVudHJhcyBxdWUgZW4gZmVicmVybyAxNyBwcmVzZW50YSAgdW5hIHRlbXBlcmF0dXJhIHByb21lZGlvIGRlIDnCsEMuDQoNCg==