diff --git a/.read_netcdf.r.swp b/.read_netcdf.r.swp new file mode 100644 index 0000000000000000000000000000000000000000..4547482b13ba38ebf14af7e28d90bfcca75ccdec Binary files /dev/null and b/.read_netcdf.r.swp differ diff --git a/mon_mean.r b/mon_mean.r new file mode 100644 index 0000000000000000000000000000000000000000..ab89b6494f1583707813a29fa9e1ae4d80e01685 --- /dev/null +++ b/mon_mean.r @@ -0,0 +1,12 @@ +mon_mean <- function(var,lat, lon) { + +#read in daily mean data, calculate monthly mean +var_onept <- var[lon,lat,] + +monmean <- mean(var_onept) +#monmean <- apply(as.matrix(var_onept), 3, mean) + +#Outputs + +return(monmean) +} diff --git a/read_netcdf.r b/read_netcdf.r new file mode 100644 index 0000000000000000000000000000000000000000..6c4811660be191c62d76a324cb69382502e52019 --- /dev/null +++ b/read_netcdf.r @@ -0,0 +1,24 @@ + +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") +var <- ncvar_get(nc_data, var_name) + +message("dimension of variable:") +print(dim(var)) + +nc_close(nc_data) + +return(var) +} diff --git a/run.r b/run.r new file mode 100644 index 0000000000000000000000000000000000000000..08f3b831d8fea2515636f5f8fedf80cfb39e5621 --- /dev/null +++ b/run.r @@ -0,0 +1,15 @@ +#Load function files +source("read_netcdf.r") +source("mon_mean.r") + +var_name <- 'tas' +path <- '/esarchive/recon/ecmwf/erainterim/daily_mean/tas/' +file <- 'tas_201801.nc' + +tmp <- read_netcdf(var_name, path, file) + +lat <- 120 +lon <- 255 +monmean <- mon_mean(tmp, lat, lon) + +message('Monthly mean at [',lon,',',lat,']: ',monmean)