You are on page 1of 6

install.

packages("survival")
library(survival)
install.packages("FAdist")
library(FAdist)
install.packages("fitdistrplus")
library(fitdistrplus)
install.packages("goftest")
library(goftest)
install.packages("zoo")
library(zoo)
library(hydroTSM)
install.packages("MASS")
library(MASS)
install.packages("moments")
library(moments)

#ejecutar por partes se�aladas


#PARTE 1
#vectores ya definidos previamente calculados a traves de excel y R
#temperatura
t_invierno<-c(16.16,16.92,18.53,15.98,16.77,17.41,18.06,16.84,16.91,17.75)
t_primavera<-c(20.07,20.67,21.10,20.78,19.95,19.91,20.06,20.63,20.67,19.78)
t_otono<-c(20.27,20.65,20.39,20.03,20.98,19.77,20.53,20.75,19.83,20.31)
t_verano<-c(23.16,22.58,22.78,23.90,23.26,22.70,23.35,22.47,22.92,22.73)
#precipitaciones maximas
elibor_max_precipitation<-
c(6.0,5.5,58.0,1.0,28.0,0.5,31.0,40.5,2.0,0.01,0.01,0.01,92.3,2.5,17.0,30.0,1.0,25.
0,0.01,11.5,17.5,0.01,18.0,8.0,2.7,22.5,20.0,0.01,3.5,10.0)
lautaro_max_precipitation<-
c(8.0,9.0,42.0,2.5,40.5,10.5,36.5,44.5,16.5,3.5,1.0,1.0,86.0,5.0,18.0,45.5,4.5,26.0
,0.01,11.0,9.5,1.0,4.0,12.0,7.5,29.0,18.0,11.5,12.0,21.5)
loros_max_precipitation<-
c(11.0,5.0,44.4,8.0,32.7,5.0,50.,55.5,3.0,1.0,0.5,0.01,101.0,3.5,21.5,43.0,1.2,29.0
,0.01,13.8,19.0,0.01,1.0,9.5,3.5,22.0,21.5,5.0,10.0,12.4)
#caudales maximos
caud_max<-
c(7.55,1.82,9.58,12.80,2.31,2.17,4.31,2.16,2.39,1.09,1.81,1.39,3.73,13.00,1.08,1.42
,3.95,2.79,2.77,1.19,1.17,1.52,1.88,1.64,1.51,1.17,2.03,1.99,4.74,4.26)

elibor_max_precipitation<-precmaxelibor
lautaro_max_precipitation<-precmaxlautaro
loros_max_precipitation<-precmaxloros
annual_max_flow_rate<-caud_max
winter_temp<-t_invierno
summer_temp<-t_verano
spring_temp<-t_primavera
autumn_temp<-t_otono

#PARTE 2
#esta parte del codigo realiza los graficos de homogeneidad
# Dato entrada: Precipitaciones diarias en [mm]

library(xts)
library(hydroTSM)

#Ubicaci�n .txt
direccion<-"C:/Users/usuari/Desktop/datos
tp4/cr2_prDaily_2017/cr2_prDaily_2017.txt"
#Carga datos
e.caracter<-read.csv(direccion,header = FALSE, na.strings =-9999)
e.numeric<-read.csv(direccion,header = FALSE,skip = 15,na.strings =-9999)

#Fecha inter�s
fecha.inicio.datos<-"1985-01-01" #Primera fecha de datos
fecha.inicio<-"1985-01-01"
fecha.final<-"2014-12-31"

L_huasco<-which(e.caracter[9,]=="Rio Copiapo") #Vector que indica la ubicacion de


las columnas de las estaciones de subcuenca R�o Huasco
nombre_estaciones<-as.character.Date(e.caracter[4,L_huasco]) #Nombre de las
estaciones
codigo_estaciones<-as.character.Date(e.caracter[1,L_huasco]) #C�digo de las
estaciones

Datosestaciones<-function(x,y){columinteres<-y[c(143,145,148)]}
#Selecciona las columnas de interes.

datoshuasco<-Datosestaciones(L_huasco,e.numeric)
# Aqu� se almacenan las columnas seleccionadas.

pcp.temp1=xts(datoshuasco, as.Date("1899-12-31")+1:42903) #Precipitaciones con


