索引栅格砖

时间:2016-08-18 18:25:24

标签: r indexing raster

我使用raster包在R中使用365层的光栅砖。我想从图层索引r,c转换栅格块中的所有值以获取像素索引start:stop。我已经弄清楚如何从砖块中提取这些值:

year_mask[[start:stop]][r,c] 

...但是当我尝试为光栅砖的这个子集分配一个值时,请执行以下操作:

year_mask[[start:stop]][r,c] <- NA 

..然后我收到以下错误:

Error in v[] <- value : incompatible types (from S4 to logical) in subassignment type fix

有关如何将值或NA分配给栅格砖的时空索引的想法吗?

1 个答案:

答案 0 :(得分:0)

这应该这样做:

year_mask[cellFromRowCol(year_mask,r,c)][start:stop] <- NA

在这里,我假设rc是标量,我正在使用cellFromRowCol从行和列索引中获取单元格索引。

如果您有rc作为行和列索引的向量,并且您希望每行/列对,请参阅?cellFromRowCol,然后执行以下操作:

cinds <- cellFromRowCol(year_mask,r,c)
year_mask[cinds][1:length(cinds), start:stop] <- NA

在这两种情况下,year_mask[cinds]都会返回一个matrix,其中每个单元格的行都已编入索引,所有图层都列为列。后续索引将索引到此矩阵中。

如果您需要rc的所有组合中的单元格,请使用cellFromRowColCombine获取cinds

希望这有帮助。