为什么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]]$CLASSNAMESsum(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 , ":", "-")