serie temporales (1900-2017)
datos1987_2016<- window(pcp.temp1, start=as.Date(fecha.inicio),
end=as.Date(fecha.final))
colnames(datos1987_2016)<-as.character(nombre_estaciones[c(3,5,7)])
#LA HOMOGENEIDAD ES SIN CORREGIR
##HASTA AQUI TENEMOS LO NECESARIO PARA LA HOMOGENEIDAD Y EL RELLENO DE DATOS###

#C�lculo Precipitaciones (mean, homogeneidad, otros)

pcp.anual<-daily2annual(datos1987_2016, FUN=sum, na.rm=TRUE)


#Precipitaciones promedio de los 30 a�os por estaci�n
pcpmean_anual<-annualfunction(pcp.anual, FUN=mean, na.rm=TRUE)
#Nombre de estaciones como colnames
nyears <- yip(from=start(datos1987_2016), to=end(datos1987_2016), out.type="nmbr" )
pcpmean_estacional<-seasonalfunction(datos1987_2016, FUN=sum, na.rm=TRUE) / nyears

row.names(pcpmean_estacional)<-as.character(t(nombre_estaciones[c(3,5,7)]))

nombre<-apply(nombre_estaciones[c(3,5,7)],2,as.character)
colnames(pcpmean_anual)<-nombre

#Homogeneidad
x.barra<-apply(pcp.anual,1,mean)
dates<-time(pcp.anual)
names(x.barra)<-dates
pcp.acumulado<-apply(pcp.anual,2,cumsum)
x.barra.acum<-apply.monthly(x.barra,cumsum)
#Plot de los gr�ficos de homogeneidad de las estaciones pluviom�tricas
seleccionadas.
for(i in 1:length(pcp.acumulado[1,])){
plot(pcp.acumulado[,i],x.barra.acum,xlab = "Accumulated precipitation [mm]", ylab
= "Station's Accumulated precipitation [mm]",main
=(paste0(nombre[i],"\n",codigo_estaciones[i])) )
}
#PARTE 3
#grafico ajuste distribuciones de probabilidad
# fit2<-fitdist(elibor_max_precipitation,"lnorm")
#Error in start.arg.default(data10, distr = distname) :
#values must be positive to fit a lognormal distribution

#graficos para temperatura de invierno


par(mfcol=c(1,3))
fit11<-fitdist(winter_temp,"norm")
fit21<-fitdist(winter_temp,"lnorm")
fit31<-fitdist(winter_temp,"gamma")
fit41<-fitdist(winter_temp,"weibull")
fit51<-fitdist(winter_temp,"exp")
pbb.list1<-list(fit11,fit21,fit31,fit41,fit51)
pbb.legend1<-c("normal","lnorm","gamma","weibull","exp")
cdfcomp(pbb.list1,legendtext = pbb.legend1)

denscomp(pbb.list1,legendtext = pbb.legend1)

qqcomp(pbb.list1,legendtext = pbb.legend1)

#graficos para temperatura de verano


par(mfcol=c(1,3))
fit13<-fitdist(summer_temp,"norm")
fit23<-fitdist(summer_temp,"lnorm")
fit33<-fitdist(summer_temp,"gamma")
fit43<-fitdist(summer_temp,"weibull")
fit53<-fitdist(summer_temp,"exp")
pbb.list1<-list(fit13,fit23,fit33,fit43,fit53)
pbb.legend1<-c("normal","lnorm","gamma","weibull","exp")
cdfcomp(pbb.list1,legendtext = pbb.legend1)

denscomp(pbb.list1,legendtext = pbb.legend1)

qqcomp(pbb.list1,legendtext = pbb.legend1)

#graficos para caudal


par(mfcol=c(1,3))
fit12<-fitdist(annual_max_flow_rate,"norm")
fit22<-fitdist(annual_max_flow_rate,"lnorm")
fit32<-fitdist(annual_max_flow_rate,"gamma")
fit42<-fitdist(annual_max_flow_rate,"weibull")
fit52<-fitdist(annual_max_flow_rate,"exp")
pbb.list1<-list(fit12,fit22,fit32,fit42,fit52)
pbb.legend1<-c("normal","lnorm","gamma","weibull","exp")
cdfcomp(pbb.list1,legendtext = pbb.legend1)

denscomp(pbb.list1,legendtext = pbb.legend1)

qqcomp(pbb.list1,legendtext = pbb.legend1)

#graficos para temperatura de otono


