问题描述
我正在尝试创建名为 stack
的 7 个栅格的栅格堆栈。
这似乎工作得很好,因为当我使用 freq(stack)
时,它返回属于它的栅格的频率,例如对于其中一个栅格:
$Slope_Final
value count
[1,] 0 414933
[2,] 1 94763
[3,] 2 6622
[4,] 3 917
[5,] 4 195
[6,] 5 22
[7,] NA 487146
然而当尝试 summary(stack)
时它返回
Error in .local(object,...) : no cell values associated with this RasterBrick
这似乎互相矛盾?奇怪的是, print(stack)
确实有效。
当我继续并使用 raster::extract
函数时,
extraction <- extract(stack,points)
其中点是一个包含日期和时间等几列的空间点数据框,返回的矩阵仅为 3145 行 NA;
> summary(extraction)
Elevation_Final Landcover_Final Primroad_Final Secroad_Final GPW_Final Slope_Final Water_Final
Mode:logical Mode:logical Mode:logical Mode:logical Mode:logical Mode:logical Mode:logical
NA's:3145 NA's:3145 NA's:3145 NA's:3145 NA's:3145 NA's:3145 NA's:3145
points$Lat
和
points$Lon
返回坐标!它们属于整数类。
如果相关; stack
和 points
extent(stack)
class : Extent
xmin : -265959.9
xmax : 873040.1
ymin : 4619541
ymax : 5501541
extent(points)
class : Extent
xmin : -97.1336
xmax : -83.54935
ymin : 43.6795
ymax : 49.0001
解决方法
如果您展示更多代码,包括您收到的所有消息,将会很有帮助。例如,您说您有一个 RasterStack,但错误消息说您有一个 RasterBrick。在大多数情况下,这应该无关紧要,但是,谁知道呢,在这里确实很重要。如果文件非常大,summary
会取一个样本,并且由于您有很多 NA,这可能是一个不幸的样本(似乎不太可能)--- 在这种情况下会有一条消息。
理想情况下,您可以通过使用代码创建一些类似的数据来重现问题。这在这里可能很困难,但您仍然可以展示工作流程以及 show(stack)
和 show(points)
。
从范围来看,可以假设 points
具有经度/纬度坐标参考系统,但 stack
显然没有。也不会重叠,因此您会得到所有 NAs
。这是一件好事,如果它们碰巧重叠,您可能会得到值,但会得到错误的值。