Find the nearest-neighbour coordinates of x in the coordinate arrays of coords.

romsmap(x, ...)

# S3 method for class 'SpatialPolygonsDataFrame'
romsmap(x, coords, crop = FALSE, lonlat = TRUE, ...)

# Default S3 method
romsmap(x, coords, crop = FALSE, lonlat = TRUE, ...)

# S3 method for class 'SpatialLinesDataFrame'
romsmap(x, coords, crop = FALSE, lonlat = TRUE, ...)

# S3 method for class 'SpatialPointsDataFrame'
romsmap(x, coords, crop = FALSE, lonlat = TRUE, ...)

Arguments

x

object to transform to the grid space, e.g. a Spatial object

...

unused

coords

romscoords RasterStack

crop

logical, if TRUE crop x to the extent of the boundary of the values in coords

lonlat

logical, if TRUE check for need to back-transform to longitude/latitude and do it

Value

input object with coordinates transformed to space of the coords

Details

The input coords is a assumed to be a 2-layer RasterStack or RasterBrick and using FNN::get.knnx() the nearest matching position of the coordinates of x is found in the grid space of coords. The motivating use-case is the curvilinear longitude and latitude arrays of ROMS model output.

No account is made for the details of a ROMS cell, though this may be included in future. We tested only with the "lon_u" and "lat_u" arrays.

Note

Do not use this for extraction purposes without checking the output, this is best used for exploration and visualization. Re-mapping ROMS data is better done by looking up the coords_points within spatial objects, and transferring via the grid index.

Examples

library(raster)
ant_ice_coords <- romsmap(antarctica, ice_coords)
raster::image(ice_fake, col = c("transparent", hcl.colors(24)), asp = 1)
sp::plot(ant_ice_coords, add = TRUE)