Obtain an sf::crs
or fm_crs
object from a spatial object, or
convert crs information to construct a new sf::crs
object.
Usage
fm_crs(x, ..., crsonly = FALSE)
fm_crs_oblique(x)
fm_crs_oblique(x) <- value
# S3 method for fm_crs
print(x, ...)
# S3 method for default
fm_crs(x, ..., crsonly = FALSE)
# S3 method for fm_crs
st_crs(x, ...)
# S3 method for fm_crs
$(x, name)
# S3 method for fm_crs
fm_crs(x, ..., crsonly = FALSE)
# S3 method for inla.CRS
fm_crs(x, ..., crsonly = FALSE)
# S3 method for character
fm_crs(x, ..., crsonly = FALSE)
# S3 method for Spatial
fm_crs(x, ..., crsonly = FALSE)
# S3 method for SpatVector
fm_crs(x, ..., crsonly = FALSE)
# S3 method for SpatRaster
fm_crs(x, ..., crsonly = FALSE)
# S3 method for sf
fm_crs(x, ..., crsonly = FALSE)
# S3 method for sfc
fm_crs(x, ..., crsonly = FALSE)
# S3 method for sfg
fm_crs(x, ..., crsonly = FALSE)
# S3 method for inla.mesh
fm_crs(x, ..., crsonly = FALSE)
# S3 method for inla.mesh.lattice
fm_crs(x, ..., crsonly = FALSE)
# S3 method for inla.mesh.segment
fm_crs(x, ..., crsonly = FALSE)
fm_wkt_predef()
Arguments
- x
Object to convert to
crs
or to extractcrs
information from. Ifcharacter
, a string suitable forsf::st_crs(x)
, or the name of a predefinedwkt
string from ``names(fm_wkt_predef())`.- ...
Additional parameters. Not currently in use.
- crsonly
logical; if
TRUE
, remove anyoblique
information forfm_crs
class objects and return a purecrs
class object. Default:FALSE
.- value
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.
- name
element name
Value
Either an sf::crs
object or an fm_crs
object,
depending on if the coordinate reference system described by the parameters
can be expressed with a pure crs
object or not.
A crs
object (sf::st_crs()
) or a fm_crs
object.
An S3 fm_crs
object is a list with elements crs
and oblique
.
fm_wkt_predef
returns a WKT2 string defining a projection
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.
Methods (by generic)
st_crs(fm_crs)
:st_crs(x, ...)
is equivalent tofm_crs(x, ..., crsonly = TRUE)
whenx
is afm_crs
object.$
: For afm_crs
objectx
,x$name
calls the accessor method for thecrs
object inside it. Ifname
is "crs", the internal crs object itself is returned. Ifname
is "oblique", the internal oblique angle parameter vector is returned.
Author
Finn Lindgren finn.lindgren@gmail.com
Examples
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")
if (FALSE) {
names(fm_wkt_predef())
}