我有一个名为"tiff4“的tiff文件,下面是它的信息:
class : RasterLayer dimensions : 49, 89, 4361 (nrow, ncol, ncell) resolution : 0.5, 0.5 (x, y) extent : 60.64135, 105.1413, 14.99839, 39.49839 (xmin, xmax, ymin, ymax) coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 data source : C:\Users\Halima Usman\Documents\ICIMOD\hkh1.tif names : hkh1
现在我需要一个范围,其中是整数,而不是小数位。这就是我用来改变范围的方法
ext <- extent(61, 105, 16, 39) extent(tiff4)<-ext
但在改变范围之后,分辨率也发生了变化。我需要0.5度class : RasterLayer dimensions : 49, 89, 4361 (nrow, ncol, ncell) resolution : 0.494382, 0.4693878 (x, y) extent : 61, 105, 16, 39 (xmin, xmax, ymin, ymax) coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 data source : C:\Users\Halima Usman\Documents\ICIMOD\hkh1.tif names : hkh1的分辨率
然后我通过这样做将分辨率改回0.5:
res(tiff4)=0.5,但是当我绘制tiff4时,它给出了一个错误
Error in .plotraster2(x, col = col, maxpixels = maxpixels, add = add, : no values associated with this RasterLayer
如何修复此错误,或者此错误背后的原因是什么?(我已经看过这个问题Can't change raster's extent,但作为R的初学者,我没有得到预期的结果)
发布于 2019-04-03 19:18:42
你把ymin从14.99改成了16。这可不好。你可以通过这样做来接近
ext <- extent(60.5, 105, 15, 39.5)那会“有效”因为(105-60.5) / .5 = 89和(39.5-15) / .5 = 49。也就是说,行数和列数与分辨率匹配。但是,您现在已经在空间上移动了这些值,因此它们不再“正确”。并且该范围不具有整数。
我建议你做一些类似这样的事情:
r <- raster(tiff4)
extent(r) <- c(60, 105, 15, 40)
r <- resample(tiff4, r)
rhttps://stackoverflow.com/questions/55481898
复制相似问题