On Thu, 14 May 2009, Wesley Roberts wrote:

Dear list,

I would like to calculate the area of a polygon. I have found areapl() in 
splancs but am having trouble using it.

x<-1
poly <- readShapePoly("a1_l4_aerial_ws.shp", IDvar="cat", 
proj4string=CRS("+proj=tmerc +south +ellips=WGS84 +datum=WGS84 +lon_o=31 +k_0=1 +units=m +no_defs"))
poly_add <- poly[poly$cat[x], ]
areapl(poly_add)
Error in `[.data.frame`(x...@data, i, j, ..., drop = FALSE) :
 undefined columns selected

The areas are calculated when the Polygon objects are created - they are used internally for ordering the painting of the polygons, largest first):

library(rgdal)
scot_BNG <- readOGR(system.file("vectors", package = "rgdal")[1],
  "scot_BNG")
summary(scot_BNG)
getClass("Polygon")
areas <- sapply(slot(scot_BNG, "polygons"), function(x) sapply(slot(x,
 "Polygons"), slot, "area"))
str(areas)

areas is a list - each member is the vector of areas for rings belonging to the Polygons objects. You may also need to access the "hole" slot to see which "are" seen as holes for your data.

The areas are OK for planar coordinates, but only for these - for plotting the values, although not correct, are adequate for plot ordering.

Hope this helps,

Roger


I have tried various combinations of commands with all returning either an 
error or 0. I know the area of the polygon is 4.760465 square meters (area 
slot) but cant seem to replicate this using areapl(). Is it possible to access 
the area slot directly instead of computing the area with areapl()?

Many thanks,
Wesley


Wesley Roberts MSc.
Researcher: Earth Observation (Ecosystems)
Natural Resources and the Environment
CSIR
Tel: +27 (21) 888-2490
Fax: +27 (21) 888-2693

"To know the road ahead, ask those coming back."
- Chinese proverb






--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: roger.biv...@nhh.no

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to