1

I'm interested in finding the unit for the obtained area size of the polygons without refererring to the externally available documentation.

Example

A suite of shapefiles is imported as follows:

tmpDir <- tempdir()
tmpFle <- tempfile(fileext = ".zip")
download.file(url = "https://borders.ukdataservice.ac.uk/ukborders/easy_download/prebuilt/shape/infuse_rgn_2011_clipped.zip",
              destfile = tmpFle,
              method = "wget")
unzip(zipfile = tmpFle, exdir = tmpDir)
shpsUK <- rgdal::readOGR(dsn = tmpDir,
                         layer = tools::file_path_sans_ext(dir(tmpDir)[3]))

Area sizes

oldScipen <- getOption("scipen")
options(scipen = 999)
format(summary(rgeos::gArea(shpsUK, byid = TRUE)),
       big.mark = ",")
options(scipen = oldScipen)

which produces:

            Min.          1st Qu.           Median             Mean          3rd Qu.             Max. 
" 1,573,530,067" "13,003,803,228" "15,411,419,165" "14,492,421,008" "19,085,426,561" "23,851,569,172"

Can I determine the units of the obtained figures without referring to external documentation that may be available on the sources shapefiles?

PolyGeo
  • 65,136
  • 29
  • 109
  • 338
Konrad
  • 331
  • 2
  • 3
  • 12

1 Answers1

3

The shapefiles you downloaded have projection information included in the .prj file:

PROJCS["OSGB_1936_British_National_Grid",GEOGCS["GCS_OSGB 1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",-2],PARAMETER["scale_factor",0.9996012717],PARAMETER["false_easting",400000],PARAMETER["false_northing",-100000],UNIT["Meter",1]]

After loading in R, you can get a summary of spatial information which gives you that information and more:

>summary(shpsUK)

Object of class SpatialPolygonsDataFrame
Coordinates:
      min      max
x 82672.0 655604.7
y  5337.9 657534.1
Is projected: TRUE 
proj4string :
[+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +datum=OSGB36 +units=m +no_defs +ellps=airy
+towgs84=446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894]
Data attributes:
           geo_label      geo_code
 East Midlands  :1   E12000001:1  
 East of England:1   E12000002:1  
 London         :1   E12000003:1  
 North East     :1   E12000004:1  
 North West     :1   E12000005:1  
 South East     :1   E12000006:1  
 (Other)        :3   (Other)  :3  

The units are in metres (+units=m).

Simbamangu
  • 14,773
  • 6
  • 59
  • 93