-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Faster way to check if a SpatRaster has at least one non-NA value #1540
Comments
I have added functions "anyNA", "anynotNA" that ought to be more efficient. |
netbsd-srcmastr
pushed a commit
to NetBSD/pkgsrc
that referenced
this issue
Jan 5, 2025
# version 1.8-5 ## bug fixes - `Spatsample(method='stratified', ext=e)` returned the wrong sampling coordinates [#1628](rspatial/terra#1628) by Barnabas Harris - `spatSample(method='stratified')` could fail with small sample sizes [#1503](rspatial/terra#1503) by karluf - transparency (alpha) did not work with RGB plotting. [#1642](rspatial/terra#1642) by Timothée Giraud - rasterization failed on very large rasters [#1636](rspatial/terra#1636) by Mary Fisher, [#1463](rspatial/terra#1463) by Nic Spono and [#1281](rspatial/terra#1281) by Sebastian Dunnett - `tmpFiles` only looked in the default temp files folder [#1630](rspatial/terra#1630) by smckenzie1986 - `where.min` did not work well if there were negative values [#1634](rspatial/terra#1634) by Michael Sumner - `plet<SpatRaster>` now works for RGB rasters and rasters with a color table [#1596](rspatial/terra#1596) by Agustin Lobo - `vect<MULTIPOINT WKT>` did not work properly [#1376](rspatial/terra#1376) by silasprincipe - `compareGeom<SpatVector>` did not work [#1654](rspatial/terra#1654) by Jason Flower - `buffer<SpatVector>` is now more accurate buffers for lonlat polygons [#1616](rspatial/terra#1616) by Roberto Amaral-Santos - `terra:interpNear` used square windows, not circles, beyond 100 points [#1509](rspatial/terra#1509) by Jean-Luc Dupouey - `vect` read INT64 fields as integers, sometimes leading to overflows. [#1666](rspatial/terra#1666) by bengannon-fc - `plot` showed a legend title even if none was requestd if title parameters were specified . [#1664](rspatial/terra#1664) by Márcia Barbosa ## enhancements n- improved documentation of `writeVector` overwrite when using layers. [#1573](rspatial/terra#1573) by Todd West - improved treatment of (supposedly) flipped rasters by Timothée Giraud [#1627](rspatial/terra#1627) and fchianucci [#1646](rspatial/terra#1646) - added `map.pal("random")` [#1631](rspatial/terra#1631) by Agustin Lobo - expressions can now be used in legend titles [#1626](rspatial/terra#1626) by Noah Goodkind - `app` and `tapp` now emit a warning when factors are coerced to numeric [#1566](rspatial/terra#1566) by shuysman - `plet<SpatRaster>` now has argument "stretch" for RGB rasters [#1596](rspatial/terra#1596) by Agustin - `%%` and `%/%` now behave the same for SpatRaster as for (base R) numbers [#1661](rspatial/terra#1661) by Klaus Huebert ## new - `patches` with option `valus=TRUE` can now distinguish regions based on their cell values (instead of only NA vs not-NA) [#495](rspatial/terra#495) by Jakub Nowosad and [#1632](rspatial/terra#1632) by Agustin Lobo - `rowSums`, `rowMeans`, `colSums` and `colMeans` for SpatRaster - `metags` for SpatRasterDataset [#1624](rspatial/terra#1624) by Andrea Manica - `metags` for layers (bands) of SpatRaster are now saved to and read from GTiff files [#1071](rspatial/terra#1071) by Mike Koontz - `global` has new effcient functions "anyNA" and "anynotNA" [#1540](rspatial/terra#1540) by Kevin J Wolz - `wrap`, `saveRDS` and `serialize` for SpatExtent. [#1430](rspatial/terra#1430) by BastienFR - `vect<SpatGraticule>` method suggested in relation to [tidyterra #155](dieghernan/tidyterra#155) by Diego Hernangómez - `toMemory<SpatRaster>` and `<SpatRasterDataset>` methods [#1660](rspatial/terra#1660) by Derek Friend
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
To check if a SpatRaster (
x
) has at least one non-NA value, I am currently using this:This works on SpatRasters that have one or multiple layers. It works fine, but I think
terra::global
is checking the entire raster. I don't need to check the entire raster, and, for large rasters, this can take a long time. I'm looking for a method that stops when it finds the first non-NA value. This would save considerable time when checking a large SpatRaster.Would it be possible to implement something like
fun = "anynotNA"
forterra::global
?For context, the reason I am doing this check in the first place is because I am using
terra::trim()
in a situation where the raster may or may not have non-NA values. When applyingterra::trim()
to a SpatRaster with only NA values, it throws an error, so I must check to ensure there is at least one non-NA value before applyingterra::trim()
. Perhaps there is a better way to deal with this in this specific example? Either way, I think this feature would be useful in other contexts as well.The text was updated successfully, but these errors were encountered: