File:Beringia gdd5 ccsm3 trace21ka ds1.svg

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search

Original file(SVG file, nominally 1,650 × 1,275 pixels, file size: 1.27 MB)

Captions

Captions

GDD5 of Beringia at LGM

Summary

[edit]
Description
English: Growing degree days above 5 °C in Beringia at Last Glacial Maximum.
Date
Source Own work
Author Merikanto
SVG development
InfoField
 
The SVG code is valid.
 
This map was created with Adobe Illustrator by Merikanto.
Camera location65° 00′ 00″ N, 150° 00′ 00″ W  Heading=1° Kartographer map based on OpenStreetMap.View this and other nearby images on: OpenStreetMapinfo

This image is generated from ITrace21ka CCSM3 data. Downscaling against Chelsa CCSM3 data.

CHELSA SWI

library(raster)

indirrax1="D:/datav4/"

indirrax2="D:/data_processed/beringia_chelsa_ccsm4_lgm/" indirrax3="D:/data_processed/beringia_chelsa_bio_lgm/"

  1. indirrax2="D:/data_processed/beringia_chelsa_current/"
  2. indirrax3="D:/data_processed/beringia_chelsa_bio_current/"
    1. inpath_etopo1<-"D:/datavarasto/etopo1.nc"

swename1="swe.nc" shname1="snowheight.nc" swiname1="chelsa_lgm_swi.nc"

simuname1="CCSM4" varname1="prec" varname2="tmean"

    1. East Beringia

lon1=-180 lon2=-120 lat1=50.0 lat2=80.0

ext11a<- extent(lon1,lon2,lat1,lat2)

writeout<-function(oras, outn, varnamex, varunitx, longnamex) {

crs(oras) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0" writeRaster(oras, filename=outn, overwrite=TRUE, format="CDF", varname=varnamex, varunit=varunitx, longname=longnamex, xname="lon", yname="lat")

}

chelsa_pmipname1<-function(indirrax1, simuname1, varnamx1,month1) {

 retus1=""
 numus1=sprintf("%02i",month1)
 
 retus1=paste0(indirrax1,"CHELSA_PMIP_",simuname1,"_",varnamx1,"_",numus1,".tif")	
 return(retus1)		

}

chelsa_pmipname2<-function(indirrax1, simuname1, varnamx1,month1) {

 retus1=""
 numus1=sprintf("%i",month1)
 retus1=paste0(indirrax1,"CHELSA_PMIP_",simuname1,"_",varnamx1,"_",numus1,"_1.tif")	
 return(retus1)		

}

chelsa_pmipbioname1<-function(indirrax1, simuname1, varnamx1,month1) {

 retus1=""
 numus1=sprintf("%02i",month1)
 #"CHELSA_PMIP_CCSM4_BIO_01"
 
 
 retus1=paste0(indirrax1,"CHELSA_PMIP_",simuname1,"_BIO_",numus1,".tif")	
 return(retus1)		

}

acquire_chelsa_lgm_monthly_files<-function(indirrax1,indirrax2) { dir.create(indirrax2) for (montho1 in 1:12) { finame1=chelsa_pmipname2(indirrax1, simuname1, varname1,montho1) finame2=chelsa_pmipname1(indirrax1, simuname1, varname2,montho1) foname1=paste0(indirrax2,varname1,montho1) foname2=paste0(indirrax2,varname2,montho1) print(finame1) print(finame2) preci0<-raster(finame1) tempe0<-raster(finame2) prec1<-crop(preci0, ext11a) temp1<-crop(tempe0, ext11a) writeout(prec1,foname1,varname1, "mm/month", "IceAgePrecip") writeout(temp1,foname2,varname2, "tempunits", "IceAgeTemp") }

}

acquire_chelsa_lgm_bio_files<-function(indirrax1,indirrax2) { dir.create(indirrax3) for (montho1 in 1:19) { finame1=chelsa_pmipbioname1(indirrax1, simuname1, varname1,montho1) foname1=paste0(indirrax3,"bio",montho1) biona1=paste0("bio",montho1) print(finame1) bio0<-raster(finame1) bio1<-crop(bio0, ext11a) writeout(bio1,foname1,biona1, "mm/month", biona1) }

}

