Convert geographic coordinates to/from Albers Equal Area conic projection. This is an equal-area projection commonly used for thematic maps of regions with greater east-west extent.
albers_fwd(
x,
lon0,
stdlat = NULL,
stdlat1 = NULL,
stdlat2 = NULL,
k0 = 1,
k1 = 1
)
albers_rev(
x,
y,
lon0,
stdlat = NULL,
stdlat1 = NULL,
stdlat2 = NULL,
k0 = 1,
k1 = 1
)For forward conversion: a two-column matrix or data frame of coordinates (longitude, latitude) in decimal degrees. For reverse conversion: numeric vector of x (easting) coordinates in meters.
Central meridian in decimal degrees. Can be a vector to specify different central meridians for each point.
Standard parallel for single standard parallel projections (e.g., Lambert Cylindrical Equal Area when stdlat = 0).
First and second standard parallels in decimal degrees for two standard parallel projections.
Scale factor at the standard parallel(s). Default is 1.
Scale factor at the first standard parallel for two standard parallel projections. Default is 1.
Numeric vector of y (northing) coordinates in meters (reverse only).
Data frame with columns:
For forward conversion:
x: Easting in meters
y: Northing in meters
convergence: Grid convergence in degrees
scale: Scale factor at the point
lon, lat: Input coordinates (echoed)
lon0: Central meridian (echoed)
For reverse conversion:
lon: Longitude in decimal degrees
lat: Latitude in decimal degrees
convergence: Grid convergence in degrees
scale: Scale factor at the point
x, y: Input coordinates (echoed)
lon0: Central meridian (echoed)
The Albers Equal Area conic projection preserves area, making it ideal for:
Thematic/choropleth maps where area comparison matters
Continental-scale maps (e.g., USGS maps of CONUS)
Statistical mapping and analysis
Common configurations:
CONUS: stdlat1 = 29.5, stdlat2 = 45.5, lon0 = -96
Australia: stdlat1 = -18, stdlat2 = -36, lon0 = 132
Europe: stdlat1 = 43, stdlat2 = 62, lon0 = 10
Special cases:
When stdlat1 = -stdlat2, the projection becomes Lambert Cylindrical Equal Area
When stdlat1 = stdlat2 = 0, it becomes the cylindrical equal-area projection
The lon0 parameter is vectorized, allowing different central meridians
for each point.
lcc_fwd() for Lambert Conformal Conic (conformal, not equal-area).
# CONUS Albers Equal Area
pts <- cbind(lon = c(-122, -74, -90), lat = c(37, 41, 30))
albers_fwd(pts, lon0 = -96, stdlat1 = 29.5, stdlat2 = 45.5)
#> x y convergence scale lon lat lon0
#> 1 -2263686.4 206874.8 -15.675472 0.9904383 -122 37 -96
#> 2 1819414.0 555045.1 13.263861 0.9917843 -74 41 -96
#> 3 577912.5 -867862.5 3.617417 0.9989271 -90 30 -96
# Australia
aus <- cbind(lon = c(151.2, 115.9, 153.0), lat = c(-33.9, -32.0, -27.5))
albers_fwd(aus, lon0 = 132, stdlat1 = -18, stdlat2 = -36)
#> x y convergence scale lon lat lon0
#> 1 2758357 5731265 -8.610797 1.559111 151.2 -33.9 132
#> 2 -2298350 5656779 7.220512 1.514747 115.9 -32.0 132
#> 3 2936616 5219722 -9.418059 1.421592 153.0 -27.5 132
# Antarctic projection
ant <- cbind(lon = c(166.67, 77.97, -43.53), lat = c(-77.85, -67.60, -60.72))
albers_fwd(ant, lon0 = 0, stdlat1 = -72, stdlat2 = -60)
#> x y convergence scale lon lat lon0
#> 1 6362785 -14451441 -151.42898 8.975620 166.67 -77.85 0
#> 2 12396653 1540037 -70.84009 4.891702 77.97 -67.60 0
#> 3 -8241491 7212962 39.54943 3.760209 -43.53 -60.72 0
# Round-trip conversion
fwd <- albers_fwd(pts, lon0 = -96, stdlat1 = 29.5, stdlat2 = 45.5)
albers_rev(fwd$x, fwd$y, lon0 = -96, stdlat1 = 29.5, stdlat2 = 45.5)
#> lon lat convergence scale x y lon0
#> 1 -122 37 -15.675472 0.9904383 -2263686.4 206874.8 -96
#> 2 -74 41 13.263861 0.9917843 1819414.0 555045.1 -96
#> 3 -90 30 3.617417 0.9989271 577912.5 -867862.5 -96
# Single standard parallel (cylindrical-like)
albers_fwd(pts, lon0 = -96, stdlat = 37)
#> x y convergence scale lon lat lon0
#> 1 -2285643.4 314053.2 -15.64719 1.000000 -122 37 -96
#> 2 1839257.8 657147.1 13.23993 1.002569 -74 41 -96
#> 3 582500.9 -756236.7 3.61089 1.006856 -90 30 -96