usevalues column from RAT table, and mergeduplicate labels; #761
st_extract() no longer stops when GDAL’sInterpolateAtPoint returns error value(s); #760
addst_as_stars() methods forCFVariable andCFDataset, provided by packagencdfCF; #756, #757 by
try harder to convertCFTime times toDate when they are dates.
if set,options("stars.regular") controls thethreshold below which dimension coordinates are considered regular, withdefault 1.0e-4
removed dependency on PCICt, added dependency on CFtime; #754 by@pvanlaake
handling of dimensions with a single value is now moreconsistent; #754
slice.stars_proxy() works (again) for single-fileproxy objects; #751, #527
[.stars() with acharacter selectorselects on names of a dimension if it has names; #747
handle “intervals” dimension in aggregate.stars() andst_as_sf.stars(); #745
fixc.stars() for the case where some of the objectshave a single slice on thealong= dimension; #743
st_redimension() (and by that,merge.stars()) useabind() for numericvariables rather thanc(), reducing memoryoverhead.
fix problem with reading HDF4 files; #741 by AlexysRodriguez
use, by default,normalizePath() onfilename inread_mdim(); #735
st_extract() accepts empty points as target;#734
st_sfc2xy() passes... on tost_as_stars(); #733
address/.difftime issue new in R-devel rev87670
c.stars() is more strict when combining timesequences; #703
fix plotting when breaks contain duplicates; #728
fixst_as_stars.im(); #727 and #648, thanks to BarryRowlingson
st_extract() fix if points coincide with boundarygrid cell centers and bilinear interpolation is used; #720
st_extract() if used with GDAL 3.10.0 usesInterpolateAtPoints, allowing for cubic and cubicspline interpolators(requiring sf >= 1.0-19).
Ops.stars() (math ops) now also recycle arrays inthe first argument; #718
c.stars() verifies semantic equivalence of objects’CRS; #703
initial support forread_mdim() to work withproxy = TRUE; #659
skipcubble tests for cubble version 0.3.1;https://github.com/huizezhang-sherry/cubble/issues/30
st_transform.stars transforms geometries in arrayelements
mutate.stars (and others) handle attribute nameswith spaces in them; #689
st_crop() gains an argumentnormalize;when set toTRUEst_normalize() is called onthe returned value; #685, #686
constrain reading full GEOLOCATION arrays to the case where theyare 2-D; #678
fixst_as_stars.Spatial() forSpatialgridded objects with non-square grid cells, seehttps://github.com/r-spatial/gstat/issues/123
addprcomp() methods forstars andstars_proxy objects, working on attributes or lastdimension
st_rasterize() withalign=TRUE returnsNA values where there are no data; #668
read_mdim() reads tables with composity type,returning adata.frame in that case; #659
st_rotate() transforms a rotated grid back to acurvilinear grid in unrotated coordinates.
aggregate.stars() deals with functions that returnmore than one number, putting these in a new dimension likest_apply() does
st_as_stars.data.frame() andst_as_stars.sf() better handle non-raster datacubes
plot.stars() only resets layout when needed (morethan one sub-plot, or key present)
fixedst_as_stars.im(); #648
st_crs<-.stars() is less critical on existing CRSbeing of classcrs
c.stars() with a single (valid) argument andalong specified adds a dimension; #646
st_join.stars() keeps attributes fromxcomplete; #643
st_as_stars.list() requires anamed list,and will set names of array dimensions if not present
plot.stars() has afill argument thatshifts unused plotting space between sub-maps to the bottom or rightside of the plotting area
inplot.stars(), thekey.width defaultis sensitive topar("ps"), the pointsize graphicsparameter
plot.stars() andimage.stars() aresensitive tocex.axis, for axes and key (requires sf >=1.0-14); #642
movelwgeom dependency to Suggests; usingst_transform_proj() on vector data cubes requires loadinglwgeom first
st_downsample() has argumentoffset topixel-shift downsampled images
st_downsample() has argumentFUN tocompute sub-tile aggregates; #604
st_as_stars.bbox() retainsfactorvalues; #640
fix CRAN error in test script
st_crop() works (and warns) for the case when thecrop area does not overlap with the area of the object; #638
split.stars() acceptsstars objectswith multiple attributes; #635
[.stars() supportsNA values indimension ranges for vector geometry (sfc) dimensions,resulting in empty geometries
st_extract() supports extracting points values fromcurvilinear grids (when not proxy); #632
read_mdim() reads curvilinear rasters (geolocationarrays), so far only at full extent/resolution
st_as_stars.stars() accepts curvilinear argumentwith lon/lat array names present in.x
consistently useOGC:CRS84 instead ofEPSG:4326
settingvalues = NULL inst_set_dimensions() removes dimension values
more gracefully handle plotting of global coverage curvilineargrids; #632
image.stars() plots images (e.g. of cross sections)when x and/or y are singular or absent; #628
st_as_stars.cubble_df() adds conversion from cubble;cubble::as_cubble() methods converts back
[<-.stars() accepts fori anindicator (numeric length character) to the array to be replaced;#626
plot.stars() gains an argumentkey.labto set the legend key label (requires sf >= 1.0-13)
removergdal dependency
read_stars() fixes combining bands with differentblock sizes; #623
st_warp() gets (proper) default value forthreshold; #618
read_mdim() reads “raster” with single pixel (as apoint)
[.stars(), as inr[x] allowsx to be a logical stars object
[<-.stars_proxy() clones environment, so thatafterr[r > 100] = NA we don’t get infinite recursionwhen realizingr
read_stars() avoids reading a raster twice todetermine how to chooseproxy;proxy can nowbe set as (and defaults to) the number of cells (bands * rows * columns)above which data will not be read in memory but returned asstars_proxy object; #609
fix usingRasterIO inread_stars() whenproxy=TRUE; #608
plot.stars() hook function can handle argumentsrow,col,nrow,ncol,nr,value andbbox; #600
fix handling of categorical rasters with colors but withoutcategory labels; #595, fallout of #565
fix subsetting of proxy objects over a time range; #596
write_stars() writes scaled and/or shifted valueswhen using argumentscale_offset; #589
aggregate.stars_proxy() implements aggregation withnon-spatialby objects (lazily)
fix[.stars_proxy() when selecting dimension 3 andhigher; #561
inplot.stars(),col can also be apalette function
st_res() returns spatial resolutions, and optionallyall dimension resolutions; #557 thanks to Krzysztof Dyba
read_stars() shortens band or array names thatcontain a common start or ending, unless names would become empty orshorten=FALSE was set; e.g. shorten="B" puts aB before shortened array names
printingstars dimension tables omits fields withonlyNULL orNA values, unlessprint(..., all = TRUE) is given
improve reading categorical rasters, which now avoids callingfactor(); #565 thanks to Krzysztof Dyba
read_mdim() will read bounds arrays for coordinatesusing thebounds attribute, and accepts abounds argument to specify them when that attribute ismissing
time() returns time stamps of a timedimension
st_cells() returns the cell index for a set of pointcoordinates, provided assf orsfc object;#558
reading & writing vector data cubes:read_mdim()reads CF compliant vector geometries, and reconstructs them into ansfc dimension;write_mdim() writesthem.
write_mdim() uses GDAL multidimensional arrayAPI;
read_mdim() uses argumentsoffset,count andstep to read sub-arrays or stridedarrays (requires sf >= 1.0-9)
exportread_mdim(), a reader using GDAL’smultidimensional array API (for sf <= 1.0-8)
removetos_O1_2001-2002.nc from packaged datasets tokeep source package size below 5 Mb
as.POSIXct.stars() convertsPCICtdimensions toPOSIXct values.
improve handling ofPCICt 360 or 365 day calendars;read them inread_mdim (requires sf >= 1.0-9)
read_stars() reads factor levels better fromattribute table; #484 thanks to
read_stars() puts band names fromband_meta DESCRIPTION= tags intovalues;
improve handling of categorical rasters, and their exchange withterra; #484
plot() handles auto colors better for factorarrays
read_ncdf() handles units more formally in settingcrs; #533
print message that dimensions of proxy objects do not reflectunevaluated operations; #530
passingna.action = na.omit togeom_stars() removesNA values; #532
read_stars() detects curvilinear gridsautomatically; #513
st_warp() warps curvilinear grids (using Euclideandistances only on coordinates); #513
Ops.stars() errors when (common) dimension are notidentical; #506
guess_raster() accepts empty rows/columns and sparsegrids; #509
speed uprgb plotting; #503
Added a new helper functionst_tile() to specify theblock parameters (nXOff,nYOff,nXsize,nYSize) required byRasterIO argument inread_stars(); #492 thanksto Krzysztof Dyba
st_as_stars.bbox() creates an empy raster file ifproxy = TRUE; #489
st_rasterize() has optionalign = TRUEto use a template for aligning the new raster to; #489
adrop.stars() with missing dimensions no longerdrops x/y raster dimensions; #485
aggregate.stars() propagates units of arrays;#477
c.stars() fails if it tries to merge arrays withdifferent units; #475
For NetCDF files,read_stars() uses thelong_name as array name; #475
addrename() method; #470
refresh CRS of packagedL7_ETMs.tif; #466
as.data.frame.stars() works for mixed regular andrectilinear dimension; #458
plot.stars() plots curvilinear rasters with colortable, or without table butcol argument passed;#456
st_extract() accepts a matrix with points asat argument, for when performance is important; seee.g. https://github.com/rspatial/terra/issues/341
fix bug inst_crop() when cropping area is largerthan grid; #455
exportst_downsample(), e.g. to be used bytmap; https://github.com/r-tmap/tmap/issues/597
argumentdownsample inplot.stars() andst_as_stars.stars_proxy() andst_downsample()has the same effect (removed a one-offset between them).
st_redimension() works for curvilinear grids;#441
downsample is propagated to subexpressions liker[r < 50] = NA
predict.stars() obtains an argumentdrop_dimensions that, ifTRUE, dropsdimensions from the predictiondata.frame; #362
extend options inst_rgb(), #432, by GaboGaona
allow subsetting with[ by using labels, e.g. ofband names.
read_stars() accepts a function (or list withfunctions) as first argument, allowing for savingstarsobjects that read from package directories resolving platform-dependentpaths at run-time
handle categorical rasters starting at value 0 (by adding 1, andwarning); #428
add%in% method; #424
read_stars() gains an argumenttolerance to control tolerance in dimension valuecomparisons; #414
binary Ops (like+,-,*etc.) work forstars_proxy objects; #390
st_rasterize() rasterizes multiple attributes, andhandles factors (when sf >= 0.9-9)
write_stars() deals better withstars_proxy objects; #404
fix regression in reading somestars_proxy objects;#379
add[<- (partially) andis.namethods forstars_proxy objects; #402
addreplace_na() methods; #402
read and write factor levels as GDAL category names; write colortable; #392
handlenormalize_path for choosing toproxy; #391
ignore units when there are different units across bands of asubdataset
speed upst_rgb() using fasterst_apply() approach; #315, #390
improve handling of crs in Spatial objects (avoid loss of wktcomments)
correctly write band subsets for smaller proxy objects;#291
write arbitrarily cropped proxy objects; #291
speed upst_apply() when a function is provided thatworks on chunks at a time; #390
warn when breaks = “quantile” results in a single class;#388
fix[ bug selecting bands in proxy objects;#388
forstars_proxy objects,write_stars()writes all objects into a multi-layer file; #385
multi-file proxy objects can best_warp()ed withuse_gdal = TRUE; #385
fix weird GDAL-related bug in stars2 vignette
read_ncdf() does not take time as mid-points ofregular intervals, but as starting points; #378
fix handling of rasters with color tables; #375
st_apply() and other methods forstars_proxy objects handle … ; #374
addst_bbox(),st_crs() methods forterra’sSpatVector objects;https://github.com/r-tmap/tmap/issues/536
addst_bbox(),st_crs() andst_as_stars() methods for terra’sSpatRasterobjects; https://github.com/r-tmap/tmap/issues/536
allow for multi-resolution attributes instars_proxyobjects (e.g., all gray scale sentinel-2 bands); see vignettes 2 and 7for examples.
plot() defaults to a categorical color scale whenplotting a factor variable;https://github.com/r-tmap/tmap/issues/526
st_extract() extracts space-time points iftime_column is specified, and handles time intervals;#352
add[[<-.stars method, which is now called by$<-.stars, so that array names can be setprogrammatically
addtransmute() methods
plot.stars() callsdroplevels if afactor array has anyNA levels; #339
read_stars() readsNaNs asNA; #333
improvest_extract() method for bothstars andstars_proxy objects; interpolationoptions are reduced to bilinear; #322, #279, #290
better handle categorical rasters that do not start at value 1;#329
plot layout can be controlled withmfrow = c(nr, nc)argument
stars_proxy objects have a normalized path;#331
cropping or selecting withbbox treats cells alwaysas small polygons; #330
add fasterst_extract() method forstars objects; #322
added vignette: “Howraster functions map tostars functions”, by Sebastien Rochette; #122,#325
fix bug in dimensionvalues field when downsampling;#324
write_stars() also writes out band names;#323
addrgdal to Suggests:
eachcall_list entry of astars_proxyobject carries its proper calling environment; #309
st_as_sf.stars() copes with zero attribute (empty)stars objects
addst_set_bbox() generic, to set raster extent,motivated by #315
set up tic, with great help from
get rid of moreproj4strings for representingcoordinate reference systems; #312
as(x, “Spatial”) correctly handlesfrom dimensionvalues different from one
read_stars() now sets theBANDNAME GDALmetadata item, or else the band’s GetDescription() as the band’sdimension values
st_as_stars.data.frame() reads simple tables(non-raster data) ifdims has length less than 2
band descriptions are in the band dimension values
dimension tables are simpler, and are shown properly inRstudio
st_rgb() gains aprobs argument, to cutoff and stretch based on quantiles
as(x, "Raster") merges multiple attributes beforeconverting to raster brick
fix bug inst_as_stars.Raster; set crs to the oneassigned by raster; https://github.com/r-tmap/tmap/issues/471
adds2 to Suggests:
new functionst_rgb() collapses (reduces) adimension to rgb hex value; #302
aggregate.stars() handles arrays with NA values nowcorrectly; brought up in #299 by Thorsten Simon
aggregate.stars() gains an argumentexact which, ifTRUE, callsexactextractr for polygonal aggregation; #289
read_stars() reads all subdatasets with dimensionsequal to first, and warns when ignoring others; #296
make copying over of dimensions somewhat easier; #295
st_as_stars.Raster() tries to read from file if theraster object is not an in-memory object.
write_stars() normalizes path, asread_stars already did; #293
merge() for proxy objects acts, and is no longerlazy; #290
st_as_stars.Raster() returns a proxy object if theraster layer is on disk
addst_extract() to extract e.g. time series fromgrids at point locations; #279; #290
read_stars() chooses a value forproxythat depends on the data dimensions; #281
x/y range subsetting ofstars_proxy objects now onlyreads that range, similar to how crop already did this.
st_warp() preserves levels and colors;https://github.com/r-tmap/tmap/issues/429
st_crop() works with bounding boxes larger than thedownsampled bounding box; #276
st_crop() has a non-zero default forepsilon (bounding box shrinkage) to exclude cells touchingthe crop bounding box; #275
image.stars() (and henceplot.stars)gains anextent argument for setting the extent of a plot;https://github.com/r-spatial/sf/issues/1193
st_warp() (stars native) flips longitudes a fullcycle; #256, #264, #269
handle axis order inst_transform (requires sf >=0.9-1)
depend on sf 0.9-0
adapt to cubelyr split-off from dplyr; add cubelyr to Suggests:;https://github.com/hadley/cubelyr/issues/2
adddroplevels() method
handle color tables, category tables and raster attribute tablesread through GDAL; #128, #245;https://github.com/r-spatial/mapview/issues/208
handle dimensioncrs specially, for proxy objectsnow.
handle new-stylecrs objects from upcoming sf,moving away from proj4strings
handle fullcrs objects asrefsyselement in a spatial dimensions, rather than proj4string only
st_raster_type(x) reveals the raster type ofx; #248, https://github.com/r-tmap/tmap/issues/368
addst_as_stars.OpenStreetMap() method; #241 by@mtennekes
addst_flip() to flip arrays along one or moredimensions without changing dimension properties
addas.owin() method to convert (2D raster) starsobjects to spatstatowin;https://github.com/r-spatial/sf/issues/1233
for temporal aggregation,aggregate.stars now alsotakesby arguments like “week”, “month”, or “5days”
addst_as_stars() method forxtsobjects; improveas.xts forstarsobjects
skip some tests on solaris
plot() now uses all data to figure out breaks, inorder to also find extremes; #216
st_mosaic() creates mosaics from spatially disjointrasters; #210
#205 large refactoring ofread_ncdf, by DavidBlodgett and Mike Sumner, affecting #199, #89, #30, #86, #175
allow for funny units likem s**-1; #201
addcontour() method forstars objects;#196
plot usesrasterImage by default if available;#194
thex andy raster dimensions can beset and unset withxy argument inst_set_dimensions; #190
retainfactor levels with dimension values when setinst_set_dimensions; #188
add conversion fromstars_proxy toRaster: #193
make plotting of multiple curvilinear grids work
plot by default no cell borders in case of curvilinear, rotatedor sheared grids
robustify handling of units
allowread_ncdf() to ignore bounds
scale was applied wrongly on multi-band images; #189, thisrequires sf >= 0.7-5
.nc is now recognized correctly bywrite_stars and will write a NetCDF file; #186
[ subset now works correctly with negative orlogical indices; #184, #185
NA values for float32 grids are now correctlydetected; #182, this requires sf >= 0.7-5
cropping of astars_proxy object now works;#179
st_apply() can now loop over Raster layers; examplesin #176
st_as_stars.bbox now has anncells andpretty argument, to better choose default rasterdimensions
geom_stars now works withstars_proxyobjects, but needsdownsample to be set; #21
NA values in Float32 rasters are now read correctlywithread_stars; #182
handle bounds, when given, inread_ncdf
provide time parsing (POSIXct, PCICt) forread_ncdf;#115
addst_area method to return raster grid cell sizes;#99
fixst_warp withuse_gdal=TRUE,allowing for multi-band warps
addst_get_dimension_values to get the values of aparticular dimension (if meaningful); #100
allow for setting intervals as dimension values; see examples ofst_dimensions
addst_contour, and clean upst_as_sf;#99
experimental color table support;https://github.com/r-spatial/mapview/issues/208
rewrote vignettes, added vignettes; #99
deprecatest_write.stars forwrite_stars; #96
use “native” R array-factor support
support forPCICt 360- and 365-day calendars;#29
remove import ofncdf4 in favor ofRNetCDF, now in line with practice inncmetapackage. Thanks to David Blodgett for motivation and testing (see #87,#94).
st_as_sf uses date/time column names whenappropriate
allow missing trailing comma’s when subsetting:a[1,,] anda[1,] now do the same.
moverlang to Imports: ; rewrite[subset using rlang.
add conversion to and fromSpatial* classes,including the gridded ones, taking care offactorvariables
depend on sf 0.7-2
addlogz support for log-scale keys toplot andimage
vignettes now use an external package,starsdata,for larger dataset examples
support[<-.stars e.g. to mask out values;supportis.na.stars to replace NA masks
supportcut methods and factor arrays (plot,subset); #56
addst_rasterize, which usesGDALRasterize to rasterize an sf object; #13
st_as_sf.stars now usesGDAL(F)Polygonize when give a regular or sheared grid gridcells are not points, and returns contour bands usingGDALContourGenerateEx (requiring GDAL 2.4.0) in case cellsare points; #13
support curvilinear grids; see #54 and thedata_model vignette
add vignette about howstars_proxy objectswork
stars_proxy objects defer processing ofst_apply jobs until after subsampling; #50
allow reading sections of a raster, raster at a lower resolution,selected bands; #48
allow reading vectors (arrays) with more than 2^31 elements;#48
fold all higher dimensions into the third dimension beforecoercing toRaster; #40
read_starsaddmerge (merge attributes into array dimension)andsplit (split dimension over attributes)
interface to sf, raster and spacetime
improve plotting
handlelogical arrays in plot
addst_apply, analogous toapply
add cropping/masking when used as x[buf] with buf ansf,sfc orbbox object; maskingwhenx[buf, crop = FALSE]
add Ops (+,-,/ etc) and Math (sqrt, pow, sin etc)methods
adddimnames anddimnames<- methodsfor stars objects
downsample large grids to only plot pixels actuallyshown
can plot rectilinear grids (but will plot rgb images as regulargrids)
rgb argument toimage works
[ array-like subsetting works; first index isattribute selector
gdal_utils()(now part ofsf)