El proyecto POWER (Predicción de Recursos Energéticos Mundiales) de la NASA es una iniciativa que busca enriquecer y expandir nuestra comprensión y uso de las energías renovables. Este proyecto se basa en la tecnología de los satélites para generar nuevos conjuntos de datos que pueden ayudar a mejorar los existentes.
El corazón de este proyecto es su enfoque en tres comunidades clave: la energía renovable, los edificios sostenibles y la agroclimatología. A través de la recopilación y distribución de datos solares y meteorológicos, el proyecto POWER busca apoyar y fomentar el uso de energías renovables, la eficiencia energética en los edificios y la agricultura sostenible.
data_huancavelica <- read.csv("POWER_Point_Monthly_Timeseries_1990_2020_012d7931S_074d5839W_LST.csv", skip = 15)
head(data_huancavelica)
Nombres_filas <- data_huancavelica[1,3:14]
Nombres_filas <- t(Nombres_filas)
library(agricolae)
rownames(Nombres_filas)
## [1] "JAN" "FEB" "MAR" "APR" "MAY" "JUN" "JUL" "AUG" "SEP" "OCT" "NOV" "DEC"
plot.ts(Nombres_filas, type = "b", col = "blue", axes = F)
axis(1,1:12, rownames(Nombres_filas), cex = 0.7)
axis(2, cex=0.7)
grid(col= "red")
El Servicio Nacional de Meteorología e Hidrología del Perú, conocido como SENAMHI, es como un guardián del clima y el agua en Perú. Su propósito es entender el pulso de la naturaleza, recogiendo y compartiendo información sobre el clima, el agua y las condiciones atmosféricas de manera confiable y oportuna para todos los peruanos.
Como parte del Ministerio del Ambiente, SENAMHI es como el latido del corazón en una red de más de 900 estaciones meteorológicas e hidrológicas repartidas por todo el país. Los expertos de SENAMHI, como detectives del clima, estudian y pronostican eventos extremos, desde lluvias torrenciales y vientos fuertes hasta heladas, y exploran cómo el cambio climático podría afectar nuestros preciados recursos hídricos.
Acobamba - Huancavelica
Acobamba: Acobamba es la capital del distrito y provincia homónimos, ubicada en el departamento de Huancavelica, Perú1. El pueblo de Acobamba está situado a una altitud de 3423 m.s.n.m1. La distancia desde Huancavelica, para llegar hasta Acobamba, es de aproximadamente 106 kilómetros2.
Acobamba conserva la belleza de los pueblos andinos del Perú. Su nombre en quechua, Aqupampa, significa “llanura de arena”, probablemente debido a su tradición agrícola1. Los cerros que rodean todo el distrito le dan el típico aspecto interandino. La agricultura y la ganadería son las principales actividades económicas de la región, lo que, junto con su clima frío y moderadamente lluvioso3, hacen de Acobamba un lugar ideal para el turismo nacional e internacional.
Los Datos Hidrometeorológicos a nivel nacional de Acobamba, proporcionados por el Servicio Nacional de Meteorología e Hidrología del Perú (SENAMHI), incluyen información sobre las condiciones meteorológicas e hidrológicas en la región. Esto abarca temperaturas máximas y mínimas del aire, precipitaciones pluviales, humedad relativa y niveles de los principales ríos45. Estos datos se reportan horaria y diariamente. Acobamba es una de las estaciones donde se recopilan estos valiosos registros4
library(readr)
data_huancavelica_sanamhi<-read.table("qc00000659.txt",F)
str(data_huancavelica_sanamhi)
## 'data.frame': 18077 obs. of 6 variables:
## $ V1: int 1964 1964 1964 1964 1964 1964 1964 1964 1964 1964 ...
## $ V2: int 12 12 12 12 12 12 12 12 12 12 ...
## $ V3: int 3 4 5 6 7 8 9 10 11 12 ...
## $ V4: num 0 0 0 0 0 0 0 0.7 5 9 ...
## $ V5: num -99.9 15.8 18.4 20.4 17.8 20 18.2 17.6 20 20.2 ...
## $ V6: num -99.9 7 7.8 7 6.4 7.5 7 6 8.2 6.4 ...
Los datos de las columnas corresponden a:
Columna A: Año
Columna B: Mes
Columna C: Día
Columna D: Precipitación acumulada
Columna E: Temperatura máxima
Columna F: Temperatura mínima
names(data_huancavelica_sanamhi) <- c("Año", "Mes", "Día","Precipitación", "Temp.máxima", "Temp.mínima")
head(data_huancavelica_sanamhi)
data_huancavelica_sanamhi$Precipitación[data_huancavelica_sanamhi$Precipitación == -99.9] <- NA
data_huancavelica_sanamhi$Temp.máxima[data_huancavelica_sanamhi$Temp.máxima == -99.9] <- NA
data_huancavelica_sanamhi$Temp.mínima[data_huancavelica_sanamhi$Temp.mínima == -99.9] <- NA
## Año Mes Día Precipitación Temp.máxima
## 0 0 0 0 0
## Temp.mínima
## 0
##
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
data_huancavelica_sanamhi$Fecha <- make_date(data_huancavelica_sanamhi$Año, data_huancavelica_sanamhi$Mes, data_huancavelica_sanamhi$Día)
gg <- ggplot(data_huancavelica_sanamhi, aes(x = Fecha)) +
geom_line(aes(y = data_huancavelica_sanamhi$Temp.máxima, color = "Temp. Máxima")) +
geom_line(aes(y = data_huancavelica_sanamhi$Temp.mínima, color = "Temp. Mínima")) +
geom_bar(aes(y = data_huancavelica_sanamhi$Precipitación * 10, fill = "Precipitación"), stat = "identity") +
scale_color_manual(values = c("Temp. Máxima" = "red", "Temp. Mínima" = "blue")) +
scale_fill_manual(values = c("Precipitación" = "skyblue")) +
labs(title = "Estacion:ACOBAMBA Dep: HUANCAVELICA , Prov: ACOBAMBA" , "Dist: ACOBAMBA", x = "Fecha", y = "Temperatura (°C) / Precipitación (mm)") +
theme_minimal() +
theme(legend.position = "bottom") +
scale_y_continuous(limits = c(0, 200))
print(gg)
## Warning: Removed 143 rows containing missing values or values outside the scale range
## (`geom_bar()`).
La gráfica muestra datos climáticos de la estación Acobamba en Huancavelica, que incluyen la precipitación y las temperaturas máxima y mínima desde 1964 hasta aproximadamente 2014. Aquí tienes un resumen de lo que indica:
Precipitación (en azul): Representada en el eje Y derecho, muestra la cantidad de lluvia medida en milímetros.
Temperatura Máxima (en rojo): Indicada en el eje Y izquierdo, muestra las temperaturas más altas registradas en grados Celsius.
Temperatura Mínima (en rojo): También en el eje Y izquierdo, muestra las temperaturas más bajas registradas.
Variabilidad Temporal: El eje X muestra los años desde 1964 hasta alrededor de 2014, destacando la variabilidad significativa en la precipitación y las temperaturas a lo largo del tiempo. Esta información es útil para entender las tendencias climáticas y posibles cambios en el clima de la región de Acobamba a lo largo de los años.
data_huancavelica <- read.csv("POWER_Point_Monthly_Timeseries_1990_2020_012d7931S_074d5839W_LST.csv", skip = 15)
Nombres_filas<-data_huancavelica[data_huancavelica$YEAR == 1995,]
Nombres_filas<-Nombres_filas[,1:14]
datos_comparados<-tidyr::pivot_longer(Nombres_filas, cols = -c(PARAMETER, YEAR),
names_to = "MONTH", values_to = "VALUE")
data_humedad <- datos_comparados[datos_comparados$PARAMETER=='RH2M',]
data_tempMax <- datos_comparados[datos_comparados$PARAMETER=='T2M_MAX',]
data_tempMin <- datos_comparados[datos_comparados$PARAMETER=='T2M_MIN',]
data_NB <- datos_comparados[datos_comparados$PARAMETER=='CLOUD_AMT',]
data_TempDiar <- datos_comparados[datos_comparados$PARAMETER=='T2M_RANGE',]
data_Suma_PrecipitacionTotal <- datos_comparados[datos_comparados$PARAMETER=='PRECTOTCORR_SUM',]
data_Precipitacion_Total <- datos_comparados[datos_comparados$PARAMETER=='PRECTOTCORR',]
temperatura_maxima<- data_huancavelica_sanamhi[data_huancavelica_sanamhi$Año == 1995,]
temperatura_maxima[c(1,2,5)] -> temperatura_filtrada_sanmhi
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
senamhi_temperatura_maxima <-temperatura_filtrada_sanmhi |> dplyr::group_by(Mes) |>
summarise(TEMPERATURA_MAXIMA_OBSERVADA = mean(temperatura_maxima))
## Warning: There were 12 warnings in `summarise()`.
## The first warning was:
## ℹ In argument: `TEMPERATURA_MAXIMA_OBSERVADA = mean(temperatura_maxima)`.
## ℹ In group 1: `Mes = 1`.
## Caused by warning in `mean.default()`:
## ! argument is not numeric or logical: returning NA
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 11 remaining warnings.
data_tempMax <- data.frame(Mes = 1:12,MONTH = data_tempMax)
data_tempMax_1 <- merge(data_tempMax, senamhi_temperatura_maxima, all.x = TRUE)
names(data_tempMax_1) <- c("idx", "PARAMETRO", "AÑO","MES", "TEMPERATURA_MAXIMA_ESPERADA", "TEMPERATURA_MAXIMA_OBSERVADA")
data_tempMax_1$ERROR.RELATIVO <- abs((data_tempMax_1$TEMPERATURA_MAXIMA_ESPERADA - data_tempMax_1$TEMPERATURA_MAXIMA_ESPERADA) /
data_tempMax_1$TEMPERATURA_MAXIMA_OBSERVADA)
data_tempMax_1
temp_minina <- data_huancavelica_sanamhi[data_huancavelica_sanamhi$Año == 1995,]
temp_minina_filt<-temp_minina[c(1,2,6)]
View(temp_minina)
library(dplyr)
temp_minina_filt |> dplyr::group_by(Mes) |>
summarise(TEMP.MINIMA.OBS = mean(temp_minina)) -> senamhi.temp.minima
## Warning: There were 12 warnings in `summarise()`.
## The first warning was:
## ℹ In argument: `TEMP.MINIMA.OBS = mean(temp_minina)`.
## ℹ In group 1: `Mes = 1`.
## Caused by warning in `mean.default()`:
## ! argument is not numeric or logical: returning NA
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 11 remaining warnings.
data_tempMin <- data.frame(V1 = 1:12,MONTH = data_tempMin)
data_tempMin1 <- merge(data_tempMin, senamhi.temp.minima, all.x = TRUE)
names(data_tempMin1) <- c("idx", "PARAMETRO", "AÑO","MES", "TEMP.MINIMA.ESP", "TEMP.MINIMA.OBS")
data_tempMin1$ERROR.RELATIVO <- abs((data_tempMin1$TEMP.MINIMA.OBS - abs(data_tempMin1$TEMP.MINIMA.ESP) )/
data_tempMin1$TEMP.MINIMA.OBS)
data_tempMin1
precipitacion <- data_huancavelica_sanamhi[data_huancavelica_sanamhi$Año == 1995,]
precipitacion_filtrada<-precipitacion[c(1,2,4)]
library(dplyr)
precipitacion_Senamhi<-precipitacion_filtrada |> dplyr::group_by(Mes) |>
summarise(PRECIPITACION_OBSERVADA = sum(Precipitación))
data_Precipitacion_Total <- data.frame(Mes = 1:12,MONTH = data_Precipitacion_Total)
data_Precipitacion_Total_1 <- merge(data_Precipitacion_Total, precipitacion_Senamhi, all.x = TRUE)
names(data_Precipitacion_Total_1) <- c("idx", "PARAMETRO", "AÑO","MES", "PRECIPITACION_ESPERADA", "PRECIPITACION_OBSERVADA")
data_Precipitacion_Total_1$PRECIPITACION_OBSERVADA <- as.numeric(data_Precipitacion_Total_1$PRECIPITACION_OBSERVADA)
data_Precipitacion_Total_1$PRECIPITACION_ESPERADA <- as.numeric(data_Precipitacion_Total_1$PRECIPITACION_ESPERADA)
data_Precipitacion_Total_1
##
## 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
# Suponiendo que tienes un dataframe llamado data_huancavelica_sanamhi con las columnas Fecha, Precipitación, Temp.máxima y Temp.mínima
# Aquí hay un ejemplo de cómo podrían ser tus datos
data_huancavelica_sanamhi <- data.frame(
Fecha = seq(as.Date("1995-01-01"), as.Date("1995-12-31"), by="day"),
Precipitación = runif(365, 0, 20), # Datos aleatorios para el ejemplo
Temp.máxima = runif(365, 10, 25), # Datos aleatorios para el ejemplo
Temp.mínima = runif(365, 0, 15) # Datos aleatorios para el ejemplo
)
# Creamos el gráfico
p <- plot_ly(data = data_huancavelica_sanamhi, x = ~Fecha) %>%
add_trace(y = ~Precipitación, name = 'Precipitación', type = 'scatter', mode = 'lines', line = list(color = 'blue')) %>%
add_trace(y = ~Temp.máxima, name = 'Temp. Máxima', type = 'scatter', mode = 'lines', line = list(color = 'red')) %>%
add_trace(y = ~Temp.mínima, name = 'Temp. Mínima', type = 'scatter', mode = 'lines', line = list(color = 'red')) %>%
layout(title = "Datos Climáticos de Acobamba",
xaxis = list(title = "Fecha"),
yaxis = list(title = "Valor"))
# Mostramos el gráfico
p