2024 på vei mot rekord
2024 har lenge vist seg som et varmt år, og nå er det i praksis ingen sjanse for at 2024 ikke setter rekord. Beregningene under er basert på temperaturene hos NASA.GISS. Det gule feltet på slutten viser spennet vi kan få om vi ikke setter nye månedsrekorder.
Passe rotete R-kode for scriptet:
GStatus.poly.Norm <- function(Y=2024,M=4,YRef=2023){
GData <- read.csv("http://data.giss.nasa.gov/gistemp/tabledata_v4/GLB.Ts+dSST.csv",na.strings = c("***","****"),colClasses = "numeric", skip=1)[,1:13]
D2 <- GData[,1:2]
for (n in 2:12){
D2 <- cbind(D2,
rowMeans(GData[,2:(n+1)]))
}
plot(1000,1000,type="l",xlim=c(1,12),ylim=c(-1,1.65),xlab="Month",ylab="Temperature deviation",main="NASA - GISS", sub="Normal from the dataset")
# NY <- length(D2[,1])
NY <- length(D2[,1])
for (n in 1:NY){
# lines(c(1:12),D2[n,2:13]/100,col="gray")
lines(c(1:11,12.05),D2[n,2:13],col="gray")
}
MaxPre <- c()
Max0130 <- c()
Max3160 <- c()
Max6190 <- c()
Max9120 <- c()
Max2150 <- c()
MaxNaa <- c()
MinPre <- c()
Min0130 <- c()
Min3160 <- c()
Min6190 <- c()
Min9120 <- c()
Min2150 <- c()
MinNaa <- c()
MeanPre <- c()
Mean0130 <- c()
Mean3160 <- c()
Mean6190 <- c()
Mean9120 <- c()
Mean2150 <- c()
MeanNaa <- c()
SDPre <- c()
SD0130 <- c()
SD3160 <- c()
SD6190 <- c()
SD9120 <- c()
SD2150 <- c()
SDNaa <- c()
for(n in 2:13){
MaxPre <- c(MaxPre,max(D2[D2[,1] <= 1900,n],na.rm=T))
MinPre <- c(MinPre,min(D2[D2[,1] <= 1900,n],na.rm=T))
SDPre <- c(SDPre,sd(D2[D2[,1] <= 1900,n],na.rm=T))
MeanPre <- c(MeanPre,mean(D2[D2[,1] <= 1900,n],na.rm=T))
Max0130 <- c(Max0130,max(D2[D2[,1]>1900 & D2[,1]<=1930,n],na.rm=T))
Min0130 <- c(Min0130,min(D2[D2[,1]>1900 & D2[,1]<=1930,n],na.rm=T))
SD0130 <- c(SD0130,sd(D2[D2[,1]>1900 & D2[,1]<=1930,n],na.rm=T))
Mean0130 <- c(Mean0130,mean(D2[D2[,1]>1900 & D2[,1]<=1930,n],na.rm=T))
Max3160 <- c(Max3160,max(D2[D2[,1]>1930 & D2[,1]<=1960,n],na.rm=T))
Min3160 <- c(Min3160,min(D2[D2[,1]>1930 & D2[,1]<=1960,n],na.rm=T))
SD3160 <- c(SD3160,sd(D2[D2[,1]>1930 & D2[,1]<=1960,n],na.rm=T))
Mean3160 <- c(Mean3160,mean(D2[D2[,1]>1930 & D2[,1]<=1960,n],na.rm=T))
Max6190 <- c(Max6190,max(D2[D2[,1]>1960 & D2[,1]<=1990,n],na.rm=T))
Min6190 <- c(Min6190,min(D2[D2[,1]>1960 & D2[,1]<=1990,n],na.rm=T))
SD6190 <- c(SD6190,sd(D2[D2[,1]>1960 & D2[,1]<=1990,n],na.rm=T))
Mean6190 <- c(Mean6190,mean(D2[D2[,1]>1960 & D2[,1]<=1990,n],na.rm=T))
Max9120 <- c(Max9120,max(D2[D2[,1]>1990 & D2[,1]<=2020,n],na.rm=T))
Min9120 <- c(Min9120,min(D2[D2[,1]>1990 & D2[,1]<=2020,n],na.rm=T))
SD9120 <- c(SD9120,sd(D2[D2[,1]>1990 & D2[,1]<=2020,n],na.rm=T))
Mean9120 <- c(Mean9120,mean(D2[D2[,1]>1990 & D2[,1]<=2020,n],na.rm=T))
# Max2150 <- c(Max9120,max(D2[D2[,1]>2020 & D2[,1]<=2050,n],na.rm=T))
# Min2150 <- c(Min9120,min(D2[D2[,1]>2020 & D2[,1]<=2050,n],na.rm=T))
# SD2150 <- c(SD9120,sd(D2[D2[,1]>2020 & D2[,1]<=2050,n],na.rm=T))
# Mean2150 <- c(Mean9120,mean(D2[D2[,1]>2020 & D2[,1]<=2050,n],na.rm=T))
MaxNaa <- c(MaxNaa,max(D2[D2[,1] > 2020,n],na.rm=T))
MinNaa <- c(MinNaa,min(D2[D2[,1] > 2020,n],na.rm=T))
SDNaa <- c(SDNaa,sd(D2[D2[,1] > 2020,n],na.rm=T))
MeanNaa <- c(MeanNaa,mean(D2[D2[,1] > 2020,n],na.rm=T))
}
Farver <- colorRampPalette(c("blue","red"))(6)
Farver <- colorRampPalette(c(rgb(0,0,1,0.5), rgb(1,0,0,0.5)), alpha = TRUE)(5)
XPol <- c(1:12,12:1,1)
#polygon(x=XPol, y=c(MeanPre+SDPre,MeanPre[12:1]-SDPre[12:1],MeanPre[1]+SDPre[1]), col=Farver[1], border = NA)
#polygon(x=XPol, y=c(Mean0130+SD0130,Mean0130[12:1]-SD0130[12:1],Mean0130[1]+SD0130[1]), col=Farver[2], border = NA)
#polygon(x=XPol, y=c(Mean3160+SD3160,Mean3160[12:1]-SD3160[12:1],Mean3160[1]+SD3160[1]), col=Farver[3], border = NA)
#polygon(x=XPol, y=c(Mean6190+SD6190,Mean6190[12:1]-SD6190[12:1],Mean6190[1]+SD6190[1]), col=Farver[4], border = NA)
#polygon(x=XPol, y=c(Mean9120+SD9120,Mean9120[12:1]-SD9120[12:1],Mean9120[1]+SD9120[1]), col=Farver[5], border = NA)
#polygon(x=XPol, y=c(MeanNaa+SDNaa,MeanNaa[12:1]-SDNaa[12:1],MeanNaa[1]+SDNaa[1]), col=Farver[6], border = NA)
print(length(XPol))
print(length(c(MaxNaa,MinNaa[12:1],MaxNaa[1])))
print(Max9120)
print(MaxNaa)
polygon(x=XPol, y=c(MaxPre,MinPre[12:1],MaxPre[1]), col=Farver[1],border = NA)
polygon(x=XPol, y=c(Max0130,Min0130[12:1],Max0130[1]), col=Farver[2],border = NA)
polygon(x=XPol, y=c(Max3160,Min3160[12:1],Max3160[1]), col=Farver[3],border = NA)
polygon(x=XPol, y=c(Max6190,Min6190[12:1],Max6190[1]), col=Farver[4],border = NA)
polygon(x=XPol, y=c(Max9120,Min9120[12:1],Max9120[1]), col=Farver[5],border = NA)
# polygon(x=XPol, y=c(Max2150,Min2150[12:1],Max2150[1]), col=Farver[5],border = NA)
# polygon(x=XPol, y=c(MaxNaa,MinNaa[12:1],MaxNaa[1]), col=Farver[6],border = NA)
D3 <- D2
NY <- length(D3[,1])
for (n in 1:NY){
D3[n,c(M:12)+1]<-D3[n,c(M:12)+1]-(D3[n,M+1]-D3[NY,M+1])
# lines(c(M:12),D3[n,c(M:12)+1]/100,col="orange")
#lines(c(M:12),D3[n,c(M:12)+1],col="orange")
}
#print(D3)
D3Max <- c()
D3Min <- c()
D3X <- M:12
for (m in D3X+1){
D3Max <- c(D3Max,max(D3[,m],na.rm = T))
D3Min <- c(D3Min,min(D3[,m],na.rm = T))
}
LD3X <- length(D3X)
polygon(c(D3X,D3X[LD3X:1],M),c(D3Max,D3Min[LD3X:1],D3Max[1]),col=rgb(1,0.65,0,0.75),border=NA)
# lines(1:12,D2[D2[,1]==Y,2:13]/100,col="red",lwd=2)
lines(1:12,D2[D2[,1]==Y,2:13],col="red",lwd=2)
#lines(1:12,D2[D2[,1]==(Y-1),2:13],col="blue",lwd=2)
lines(1:12,D2[D2[,1]==YRef,2:13],col="blue",lwd=2)
polygon(c(0.8,1.8,1.8,0.8,0.8),c(-0.9,-0.9,-1.1,-1.1,-0.9), col=Farver[1],border = NA)
text(1.3,-1," -1901")
polygon(c(2,3,3,2,2),c(-0.9,-0.9,-1.1,-1.1,-0.9), col=Farver[2],border = NA)
text(2.5,-1,"1901-1930")
polygon(c(3.2,4.2,4.2,3.2,3.2),c(-0.9,-0.9,-1.1,-1.1,-0.9), col=Farver[3],border = NA)
text(3.7,-1,"1931-1960")
polygon(c(4.4,5.4,5.4,4.4,4.4),c(-0.9,-0.9,-1.1,-1.1,-0.9), col=Farver[4],border = NA)
text(4.9,-1,"1961-1990")
polygon(c(5.6,6.6,6.6,5.6,5.6),c(-0.9,-0.9,-1.1,-1.1,-0.9), col=Farver[5],border = NA)
text(6.1,-1,"1991-2020")
lines(c(6.8, 7.2),c(-1,-1),lwd=2,col="red")
text(7.65,-1,"Current year")
lines(c(10.2, 10.6),c(-1,-1),lwd=2,col="blue")
text(10.85,-1,YRef)
lines(c(8.2, 8.6),c(-1,-1),lwd=2,col="orange")
text(9.3,-1,"Possible outcomes" )
}
Kommentarer
Legg inn en kommentar