提问者:小点点

R-光栅函数NAs值在ASCII文件中低于-9999


我在导入ASCII栅格时遇到了问题,该栅格的值从Min.:-69826220Max.: 167780500。我遇到的问题是,当我使用栅格函数导入ASCII文件时,每个小于-9999的值都报告为NA,最小值为-9458

这是功能的bug,有解决方法吗?当我导入相同的ASCII文件作为数据帧时,一切都很好,我得到了整个值范围。此外,我使用相同的过程导入其他ASCII光栅,没有任何问题。

这是ASCII文件的链接https://dl.dropboxusercontent.com/u/24234831/ps0011yme.asc

这是会话信息,我打开了一个新会话以防万一。

session sionInfo()R版本3.0.0(2013-04-03)平台:x86_64-w64-mingw32/x64(64-bit)

LC_COLLATE=English_United州LC_CTYPE=English_United州1252
[3]LC_MONETARY=English_United州1252LC_NUMERIC=C
[5]LC_TIME=English_United州1252

附加的基础包:[1]stats图形grDevices utils数据集方法基础

其他附包:[1]raster_2.1-16sp_1.0-8

通过命名空间加载(且未附加):[1]grid_3.0.0lattice_0.20-15

任何帮助都很感激


共3个答案

匿名用户

您可以尝试在光栅文件上使用setMinMax()来尝试计算最小值和最大值并将它们存储在返回的Raster*对象中。这样尝试:

r <- setMinMax( raster("path/to/myraster.asc") )

我不确定发生了什么,因为如果我下载你的数据并这样做:

r1 <- raster( "~/Downloads/test.asc")
summary(values(r1))
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max.      NA's 
-69830000  -4789000    737300  16950000  13880000 167800000     71468

请将session sionInfo()的输出添加到您的问题中,即不作为评论。

这种情况下的错误是由未安装rgdal引起的,这是与地理空间数据抽象库的绑定,对于导入/导出光栅和shapefile数据非常重要。

匿名用户

我无法重现您的错误。这是一个手工构建的. asc文件:

NCOLS 3 
NROWS 3 
XLLCORNER 0 
YLLCORNER 0 
CELLSIZE 0.5 
NODATA_value -9999 
1e-6 0.3 -34567891234
0.2 -1e6 25
3 68492758321934 20

正确加载到栅格对象中。您会注意到那里的NODATA_value项,它解释了您的-9999的来源。我敢打赌,您的源. asc文件中有损坏的东西。你能发布标题和一小部分数据样本吗?

匿名用户

'raster'中的内部ascii文件驱动程序假定没有低于NA标志值的有效值,如果标志值是

 library(raster)
 library(rgdal)
 a1 <- raster(filename, native=TRUE)
 a2 <- raster(filename, native=FALSE)