calculate_lgm_snow_swe<-function(indirrax2) {

foname2=paste0(indirrax2,varname2,1,".nc") print(foname2) swe0<-raster(foname2)

   swe0<-swe0*0.0

for (montho1 in 1:12) { foname1=paste0(indirrax2,varname1,montho1,".nc") foname2=paste0(indirrax2,varname2,montho1,".nc") print(foname1) print(foname2) preci00<-raster(foname1) tempe0<-raster(foname2) preci0<-resample(preci00, tempe0) tempe0[tempe0<2730]<-1.0 tempe0[tempe0>2729]<-0.0 swe0=swe0+((tempe0*preci0)/10) }

writeout(swe0,swename1,"SWE", "mm", "swe") }

chelsa_current_temp_name<-function(indirrax1,month1) {

 retus1=""
 numus1=sprintf("%02i",month1)
 #CHELSA_temp10_01_1979-2013_V1.2_land
 
 retus1=paste0(indirrax1,"CHELSA_temp10_",numus1,"_1979-2013_V1.2_land.tif")	
 return(retus1)		

}

chelsa_current_precip_name<-function(indirrax1,month1) {

 retus1=""
 numus1=sprintf("%02i",month1)
 #CHELSA_prec_01_V1.2_land


 retus1=paste0(indirrax1,"CHELSA_prec_",numus1,"_V1.2_land.tif")	
 return(retus1)		

}

chelsa_current_bio_name<-function(indirrax1,month1) {

 retus1=""
 numus1=sprintf("%02i",month1)
  1. CHELSA_bio10_01


 retus1=paste0(indirrax1,"CHELSA_bio10_",numus1,".tif")	
 return(retus1)		

}

