Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

fm_CRS

Create a coordinate reference system object


Description

Creates either a CRS object or an inla.CRS object, describing a coordinate reference system

Usage

fm_CRS(
  projargs = NULL,
  doCheckCRSArgs = TRUE,
  args = NULL,
  oblique = NULL,
  SRS_string = NULL,
  ...
)

fm_wkt_predef()

Arguments

projargs

Either 1) a projection argument string suitable as input to sp::CRS, or 2) an existing CRS object, or 3) a shortcut reference string to a predefined projection; run names(fm_wkt_predef()) for valid predefined projections.

doCheckCRSArgs

default TRUE, must be set to FALSE by package developers including CRS in an S4 class definition to avoid uncontrollable loading of the rgdal namespace.

args

An optional list of name/value pairs to add to and/or override the PROJ4 arguments in projargs. name=value is converted to "+name=value", and name=NA is converted to "+name".

oblique

Vector of length at most 4 of rotation angles (in degrees) for an oblique projection, all values defaulting to zero. The values indicate (longitude, latitude, orientation, orbit), as explained in the Details section below.

SRS_string

a WKT2 string defining the coordinate system; see sp::CRS. This takes precedence over projargs.

...

Additional parameters. Not currently in use.

Details

The first two elements of the oblique vector are the (longitude, latitude) coordinates for the oblique centre point. The third value (orientation) is a counterclockwise rotation angle for an observer looking at the centre point from outside the sphere. The fourth value is the quasi-longitude (orbit angle) for a rotation along the oblique observers equator.

Simple oblique: oblique=c(0, 45)

Polar: oblique=c(0, 90)

Quasi-transversal: oblique=c(0, 0, 90)

Satellite orbit viewpoint: oblique=c(lon0-time*v1, 0, orbitangle, orbit0+time*v2), where lon0 is the longitude at which a satellite orbit crosses the equator at time=0, when the satellite is at an angle orbit0 further along in its orbit. The orbital angle relative to the equatorial plane is orbitangle, and v1 and v2 are the angular velocities of the planet and the satellite, respectively. Note that "forward" from the satellite's point of view is "to the right" in the projection.

When oblique[2] or oblique[3] are non-zero, the resulting projection is only correct for perfect spheres.

Value

Either an sp::CRS object or an inla.CRS object, depending on if the coordinate reference system described by the parameters can be expressed with a pure sp::CRS object or not.

An S3 inla.CRS object is a list, usually (but not necessarily) containing at least one element:

crs

The basic sp::CRS object

fm_wkt_predef returns a WKT2 string defining a projection

Author(s)

See Also

Examples

if (require(rgdal)) {
  if (fm_has_PROJ6()) {
    crs1 <- fm_CRS("longlat_globe")
    crs2 <- fm_CRS("lambert_globe")
    crs3 <- fm_CRS("mollweide_norm")
    crs4 <- fm_CRS("hammer_globe")
    crs5 <- fm_CRS("sphere")
    crs6 <- fm_CRS("globe")
  } else {
    # Old definitions for pre-PROJ6:
    # Old radius-1 projections have a added "_norm" in the PROJ6 version of
    # the fm_CRS() predefined projections. They are detected and converted
    # to the new versions when RPOJ6 is available.
    crs1 <- fm_CRS("longlat") # PROJ6: longlat_norm
    crs2 <- fm_CRS("lambert") # PROJ6: lambert_norm
    crs3 <- fm_CRS("mollweide") # PROJ6: mollweide_norm
    crs4 <- fm_CRS("hammer") # PROJ6: hammer_norm
    crs5 <- fm_CRS("sphere")
    crs6 <- fm_CRS("globe")
  }
}
## Not run: 
names(fm_wkt_predef())

## End(Not run)

inlabru

Bayesian Latent Gaussian Modelling using INLA and Extensions

v2.3.1
GPL (>= 2)
Authors
Finn Lindgren [aut, cre, cph] (<https://orcid.org/0000-0002-5833-2011>, Finn Lindgren continued development of the main code), Fabian E. Bachl [aut, cph] (Fabian Bachl wrote the main code), David L. Borchers [ctb, dtc, cph] (David Borchers wrote code for Gorilla data import and sampling, multiplot tool), Daniel Simpson [ctb, cph] (Daniel Simpson wrote the basic LGCP sampling method), Lindesay Scott-Howard [ctb, dtc, cph] (Lindesay Scott-Howard provided MRSea data import code), Seaton Andy [ctb] (Andy Seaton provided testing and bugfixes)
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.