这是indexloc提供的服务,不要输入任何密码
Skip to content

tm_raster fails for rasters with no values #529

@johnbaums

Description

@johnbaums

If a raster layer that contains only NA values is written to disk and then read back into R, the following error is thrown when plotting with tm_raster:

 Error in from$toXYZ(color, from.ref.white) : 
  ncol(Lab) == 3L || length(Lab) == 3 is not TRUE 

This only seems to occur if the raster is read from disk, and only if a palette is specified.

library(raster)
#> Loading required package: sp
library(tmap)

r <- raster(matrix(NA, 2, 2), crs='+init=epsg:4326')

# not reading from disk
tm_shape(r) + tm_raster(palette = "inferno")
#> Linking to GEOS 3.8.1, GDAL 3.1.1, PROJ 6.3.1

writeRaster(r, f <- tempfile(fileext='.tif'))
r <- raster(f)

# from disk, with palette specified
tm_shape(r) + tm_raster(palette = "inferno")
#> Error in from$toXYZ(color, from.ref.white): ncol(Lab) == 3L || length(Lab) == 3 is not TRUE

# from disk, no palette
tm_shape(r) + tm_raster()

Created on 2020-12-07 by the reprex package (v0.3.0)

Session info
devtools::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value                       
#>  version  R version 4.0.2 (2020-06-22)
#>  os       macOS Mojave 10.14.3        
#>  system   x86_64, darwin17.0          
#>  ui       X11                         
#>  language (EN)                        
#>  collate  en_AU.UTF-8                 
#>  ctype    en_AU.UTF-8                 
#>  tz       Australia/Melbourne         
#>  date     2020-12-07                  
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package      * version  date       lib source        
#>  abind          1.4-5    2016-07-21 [1] CRAN (R 4.0.0)
#>  assertthat     0.2.1    2019-03-21 [1] CRAN (R 4.0.0)
#>  base64enc      0.1-3    2015-07-28 [1] CRAN (R 4.0.0)
#>  callr          3.5.1    2020-10-13 [1] CRAN (R 4.0.2)
#>  class          7.3-17   2020-04-26 [1] CRAN (R 4.0.2)
#>  classInt       0.4-3    2020-04-07 [1] CRAN (R 4.0.0)
#>  cli            2.1.0    2020-10-12 [1] CRAN (R 4.0.2)
#>  codetools      0.2-16   2018-12-24 [1] CRAN (R 4.0.2)
#>  crayon         1.3.4    2017-09-16 [1] CRAN (R 4.0.0)
#>  crosstalk      1.1.0.1  2020-03-13 [1] CRAN (R 4.0.0)
#>  curl           4.3      2019-12-02 [1] CRAN (R 4.0.0)
#>  DBI            1.1.0    2019-12-15 [1] CRAN (R 4.0.0)
#>  desc           1.2.0    2018-05-01 [1] CRAN (R 4.0.0)
#>  devtools       2.3.1    2020-07-21 [1] CRAN (R 4.0.2)
#>  dichromat      2.0-0    2013-01-24 [1] CRAN (R 4.0.0)
#>  digest         0.6.27   2020-10-24 [1] CRAN (R 4.0.2)
#>  dplyr          1.0.2    2020-08-18 [1] CRAN (R 4.0.2)
#>  e1071          1.7-4    2020-10-14 [1] CRAN (R 4.0.2)
#>  ellipsis       0.3.1    2020-05-15 [1] CRAN (R 4.0.0)
#>  evaluate       0.14     2019-05-28 [1] CRAN (R 4.0.0)
#>  fansi          0.4.1    2020-01-08 [1] CRAN (R 4.0.0)
#>  fs             1.5.0    2020-07-31 [1] CRAN (R 4.0.2)
#>  generics       0.1.0    2020-10-31 [1] CRAN (R 4.0.2)
#>  glue           1.4.2    2020-08-27 [1] CRAN (R 4.0.2)
#>  highr          0.8      2019-03-20 [1] CRAN (R 4.0.0)
#>  htmltools      0.5.0    2020-06-16 [1] CRAN (R 4.0.0)
#>  htmlwidgets    1.5.2    2020-10-03 [1] CRAN (R 4.0.2)
#>  httr           1.4.2    2020-07-20 [1] CRAN (R 4.0.2)
#>  KernSmooth     2.23-17  2020-04-26 [1] CRAN (R 4.0.2)
#>  knitr          1.30     2020-09-22 [1] CRAN (R 4.0.2)
#>  lattice        0.20-41  2020-04-02 [1] CRAN (R 4.0.2)
#>  leafem         0.1.3    2020-07-26 [1] CRAN (R 4.0.2)
#>  leaflet        2.0.3    2019-11-16 [1] CRAN (R 4.0.2)
#>  leafsync       0.1.0    2019-03-05 [1] CRAN (R 4.0.0)
#>  lifecycle      0.2.0    2020-03-06 [1] CRAN (R 4.0.0)
#>  lwgeom         0.2-5    2020-06-12 [1] CRAN (R 4.0.0)
#>  magrittr       1.5      2014-11-22 [1] CRAN (R 4.0.0)
#>  memoise        1.1.0    2017-04-21 [1] CRAN (R 4.0.0)
#>  mime           0.9      2020-02-04 [1] CRAN (R 4.0.0)
#>  pillar         1.4.6    2020-07-10 [1] CRAN (R 4.0.2)
#>  pkgbuild       1.1.0    2020-07-13 [1] CRAN (R 4.0.2)
#>  pkgconfig      2.0.3    2019-09-22 [1] CRAN (R 4.0.0)
#>  pkgload        1.1.0    2020-05-29 [1] CRAN (R 4.0.0)
#>  png            0.1-7    2013-12-03 [1] CRAN (R 4.0.0)
#>  prettyunits    1.1.1    2020-01-24 [1] CRAN (R 4.0.0)
#>  processx       3.4.4    2020-09-03 [1] CRAN (R 4.0.2)
#>  ps             1.4.0    2020-10-07 [1] CRAN (R 4.0.2)
#>  purrr          0.3.4    2020-04-17 [1] CRAN (R 4.0.0)
#>  R6             2.5.0    2020-10-28 [1] CRAN (R 4.0.2)
#>  raster       * 3.4-5    2020-11-14 [1] CRAN (R 4.0.2)
#>  RColorBrewer   1.1-2    2014-12-07 [1] CRAN (R 4.0.0)
#>  Rcpp           1.0.5    2020-07-06 [1] CRAN (R 4.0.2)
#>  remotes        2.2.0    2020-07-21 [1] CRAN (R 4.0.2)
#>  rgdal          1.5-18   2020-10-13 [1] CRAN (R 4.0.2)
#>  rlang          0.4.8    2020-10-08 [1] CRAN (R 4.0.2)
#>  rmarkdown      2.5      2020-10-21 [1] CRAN (R 4.0.2)
#>  rprojroot      2.0.2    2020-11-15 [1] CRAN (R 4.0.2)
#>  sessioninfo    1.1.1    2018-11-05 [1] CRAN (R 4.0.0)
#>  sf           * 0.9-6    2020-09-13 [1] CRAN (R 4.0.2)
#>  sp           * 1.4-4    2020-10-07 [1] CRAN (R 4.0.2)
#>  stars          0.4-3    2020-07-08 [1] CRAN (R 4.0.2)
#>  stringi        1.5.3    2020-09-09 [1] CRAN (R 4.0.2)
#>  stringr        1.4.0    2019-02-10 [1] CRAN (R 4.0.0)
#>  testthat       3.0.0    2020-10-31 [1] CRAN (R 4.0.2)
#>  tibble         3.0.4    2020-10-12 [1] CRAN (R 4.0.2)
#>  tidyselect     1.1.0    2020-05-11 [1] CRAN (R 4.0.0)
#>  tmap         * 3.2      2020-09-15 [1] CRAN (R 4.0.2)
#>  tmaptools      3.1      2020-07-01 [1] CRAN (R 4.0.2)
#>  units          0.6-7    2020-06-13 [1] CRAN (R 4.0.0)
#>  usethis        1.6.1    2020-04-29 [1] CRAN (R 4.0.0)
#>  vctrs          0.3.4    2020-08-29 [1] CRAN (R 4.0.2)
#>  viridisLite    0.3.0    2018-02-01 [1] CRAN (R 4.0.0)
#>  withr          2.3.0    2020-09-22 [1] CRAN (R 4.0.2)
#>  xfun           0.19     2020-10-30 [1] CRAN (R 4.0.2)
#>  XML            3.99-0.5 2020-07-23 [1] CRAN (R 4.0.2)
#>  xml2           1.3.2    2020-04-23 [1] CRAN (R 4.0.0)
#>  yaml           2.2.1    2020-02-01 [1] CRAN (R 4.0.0)
#> 
#> [1] /Library/Frameworks/R.framework/Versions/4.0/Resources/library

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions