diff --git a/.read_netcdf.r.swp b/.read_netcdf.r.swp deleted file mode 100644 index 4547482b13ba38ebf14af7e28d90bfcca75ccdec..0000000000000000000000000000000000000000 Binary files a/.read_netcdf.r.swp and /dev/null differ diff --git a/mon_mean_areaavg.r b/mon_mean_areaavg.r index 6f246d57909caf132cf16149fafe4b3d180f5486..73e8ffa60eee9d03371ae28fdd7f5e9a13c2ef7f 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/read_netcdf.r b/read_netcdf.r index 6c4811660be191c62d76a324cb69382502e52019..fc1885579c199d753e9f58ece4cd34f3b1d890fa 100644 --- a/read_netcdf.r +++ b/read_netcdf.r @@ -1,15 +1,9 @@ library(ncdf4) -#path <- '/esarchive/recon/ecmwf/erainterim/daily_mean/tas/' -#file <- 'tas_201801.nc' - read_netcdf <- function(var_name, path, file) { - nc_data <- nc_open(paste0(path,file)) -#nc_data <- nc_open('/esarchive/recon/ecmwf/erainterim/daily_mean/tas/tas_201801.nc') - lon <- ncvar_get(nc_data, "longitude") lat <- ncvar_get(nc_data, "latitude") t <- ncvar_get(nc_data, "time") diff --git a/run_area.r b/run_area.r new file mode 100644 index 0000000000000000000000000000000000000000..0220243a70cbf1caad898e95bad8c33cb9324ad6 --- /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) + diff --git a/tmp2.md b/tmp2.md deleted file mode 100644 index b33c5606734ea563dac93e08bbaae96c811b05b8..0000000000000000000000000000000000000000 --- a/tmp2.md +++ /dev/null @@ -1 +0,0 @@ -test test