在R

时间:2017-01-02 15:58:40

标签: r merge raster

我正在尝试合并我创建的一堆栅格来代表一个生菜农场。我不想详细介绍,但我需要为每个产品床和沟槽(两个产品床之间的区域)创建一个单独的光栅。因此,我的农场有60个产品床(由60个光栅层代表)以及61个并排放置的沟槽(由61个光栅层代表),形成一个大小为(65 x 65米)的矩形农场。每个生产床的尺寸为0.6 x 65米,而每个沟槽的尺寸为0.4 x 65米。我使用不同的单元尺寸用于生产床和沟槽涂层(即分别为0.2米和0.3米用于生产床和沟槽)。

现在,我正在进行一些命运传输建模,并及时为这些层保存每个网格单元中的土壤污染。最后,我正在尝试将这些图层彼此相邻合并,并创建实际的场(65x 65平方米的场)。

这是我的工作。假设我尝试合并产品床层:

  1. 对于每一层,我首先使用“范围”功能将其范围调整为整个农场范围(即[0,65,0,65])。
  2. 我创建了一个循环,并使用公差级别1.0合并这些现在具有相同范围的图层。
  3. 现在,当我尝试绘制最终合并图层时,我看到一个没有意义的图形。一些产床变形(见下图)。实际层,似乎没有这个问题,因为当我使用xyFromCells然后绘制xy坐标时,似乎行正确放置。我想知道这是否是“情节”问题,而不是我如何合并图层?

    enter image description here

    以下是简化代码:

    # create raster layers
    myRaster<-list()
    for (i in 1:65){
      x.min<-(i-1)
      x.max<-x.min+0.4
      y.min<-0
      y.max<-65
      n.rows<-round(65/0.2)+1
      n.cols<-3
      myRaster[[i]]<-raster(nrow=n.rows,ncol=n.cols,xmn=x.min,xmx=x.max,ymn=y.min,ymx=y.max)
      values(myRaster[[i]])<-runif(ncell(myRaster[[i]]),0,100)
      proj4string(myRaster[[i]])<-"+proj=utm +zone=36 +ellps=WGS84 +units=m +no_defs"
    }
    
    
    # merge raster layers
    farmExtent<-extent(0,65,0,65)
    merged.layers<-myRaster[[1]]
    merged.layers<-extend(merged.layers,farmExtent)
    for (i in 2:65){
      temp.layer<-extend(myRaster[[i]],farmExtent)
      x<-merge(x=merged.layers,y=temp.layer,tolerance=1.0)
      merged.layers<-x
    }
    plot(merged.layers)
    

0 个答案:

没有答案