【问题标题】:combine one band rasters to get a multiband raster组合一个波段栅格以获得多波段栅格
【发布时间】:2013-03-16 12:21:52
【问题描述】:

我有 4 个单波段的栅格(相同的分辨率,相同的范围...),我想将它们组合成一个四波段的栅格。任何人都可以告诉我如何用 R 做到这一点? 谢谢。

【问题讨论】:

  • 你看过?raster::stack吗?
  • 是R的矩阵,sp的SpatialGridDataFrame,raster的raster,还是什么?

标签: r raster


【解决方案1】:

要创建相同范围和分辨率的栅格堆栈,请使用 raster 包中的 stack 函数:

s  <-  stack(raster1,  raster2)

在这种情况下,栅格可以是栅格对象或栅格的文件路径。

编辑(具体示例):

library(raster)
fn  <-  system.file("external/test.grd",  package="raster")
s  <-  stack(raster(fn),  raster(fn)*2) #here i had to create the raster object since I 
#was multiplying one of the input rasters 
s

class       : RasterStack 
dimensions  : 115, 80, 9200, 2  (nrow, ncol, ncell, nlayers)
resolution  : 40, 40  (x, y)
extent      : 178400, 181600, 329400, 334000  (xmin, xmax, ymin, ymax)
coord. ref. : +init=epsg:28992     
+towgs84=565.237,50.0087,465.658,-0.406857,0.350733,-1.87035,4.0812 +proj=sterea 
+lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 
+ellps=bessel +units=m +no_defs 
names       :  test.1,  test.2 
min values  : 128.434, 256.868 
max values  : 1805.78, 3611.56 

【讨论】:

  • 堆栈的问题是我获得了一个有 4 层的 rasterStack,而我想要的是一个有 4 个波段的单个 rasterLayer。具体来说,我有一个只有红色波段的栅格图层,另一个是蓝色波段,第三个是绿色波段。我想将它们组合成一个 RGB 光栅层。
  • 堆栈中的图层作为栅格波段工作 - 与任何多波段栅格一样,您可以在 arcgis 中打开 tif 堆栈并将波段分配给 RGB 通道以进行测试。在 R 中,如果要将堆栈的某些波段显示为 RGB 合成,可以使用 raster 包中的 plotRGB 函数:plotRGB(stack_raster, r=1, g=2, b=3, stretch='hist' );其中数字代表堆栈层索引。
猜你喜欢
  • 1970-01-01
  • 2013-12-18
  • 1970-01-01
  • 2016-09-04
  • 1970-01-01
  • 1970-01-01
  • 2019-12-31
  • 2015-06-16
  • 2017-06-11
相关资源
最近更新 更多