diff --git a/NEWS.md b/NEWS.md index 6bb70436e..d0a61dbce 100644 --- a/NEWS.md +++ b/NEWS.md @@ -6,6 +6,8 @@ https://stackoverflow.com/questions/77304534/rspatial-terraflip-error-when-flipping-a-multi-layer-spatrast-object) - SpatRaster now correctly handles `NA & FALSE` and `NA | TRUE` [#1316](https://github.com/rspatial/terra/issues/1316) by John Baums - `set.names` wasn't working properly for SpatRasterDataset or SpatRasterCollection [#1333](https://github.com/rspatial/terra/pull/1333) by Derek Friend +- `extract` with argument "layer" not NULL shifted the layers [#1332](https://github.com/rspatial/terra/issues/1332) by Ewan Wakefield + ## enhancements diff --git a/R/RGB.R b/R/RGB.R index 76f9b7b11..37bc8823e 100644 --- a/R/RGB.R +++ b/R/RGB.R @@ -140,7 +140,7 @@ rgb2col <- function(x, value, stretch=NULL, grays=FALSE, NAzero=FALSE, filename= } v <- cbind(id=1:ncell(x), values(x)) - v <- terra:::median_cut(stats::na.omit(v)) + v <- median_cut(stats::na.omit(v)) a <- aggregate(v[,-c(1:2)], list(v[,1]), median) # if (n==3) { diff --git a/R/coerce.R b/R/coerce.R index 3339c03d3..c89c4d1f7 100644 --- a/R/coerce.R +++ b/R/coerce.R @@ -396,7 +396,7 @@ as.data.frame.SpatRaster <- function(x, row.names=NULL, optional=FALSE, xy=FALSE if (xy) idv <- c("x", "y", idv) if (cells) idv <- c("cell", idv) nms <- names(x) - d <- reshape(d, direction="long", idvar=idv, varying=nms, v.names="values") + d <- stats::reshape(d, direction="long", idvar=idv, varying=nms, v.names="values") d$time <- nms[d$time] names(d)[names(d) == "time"] <- "layer" } diff --git a/R/k_means.R b/R/k_means.R index 4c919c157..ffe9c254e 100644 --- a/R/k_means.R +++ b/R/k_means.R @@ -11,7 +11,7 @@ setMethod("k_means", signature(x="SpatRaster"), if (ncell(x) <= maxcell) { v <- na.omit(as.matrix(x)) omit <- as.vector(attr(v, "na.action")) - km <- kmeans(v, centers=centers, ...) + km <- stats::kmeans(v, centers=centers, ...) out <- rast(x, nlyr=1) if (is.null(omit)) { values(out) <- km$cluster @@ -34,8 +34,8 @@ setMethod("k_means", signature(x="SpatRaster"), } vec } - v <- na.omit(spatSample(x, maxcell, "regular")) - km <- kmeans(v, centers=centers, ...)$centers + v <- unique(na.omit(spatSample(x, maxcell, "regular"))) + km <- stats::kmeans(v, centers=centers, ...)$centers out <- predict(x, km, fun=pkmeans, filename=filename, overwrite=overwrite, wopt=wopt) } out diff --git a/R/plot_raster.R b/R/plot_raster.R index 3aacf1a71..56c94db78 100644 --- a/R/plot_raster.R +++ b/R/plot_raster.R @@ -579,7 +579,7 @@ prettyNumbs <- function(x, digits) { if (ncell(x) > 1.1 * maxcell) { if (inherits(alpha, "SpatRaster")) { if (nlyr(alpha) > 1) { - alpha <- alpha[[y]] + alpha <- alpha[[1]] } alpha <- spatSample(alpha, maxcell, method="regular", as.raster=TRUE, warn=FALSE) } diff --git a/R/zonal.R b/R/zonal.R index dd740ea63..17be9242d 100644 --- a/R/zonal.R +++ b/R/zonal.R @@ -189,7 +189,7 @@ setMethod("zonal", signature(x="SpatRaster", z="SpatVector"), } if (as.polygons | wide) { nms <- names(v) - v <- reshape(v, direction="wide", idvar=nms[1], timevar=nms[2]) + v <- stats::reshape(v, direction="wide", idvar=nms[1], timevar=nms[2]) names(v) <- gsub("count.", "", names(v)) v[is.na(v)] <- 0 rownames(v) <- NULL diff --git a/man/distance.Rd b/man/distance.Rd index 480ac45fc..3400c6d7b 100644 --- a/man/distance.Rd +++ b/man/distance.Rd @@ -8,6 +8,8 @@ \alias{distance,SpatVector,SpatVector-method} \alias{distance,matrix,matrix-method} \alias{distance,matrix,missing-method} +\alias{distance,data.frame,data.frame-method} +\alias{distance,data.frame,missing-method} \title{Geographic distance} diff --git a/man/time.Rd b/man/time.Rd index 64dac096b..0ee0b5ef7 100644 --- a/man/time.Rd +++ b/man/time.Rd @@ -5,6 +5,7 @@ \alias{time<-} \alias{time<-,SpatRaster-method} \alias{time<-,SpatRasterDataset-method} +\alias{has.time,SpatRasterDataset-method} \alias{time,SpatRaster-method} \alias{time,SpatRasterDataset-method} \alias{timeInfo}