为什么crop有时会在分类光栅上引入NAs? 库(光栅) r

为什么crop有时会在分类光栅上引入NAs? 库(光栅) r,r,geospatial,r-raster,R,Geospatial,R Raster,错误消息表明光栅属性表发生错误。问题与标签上的特殊字符有关 特别是,半列(:)似乎以某种方式导致剪切光栅中的类名“拆分”。因此,只要双方 “马赛克:树木覆盖/其他自然植被” 及 “马赛克:农田/树木覆盖/其他自然植被” 裁剪范围中包含像素,RAT由于多个马赛克标签而损坏,从而阻止正确保存文件 “整理”类名,例如: > ext <- extent(-68,-64,-2,2) # The RAT is copied from the original > r1 <- crop

错误消息表明光栅属性表发生错误。问题与标签上的特殊字符有关

特别是,半列(
)似乎以某种方式导致剪切光栅中的类名“拆分”。因此,只要双方

“马赛克:树木覆盖/其他自然植被”

“马赛克:农田/树木覆盖/其他自然植被”

裁剪范围中包含像素,RAT由于多个
马赛克
标签而损坏,从而阻止正确保存文件

“整理”类名,例如:

> ext <- extent(-68,-64,-2,2) # The RAT is copied from the original
> r1 <- crop(r,ext)
> levels(r1)
[[1]]
   ID     COUNT                                               CLASSNAMES
1   1  12875179                       Tree Cover, broadleaved, evergreen
2   2   8688097               Tree Cover, broadleaved, deciduous, closed
3   3   4099003                 Tree Cover, broadleaved, deciduous, open
4   4  15080165                     Tree Cover, needle-leaved, evergreen
5   5   8054159                     Tree Cover, needle-leaved, deciduous
6   6   5606446                              Tree Cover, mixed leaf type
7   7    579763               Tree Cover, regularly flooded, fresh water
8   8    115705              Tree Cover, regularly flooded, saline water
9   9   4269938            Mosaic: Tree Cover / Other natural vegetation
10 10    587270                                        Tree Cover, burnt
11 11   3195387                      Shrub Cover, closed-open, evergreen
12 12  15605651                      Shrub Cover, closed-open, deciduous
13 13  17560702                            Herbaceous Cover, closed-open
14 14  23573022                  Sparse herbaceous or sparse shrub cover
15 15   3089962          Regularly flooded shrub and/or herbaceous cover
16 16  21692769                             Cultivated and managed areas
17 17   4025653 Mosaic: Cropland / Tree Cover / Other natural vegetation
18 18   3921904              Mosaic: Cropland / Shrub and/or grass cover
19 19  24629888                                               Bare Areas
20 20 471034157                                             Water Bodies
21 21  10660085                                             Snow and Ice
22 22    378999                 Artificial surfaces and associated areas
23 23     29056                                                  No Data

> ext <- extent(-69,-63,-3,3) # The RAT is corrupted
> r1 <- crop(r,ext)
> levels(r1)
[[1]]
         ID     COUNT                                        CLASSNAMES
1         1   8688097          Tree Cover, broadleaved, deciduous, open
2         2   4099003              Tree Cover, needle-leaved, evergreen
3         3  15080165              Tree Cover, needle-leaved, deciduous
4         4   8054159                       Tree Cover, mixed leaf type
5         5   5606446        Tree Cover, regularly flooded, fresh water
6         6    579763       Tree Cover, regularly flooded, saline water
7         7    115705                                            Mosaic
8         8   4269938             Tree Cover / Other natural vegetation
9         9    587270                                 Tree Cover, burnt
10       10   3195387               Shrub Cover, closed-open, evergreen
11       11  15605651               Shrub Cover, closed-open, deciduous
12       12  17560702                     Herbaceous Cover, closed-open
13       13  23573022           Sparse herbaceous or sparse shrub cover
14       14   3089962   Regularly flooded shrub and/or herbaceous cover
15       15  21692769                      Cultivated and managed areas
16       16   4025653                                            Mosaic
17       17   3921904  Cropland / Tree Cover / Other natural vegetation
18       18  24629888                                            Mosaic
19       19 471034157               Cropland / Shrub and/or grass cover
20       20  10660085                                        Bare Areas
21       21    378999                                      Water Bodies
22       22     29056                                      Snow and Ice
23       23        NA          Artificial surfaces and associated areas
24 12875179        NA                                           No Data

