project(mask=TRUE) could fail with high-resolution
global rasters because of date-line flipping SO 79708536 by
Patrickplot(pax=list(mgp=c(1,1,2)) now sets mgp seperately for
horizontal and vertical axes #1873 by Hu
shiyucoltab(x, ..., layer=1)<- argument layer did not
work for layer names #1879 by Alex
Ilichsds could create a SpatRasterDataset with SpatRasters
with different spatial resolutions #1884 by Stefan
Fallertidentical did not consider NA values #1890 by
Facundo Muñozadd_grid did not respect the clipping region if a
second raster was added with add=TRUE #1889 by Lucas
Salinas Moralesrast(x, type = "xyz") did not inherit CRS from a
SpatVector #1886 by
Danielle Ferrarodistance(values = TRUE) returned unexpected results #1891 by Jason
Flowerplot with arguments for a continuous legend failed if
no such legend was drawn #1897 by
François Rousseuas.Date that seems to return the date in the
UTC time zone #1896 by Kodi
ArfermakeTiles gains argument “value” to set the returned
value to be the filenames (default), a SpatRaster or a
SpatRasterCollection #1894 by Márcia
Barbosaresample now also accepts, instead of a template
SpatRaster, one or two numbers to set the resolution of the output
SpatRaster #1874 by Agustin
LoboReleased 2025-07-18
freq failed when using zones polygons that did not
overlap with any cell centers SO 79654752 by M.
Beausoleilas.lines<SpatVector> with an empty SpatVector
crashed R #1847 by Andrew
Gene Brownresample with method=“median” did not work #1855 by
vmombonearest did not work well for lonlat polygons #1869 and with
methods “cosine” and “haversine” by Alexandre Courtiolfreq has new argument “touches” to determine which cell
to include if a zones polygon is used SO 79654752 by M.
Beausoleilplot with a continuous legend has new plg
parameter “format” so that you can use scientific notation #1861 by Andrea
Titolosprc<character> now also works for a single
datasource raster #1860 by Anrew
Gene BrownReleased 2025-06-01
plot<SpatRaster> using a value/color data.frame
did not work correctly in all cases #1827 by
Alexandre Courtiolplot<SpatRaster> argument “alpha” did not work
properly #1833 by
strevisani-lnetcdf flag needed for linking on some
linuxes #1829 by
Guillermo A. Durán Sanabria==<SpatRaster> with multiple layers and
categorical comparison failed #1836 by Andrew
Gene BrownwrteCDF failed when writing tags with illegal
characters such as “{” or “(”, #1811 by
Catalin Sorin Covacifreq failed for an empty SpatRaster #1839 by Alex
IlichwriteVector with an empty SpatVector crashed R #1837 by
Indurielpredict<SpatRaster> could fail with na.rm=TRUE
and a block with NA values only #1843 by Alex
Ilichrast interpreted a histogram attribute
as a factor #1845 by Tiago
A. Marquesrast with multiple files and lyrs argument now applies
the argument to each data source (file); unless numbers higher than the
number of layers of the first source are included. #1838 by Pedro
TarrosounloadGDALdrivers to disable selected GDAL drivers #1828 by Andy
Teucherrast(md=TRUE)ar_info to describe multidimensional (ncdf) raster
filesReleased 2025-05-09
rast(xyz=TRUE) failed if there was no z variable #1802 by Martin
Jungmetags failed if a matrix was used #1803 by
fchianuccidistance<SpatVector>(sequential=TRUE) did not
return a vector with the first value of zero (and there was an
additional value #1804 by Edward
Lavenderdepth information was dropped even when there was no
reason for that #1806 by Daniel
R Schlaepferplet did not work for logical SpatRasters #1820 by Andrew
Gene Brownextract<SpatRaster> with a “window” set, did not
work properly #1819 by Derek
Friendextract<SpatRaster> with argument “layers” and
xy=TRUE added an unexpected additional column #1818 by
Breeze-HuextractRange now honors arguments bind and
assigns ID within a list #1816 by
WillhKesslercrop<SpatRaster,SpatVector>(mask=TRUE) did not
crop if the SpatVector was (partly) outside the SpatVector #1824 by Márcia
Barbosainit with a matrix argument now keeps the same row/col
values #1801
Jakub Nowosadrasterize now checks for very large numbers and
switches to FLT8S if detected. #1797 by Evan
Muiserast, sds and sprc get new
argument “guessCRS” to suppress CRS guessing #1800 by Aseem
Sharmaplot<SpatRaster/SpatVector> with a continuous
legend now responds to plg=list(horiz=TRUE)) #1805 by
Nathanael Walker-HalespatSample(method="spread") to get an approximate
regular sample of the cells that are not NAReleased 2025-04-02
extract with points for rasters accessed over http
could return NAs for some cells if the raster was large #1504 by
Krzysztof DybawriteCDF now supports writing an empty crs #1759 by
ForChimneySwiftsresample on flipped SpatRasters failed. #1760 by Andrew
Gene BrownspatSample<SpatRaster>(method="regular", xy=TRUE)
ignored the second “size” number when using two numbers (row, col) #1766 by
Barnabas Harrisplet<SpatRaster> failed when trying to display
multiple layers #1787 by
Emanuele Cordanometags now supports raster metadata domainsextract with a vector of two non-integers triggers a
warning (possible point vs cellnumber confusion) #1757 by
Michael SumnerwriteCDF now supports four dimensions (x, y, depth and
time) #1756
by ForChimneySwiftsvect and svc now have argument “dialect”
to select an SQL dialect #1750 by
Michael Sumnerextract<SpatVector,SpatVector> now has argument
“count” to get point-in-polygon countsspatSample can now take a random or regular sample
along linesplot gained arguments to control the legend title
(including leg.title.x, leg.title.y, leg.title.srt) and some tweaks to
the defaults to improve the default title position of horizontal
continuous legends #1774 by Fengyu
Fuplot gained argument “reverse” (more general then
argument “decreasing” that it replaces) to reverse the order of a legend
SO 79515400 by
Laura RoichspatSample<SpatRaster>(method="stratified") now
also finds cells for very small strata in big rasters (suggested by
Andrea Duane).plot<SpatVector> now also has argument “fun” #1786 by Márcia
Barbosaplot<SpatRaster/Vector> now also has argument
“sub” to set a subtitle #1790 by
Agustin Lobodistance<SpatVector,SpatVector> now has argument
“use_nodes” to speed things up for lon/lat data #1722 by Márcia
BarbosawriteRaster and other methods that can write raster
data can now set metadata.split<SpatVector,SpatVector> method for lines #1374 by
MTuetingdepthName, depthName<-,
depthUnit, and depthUnit<- methodsis.num<SpatRaster> SO 795026641 by Jacob
StrunksimplifyLevels to combine duplicate categories. #1769 by Erik
ErtsgaardReleased 2025-02-26
cover<SpatRaster> did not work well if multiple
replacement values were supplied #1741 by Tim
Howardext<-<SpatRaster,SpatExtent> made a shallow
copy. Reported on SO
79440691 by katefull06 and as #1743 by
Agustin Loboextract<SpatRaster> with cells only used the NA
flag for the first data source. GSE 490433 by
MartinLspatSample<SpatRaster> and
spatSample<SpatExtent> gain argument “exact=FALSE” to
request the exact (but perhaps less regular) sample size for a regular
sample. Currently only for planar crs.spatSample<SpatRaster> gains argument “each=TRUE”
to request, when using stratified sampling, a sample size for each
stratum, or for all strata combined.focal now maintains categories with “fun=modal”, “min”,
“max”, or “first” SO
79449904 by Sophie PèreclearVSIcache. Suggested by Shannon AlbekeReleased 2025-02-10
sieve failed with large rasters #1729 by Reed
HumphreyextractRange only worked for SpatVector, not for matrix
or vector #1733 by Victor
Van der Meerschextract<SpatRaster> over https with a multilayer
SpatRaster returned the values for the first layer for all layer #1736 by
Shannon Albekerast<SpatVector>
methodplet<SpatRaster> method #1187 by
Augustin Lobolapp<SpatRasterDataset>
#1190 by
kel44aggregate<SpatRaster> now handles
fun="table" #1662 by
Fernando Aramburu.is.flipped<SpatRaster> method #1627 by
Timothée Giraudas.array<SpatRasterDataset> methoddistance<SpatRaster,missing> now has argument
“values”. If TRUE, the values of the nearest non-target cell is returned
instead of the distance #1243 by Simon
Dedmanthresh<SpatRaster> #1233 by
Agustin LoboReleased 2025-01-24
readRDS failed for rasters with timestep=“seconds” #1711 by Pascal
Oettlidivide<SpatVector> always returned NULL #1724 by Márcia
Barbosaerase failed in some cases #1710 by
erkent-carbbestMatch now has argument “fun” to allow the use of
different distance measures, and a wrap (and writeRDS) now captures
varnames/longnames #1719 by Andrew
Gene Brownvect and writeVector now properly read and
write date and datetime data. #1718 by Andrew
Gene BrownReleased 2025-01-13
expanse<SpatRaster>(transform=TRUE) crashed R
when the crs was “local”. #1671 by
Michael Chiricopatches(values=TRUE) wrapped around the edges #1675 by
Michael Chiricospin now correctly handles spherical coordinates #1576 by
jeanlobrymosaic sometimes crashed R #1524 by John
Baums, Dave Klinges, and Hugh Graham.spatSample ignored argument “exp” when taking a random
sample with na.rm=TRUE on a large raster #1437 by Babak
Naimisplit<SpatVector,SpatVector> did not work
properly #1619 by
Michael Sumnerautocor improved handling of NA cells for global Moran
computation #1992 by
Nicholas Berrymanshade is more memory-safe. #1452 by
Francis van Oordt and Chris Englishrasterize revealed when using
crop(mask=TRUE) #1686 by
edixon1to_id = NA bug in nearest #1471 by Mats
BlomqvistspatSample(method="regular") on a raster with one
column returned too many samples #1362 by Daniel
R Schlaepferplot<SpatVector> now uses the same default
viridis color palette as plot<SpatRaster> #1670 by Márcia
Barbosarelate now accepts relation=“equals” #1672 by
Krzysztof Dybainit now accepts additional arguments for function
“fun”distance<SpatRaster> from lon and lat
lines/polygons computes distance to the edges instead of the nodes #1462 by Derek
Frienddistance<SpatVector,SpatVector> now works for
lon/lat data #1615 by
Wencheng Lau-Medranoplot(x, overview=) to change the default
behavior.extract with points is now faster for rasters accessed
over http #1504 by
Krzysztof Dybaextract with many points on very large rasters was
slower in compared to doing the same with “raster” (which uses terra for
that!) #1584
by Hassan Masoomimerge now has three alternative algorithms 1366 by Hassan
Masoomi and #1650 by
Agustin Lobo$<SpatRaster> can now be used to get a
categorical SpatRaster with a different active categoryscale_linear<SpatRaster> method for linear
scaling of cell values between a minimum and maximum value such as 0 and
1distance and related methods get argument “method” to
choose the distance algorithm for lon/lat data #1677 by Márcia
Barbosadivide<SpatRaster> and
divide<SpatVector> methodsnseg counts the number of segments in a SpatVector #1647 by Michael
Chiricoextract argument “search_radius” to extract values from
the nearest raster cell that is not NA #873 by
matthewseanmarcuscombineLevels to combine the levels of all layers SO 79340152 by SamReleased 2024-12-12
spatSample(method='stratified', ext=e) returned the
wrong sampling coordinates #1628 by
Barnabas HarrisspatSample(method='stratified') could fail with small
sample sizes #1503 by
karluftmpFiles only looked in the default temp files folder
#1630 by
smckenzie1986where.min did not work well if there were negative
values #1634
by Michael Sumnerplet<SpatRaster> now works for RGB rasters and
rasters with a color table #1596 by
Agustin Lobovect<MULTIPOINT WKT> did not work properly #1376 by
silasprincipecompareGeom<SpatVector> did not work #1654 by Jason
Flowerbuffer<SpatVector> is now more accurate for
lonlat polygons #1616 by
Roberto Amaral-Santosterra:interpNear used square windows, not circles,
beyond 100 points #1509 by
Jean-Luc Dupoueyvect read INT64 fields as integers, sometimes leading
to overflows. #1666 by
bengannon-fcplot showed a legend title even if none was requested
if title parameters were specified . #1664 by Márcia
BarbosawriteVector overwrite when
using layers. #1573 by Todd
Westmap.pal("random") #1631 by
Agustin Loboapp and tapp now emit a warning when
factors are coerced to numeric #1566 by
shuysmanplet<SpatRaster> now has argument “stretch” for
RGB rasters #1596 by
Agustin%% and %/% now behave the same for
SpatRaster as for (base R) numbers #1661 by Klaus
Huebertpatches with option valus=TRUE can now
distinguish regions based on their cell values (instead of only NA vs
not-NA) #495
by Jakub Nowosad and #1632 by
Agustin LoborowSums, rowMeans, colSums
and colMeans for SpatRastermetags for SpatRasterDataset #1624 by Andrea
Manicametags for layers (bands) of SpatRaster are now saved
to and read from GTiff files #1071 by Mike
Koontzglobal has new effcient functions “anyNA” and
“anynotNA” #1540 by Kevin
J Wolzwrap, saveRDS and serialize
for SpatExtent. #1430 by
BastienFRvect<SpatGraticule> method suggested in relation
to tidyterra
#155 by Diego HernangómeztoMemory<SpatRaster> and
<SpatRasterDataset> methods #1660 by Derek
FriendReleased 2024-10-14
flip(direction="vertical") failed in some cases #1518 by Ed
Carnellzonal(as.raster=TRUE) failed when the zonal raster was
categorical 1514 by Jessi L
Browndistance<data.frame,data.frame> and
<matrix,matrix> ignored the unit argument. #1545 by
Wencheng Lau-Medranosplit<SpatVector> only worked well if the split
field was of type character. #1530 by Igor
GraczykowskigridDist (and probably some other methods) emitted a
“cannot overwrite existing file” error when processing large datasets #1522 by Clare
Pearsonterrain did not accept multiple variables #1561 by
Michael Mahoneyrotate was vulnerable to an integer overflow #1562 by Sacha
RuzzantegetTileExtents could return overlapping tiles or tiles
with gaps due to floating point imprecision. #1564 by
Michael Sumnerrasterize with points failed when using
update=TRUE #1611 by Jordan
Adamsonbuffer on a lonlat multipoint SpatVector returned a
buffer around a single point. #1607 by Márcia
Barbosabuffer<SpatVector> no longer crashes (for
particular cases and unknown reasons) on windows #1331 by
Julian090601, #1363 by Rupert
Overall and #1531 by Igor
Graczykowskias.list<SpatRasterDataset> sets the names of the
list #1513fill_range to plotplot<SpatVector> to use the color of the extreme
values of the specified range #1553 by Mike
Koontzplet<SpatRaster> can now handle rasters with a
“local” (Cartesian) CRS. #1570 by
Augustin Lobo.geom can now return “wkb” #1609map_extent returns the coordinates of the axes position
of a map created with plot<Spat*> #1517 by Daniel
Schuchpolys<leaflet> method #1543 by Márcia
Barbosaplot<SpatVectorCollection> method #1532 by
jedgroevadd_mtext to add text around the margins of a map. #1567 by Daniel
SchuchReleased 2024-05-22
writeVector and readVector better handle
empty geopackage layers #1426 by Andrew
Gene Brown.writeCDF only wrote global variables if there was more
than one #1443 by Daniel
Schlaepferrasterize with “by” returned odd layernames #1435 by
Philippe MassicotteconvHull, minCircle and
minRect with a zero-row SpatVector crashed R #1445 by Andrew
Gene BrownrangeFill with argument circular=TRUE did
not work properly #1460 by
Alicecrs(describe = TRUE) returned an mis-ordered extent #1485 by
Dimitri Falktapp with a custom function and an index like
“yearmonths” could shift time for not considering the time zone. #1483 by Finn
Robertsplot<SpatRaster> could fail when there were
multiple values with very small differences #1491 by
srfallas.data.frame<SpatRaster> with “xy=TRUE” and
“wide=FALSE” could fail if coordinates were very similar #1476 by Pascal
OettlirasterizeGeom now returns the correct layer name #1472 by
HRodenhizercellSize with “mask=TRUE” failed if the output was to
be written to a temp file #1496 by Pascal
Sauerext<SpatVectorProxy> did not return the full
extent #1501
by erkent-carbextract has new argument “small=TRUE” to allow for
strict use of “touches=FALSE” #1419 by Floris
Vanderhaeghe.as.list<SpatRaster> has new argument
“geom=NULL”rast<list> now recognizes (x, y, z) base R
“image” structures SO
77949551 by Ignacio Marzan.inset has new arguments “offset” and “add” #1422 by
Armand-CTexpanse<SpatRaster> has argument
usenames #1446 by Bappa
Dasterra::map.pal("viridis") instead of
terrain.colors. The default can be changes with
options(terra.pal=...) #1474 by Derek
Friendas.list<SpatRasterDataset> now returns a named
list. #1513
by Eric R. ScottbestMatch<SpatRaster> methodcells #1487 by Floris
Vanderhaegheadd_grid to add a grid to a mapReleased 2024-01-31
layerCor with a custom function did not work anymore #1387 by Jakub
Nowosadplet broke when using “panel=TRUE” #1384 by Elise
Hellwigplot<SpatRaster>(add=TRUE) sampled the raster
data without considering the extent of the map. #1394 by Márcia
Barbosaplot<SpatRaster>(add=TRUE) now only considers the
first layer of a multi-layer SpatRaster 1395 by Márcia
Barbosaset.cats failed with a tibble was used instead of a
data.frame #1406 by Mike
Koontzpolys argument “alpha” was ignored if a single color
was used. #1413 by Derek
Friendquery ignore the “vars” argument if all rows were
selected. #1398 by
erkent-carb.spatSample ignored “replace=TRUE” with random sampling,
na.rm=TRUE, and a sample size larger than the non NA cells. #1411 by Babak
NaimispatSample sometimes returned fewer values than
requested and available for lonlat rasters. #1396 by Márcia
Barbosa.vect<character> now has argument “opts” for GDAL
open options, e.g. to declare a file encoding. #1389 by Mats
Blomqvistplot(plg=list(tic="")) now allows choosing alternative
continuous legend tic-mark styles (“in”, “out”, “through” or
“none”)makeTiles has new argument “buffer” #1408 by Joy
Flowers.prcomp<SpatRaster> method #1361
by Jakub Nowosadadd_box to add a box around the map. The box is drawn
where the axes are, not around the plotting region.getTileExtents provides the extents of tiles. These may
be used in parallelization. See #1391 by Alex
Ilich.Released 2023-12-15
flip with argument direction="vertical"
filed in some cases with large rasters processed in chunks SO 77304534 by
DulciNA & FALSE and
NA | TRUE #1316 by John
Baumsset.names wasn’t working properly for SpatRasterDataset
or SpatRasterCollection #1333 by Derek
Friendextract with argument “layer” not NULL shifted the
layers #1332
by Ewan WakefieldterraOptions did not capture “memmin” on SO 77552234 by dwwrasterize with points and a built-in function could
crash if no field was used #1369 by
anjelinejelinemosaic can now use fun="modal"rast<matrix> and rast<data.frame> now have
option ’type=“xylz” #1318 by
Agustin Loboextract<SpatRaster,SpatVector> can now use
multiple summarizing functions #1335 by Derek
Frienddisagg and focal have more optimistic
memory requirement estimation #1334 by Mikko
Kuronenk_means<SpatRaster> method #1314 by
Agustin Loboprincomp<SpatRaster> method #1361 by Alex
Ilichhas.time<SpatRaster> methodrast, sds, and
sprc to allow ignoring scale and offset 1354 by Insang
SongReleased 2023-10-14
mosaic ignored the filename argument if the
SpatRasterCollection only had a single SpatRaster #1267 by
Michael Mahoneyextract with a raster file that had
been deleted crashed R. #1268 by Derek
Friendsplit<SpatVector,SpatVector> did not work well in
all cases. #1256 by Derek
Corcoran Barriosintersect with two SpatVectors crashed R if there was a
date/time variable #1273 by Dave
DixonspatSample<SpatRaster>(method="weights") #1275 by
François Rousseucoltab<- again works with a list as value #1280 by Diego
Hernangómezstretch with histogram equalization was not memory-safe
#1305 by
Evan Hershplot now resets the “mar” parameter #1297 by Márcia
BarbosaplotRGB ignored the “smooth” argument #1307 by
Timothée Giraudproject was renamed to “use_gdal” #1269 by Stuart
Brown.plot<SpatVector> now uses an “interval” legend
when breaks are supplied #1303 by
Gonzalo Rizzocrop<SpatRaster> now keeps more metadata,
including variable names #1302 by
rhgofextract(fun="table") now returns an easier to use
data.frame #1294 by
Fernando Aramburu.metags<- and metags to set arbitrary
SpatRaster/file level metadata #1304 by
Francesco ChianucciReleased 2023-09-06
plot<SpatVector> used the wrong main label in
some cases #1210 by Márcia
BarbosaplotRGB failed with an “ext=” argument #1228 by Dave
Edgerast<array> failed badly when the array had less
than three dimensions. #1254 by
andreimirt.all.equal for a SpatRaster with multiple layers #1236 by Sarah
Endicottzonal(wide=FALSE) could give wrong results if the zonal
SpatRaster had “layer” as layername. #1251 by Jeff
Hansonpanel now support argument “range” #141 by Jakub
Nowosadrasterize with by= returned wrong
layernames if the by field was not sorted #1266 by
Sebastian Dunnettmosaic with multiple layers was not correct #1262 by
Jean-Romainwrap<SpatRaster> now stores color tables #1215 by
Patrick Brownglobal now has a “maxcell” argument #1213 by Alex
IlichlayerCor with fun=‘pearson’ now returns output with the
layer names #1206vrt now has argument “set_names” #1244 by
sam-a-levyvrt now has argument “return_filename” #1258 by
Krzysztof Dybaproject<SpatRaster> has new argument “by_util”
exposing the GDAL warp utility #1222 by Michael
Sumner.compareGeom for list and SpatRasterCollection #1207 by Sarah
Endicottis.rotated<SpatRaster> method #1229 by Andy
LyonsforceCCW<SpatVector> method to force
counter-clockwise orientation of polygons #1249 by
srfall.vrt_tiles returns the filenames of the tiles in a vrt
file #1261
by Derek FriendextractAlong to extract raster cell values for a line
that are ordered along the line. #1257 by
adamkc.Released 2023-06-23
RGB<- and coltab<-
so that terra can be installed with R-devel (after a bug fix
https://bugs.r-project.org/show_bug.cgi?id=18538)Released 2023-06-18
rasterize with points and a custom function did not
work for large rasters. #1127 by Skip
Woolleycrop<SpatRaster, SpatVector> with “mask=TRUE” did
not work well if the raster had a scale/offset #1128 by Monika
Anna Tomaszewskazonal<SpatRaster> with a custom function always
removed NAs. #1133 by
Matthias Weigandwrap<SpatRaster> lost changed layer names if the
source was from disk; and information on some time-step in some cases.
#1144 by
Pascal Führlichglobal(fun="isNA") was not correct when the SpatRaster
had multiple layers #1141 by Robin
FreemaninterpIDW with near=TRUE did not work
properly (near=TRUE is now the default). #1186 by Hugh
Grahampanel for categorical SpatRasters. #1143 by Jason
Flowerplot<SpatRaster> can now also
expand the plot. #1136 by Jakub
Nowosad.overwrite=FALSE to makeTiles. #1167 by Gray
Martin.<plet,SpatVector>. #1177 by
Agustin Lobo.vect and svc. #1160 by Mike
Sumner.sql to
query<SpatVectorProxy>. #1157 by Carl
Boettigerwrap<SpatRasterDataset> and
wrap<SpatRasterCollection> methods. #954 by James
CamacReleased 2023-04-22
regress<SpatRaster,numeric> to get regression
model coefficients for each cell, with a fixed “X”.regress<SpatRaster,SpatRaster> to get regression
model coefficients for each cell.lapp<SpatRasterDataset> is now more flexible in
that it can now also use functions that are vectorized by cell, not by
chunk. See #1029project<SpatVector> has new argument
“partial=FALSE” that can be used to keep geometries that can only be
partially included in the output crs.global with fun=“notNA” was wrong #111 by Jeffrey
Hansonextract<SpatRaster,SpatVector> with “bind=TRUE”
did not workextract<SpatRaster,SpatVector> with point
geometries and a “fun” returned values in the wrong orderplot<SpatRaster> argument “colNA” did not work
when “alpha” was also set #1102 by Márcia
Barbosacrop<SpatRaster> with “extend=TRUE” did not
extend the SpatRaster if the input had no cell values. #1114 by Jasper
van DoninckfocalMat did not work well when using
terraOptions(todisk=T) #1116Released 2023-04-08
halo function for adding halo-ed text to plots is
now exposedadd_legend to allow using a keyword such as “topleft”
to position a custom legend. #1053 by Márcia
Barbosasame.crs function is now exportedcountNA<SpatRaster> methodsplit<SpatVector,SpatVector> to split polygons
with linesclamp<SpatRaster> now also accepts SpatRasters to
set the lower and upper boundaries.freq has new arguments “zones=NULL” and “wide=FALSE”,
to allow tabulation of values by zone.expanse<SpatRaster> has new arguments
“zones=NULL” and “wide=FALSE”, to allow tabulation of values by
zone.unique<SpatRaster> has new argument
“digits=NA”rasterize<SpatRaster,SpatVector> now accepts
fun=“table” to tabulate cells by cell valuerast<character> has new argument “snap” to snap
the window in or out. #1094 by Derek
Friendplot has new argument “clip=TRUE” that can be set to
FALSE to avoid clipping the axes to the mapped area #1080 by Márcia
BarbosawriteCDF<SpatRaster> had new argument “split”
allowing to treat each layer as a subdataset #1077 by Andrea
Manicaglobal now accepts multiple summarizing functionssieve was not able to write to file #1061 by
leorasterize did not work with sf objects #1054 by Jakub
Nowosadquery did not work for hyphenated layer names #1058 by Robbie
Pricefocal3D na.policy did not work #1057 by Flávio
MotalayerCor with na.rm=TRUE failed for a
SpatRaster with more than 2 layers #1056 by Alex
Ilich.compareGeom did not work for multiple SpatRasters #1063viewshed could not handle a filename argument. #1100 by
kamistickReleased 2023-03-06
order=FALSE to
sort<SpatRaster>sort<SpatVector> (and
<data.frame> methodby=NULL to rasterize> #986 by Sam
Webermeta<SpatRaster> method to get metadatacompare<SpatRaster> and
logic<SpatRaster> methodsvect<SpatExtent> methodpanel<SpatRaster> for “panel” plots (multiple
layers, single legend)is.lonlat #1006 by Andrew
Gene Brownna.rm to
merge<SpatRaster>plot are now snug around
the mapped area, instead of at the limits of the graphics figure
region..empty() instead of .size()==0). [#1013-1017]
by Michael Chiricorasterize with lines and polygons can now use the “fun”
argument (for min, max, mean, and sum) #1041 by Bart
Huntleyplet was not always correct. #983 by Simon
RolphspatSample<SpatRaster>(regular=TRUE) failed with
providing two numbers (row, col) as sample size. #991 by
srfallmerge<SpatRaster> did not ignore NAs #1002 by
jmmonnet.writeCDF failed when using argument force_v4 #1009 by R.
Kyle Bocinskypredict better handling of rasters with many NAs #988 by Lucas
JohnsonlayerCor did not handle NAs well if they were in
different cells across layers #1034 by
François Rousseu.Released 2023-01-24
w to
zonal<SpatRaster,SpatRaster> to compute weighted
meanszonal<SpatRaster,SpatVector> methodclamp_ts methodsplit<SpatVector>. #979 by
srfallspatSample with as.df=FALSE returned a
data.frame instead of a matrix #982 by Alex
IlichReleased 2023-01-17
shade is now vectorized for arguments
angle and direction to facilitate generating
multiple hillshades that can be combined for a better result #948 by Jürgen
NiedballasharedPaths now uses spatial indices #960 by Jeff
Hansonpredict has better support for models such as ranger
that do not return anything for missing values #968 by Alex
IlichwriteCDF now supports writing yearly time steps #926 by Andrea
Manicaas.contour now works for a single level #966 by Johannes
SignerReleased 2022-12-02
roll<SpatRaster> method for rolling (moving)
average and other rolling functionsnoNA<SpatRaster> method to identify cells that
are not NA (across layers)rangeFill<SpatRaster> methodexhaustive to
spatSample<SpatRaster> for large sparse rasters.
[#905] by PetiteTong.focalPairs and focalReg can now use the
values in custom windows as weights. [#907] by Fabian Fischer.focalReg now has additional argument “intercept=TRUE”.
[#916] by Jordan Adamsoncrs(x, warn=TRUE)<- now emits a warning about the
difference between transforming and setting a crs when x already had a
crs. [#897] by Márcia Barbosa.writeRaster [#900] by Kyle Davidcrosstab now shows the labels names for a categorical
SpatRaster. [895] by Derek Corcoran BarriosmakeTiles can now take a SpatVector to define the
tiles. [920] by Tristan GoodbodyfocalPairs and focalReg now work for
custom windows [#907] by Fabian Fischerplot<SpatVector> was not
working properly. [#906] by Márcia Barbosa.time<- with time-step “years” could not handle
negative years. [#911] by Andrea Manicawrap/unwrap (and by extension
saveRDS/readRDS) did not handle categorical
rasters well [#912] by Christine Anderson.interpIDW failed with GDAL 3.6 [#910] by Roger
BivandspatSample with strata bug fix “unable to find an
inherited method for function ‘trim’” [#919] by Alfredo Ascaniomerge/mosaic did not handle NAs when using
two layers [#913] by Joao Carreiras.Released 2022-11-18
[ and [<- for SpatRaster now have a
third index k for subsetting or assigning values by
layeranyNA and allNA for SpatRasterunwrap to restore a PackedSpatVector or
PackedSpatRasterrasterizeWin method for rasterization with a moving
window (circle, ellipse, rectangle, buffer)interpIDW method for inverse-distance-weighted
interpolation of points with a moving windowinterpNear method for nearest neighbor interpolation of
points with a moving windowviewshed method for SpatRasterupdate method for SpatRaster to write new names or a
new extent or crs to an existing raster file.sieve filter for SpatRastersegments=FALSE to
disagg<SpatRaster>sprc<character> method to create a
SpatRasterCollection from a file with subdatasetsgraticule function to create a SpatGraticule and
related methods plot<SpatGraticule> and
crop<SpatGraticule>elongate method for SpatVector linesmosaic and merge<SpatRaster>
[#577] by Jean-Romainwrap<SpatRaster> now uses file references if the
data is deemed too large to all load into memory. [#801] by
Jean-RomainreadRDS and unserialize now return a
SpatRaster or SpatVector (instead of a PackedSpat*)clamp can now take low and high values for each
layerpax argument in plot now provides more
control over what to draw on each axis via parameters side,
tick and labpax argument in plot now has argument
retro to use a sexagesimal notation of degreesextend has a new argument fill=NAcombining SpatRasters with
different CRSs. [#818] by Andrew MarxplotRGB now accounts for the value of zlim when
stretching; allowing to use the same coloring scheme across SpatRasters
[#810] by Agustin Lobo.spin is now vectorizedError in x$.self$finalize() : attempt to apply non-function
is now suppressed in most cases. [#218] by Charlie Joey Hadley. This
problem should go away altogether when a new version of “Rcpp” is
released (ETA Jan 2023) thanks to a fix by Kevin Ushey [#30]spatSample with na.rm and SpatRasters with
multiple layers did not work. [#800] by Andrea Manicaadjacent<SpatRaster> with
pairs=TRUE, include=TRUE ignored include=TRUE
[#808] by Joseph Lewisrasterize did not accept “NA” as value for updating
[#809] by Márcia Barbosaextract with a perfectly vertical or horizontal line
failed in some cases [#823] by Dimitri Falkwrap<SpatVector> failed if there was a single
point geometry [#815] by Patrick Schaeferextract<SpatRaster> with
weights=TRUE did not return values [#814] by Jean-Luc
Dupouey.x[["newname"]] <- r for SpatRasters x
and r did not work [#795] by Jim ShadycostDistance -> costDist to avoid
conflict with {gdistance}gridDistance -> gridDist for
consistencyReleased 2022-09-10
droplevels for SpatRaster. [#757] by Rodolfo
Jaffe.normalize.longitude for SpatVector.scoff to get and scoff<- to set the
scale (gain) and offset of a SpatRaster.raw=FALSE to
extract<SpatRaster> [#776] by Thomas Roh.as.data.frame now takes na.rm=NA to only
remove rows that are NA for all layers. The default value changed from
TRUE to NA. [#792] by Ed Carnelldistance<SpatRaster> has new arguments “target”
and “exclude”. [#560] by Bernardo Brandão Niebuhrsparse=FALSE for
`relate<SpatVector,SpatVector>.usenames=FALSE for
lapp<SpatRasterDataset> [#793] by Colin Brust.vect<character> now reports that a file is
non-existent [#784] by John Baumsrelate [#716] by Krzysztof Dybafocal3D now checks if all the window’s dimensions are
odd [#772] by Neander Marcel Hemingall.equal bug [#756] fixed by John Baumsextract<"SpatRaster","sf"> ignored the ID
argument. [#755] by Dainius Masiliūnas.vrt is no longer constrained by the maximum number of
files that can be opened [#780] by 8Ginette8weighted.mean crashed with numeric weights and
na.rm=TRUE [#777] by David Holstiusproject<SpatRaster> did not consider an extent
that was set by the user [#775] by Philippe MassicottefocalCor failed for large rasters [#607] by John
Clarkfocal with expand=TRUE was prone to run
out of memory [#610] by Nathan Elliottcrop<SpatVector> did not work well when the
second argument were points or lines [#782] by Márcia Barbosaadjacent with pairs=TRUE now respects the
include=TRUE argument [808] by Joseph LewisReleased 2022-08-07
blocks to guide reading raster data in chunks.
[#748] by John Baumsextract were simplified. [#736] by
François Rousseufocal where not correct if the input
SpatRaster had multiple layers and a “custom” function. [#727] by
Jean-Luc Dupouey.plot<SpatRaster> did not honor argument
legend=FALSE. [#738] by Grzegorz Sapijaszkoexpanse failed when processing in chunks [#741] by
Gareth Daviescrop<SpatRaster,SpatExtent> with argument
snap="out" could lead to a crash if the extent was beyond
the SpatRaster. [#740] by Mauricio Zambrano-BigiariniReleased 2022-07-25
subst no longer uses values that it changed earlier on.
[#639] by Paul Smithas.points<SpatRaster> could return wrong factor
labels. [#640] by Attilio Beninimask<SpatRaster,SpatVector> crashed when the
results were written to disk. [#646] by Monika Anna Tomaszewskaextract<SpatRaster,SpatVector(points)>(xy=TRUE)
returned the locations of the points, not the xy-coordinates of the
cells. [#650] by Ward Fonteynwrap<SpatRaster> did not return the correct
labels for some categorical rasters. [#652] by Jakub Nowosadsubst can now substitute the values from multiple input
layers with a single output value (layer)subset<SpatVector> now behaves like
subset<data.frame> [#648] by Andrew Gene Brownfreq now provides the labels of factors, even if
bylayer=FALSE. It now always returns a
data.frame (it used to return a matrix in some
cases. [#687] by Rodolfo Jaffédisagg and aggregate now return a warning
instead of an error when using a (dis)aggregation factor of 1.[#684] by
Justin Fain.project crashed when erroneously projecting raster data
from one celestial body to another [#688] by Mike Sumnerplot. [#673] by Jakub Nowosad.extract(method="bilinear"). [#693] by swooping-magpieas.raster to
unique<SpatRaster> to create a categorical raster
with the unique combinations in the layers of the input raster. The
default for argument na.rm was changed to
FALSEsort<SpatRaster> to sort cell values across
layers.has.colors and has.RGB for SpatRastercover can now combine categorical rastersconcats to combine the levels of two SpatRaster into
new categories [#663] by Alex Ilichzonal<SpatVector,SpatVector> method to aggregate
SpatVector attributes by polygonsReleased 2022-06-09
extract. [#580] by André M. Bellvéweighted.mean did not adjust the weights if there were
NAs in the values. [#574] by Lars Dalbystretch option in plotRGB [#550] by
Agustin LobospatSample with cells=TRUE failed for
planar data [#544] by Benjamin MisiukcompareGeom(x, y, stopOnError=FALSE) did not remove the
error messages stored in x leading to unexpected warnings
later on. [#568] by David Hofmann.layerCor does not create temp files anymore. [#551] by
Christine Andersonres and origin to
project<SpatRaster> method. [#596] by Alex Ilichinside=TRUE to centroids to
get a centroid-like point that is guaranteed to be on the geometry
(“point on surface”). [#588] by Márcia Barbosakeepgeom=FALSE to
vect<data.frame> that allows setting (keeping) the
geometry as an attribute. [#586] by Márcia BarbosasaveRDS and serialize methods for
SpatRaster and SpatVector. [#549] by Andrei MîrțxFromCol and yFromCol now have a
<SpatRaster,missing> method. [#583] by Michael
Sumner.svc<sf> method to deal with GeometryCollection
types. [#585] by Sarah Endicottas.points<SpatRaster> and
as.polygons<SpatRaster> have a new argument
na.all=FALSE that affects the interpretation of
na.rm. [#548] by Jean-Luc Dupouey.setGDALconfig and getGDALconfig to set
GDAL configuration options. [#608] by Erik Bolch.circular to rapp to allow the
start to be after the end (for if layers represent days of the
year)costDistance<SpatRaster>where.min and where.max for
SpatRaster to get the cell numbers for the extreme values
in a SpatRaster.emptyGeoms<SpatVector> to get the
indices of empty (null) geometriesrasterizeGeom to rasterize the geometry
count or the area of (small) polygons or the length of lines.not.na for SpatRaster which is
a shortcut for !is.na(x).as.list implemented for
<SpatRasterDataset>.sources implemented for
<SpatRasterDataset>, <SpatVector>
and <SpatVectorProxy> [#638] by Andrew Gene
BrownReleased 2022-02-17
writeVector and vect now work with GPGK if
the path has non-ascii characters [#518]predict with cores > 1
and more than one output variable were garbledzonal dropped category names when using an external (R)
function [#527] by Jakub Nowosadxy=TRUE in as.data.frame normalized
the names [#538] by Kodi Arferoptions to vrt [#629] by
Monika Tomaszewska.makeTiles has new arguments extend and
na.rm [#520] by by L. Dalbyproject<SpatRaster> now uses nearest neighbor as
default method for RGB rastersna.rm=TRUE to unique. [#561]
by Matthieu StiglerReleased 2022-01-30
app<SpatRasterDataset> ignored the filename.
[#498] by jszhaovect<data.frame> failed silently if xy
coordinates were integers [#496] by Márcia Barbosaaggregate<SpatRaster> was malformed
when nrow(x) %% fact != 0. [#492] by Jean-François
BourdonNAs in SpatVector attributes where only
recognized on Windows [#491] by Márcia Barbosaplot<SpatVector> failed when using a character
variable with many unique values. [#489] by Márcia Barbosarotate failed on large files. Reported by Ujjawal
Singhcrds replicated the coordinates [#504] by Murray
Effordas.data.frame<SpatRaster> returned integers if
the file stored values as integers, even if there was a scale/offset
that creates decimal numbers [#509] by Kodi Arferproject opened the input raster file in read/write mode
instead of read mode. That did not work with files that cannot be
updated.distance, gridDistance,
direction and patches now process all layers
of the input SpatRaster. [#503] by Chris Haak()<- methods.
in-place updating available with set. methods such as
set.names and set.values. [#493] by Jean
Romain and [#511] by Bryan Fuentesaggregate<SpatRaster> now accepts functions that
return more than one value per aggregated cellwriteVector has new argument insert to add
a layer to an existing file (e.g. GPKG).method="weights" for
spatSample<SpatRaster>mask<SpatVector,SpatVector> method to select
intersecting geometriesis.relatedvalues<SpatRaster> has new option
na.rm=TRUE. [#490] by Henk HarmsenSpatVectorProxy to provide access to large
vector databases that cannot or should not be read into memory in its
entirety.proxy=FALSE to vect to create
a SpatVectorProxy objectquery<SpatVectorProxy> to extract
parts of a SpatVectorProxyvector_layers that returns, and can delete,
vector format layers from a database/file such as GPKGTo avoid name clashes with tidyverse
For consistency
Released 2022-01-13
setValues and init failed (or even crashed
R) when using a single value on a largish raster. [#414]sfc to SpatVector lost the
crs. [#415] by Jean-Luc Dupoueybuffer on a SpatRaster with no values caused a crash
[#416] by Sebastian BrinkmannwriteVector now assumes “traditional GIS order”
(long/lat) if the CRS specifies lat/long. [#333]( by Agustin Lobomain was ignored in density when
using a single layer SpatRaster [#424] by dvictorimin and
mean, when used with multiple SpatRasters and numbers,
ignored additional SpatRasters [#426] by Zhuonan Wangclassify with right=FALSE ignored
include.lowest=TRUE [#442] by Alex Ilichpatches now combines patches that connect across the
data line [#366] by Hirschtpatches(directions=8) now connects in NE/SW direction
[#451] by Jean-François Bourdon.centroids now considers cases where SpatVector parts
are nearest to each other when crossing the date line instead of the
zero-meridian [#366] by Hirschtterrain created empty (NA) rows between
chunks used for processing large rasters. [#453] by Robert Ritson.inset did not draw the “box” correctly. [#457] by
Márcia Barbosaas.lines now works with a points SpatVector [#464] by
Márcia Barbosavalues(x)<- now accepts (hex coded) colors as
valuesfocal now wraps around the dateline like raster::focal
[#242] by Alexander Marbleraggregate now does not show a progress bar in all cases
[#249] by Lachlanas.data.frame<SpatRaster> or <SpatVector>
are now also implemented as S3 methods to assure correct dispatch by
other S3 methods such as data.table::as.data.table. See
[#284] by Patrick Schratzcrs now shows the correct authority if it is not EPSG.
[#419] by Matthew Williamsonrast<filename> has a new argument
lyrs to subset the layers and open the file in one
step.rast<array> now has a crs and extent argument.
[#439] by RS-ecotype="xyz" is now default in
rast<data.frame>. [#438] by RS-ecoclassify has a new argument brackets to
show if a side of an interval is open or closed.freq and
as.data.frame. [#441] ngould7vect<matrix> and
vect<data.frame> are now much faster. [#413] by
BastienFRextract with points provided as a matrix or cell
numbers is not much faster. [#341]focal has a new argument na.policy that
can be set to one of “all” (default), “only” or “omit”. argument
na.only has been removed, as you can now use
na.policy="only"inset argument border changed to
perimeter to allow passing border on to
plot<Spat*>. [#456] by Márcia Barbosamemfrac can now be set to zero (in stead
of not lower than 0.1). [#476] by Matt Strimas-MackeyallowGaps in patches to
disallow gaps between patch IDs. See [#478] by Dunbar Carpenter.mergeTime to combine multiple rasters,
perhaps partly overlapping in time, into a single time seriesfillTime that can add empty layers in
between existing layers to assure that the time step between layers is
constantapproximate to fill in missing values by
cell across layersis.bool and as.bool for
SpatRaster and explicit recognition of Boolean raster data in various
places (e.g., extract, plot)is.int and as.int for
SpatRaster.layerCor (like
raster::layerStats). [#420] by Alex IlichfocalCor (like
raster::corLocal). [#427] by Zhuonan Wangall.equal for SpatRaster. See
[#428] by Dongdong Kongmath for SpatRaster that
implements the Math-generic methods and accepts a filenamesds<array>rasterize<matrix>, see [#413] by
BastienFRcolorize to transform color
representationsarrow to draw a (North) arrow on a map.
[#461] by Márcia Barbosadensify to insert nodes between existing
nodes of a line or polygon SpatVectordirection for SpatRaster. [#462] by Márcia
Barbosafocal3D to compute focal values for a
three-dimensional (row, column, layer) windowmakeVRT to create a vrt file for a file
that needs a header to be read.method="stratified" for
spatSample<SpatRaster>. [#470] by Michael
Mahoneymemmax to cap the amount of RAM that
terra can be used in raster processing [#476] by Matt
Strimas-MackeygridDistance to compute distances traversing
a raster, perhaps with obstacles. [#477] by Márcia BarbosaReleased 2021-11-24
focal now has ellipses (...) to allow for
providing additional arguments to fun. For this reason it
does not have a na.rm argument anymore as that can be
supplied via the ellipses. In practice this means that the default will
be na.rm=FALSE for the standard functions such as
mean and sum.app grossly overestimated RAM needed, slowing it down.
Reported by Jerry Nelsonterra now installs, again, with older versions of GEOS
[#406] by fparyaniterra did not install with Clang on CRAN/OSX due to
using C++13 idiom.lapp and tapp now have a
cores argument (as do app and
predict). Suggested by Dongdong Kong [#365]focal now also works with a function that returns
multiple values. See [#318] by Alex Ilich.focal can now process multiple layers in one step.stars objects
[#220] by Jakub NowosadfocalCpp takes a C++ function that iterates over cells
to speed up computation by avoiding apply (see [#318] by
Alex Ilich).focalReg for focal OLS regression models between
layersReleased 2021-11-16
terra did not install with versions of GDAL below 3
[#402] by Alex Ilich.distance between two SpatVectors or matrices with
pairwise=FALSE returned a matrix that was filled by column
instead of by row [#403] by Paul SmithReleased 2021-11-15
rast with some NetCDF files failed because of bad
parsing of dates. [#361] by Juan Carlos Zamora-Pereiradistance<SpatRaster> with lon/lat data was not
correct. [#368] by Greg Schmidtas.polygons<SpatRaster> failed with a SpatRaster
and a categorical layer that is not the first layer. [#370] by Patrick
Schratzrasterize was not ignored,
also causing errors when writing to temporary files. [#377] by Robbie
Pricerast<character> crashed if the sds was an empty
character string. [#381] by Dan Bastonplot<SpatVector> now responds to the
range argument [#385] by Márcia Barbosazonal failed for user-defined functions. [#393] by
mqueinnecselectHighest to select n cell values with
the highest or lowest values.vect<list> to append SpatVectors
(faster than do.call(rbind, x))align=FALSE to project to
align to the template SpatRaster but ignore the resolutiongdalCache to set the GDAL cache size,
contributed by Dan Baston [#387]fileBlocksizeoptions to writeVector to
pass layer creation options to GDALmergeLines,
snap, makeNodes, removeDupNodes,
gaps, simplifywidth and
clearanceterra now installs with older versions of GEOS
[#363]terra now installs on CentOS 7 with GDAL 2.1.4 and a
C++ compiler that does not support std::regexp. [#384] by Ariel
PaulsonReleased 2021-10-11
setValues now has two arguments
(x and values), just like raster
had; to avoid reverse dependency problems with rasterReleased 2021-10-07
To avoid name conflicts with sp (via
raster) disaggregate is now called
disagg and bbox,SpatRaster and
bbox<SpatVector> have been removed (but could be
resurrected in raster or under another name).
project and resample now choose the
resampling method based on the first layer, using “near” for categorical
data. Thanks to Matthew Lewis [#355]hist failed with small samples. Issue [#356] by Martin
QueinnecReleased 2021-10-05
terra no longer depends on raster. To avoid
name clashes between these two packages, and to allow replacing methods
from rgeos and rgdal in raster,
raster now depends on terra instead.
freq has a new argument usenames. See
issue [#309] by Bappa Dasrast<character> has a new argument
opts that can be used to pass GDAL open options. See issue
[#314]rast<SpatRaster> now takes arguments
names and vals. See issue [#323] by Dongdong
Kongcrs<- now warns if an unsupported datum is used. See
issue [#317]spatSample now returns factor values if a SpatRaster
layer is.factor except when using as.df=FALSEorigin<- to set the origin of a
SpatRaster. See issue [#326] by Jakub Nowosadcrs has a new argument parse. See
[#344]plot<SpatRaster,missing> has a new argument
reset=FALSE that allows resetting the par()$mar parameters
after plotting. See issue [#340] by Derek Friendcrds has a new argument na.rm. See [#338]
by Kodi Arfershow(Spat*) now prints the name and EPSG code of a crs
if available. See [#317] by Jakub NowosadplotRGB failed if there were NAs. Issue
[#308] by Jakub NowosadwriteVector crashed R when used with a SpatVector with
no geometries. Reported by Timothy White in issue [#319]summary<SpatRaster> now returns counts for the
classes (instead of a numerical summary of the indices) [#324] by Jakub
Nowosadtapp with a character index now returns a SpatRaster
with the correct names [#345] by Stuart Brownrasterize with a character variable now adds the ID
column to the categories [#337] by Tate BraselcellSize now masks values in all cases (when requested
with mask=TRUE). Issue [#339] by Jean-Luc Dupoueybuffer<SpatVector> no longer treats lines like
polygons [#332] by Márcia Barbosaplot now passes the layer index to fun
[#310] by Ben Tupperto_id in nearest was sometimes wrong.
See [#328] by Shawn Ligockifocal did not reset initial values for NA cells when
processing chunks. [#312] by Jeffrey Evansfocal could run out of memory when using a large window
and user-defined function, and was inexact at the chunk boundary
[#347]zonal with as.raster=TRUE failed for
categorical SpatRasters [#348] by Jakub NowosadReleased 2021-08-20
time(x) <- d is set with a Date
class object, time(x) now returns a Date
object instead of a POSIXct object. Issue [#256] by
Mauricio Zambrano-Bigiarinirast<data.frame> method to avoid confusion with
the matrix and list methods in response to a
SO 68133958 by
StackbeanswriteCDF now also writes the time dimensions if there
is only one time-step. See this SO 68227180vect<character> (filename) now has argument
layer to select a layer from a multi-layer file / database,
and arguments query, extent and
filter for reading a subsetsubst can now create multiple output layers See [issue
276] by Agustin Loboclassify can now create different multiple output
layers See [issue 276] by Agustin Loboalpha of plot<SpatRaster>
can now be a SpatRaster. See this SO 68736432 by James
McCarthyfilename and overwrite arguments were
ignored in rasterizeproject. Reported by
Fabian Fischerrasterize<SpatRaster,SpatVector> with
inverse=TRUE crashed the R session. Issue [#264] by
Jean-Luc Dupoueymerge and mosaic was not
correct for large rasters (only the first rows were used). Reported by
Zavud Baghirov in [#271]as.points,SpatRaster did not remove NA’s
correctly and shifted values. Issues [#269] and [#273] by Julian
Hagenauerrast<matrix> rotated values when using an
equal-sided matrix [#274] by Jakub Nowosadproject with a crs argument. [#283] by Timothée Giraudclassify, argument right had TRUE and
FALSE reversed.terrain had edge effects [#303] by Andrew Gene
Brown.terrain can now compute multiple variables at once
[#286] by Žan Kuraltwrap<SpatRaster> changed factors into numeric
[#302] by Patrick SchratzwriteVector failed with “FlatGeobuf” (and probably
other formats as well) for not using a proper MultiPolygon [#299] by L
DalbyspatSample is now
much more regular [#289] by Jakub NowosadReleased 2021-06-20
na.omit<SpatVector> to remove empty geometries
and/or attribute records that have an NAsrc to create a
SpatRasterCollection (a loose collection of tiles).merge and mosaic now have methods for a
SpatRasterCollection. To avoid the (inefficient) use of
do.call. #210 by Matthew Talluto.activeCat and activeCat<- to get or set
the “active” category if there are multiple categories (raster
attributes)as.numeric and catalyze to transfer
categories to numeric cell valuesrange and mean
for (the attributes of) a SpatVectorshade, to compute hill shadingna.rm) are now used by
rasterize with point geometries. #209 by Jakub Nowosadgstat models
by interpolate. #208 by Jakub Nowosadcpkgs to predict to list the
packages that need to be exported to the cores if argument
cores is larger than one. ?predict now shows
different approaches to parallelize predict (based on
examples in issue. #178 by by Matthew Coghill.freq now returns labels for categorical layersadjacent now has a pairs argument. #239 by
Kenneth Blake Vernonadjacent now also takes a matrix to specify adjacent
cellsmean and other summarize methods now take a
filename argument and disallow non-recognized named
arguments. #238 by Jessica Nephinvat.dbf file is now ignored if it only has the counts
of the values. #234 by Julleegdal="" write
options and use BIGTIFF if necessary (suggested by Ani Ghosh)layer in the
extract-SpatRaster,SpatVector method to extract values for
a single layers specified for each geometry (see this question).extract with points and cells=TRUE or
xy=TRUE gave garbled outputas.character<SpatRaster> (called by
wrap) did not capture the layer names. [#213] by Pascal
Titlefocal mirrored the weight matrix, thus affecting the
results when using an asymmetrical weight matrix. Reported by Sebastiano
Trevisaniterra::terraOptions now works without attaching the
package. [#229] by Karl Dunkle Wernerapp with ncores > 0 and a function that
returns multiple layers now works. [#240] by BastienFR.autocor (local) can now handle NA values.
[#245] by Jakub Nowosad .mask with a SpatVector and a large (out of memory)
multi-layer SpatRaster only worked for the first layer. Reported by
Monika Tomaszewska.Released 2021-05-13
as.lines method for SpatRasteras.polygons method for SpatVector linesautocor<numeric> has new methods
mean, to compute the local mean, and locmor,
for the local Moran’s IsharedPaths method for SpatVector (lines and
polygons)RGB2col method to reduce a three-layer RGB SpatRaster
to a single layer SpatRaster with a color-table (with <= 256
colors)split methods for SpatVector and SpatRasterrast<Raster*> now takes the crs from the Raster
object, not from the file it may point to. [#200] by Floris
Vanderhaegheconvhull has a new argument by="" to make
convex hulls for sub-sets of a SpatVector.extract with multiple layers could return a data.frame
where the values were not in the correct order (by row instead of by
column)crop works again with sf objects. [#201]
by Sebastian Brinkmannvect<sf> now also works for lines, and should be
fastervect<character> crashed R if a file had empty
geometries. [#202] by consumereextract(points, bilinear=TRUE, cells=TRUE) now works.
[#203] by fab4appzonal now works for min and
max. [#207] Reported by Jakub NowosadTo avoid name conflicts with the spatstat package
area,SpatRaster-method(x, sum=FALSE) ->
cellSize(x)area,SpatRaster/SpatVector-method(x, sum=TRUE) ->
expanse(x)convexhull -> convHullperimeter -> perimtiles -> makeTilescoords -> crdsReleased 2021-04-30
trim has a new argument value that allows
trimming rows and columns with other values than the default
NArapp has a new argument clamp that allows
clamping start and end values to 1:nlyr(x), avoiding that
all values are considered NAspatSample<SpatRaster> has new arguments
as.points and values. Getting values, cells
and coordinates is no longer mutually exclusive. In response to [#191]
by Agustin Loboarea<SpatRaster> has a new argument
mask=FALSEclassify can now take a single number to request that
many cutsmosaic and merge now warn and resample if
rasters are not alignedextract has a new argument exact to get
the fraction covered for each cellflip(x, direction="vertical") no longer reverses the
order of the layersextract did not work for horizontal or vertical lines
as their extent was considered invalid. Reported by Monika
Tomaszewskaautocor did not handle NA values [#192] by Laurence
Hawkernearest now works for angular coordinatesslope in terrain was not
correct (the tangent was returned instead of the slope), [#196] by Sven
Alderquantile now works for rasters that have cells that are
all NA. Reported by Jerry NelsonTo avoid name conflicts with tidyverse
with deprecation warning:
without deprecation warning:
Released 2021-04-14
c<SpatVector> now returns a list.
rbind is used to append SpatVector objectsrats has been removed,
and levels and cats have changed