Beruflich Dokumente
Kultur Dokumente
library(netCDF)
rm(list=ls(all=TRUE))
sst<-read.netCDF("C:/Tesis/PFEL/PFEL_2/sst_pfel.nc")
str(sst)
a<-sst$"SST"
a[a == attributes(a)$"missing_value"] <- NA
dimnames(a) <- list(sst$"TIME_SERIES",sst$"LAT125_128",sst$"LON351_355")
#>contour(a[1,,])
#> (a[1,,])
# 350.5 351.5 352.5 353.5 354.5
#34.5 20.60 20.44 20.04 19.85 19.60
#35.5 20.21 20.06 19.70 19.54 19.34
#36.5 19.64 19.51 19.29 19.17 19.07
#37.5 19.00 18.95 19.05 19.03 18.93
plot((a[,"34.5","350.5"]),type="l")
#Y los longitudinales:
plot(a.no.std[,mean(1:50),mean(1:50)],type="l")
#Construimos una matriz para todos los puntos (4 x 5). Para ello #convertimos nuestro array “a” de
dimensiones (230,4,5)en una matriz de #dimensiones 20 X 230
#Como las matrices COADS poseen valores NA habrá que reemplazarlos por
#un valor obtenido mediante el algoritmo EM en el paquete 'norm'
F<-t(F)
library(norm)
s<-prelim.norm(F)
thetahat <- em.norm(s)
svd<-svd(F);
eof1<-svd$u[,1];
eof2<-svd$u[,2];
eof3<-svd$u[,3];
E1<-array(eof1,c(50,50));
E2<-array(eof2,c(50,50));
E3<-array(eof3,c(50,50));
E1<-t(E1)
E2<-t(E2)
E3<-t(E3)
# Cálculo de la varianza
varianza<-(svd$d^2)*100/sum(svd$d^2)
contour(x,y,E1);
contour(x,y,E2);
contour(x,y,E3);
>contour(E1[31:35, 25.5:28.5])
D<-diag(svd$d)
pca<-D%*%t(svd$v)
pca1<-pca[1,];
pca2<-pca[2,];
pca3<-pca[3,];
pca4<-pca[4,];
E1<-E1*sqrt(svd$d[1])
E2<-E2*sqrt(svd$d[2])
E3<-E3*sqrt(svd$d[3])
pca1<-pca1/sqrt(svd$d[1])
pca2<-pca2/sqrt(svd$d[2])
pca3<-pca3/sqrt(svd$d[3])
1
2 2
N
>eigenvalue1<-svd$d[1]^2
Entonces,
de1<- svd$d[1]^2*(2/437)^0.5
de2<- svd$d[2]^2*(2/437)^0.5
de3<- svd$d[3]^2*(2/437)^0.5
Como la distancia (1-2)debe ser mayor que 1 se debe cumplir que:
pca1<-ts(pca1,start=c(1981,1),frequency=12)
pca2<-ts(pca2,start=c(1981,1),frequency=12)
pca3<-ts(pca3,start=c(1981,1),frequency=12)
pca1.spec<-spectrum(pca1,method="pgram",kernel("daniell",m=c(5,7)),taper=0.1)
pca2.spec<-spectrum(pca2,method="pgram",kernel("daniell",m=c(5,7)),taper=0.1)
pca3.spec<-spectrum(pca3,method="pgram",kernel("daniell",m=c(5,7)),taper=0.1)
pca1.nao.spec<-spectrum(ts.union(pca1,nao),
method="pgram",kernel("daniell",m=c(5,7)),taper=0.1,na.action=na.omit)
pca2.nao.spec<-spectrum(ts.union(pca2,nao),
method="pgram",kernel("daniell",m=c(5,7)),taper=0.1,na.action=na.omit)
pca3.nao.spec<-spectrum(ts.union(pca3,nao),
method="pgram",kernel("daniell",m=c(5,7)),taper=0.1,na.action=na.omit)
pca1.mei.spec<-spectrum(ts.union(pca1,mei),
method="pgram",kernel("daniell",m=c(5,7)),taper=0.1,na.action=na.omit)
pca2.mei.spec<-spectrum(ts.union(pca2,mei),
method="pgram",kernel("daniell",m=c(5,7)),taper=0.1,na.action=na.omit)
pca3.mei.spec<-spectrum(ts.union(pca3,mei),
method="pgram",kernel("daniell",m=c(5,7)),taper=0.1,na.action=na.omit)
corr.map1<-array(cor(pca1,t(F)),c(50,50))
corr.map2<-array(cor(pca2,t(F)),c(50,50))
corr.map3<-array(cor(pca3,t(F)),c(50,50))
corr.map1<-t(corr.map1)
corr.map2<-t(corr.map2)
corr.map3<-t(corr.map3)
library(fields)
world(ylim=c(34,38), xlim=c(-10, -6),xaxt = "s", yaxt = "s" )
x<-(-9.5:-6.5)
y<-(34.5:37.5)
contour(x,y,E1,add=T)
postscript(file="U_fnmoc.ps")
world(ylim=c(34,38),xlim=c(-10,-6),xaxt="s",yaxt= "s",ylab="lat",xlab="lon")
contour(x,y,corr.map1,add=T)
title(“WIND eof1 correlation map\nexplained variance=17%")
world(ylim=c(34,38),xlim=c(-10,-6),xaxt="s",yaxt= "s",ylab="lat",xlab="lon")
contour(x,y,corr.map2,add=T)
title(“WIND eof2 correlation map\nexplained variance=9%")
world(ylim=c(34,38),xlim=c(-10,-6),xaxt="s",yaxt= "s",ylab="lat",xlab="lon")
contour(x,y,corr.map3,add=T)
title(“WIND eof3 correlation map\nexplained variance=8%")
world(ylim=c(34,38),xlim=c(-10,-6),xaxt="s",yaxt= "s",ylab="lat",xlab="lon")
contour(x,y,corr.map4,add=T)
title(“WIND eof4 correlation map\nexplained variance=7%")
plot(pca1,type="l",main="WIND PCA1",xlab="months since 16-01-1981")
plot(pca2,type="l",main="WIND PCA2",xlab="months since 16-01-1981")
plot(pca3,type="l",main="WIND PCA3",xlab="months since 16-01-1981")
plot(pca3,type="l",main="WIND PCA3",xlab="months since 16-01-1981")
dev.off()
This also useful for adding titles, text annotations, points, etc.
En nuestro caso:
f1<-ts(F[1,],start=c(1981,1),frequency=12)
f2<-ts(F[2,],start=c(1981,1),frequency=12)
f3<-ts(F[3,],start=c(1981,1),frequency=12)
f4<-ts(F[4,],start=c(1981,1),frequency=12)
f5<-ts(F[5,],start=c(1981,1),frequency=12)
f6<-ts(F[6,],start=c(1981,1),frequency=12)
f7<-ts(F[7,],start=c(1981,1),frequency=12)
f8<-ts(F[8,],start=c(1981,1),frequency=12)
f9<-ts(F[9,],start=c(1981,1),frequency=12)
f10<-ts(F[10,],start=c(1981,1),frequency=12)
f11<-ts(F[11,],start=c(1981,1),frequency=12)
f12<-ts(F[12,],start=c(1981,1),frequency=12)
f13<-ts(F[13,],start=c(1981,1),frequency=12)
f14<-ts(F[14,],start=c(1981,1),frequency=12)
f15<-ts(F[15,],start=c(1981,1),frequency=12)
f16<-ts(F[16,],start=c(1981,1),frequency=12)
f17<-ts(F[17,],start=c(1981,1),frequency=12)
f18<-ts(F[18,],start=c(1981,1),frequency=12)
f19<-ts(F[19,],start=c(1981,1),frequency=12)
f20<-ts(F[20,],start=c(1981,1),frequency=12)
F[1,]<-f1
F[2,]<-f2
F[3,]<-f3
F[4,]<-f4
F[5,]<-f5
F[6,]<-f6
F[7,]<-f7
F[8,]<-f8
F[9,]<-f9
F[10,]<-f10
F[11,]<-f11
F[12,]<-f12
F[13,]<-f13
F[14,]<-f14
F[15,]<-f15
F[16,]<-f16
F[17,]<-f17
F[18,]<-f18
F[19,]<-f19
F[20,]<-f20
rm(f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20
,f1.split,f2.split,f3.split,f4.split,f5.split,f6.split,f7.split,f8.split,
f9.split,f10.split,f11.split,f12.split,f13.split,f14.split,f15.split,f16.
split,f17.split,f18.split,f19.split,f20.split,f1.cycle,f2.cycle,f3.cycle,
f4.cycle,f5.cycle,f6.cycle,f7.cycle,f8.cycle,f9.cycle,f10.cycle,f11.cycle
,f12.cycle,f13.cycle,f14.cycle,f15.cycle,f16.cycle,f17.cycle,f18.cycle,f1
9.cycle,f20.cycle)