From be2ab1db4173d4d2790bab7ea740fa508e8d5057 Mon Sep 17 00:00:00 2001 From: aho Date: Fri, 22 Mar 2019 17:17:26 +0100 Subject: [PATCH 1/3] small change to read_netcdf.r --- .read_netcdf.r.swp | Bin 12288 -> 0 bytes read_netcdf.r | 6 ------ 2 files changed, 6 deletions(-) delete mode 100644 .read_netcdf.r.swp diff --git a/.read_netcdf.r.swp b/.read_netcdf.r.swp deleted file mode 100644 index 4547482b13ba38ebf14af7e28d90bfcca75ccdec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2%Zk)M7={0t!R2@vL0raerPI*U>C1>RxX_(0TzUb8P@Pn|14*T+RF4eamcD=s z1)su4aN)b?M&CeBWx8P$XG8{sfm85NN!6*pDqpWcXEJzr?|yKjzawbpMJ|1Q`}E1K z$lVPQHLLvSU)!Wkw6bnC9*vL9zCytWY&%^$Ph_=9W20S?W_^3?T29gc4V=`#ri@3! zfv?hTT?sC3JveDWuBQPSpaB}70UDqI8lV9hI7J5Bd`({Cyz9#|UtacWzxB&ob~Hc( zG(ZD1Km#;D12jMbG(ZD1Km(`HfJ#N)Y>I50#o_V)|LXn!$2pPj;2Zb|-h+2w2BzQ+ zxDCEy-52l)d;l-NWAF%E2iL$=umvuFGr;e)4%ldb255i=Xn+Q2fCgxQ255i={;PqP zVzpaX6YeS76){Pi6jiN5T%^h=49#tBT$tu%6X{B+>sn29*us!DbzYgE$^tCU)uhn7 zEiA!JaBDj-2`=KPcB^VVAB&ADbywUGiIziI6e-k^2~6c~kv1vp{^y-qMP;U|n6#JA za}bWJxi(=Z(zUY5EZ@`k7Cos2TG#s+}H$bLD2eEH88yu|r?F`)IZ>iGw#Uw6W0(nt0IUgXj1_*I)T)=hrQz Z?Ssw4KOep$Qsfh>>^^>uG~2 Date: Mon, 25 Mar 2019 09:21:19 +0100 Subject: [PATCH 2/3] delete tmp2.md --- tmp2.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 tmp2.md diff --git a/tmp2.md b/tmp2.md deleted file mode 100644 index b33c560..0000000 --- a/tmp2.md +++ /dev/null @@ -1 +0,0 @@ -test test -- GitLab From 86edc55e74d02e1ccf2f021b6119b0e4b82e8446 Mon Sep 17 00:00:00 2001 From: aho Date: Mon, 25 Mar 2019 12:39:50 +0100 Subject: [PATCH 3/3] Add area weighted average function. --- mon_mean_areaavg.r | 13 +++++++++---- run_area.r | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 run_area.r diff --git a/mon_mean_areaavg.r b/mon_mean_areaavg.r index 6f246d5..73e8ffa 100644 --- a/mon_mean_areaavg.r +++ b/mon_mean_areaavg.r @@ -1,12 +1,17 @@ -mon_mean_areaavg <- function(var, latmin, latmax, lonmin, lonmax) { +mon_mean_areaavg <- function(var, lat_var, latmin, latmax, lonmin, lonmax) { #read in daily mean data, calculate monthly mean #read in lat and lon range, calculate area mean #'var' is the variable read from netCDF var_sub <- var[lonmin:lonmax, latmin:latmax, ] -lat_sub <- -cos_lat <- -monmean <- mean(var_onept) +lat_sub <- lat_var[latmin:latmax] +var_lon_mean <- apply(var_sub, c(2,3), mean) #average along longitude + +cos_lat <- abs(cos(lat_sub))/sum(abs(cos(lat_sub))) +weight <- matrix(rep(cos_lat,each=dim(var)[3]),ncol=dim(var)[3], byrow=TRUE) #create same matrix size as var + +areamean <- weighted.mean(var_lon_mean, weight) +monmean <- mean(areamean) #monmean <- apply(as.matrix(var_onept), 3, mean) #Outputs diff --git a/run_area.r b/run_area.r new file mode 100644 index 0000000..0220243 --- /dev/null +++ b/run_area.r @@ -0,0 +1,21 @@ +#Load function files +source("read_netcdf.r") +source("mon_mean_areaavg.r") + +var_name <- 'tas' +lat_name <- 'latitude' +path <- '/esarchive/recon/ecmwf/erainterim/daily_mean/tas/' +file <- 'tas_201801.nc' + +var <- read_netcdf(var_name, path, file) +lat <- read_netcdf(lat_name, path, file) + +latmin <- 120 +latmax <- 122 +lonmin <- 200 +lonmax <- 201 + +monmean <- mon_mean_areaavg(var, lat, latmin, latmax, lonmin, lonmax) + +message('Monthly mean over the region [',lonmin,':',lonmax,',',latmin,':',latmax,']: ',monmean) + -- GitLab