par(mfcol=c(1,3))
fit14<-fitdist(autumn_temp,"norm")
fit24<-fitdist(autumn_temp,"lnorm")
fit34<-fitdist(autumn_temp,"gamma")
fit44<-fitdist(autumn_temp,"weibull")
fit54<-fitdist(autumn_temp,"exp")
pbb.list1<-list(fit14,fit24,fit34,fit44,fit54)
pbb.legend1<-c("normal","lnorm","gamma","weibull","exp")
cdfcomp(pbb.list1,legendtext = pbb.legend1)

denscomp(pbb.list1,legendtext = pbb.legend1)

qqcomp(pbb.list1,legendtext = pbb.legend1)

#graficos para temperatura de primavera


par(mfcol=c(1,3))
fit15<-fitdist(spring_temp,"norm")
fit25<-fitdist(spring_temp,"lnorm")
fit35<-fitdist(spring_temp,"gamma")
fit45<-fitdist(spring_temp,"weibull")
fit55<-fitdist(spring_temp,"exp")
pbb.list1<-list(fit15,fit25,fit35,fit45,fit55)
pbb.legend1<-c("normal","lnorm","gamma","weibull","exp")
cdfcomp(pbb.list1,legendtext = pbb.legend1)

denscomp(pbb.list1,legendtext = pbb.legend1)

qqcomp(pbb.list1,legendtext = pbb.legend1)

#graficos para prec elibor


par(mfcol=c(1,3))
fit16<-fitdist(elibor_max_precipitation,"norm")
fit26<-fitdist(elibor_max_precipitation,"lnorm")
fit36<-fitdist(elibor_max_precipitation,"gamma")
fit46<-fitdist(elibor_max_precipitation,"weibull")
fit56<-fitdist(elibor_max_precipitation,"exp")
pbb.list1<-list(fit16,fit26,fit36,fit46,fit56)
pbb.legend1<-c("normal","lnorm","gamma","weibull","exp")
cdfcomp(pbb.list1,legendtext = pbb.legend1)

denscomp(pbb.list1,legendtext = pbb.legend1)

qqcomp(pbb.list1,legendtext = pbb.legend1)

#graficos para prec lautaro


par(mfcol=c(1,3))
fit17<-fitdist(lautaro_max_precipitation,"norm")
fit27<-fitdist(lautaro_max_precipitation,"lnorm")
fit37<-fitdist(lautaro_max_precipitation,"gamma")
fit47<-fitdist(lautaro_max_precipitation,"weibull")
fit57<-fitdist(lautaro_max_precipitation,"exp")
pbb.list1<-list(fit17,fit27,fit37,fit47,fit57)
pbb.legend1<-c("normal","lnorm","gamma","weibull","exp")
cdfcomp(pbb.list1,legendtext = pbb.legend1)

denscomp(pbb.list1,legendtext = pbb.legend1)

qqcomp(pbb.list1,legendtext = pbb.legend1)

#graficos para prec loros


par(mfcol=c(1,3))
fit18<-fitdist(loros_max_precipitation,"norm")
fit28<-fitdist(loros_max_precipitation,"lnorm")
fit38<-fitdist(loros_max_precipitation,"gamma")
fit48<-fitdist(loros_max_precipitation,"weibull")
fit58<-fitdist(loros_max_precipitation,"exp")
pbb.list1<-list(fit18,fit28,fit38,fit48,fit58)
pbb.legend1<-c("normal","lnorm","gamma","weibull","exp")
cdfcomp(pbb.list1,legendtext = pbb.legend1)

denscomp(pbb.list1,legendtext = pbb.legend1)

qqcomp(pbb.list1,legendtext = pbb.legend1)

#PARTE 4
#parametros distribuciones de probabilidad
ks.test(elibor_max_precipitation,"pnorm",mean=15.13,sd=20.46)
ks.test(lautaro_max_precipitation,"pnorm",mean=17.91,sd=19)
ks.test(loros_max_precipitation,"pnorm",mean=17.76,sd=22.47)
ks.test(annual_max_flow_rate,"pnorm",mean=3.37,sd=3.22)
ks.test(summer_temp,"pnorm",mean=22.99,sd=0.43)
ks.test(autumn_temp,"pnorm",mean=20.35,sd=0.394)
ks.test(winter_temp,"pnorm",mean=17.13,sd=0.81)
ks.test(spring_temp,"pnorm",mean=20.36,sd=0.46)

