[I seek to] incorporate N2O emissions inventories (EIs), initial
conditions (ICs), and boundary conditions (BCs) from relatively
coarse-scaled global inventories (with horizontal grids on the order
of degrees lon-lat) into a [finer-scaled] regional atmospheric model
(12-km LCC horizontal). The [EIs] are [surface/2D] and I now know
how to "regrid," or interpolate from one 2D grid to another.
However the model and [its] IC/BCs are 3D[, and] have [both]
different vertical layering (i.e., [number and height of layers])
[and] different horizontal grids. I'd like to know: is there R code
available that will "rebox," i.e., interpolate vertically as well as
horizontally?
To further specify: my global IC/BC estimates mass concentration for
each box/voxel in a regular, unprojected grid 1.875? x 2.5? x 56 levels.
I want to "rebox" from global IC/BCs to model-ready IC/BCs, where the
latter must estimate mass concentration over a regular grid that
horizontally projects to LCC over North America at 12-km resolution, and
which has 34 vertical levels. (Both the vertical and horizontal extents
of the model-ready IC/BC are subsets of the global extents.) I can
compute the sizes of the boxes, so I can compute the mass in each input
box, and recompute the output concentrations, presuming I can learn how
to rebox the masses.
https://stat.ethz.ch/pipermail/r-sig-geo/2012-November/016578.HTML
I've produced some 3D interpolation examples in the experimental
package GSIF (under construction). You can actually create some kind
of voxels via the SpatialPixelsDataFrame class
and then predict at those locations.
From
http://gsif.r-forge.r-project.org/make.3Dgrid-method.html
it appears one can provide as input
* an unprojected SpatialPixelsDataFrame or RasterBrick
* a PROJ.4 string defining the output CRS
* a "list of standard depths"
and get an output list of SpatialPixelsDataFrame's (one per standard
depth). From the description, it seems like GSIF::make.3Dgrid is doing a
2D regridding at each standard depth, such that the heights of the input
box/voxels must match that of the output box/voxels. Is that correct?
If not, how can one rebox from an input with one set of layer heights
(or vertical bounds) to an output with another set of layer heights?
Can `gdalwarp` do that, or is it (like, IIUC, raster::projectRaster)
restricted to 2D?
Your assistance is appreciated! Tom Roche <Tom_Roche at pobox.com>