customAlbers {enmSdmX}R Documentation

Custom coordinate reference system WKT2 string

Description

These functions take as input either a spatial object or coordinate pair and a custom WKT2 (well-known text) coordinate reference system string centered on the object or coordinate. Projections include:

Please note that these are NOT standard projections, so do not have an EPSG or like code.

Usage

customAlbers(x)

customLambert(x)

customVNS(x, alt = 35800)

Arguments

x

Either an object of class SpatRaster, SpatVector, or sf, or a numeric vector with two values (longitude and latitude of the center of the projection), or a two-column matrix/data frame with the centroid of the projection.

alt

Altitude in meters of the viewpoint in km. The default (35800 km) is geosynchronous orbit.

Value

A WKT2 (well-known text) string.

Functions

See Also

getCRS, customAlbers, customLambert, customVNS

Examples

library(sf)

# Madagascar
data(mad0)

alb <- customAlbers(mad0)
lamb <- customLambert(mad0)
vert <- customVNS(mad0)

madAlb <- st_transform(mad0, alb)
madLamb <- st_transform(mad0, lamb)
madVert <- st_transform(mad0, vert)

oldPar <- par(mfrow=c(2, 2))

plot(st_geometry(mad0), main='Unprojected (WGS84)')
plot(st_geometry(madAlb), main='Albers')
plot(st_geometry(madLamb), main='Lambert')
plot(st_geometry(madVert), main='Vertical')

par(oldPar)


# The effect is more noticeable when plotting large areas,
# especially if they lie near the poles.
# This example can take a few minutes to run and plot.

library(geodata)
library(terra)

# Get outline of Canada...
# We wrap this in tryCatch() in case the server is down.
can <- tryCatch(
	gadm('CAN', level=0, path=tempdir(), resolution=2),
	error=function(cond) FALSE
)

if (!is.logical(can)) {

	alb <- customAlbers(can)
	lamb <- customLambert(can)
	vert <- customVNS(can)

	canAlb <- project(can, alb)
	canLamb <- project(can, lamb)
	canVert <- project(can, vert)

	oldPar <- par(mfrow=c(2, 2))

	plot(can, main='Unprojected (WGS84)')
	plot(canAlb, main='Albers')
	plot(canLamb, main='Lambert')
	plot(canVert, main='Vertical')
		
	par(oldPar)
	
}		



[Package enmSdmX version 1.1.5 Index]