tmap icon indicating copy to clipboard operation
tmap copied to clipboard

tm_raster fails for rasters with no values

Open johnbaums opened this issue 4 years ago • 0 comments

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

johnbaums avatar Dec 06 '20 23:12 johnbaums