acquire_chelsa_current_monthly_files<-function(indirrax1,indirrax2) { dir.create(indirrax2) for (montho1 in 1:12) { #finame1=chelsa_pmipname2(indirrax1, simuname1, varname1,montho1) #finame2=chelsa_pmipname1(indirrax1, simuname1, varname2,montho1) finame2=chelsa_current_temp_name(indirrax1,montho1) finame1=chelsa_current_precip_name(indirrax1,montho1) foname1=paste0(indirrax2,varname1,montho1) foname2=paste0(indirrax2,varname2,montho1) print(finame1) print(finame2) preci0<-raster(finame1) tempe0<-raster(finame2) prec1<-crop(preci0, ext11a) temp1<-crop(tempe0, ext11a) writeout(prec1,foname1,varname1, "mm/month", "Precip") writeout(temp1,foname2,varname2, "Kmul0", "AgeTemp") }

}

acquire_chelsa_current_bio_files<-function(indirrax1,indirrax2) { dir.create(indirrax3) for (montho1 in 1:19) { #finame1=chelsa_pmipbioname1(indirrax1, simuname1, varname1,montho1) finame1<-chelsa_current_bio_name(indirrax1,montho1) foname1=paste0(indirrax3,"bio",montho1) biona1=paste0("bio",montho1) print(finame1) bio0<-raster(finame1) bio1<-crop(bio0, ext11a) writeout(bio1,foname1,biona1, "mm/month", biona1) }

}

calculate_current_snow_swe<-function(indirrax2) {

foname2=paste0(indirrax2,varname2,1,".nc") print(foname2) swe0<-raster(foname2)

   swe0<-swe0*0.0

for (montho1 in 1:12) { foname1=paste0(indirrax2,varname1,montho1,".nc") foname2=paste0(indirrax2,varname2,montho1,".nc") print(foname1) print(foname2) preci00<-raster(foname1) tempe0<-raster(foname2) preci0<-resample(preci00, tempe0) tempe0[tempe0<2730]<-1.0 tempe0[tempe0>2729]<-0.0 swe0=swe0+((tempe0*preci0)/10) }

writeout(swe0,swename1,"SWE", "mm", "swe") }

calculate_snow_depth_test<-function() { swi0<-raster(swename1) # 25% #sh0=swi0*4 # umiat ## fairbanks test only sh0=swi0*4/3

writeout(sh0,shname1,"SNOWH", "cm", "showh") }

calculate_lgm_swi<-function(indirrax2) {

foname2=paste0(indirrax2,varname2,1,".nc") print(foname2) swi0<-raster(foname2)

   swi0<-swi0*0.0

for (montho1 in 1:12) { #foname1=paste0(indirrax2,varname1,montho1,".nc") foname2=paste0(indirrax2,varname2,montho1,".nc") #print(foname1) print(foname2) #preci00<-raster(foname1) tempe0<-raster(foname2) #preci0<-resample(preci00, tempe0) tempe0=(tempe0-2730)/10 tempe0[tempe0<0.0]<-0.0 swi0=swi0+tempe0 }

writeout(swi0,swiname1,"SWI", "monthC", "Sumner Warmth Index") }

    1. lgm
  1. acquire_chelsa_lgm_bio_files(indirrax1,indirrax3)
  2. acquire_chelsa_lgm_monthly_files(indirrax1, indirrax2)
  3. calculate_lgm_snow_swe(indirrax2)
    1. current
  1. acquire_chelsa_current_bio_files(indirrax1,indirrax3)
  2. acquire_chelsa_current_monthly_files(indirrax1, indirrax2)
  3. calculate_current_snow_swe(indirrax2)
  1. calculate_snow_depth_test()

calculate_lgm_swi(indirrax2)

GDD5 install_libraries=FALSE

if(install_libraries==TRUE) {

install.packages("raster")
install.packages("rgdal")
install.packages("sp")
install.packages("spatialEco")
install.packages("ncdf4")
install.packages("dissever")
install.packages("viridis")
install.packages("dplyr")
install.packages("lattice")
install.packages("RColorBrewer")
install.packages("rgeos")
install.packages("sp")
install.packages("reshape2")
install.packages("data.table")
install.packages("stringr")
install.packages("rlist")
install.packages("pipeR")
install.packages("maptools")
install.packages("gdata", dependencies=TRUE)
install.packages("abind")
install.packages("Cairo")
install.packages("pals")
install.packages("REdaS")
install.packages("easyNCDF")
install.packages("numbers")
install.packages("rasterVis")
install.packages("OceanView")
install.packages("rainfarmr")

}

library(raster) library(rgdal) library(ncdf4) library(lattice) library(maptools) library(rgeos) library(spatialEco) library(dissever) library(rainfarmr)

library(RColorBrewer) library(viridis) library(pals) library(data.table) library(stringr) library(rlist) library(pipeR) library(rasterVis)

  1. library(OceanView)

library(sp) library(reshape2)

library(dplyr) library(REdaS) library(easyNCDF) library(numbers)

  1. library(gdata)

library(abind)

  1. bioname_11="D:/datav3/CHELSA_PMIP_CCSM4_BIO_11.tif" # temperature of coldest 3 month
  2. bioname_19="D:/datav3/CHELSA_PMIP_CCSM4_BIO_19.tif" ## precip of coldest 3 month
  1. bioname_10="D:/datav3/CHELSA_PMIP_CCSM4_BIO_11.tif"

bioname_10="D:/data_processed/beringia_chelsa_bio_lgm/bio10.nc" bioname_5="D:/data_processed/beringia_chelsa_bio_lgm/bio5.nc"

downscale_dissever <- function (coarse_rastera, fine_stack, dismethod, samplerate) {

   print ("Dissever()")		
       names(fine_stack)
       
       
   	

coarse_raster<-coarse_rastera


   p1<-fine_stack$Elevation


  1. plot(p1)
  1. return(0)

coarseoro<- resample(p1, coarse_raster) coarseoro_big<-resample(coarseoro, p1) orodelta<-(p1-coarseoro_big)

baset1 <- resample(coarse_raster, p1)

raster_stack <- fine_stack

min_iter <- 5 # Minimum number of iterations max_iter <- 10 # Maximum number of iterations p_train <- samplerate # Subsampling of the initial data

oma_juttu <- dissever(coarse = coarse_raster, fine = raster_stack, method = dismethod, p = p_train, min_iter = min_iter,max_iter = max_iter, verbose=1) orotemp<-oma_juttu$map

#tempiso<-baset1+oma_juttu$map+biassi

coarseorotemp<- resample(orotemp, coarse_raster) coarseorotemp_big<-resample(coarseorotemp, p1)

orotempdelta<-orotemp-coarseorotemp_big

outtemp<-baset1+orotempdelta

  1. plot(outtemp, col=rev(rainbow(256)) )
  1. outtempr<-rotate(outtemp)

#plot(outtempr)

     return(outtemp)
}

downscale_raster <- function (coarse_rastera, fine_rastera, method) { ## methods: 0 delta, 1 spatialeco, 2 dissever, 3 temperature lapse 6.5 C/1 km lm

   print ("Downscaler()")			

coarse_raster<-coarse_rastera fine_raster<-fine_rastera p1<-fine_raster p2<-fine_raster

  1. plot(fine_raster)
  2. plot(coarse_raster, col=viridis(200))

coarseoro<- resample(p1, coarse_raster) coarseoro_big<-resample(coarseoro, p1) orodelta<-(p1-coarseoro_big)

baset1 <- resample(coarse_raster, p1)

raster_stack <- stack(p1,p2)

min_iter <- 5 # Minimum number of iterations max_iter <- 20 # Maximum number of iterations p_train <- 1.0 # Subsampling of the initial data

	 if(method>9999)
	 {

method=2 }

## dissever run

   if(method==2)

{ oma_juttu <- dissever(coarse = coarse_raster, fine = raster_stack, method = "glm", p = p_train, min_iter = min_iter,max_iter = max_iter, verbose=1) orotemp<-oma_juttu$map }

## spatialeco downscale if(method==1) { oma_juttu2 <- raster.downscale(p1, coarse_raster) orotemp<-oma_juttu2$downscale }

    1. delta regression 1,1

if(method==0) {

orotemp<-orodelta

   	}
    1. delta regression by lapse rate

if(method==3) { orotemp<-orodelta*0.0065*-1

   	}

#biassi=4

#tempiso<-baset1+oma_juttu$map+biassi

coarseorotemp<- resample(orotemp, coarse_raster) coarseorotemp_big<-resample(coarseorotemp, p1)

orotempdelta<-orotemp-coarseorotemp_big

outtemp<-baset1+orotempdelta

  1. plot(outtemp, col=rev(rainbow(256)) )
  1. outtempr<-rotate(outtemp)

#plot(outtempr)

     return(outtemp)
}

downscale_dissever <- function (coarse_rastera, fine_stack, dismethod, samplerate) {

   print ("Dissever()")		
       names(fine_stack)
       
       
   	

coarse_raster<-coarse_rastera


   p1<-fine_stack$Elevation


  1. plot(p1)
  1. return(0)

coarseoro<- resample(p1, coarse_raster) coarseoro_big<-resample(coarseoro, p1) orodelta<-(p1-coarseoro_big)

baset1 <- resample(coarse_raster, p1)

raster_stack <- fine_stack

min_iter <- 5 # Minimum number of iterations max_iter <- 10 # Maximum number of iterations p_train <- samplerate # Subsampling of the initial data

oma_juttu <- dissever(coarse = coarse_raster, fine = raster_stack, method = dismethod, p = p_train, min_iter = min_iter,max_iter = max_iter, verbose=1) orotemp<-oma_juttu$map

#tempiso<-baset1+oma_juttu$map+biassi

coarseorotemp<- resample(orotemp, coarse_raster) coarseorotemp_big<-resample(coarseorotemp, p1)

orotempdelta<-orotemp-coarseorotemp_big

outtemp<-baset1+orotempdelta

  1. plot(outtemp, col=rev(rainbow(256)) )
  1. outtempr<-rotate(outtemp)

#plot(outtempr)

     return(outtemp)
}

writeout<-function(oras, outn, varnamex, varunitx, longnamex) {

crs(oras) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0" writeRaster(oras, filename=outn, overwrite=TRUE, format="CDF", varname=varnamex, varunit=varunitx, longname=longnamex, xname="lon", yname="lat")

}

    1. snow

trace21ka_gdd_load_ds <- function(dirra2, posit, numyears) {

   print("Trace21ka GDD...")
   
   
 #  nppname1="d:/datav3/npp_Lmon_IPSL-CM5A-LR_lgm_r1i1p1_260101-280012.nc"
#   nppname1="d:/datav3/b40.lgm21ka.1deg.003M.clm2.h0.AGNPP.187001-190012.nc"
# nppname1="d:/datav3/b40.lgm21ka.1deg.003M.clm2.h0.NPP.187001-190012.nc"
  nppname1<-"d:/datav3/trace.01-36.22000BP.clm2.AGDD5.22000BP_decavg_400BCE.nc"
# nppname1<-"d:/datav3/trace.01-36.22000BP.clm2.AGDD0.22000BP_decavg_400BCE.nc"


nppin1 <- nc_open(nppname1)

  1. snow0 <- ncvar_get( snin1, varid='snd',start=c(1,1,lokat1), count=c(-1,-1,nummero1) )

vext1<-c(0,360,-90,90)

    1. !! note: we take snow of month 3, March
  lok1=posit*12
  mara=numyears*12
  stacksnow1<-stack()
  
  for(n in 1:mara)
   {

# print (".") snow00 <- ncvar_get( nppin1, varid='AGDD5',start=c(1,1,n), count=c(-1,-1,1) )

snow01=t(snow00) snow02<-apply(snow01,2,rev)

       snow0=raster(snow02)

extent(snow0)<-vext1 names(snow0)<-"AGDD5"

snow2=rotate(snow0)

crs(snow2) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"


stacksnow1 <- stack( stacksnow1 , snow2 )


lok1=lok1+1

}

   rasnow1<-mean(stacksnow1)

   ## g m-2 s -1
#   rasnow1=rasnow0*12*30.5*24*3600  # g m-2 yr : mm dd hh minsec
	crs(stacksnow1) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"

writeRaster(stacksnow1, "gddmany_ccsm4.nc", overwrite=TRUE, format="CDF", xname="lon", yname="lat", varname="GDD5", varunit="dayC", longname="GDD5")

  	crs(rasnow1) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"

writeRaster(rasnow1, "gdd_ccsm4.nc", overwrite=TRUE, format="CDF", xname="lon", yname="lat", varname="GDD5", varunit="dayC", longname="GDD5")


print("Downscaling GDD ...")


   bio5<-raster(bioname_5)
   bio10<-raster(bioname_10)
  
 
  1. names(bio10)<-"Elevation"
  1. names(bio5)<-"bio5"


#  rastafari1<-stack(bio10, bio5)
# swi1<-raster("./wanha1/summerwarmth_beringia.nc")
   swi1<-raster("./wanha1/chelsa_lgm_swi.nc")
   
   
   

#print(names(rastafari1))

out3a<-downscale_raster(rasnow1, swi1,1)

#out3a<<-downscale_dissever(rasnow1, rastafari1,"glm",1.0)

out3<<-out3a

writeout(out3,"./beringia_gdd5_trace_ds2.nc","GDD5", "degCdays", "GDD5")


    1. loadipslnpp
 }
    1. program init

trace21ka_gdd_load_ds(dirra2, 0,30)

Licensing

[edit]
I, the copyright holder of this work, hereby publish it under the following license:
w:en:Creative Commons
attribution share alike
This file is licensed under the Creative Commons Attribution-Share Alike 4.0 International license.
You are free:
  • to share – to copy, distribute and transmit the work
  • to remix – to adapt the work
Under the following conditions:
  • attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current17:02, 8 November 2019Thumbnail for version as of 17:02, 8 November 20191,650 × 1,275 (1.27 MB)Merikanto (talk | contribs)User created page with UploadWizard

There are no pages that use this file.

Metadata