area.map: Area of projected map regions

View source: R/polygon.r

area.mapR Documentation

Area of projected map regions

Description

Computes the areas of regions in a projected map.

Usage

area.map(m, regions = ".", sqmi=TRUE, ...)

Arguments

m

a map object containing named polygons (created with fill = TRUE).

regions

a character vector naming one of more regions, as in map.

sqmi

If TRUE, measure area in square miles. Otherwise keep the units of m.

...

additional arguments to match.map

Details

The area of each matching region in the map is computed, and regions which match the same element of regions have their areas combined. Each region is assumed planar, with vertices specified by the x and y components of the map object.

The correct use of this function is to first use map to create polygons and project the coordinates onto a plane, then apply area.map to compute the area of the projected regions. If the projection is area-preserving (such as albers), then these areas will match the area on the globe, up to a constant. To get an absolute area in square miles, the sqmi option will scale the result, depending on the projection.

The coordinates from map are affected by its resolution argument, so use resolution=0 for the most accurate areas.

Value

a named vector of region areas.

NOTE

The sqmi option assumes the coordinates have been projected with the mapproject function.

Author(s)

Tom Minka

See Also

area.polygon, apply.polygon

Examples

# because the projection is rectangular, these are not true areas on the globe.
m = map("state", fill = TRUE, plot = FALSE)
area.map(m)
area.map(m, ".*dakota")
area.map(m, c("North Dakota", "South Dakota"))

if(require(mapproj)) {
  # true areas on the globe
  m = map("state", proj="bonne", param=45, fill=TRUE, plot=FALSE)
  # North Dakota is listed as 70,704 square miles
  area.map(m, "North Dakota")
}

maps documentation built on May 29, 2024, 9:04 a.m.