【发布时间】:2018-01-16 05:32:06
【问题描述】:
我在 R 中加载了相同地理位置的三个栅格。
> ndvi
class : RasterLayer
dimensions : 1138, 1171, 1332598 (nrow, ncol, ncell)
resolution : 30, 30 (x, y)
extent : 766867.4, 801997.4, 1420228, 1454368 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=43 +datum=WGS84 +units=m +no_defs +ellps=WGS84
+towgs84=0,0,0
data source : in memory
names : layer
values : -0.4103095, 0.7972555 (min, max)
> temp_celsius_lst
class : RasterLayer
dimensions : 1138, 1171, 1332598 (nrow, ncol, ncell)
resolution : 30, 30 (x, y)
extent : 766867.4, 801997.4, 1420228, 1454368 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=43 +datum=WGS84 +units=m +no_defs +ellps=WGS84
+towgs84=0,0,0
data source : in memory
names : layer
values : 21.56528, 40.01204 (min, max)
> landuse_raster
class : RasterLayer
dimensions : 1138, 1171, 1332598 (nrow, ncol, ncell)
resolution : 30, 30 (x, y)
extent : 766867.4, 801997.4, 1420228, 1454368 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names : layer
values : 0.93, 0.98 (min, max)
我还有一个多边形图层,如下所示。
> urbangreen_buffer
class : SpatialPolygonsDataFrame
features : 884
extent : 774055.5, 791282.7, 1421905, 1446710 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=43 +datum=WGS84 +units=m +no_defs +ellps=WGS84
+towgs84=0,0,0
variables : 6
names : Id
min values : 1
max values : 9
我要做的是从与多边形区域相交的栅格中提取数据。我使用以下代码:
extract(ndvi, urbangreen_buffer)
extract(temp_celsius_lst, urbangreen_buffer)
extract(landuse_raster, urbangreen_buffer)
它适用于 ndvi 和 temp_celsius_lst 栅格。该代码返回一个包含 884 个元素的列表,其中每个元素都具有位于相应多边形内的栅格中所有像素的值。
但是,landuse_raster 的代码只返回一个包含 884 个元素的列表,其中填充了 NULL 值。我无法找出同样的原因。任何帮助将不胜感激。
如果有任何其他提取方法可以返回多边形的所有像素值,我什至会很好。
问候,
【问题讨论】:
-
你能提供光栅文件和shapefile吗?您的 landuse_raster 文件的投影 (longlat) 与 urbangreen_buffer (utm) 不同。
-
是的,crs 是问题所在。罗伯特的解决方案解决了问题!
-
你可以考虑accept他的回答。
-
谢谢!我之前不知道接受答案...对网站来说还是新手。