levels(r)[[1]]$CLASSNAMES
sum(is.na(r1[])
返回0,尽管。。。您是否目视检查了第一次
裁剪的结果?@loki是的,它返回0。并且
r1[is.na(r1)]
返回NULL。第一批作物正常播种。所以警告没有任何意义吗?@loki显然是的。你能再现错误吗?也许是我的R或光栅包损坏了?@jmt208ad是的,似乎是。无论如何,出现此错误后,我无法
writerater(r1,'raster1.tif')
。你能重现那里的错误吗?我能够在VirtualBox内部的一个完全不同的安装中复制它。这是一个由冒号用作临时文件(仅为大型数据集创建)中的分隔符引起的错误。我已经在
光栅
版本2.6-1(即将发布)中修复了该问题
ext <- extent(-68,-64,-2,2)
r1 <- crop(r,ext) # works fine
> ext <- extent(-68,-64,-2,2) # The RAT is copied from the original
> r1 <- crop(r,ext)
> levels(r1)
[[1]]
   ID     COUNT                                               CLASSNAMES
1   1  12875179                       Tree Cover, broadleaved, evergreen
2   2   8688097               Tree Cover, broadleaved, deciduous, closed
3   3   4099003                 Tree Cover, broadleaved, deciduous, open
4   4  15080165                     Tree Cover, needle-leaved, evergreen
5   5   8054159                     Tree Cover, needle-leaved, deciduous
6   6   5606446                              Tree Cover, mixed leaf type
7   7    579763               Tree Cover, regularly flooded, fresh water
8   8    115705              Tree Cover, regularly flooded, saline water
9   9   4269938            Mosaic: Tree Cover / Other natural vegetation
10 10    587270                                        Tree Cover, burnt
11 11   3195387                      Shrub Cover, closed-open, evergreen
12 12  15605651                      Shrub Cover, closed-open, deciduous
13 13  17560702                            Herbaceous Cover, closed-open
14 14  23573022                  Sparse herbaceous or sparse shrub cover
15 15   3089962          Regularly flooded shrub and/or herbaceous cover
16 16  21692769                             Cultivated and managed areas
17 17   4025653 Mosaic: Cropland / Tree Cover / Other natural vegetation
18 18   3921904              Mosaic: Cropland / Shrub and/or grass cover
19 19  24629888                                               Bare Areas
20 20 471034157                                             Water Bodies
21 21  10660085                                             Snow and Ice
22 22    378999                 Artificial surfaces and associated areas
23 23     29056                                                  No Data

> ext <- extent(-69,-63,-3,3) # The RAT is corrupted
> r1 <- crop(r,ext)
> levels(r1)
[[1]]
         ID     COUNT                                        CLASSNAMES
1         1   8688097          Tree Cover, broadleaved, deciduous, open
2         2   4099003              Tree Cover, needle-leaved, evergreen
3         3  15080165              Tree Cover, needle-leaved, deciduous
4         4   8054159                       Tree Cover, mixed leaf type
5         5   5606446        Tree Cover, regularly flooded, fresh water
6         6    579763       Tree Cover, regularly flooded, saline water
7         7    115705                                            Mosaic
8         8   4269938             Tree Cover / Other natural vegetation
9         9    587270                                 Tree Cover, burnt
10       10   3195387               Shrub Cover, closed-open, evergreen
11       11  15605651               Shrub Cover, closed-open, deciduous
12       12  17560702                     Herbaceous Cover, closed-open
13       13  23573022           Sparse herbaceous or sparse shrub cover
14       14   3089962   Regularly flooded shrub and/or herbaceous cover
15       15  21692769                      Cultivated and managed areas
16       16   4025653                                            Mosaic
17       17   3921904  Cropland / Tree Cover / Other natural vegetation
18       18  24629888                                            Mosaic
19       19 471034157               Cropland / Shrub and/or grass cover
20       20  10660085                                        Bare Areas
21       21    378999                                      Water Bodies
22       22     29056                                      Snow and Ice
23       23        NA          Artificial surfaces and associated areas
24 12875179        NA                                           No Data
levels(r)[[1]]$CLASSNAMES <- stringr::str_replace(levels(r)[[1]]$CLASSNAMES , ":", "-")