ad.test(elibor_max_precipitation)
ad.test(lautaro_max_precipitation)
ad.test(loros_max_precipitation)
ad.test(annual_max_flow_rate)
ad.test(summer_temp)
ad.test(autumn_temp)
ad.test(winter_temp)
ad.test(spring_temp)

ks.test(elibor_max_precipitation,"plnorm",mean=0.874,sd=2.995)
ks.test(lautaro_max_precipitation,"plnorm",mean=2.138,sd=1.698)
ks.test(loros_max_precipitation,"plnorm",mean=1.58,sd=2.428)
ks.test(annual_max_flow_rate,"plnorm",mean=0.9242,sd=0.6992)
ks.test(summer_temp,"plnorm",mean=3.1347,sd=0.0178)
ks.test(autumn_temp,"plnorm",mean=3.01,sd=0.018)
ks.test(winter_temp,"plnorm",mean=2.84,sd=0.04)
ks.test(spring_temp,"plnorm",mean=3.01,sd=0.02)

ks.test(elibor_max_precipitation,"pgamma",shape=0.363,rate=0.024)
ks.test(lautaro_max_precipitation,"pgamma",shape=0.795,rate=0.044)
ks.test(loros_max_precipitation,"pgamma",shape=0.491,rate=0.028)
ks.test(annual_max_flow_rate,"pgamma",shape=1.862,rate=0.552)
ks.test(summer_temp,"pgamma",shape=3140.8,rate=136.64)
ks.test(autumn_temp,"pgamma",shape=2959.5,rate=145.4)
ks.test(winter_temp,"pgamma",shape=504.4,rate=29.4)
ks.test(spring_temp,"pgamma",shape=2221.8,rate=109.1)

ks.test(elibor_max_precipitation,"pweibull",shape=0.489,scale=8.987)
ks.test(lautaro_max_precipitation,"pweibull",shape=0.884,scale=16.941)
ks.test(loros_max_precipitation,"pweibull",shape=0.629,scale=13.429)
ks.test(annual_max_flow_rate,"pweibull",shape=1.263,scale=3.6776)
ks.test(summer_temp,"pweibull",shape=50.68,scale=23.2)
ks.test(autumn_temp,"pweibull",shape=60.0,scale=20.5)
ks.test(winter_temp,"pweibull",shape=23.23,scale=17.51)
ks.test(spring_temp,"pweibull",shape=50.94,scale=20.58)

ks.test(elibor_max_precipitation,"pexp",rate=0.0661)
ks.test(lautaro_max_precipitation,"pexp",rate=0.0558)
ks.test(loros_max_precipitation,"pexp",rate=0.0563)
ks.test(annual_max_flow_rate,"pexp",rate=0.2964)
ks.test(summer_temp,"pexp",rate=0.0435)
ks.test(autumn_temp,"pexp",rate=0.049)
ks.test(winter_temp,"pexp",rate=0.06)
ks.test(spring_temp,"pexp",rate=0.05)

chisq.test(elibor_max_precipitation)
chisq.test(lautaro_max_precipitation)
chisq.test(loros_max_precipitation)
chisq.test(annual_max_flow_rate)
chisq.test(summer_temp)
chisq.test(autumn_temp)
chisq.test(winter_temp)
chisq.test(spring_temp)

#PARTE 5
#cuantiles teoricos y empiricos
n<-c(0.025,0.05,0.25,0.5,0.75,0.95,0.975)
quantile(elibor_max_precipitation,n)
quantile(lautaro_max_precipitation,n)
quantile(loros_max_precipitation,n)
quantile(annual_max_flow_rate,n)
quantile(winter_temp,n)
quantile(summer_temp,n)
quantile(spring_temp,n)
quantile(autumn_temp,n)

qgamma(n,shape=0.363,rate=0.024)#elibor
qexp(n,rate = 0.0558)#lautaro
qweibull(n,shape = 0.629,scale = 13.429)
qexp(n,rate = 0.2964)#caudal
qweibull(n,shape = 50.68,scale = 23.2)#verano
qweibull(n,shape = 60,scale = 20.5)#oto�o
qnorm(n,mean = 17.13 ,sd = 0.81)#invierno
qnorm(n,mean = 20.36 ,sd = 0.46)#primavea

You might also like