我正在尝试使用栅格数据包和area函数来计算R中的县与流域交叉点的面积(平方千米或英里)。
到目前为止,我的代码如下:
counties <- readOGR('C:\\Shapefiles\\tl_2017_us_county\\tl_2017_us_county.shp')
counties <- spTransform(counties, CRS("+init=epsg:3455"))
huc2_10 <- readOGR('C:\\Shapefiles\\WBD_10_HU2_Shape\\Shape\\WBDHU6.shp')
huc2_10 <- spTransform(huc2_10, CRS("+init=epsg:3455"))
然后我将两个shapefile相交:
pi <- raster::intersect(huc2_10, counties)
此投影的单位通常为米(我相信),因为它是南达科他州南部的NAD83投影,因此面积函数应以平方米为单位计算面积。我正在尝试使用面积函数计算由于此交集而形成的每个多边形的面积(以平方英里为单位)。
pi$area <- area(pi)/2.589988e6
但是,proj4string看起来像这样:
+init=epsg:3455 +proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +datum=NAD83 +units=us-ft +no_defs +ellps=GRS80 +towgs84=0,0,0
因此,单位为“ us-ft”。那么,面积函数是否因此而以平方英尺为单位输出每个多边形的面积?这似乎很有意义,但是我想确认一下,将代码更改为:
pi$area <- area(pi)/5280**2
谢谢。
答案 0 :(得分:0)
手册确认您的期望:
?raster::area
如果x是SpatialPolygons *对象:如果CRS是经度/纬度,则每个空间对象的面积均以平方米为单位,或者以正方形地图单位(通常为米)为单位
如果地图单位是英尺,则面积将以平方英尺为单位。