I am interested in calculating precipitation averages globally. However, I only want to isolate land and/or oceanic areas to compute the mean of those separately. What I would like to do is somehow isolate those grid cells whose centers overlap with either land or ocean and then compute the annual mean. I already first created a raster stack, called "RCP1pctCO2Mean", which contains the mean values of interest. There are 138 layers, with each layer representing one year. This raster stack has the following attributes:
class : RasterStack
dimensions : 64, 128, 8192, 138 (nrow, ncol, ncell, nlayers)
resolution : 2.8125, 2.789327 (x, y)
extent : -181.4062, 178.5938, -89.25846, 89.25846 (xmin, xmax, ymin,
ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
names : layer.1, layer.2, layer.3, layer.4, layer.5,
layer.6, layer.7, layer.8, layer.9, layer.10, layer.11,
layer.12, layer.13, layer.14, layer.15, ...
min values : 0.42964514, 0.43375653, 0.51749371, 0.50838983, 0.45366730,
0.53099146, 0.49757186, 0.45697752, 0.41382199, 0.46082401, 0.45516687,
0.51857087, 0.41005131, 0.45956529, 0.47497867, ...
max values : 96.30350, 104.08584, 88.92751, 97.49373, 89.57201,
90.58570, 86.67651, 88.33519, 96.94720, 101.58247, 96.07792,
93.21948, 99.59785, 94.26218, 90.62138, ...
Previously, I tried isolating a specific region by specifying a range of longitudes and latitudes to obtain the means and medians for that region, just like this:
expansion1<-expand.grid(103:120, 3:15) #This is a range of longitudes and then latitudes
lonlataaa<-extract(RCP1pctCO2Mean, expansion1)
Columnaaa<-colMeans(lonlataaa)
#Packages loaded
library(raster)
library(maps)
library(maptools)
library(rasterVis)
However, with this approach, too much water can mix with land areas, and if I narrow the latitude/longitude range on land, I might miss too much land to compute the mean meaningfully. Therefore, with this RasterStack, would it be possible to create a condition that tells R that if the "center point" or centroid of each grid cell (with each grid cell center representing a specific latitude/longitude coordinate) happens to fall on land, then it would be considered as land (i.e. that would be TRUE - if not, then FALSE, or maybe somehow use 0s or 1s)? Even if a grid cell happens to have water mixed with land, but the center point/centroid of the grid is on land, that would be considered as land. I would like to do this for specific countries, too.
What I was thinking was maybe using wrld_smpl from the maptools package to somehow create a mask that hides oceans, and then somehow have only those grid cells from the "RCP1pctCO2Mean" RasterStack overlap accordingly with the land/water polygons that would be left behind, or for any country that I am interested in.
Is there a way to do this?
Thank you, and I would greatly appreciate any assistance!