Last chance! 50% off unlimited learning
Sale ends in
Creates either a CRS object or an inla.CRS object, describing a coordinate reference system
fm_CRS(
projargs = NULL,
doCheckCRSArgs = TRUE,
args = NULL,
oblique = NULL,
SRS_string = NULL,
...
)fm_wkt_predef()
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.
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.
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"
.
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.
a WKT2 string defining the coordinate system;
see sp::CRS
. This takes precedence over projargs
.
Additional parameters. Not currently in use.
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:
The basic sp::CRS
object
fm_wkt_predef returns a WKT2 string defining a projection
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.
# NOT RUN {
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())
# }
Run the code above in your browser using DataLab