GDALAlg, experimental bindings to the
new GDAL CLI API (#782)
Rcpp::CharacterVector are always passed explicitly as
const char * in C API calls-Wunused-const-variablegdal_global_reg_names(): return a character vector
containing the names of the algorithms in the GDAL global algorithm
registry (#782)plot_raster(): use on.exit() for
par() reset (#780)on.exit()
cleanup code (#783)pixel_extract(): add checks for potential ctrl-c user
interrupt during extract for a large number of pointsogr_reproject() following
GDAL ERROR 1: Reprojection failed on certain CRAN platforms
with alternative BLAS/LAPACK implementations
ogr_reproject() (cf. https://gdal.org/en/stable/programs/ogr2ogr.html#known-issues)ogr_reproject() across all GDAL
versions but skip more complex tests if GDAL < 3.11.3 (“stable”
version as of July 2025)-Wimplicit-const-int-float-conversion in
src/vsifile.cppsetGDALDatasetH_() in classes
GDALRaster and GDALVector: check shared flag
of the incoming GDALDatasetH and set the
m_shared member variableGDALRaster: call
GDALReleaseDataset() instead of GDALClose() in
the close() method and destructor when the dataset is
non-sharedpixel_extract(): support optional point IDs in the
first column of an input data frame and add argument
as_data_frame (#751)plot_raster() via
col_tbl (#735 thanks @mdsumner)GDALVector$getFieldDomain(): a coded values domain is
now returned as a two-column data frame of (codes, values) instead of
character vector of "CODE=VALUE", a breaking
change but the return value was not previously documented. The
returned field domain definition now aligns with the specification added
under the ogr_define help topic in #738g_boundary(): compute the boundary of input
geometry, wrapper of OGR_G_Boundary() (#727)g_convex_hull(): compute convex hull for input
geometries, wrapper of OGR_G_ConvexHull() (#726)g_delaunay_triangulation(): return a Delaunay
triangulation of the vertices of the input geometry, wrapper of
OGR_G_DelaunayTriangulation() (#729)g_set_3D()/g_set_measured():
add/remove the explicit Z/M coordinate dimension on the input
geometries, wrappers of
OGR_G_Set3D()/OGR_G_SetMeasured() (#743)g_is_ring(): tests whether a geometry is a ring,
TRUE if the coordinates of the geometry form a ring by
checking length and closure (self-intersection is not checked),
otherwise FALSE (OGR_G_IsRing())g_distance() (#728)g_transform(): performance improvement when multiple
input geometries (#745)g_envelope(): add argument as_3d, wrapper
of OGR_G_GetEnvelope3D() in the GDAL Geometry API
(#724)srs_to_projjson(), wrapper for
OSRExportToPROJJSON() in the GDAL Spatial Reference System
API (#721)srs_to_wkt(): add argument gcs_only,
wrapper for OSRCloneGeogCS() in the GDAL SRS APItransform_bounds(): support multiple input bounding
boxes given as rows of a matrix or data frame (#744)g_envelope(): fix the order of xy coordinates in the
returned envelope(s), fixes #725
a breaking changepixel_extract(): fix input validation for
xy_srsogr_manage functions
(#749)tests/testthat/test-gdal_create.R for the
the create() and createCopy() R public
interfaces, and improve input validation (#748)GDALVector with a few minor
code improvements (#747)GDALVector: improve error handling in
setIgnoredFields()/setSelectedFields() and add
several new tests (#731)constexpr or const in
several placesGDALVector
along with several additions and enhancements to ogr_*()
stand-alone functions?data_type_helpers)show() method for all Rcpp
exposed classesGDALVector:
encapsulates an OGRLayer object and the
GDALDataset that contains it, exposing 48 class methods for
obtaining vector layer information, attribute and spatial filtering, and
reading/writing feature datananoarrow_array_stream object (GDAL >= 3.6) (#591)ogr_reproject(): reproject a vector layer
(purpose-built wrapper of GDALVectorTranslate())ogr_proc(): interface to GDAL OGR facilities for
vector geoprocessingogr_layer_rename(): rename an existing layer in a
vector dataset (GDAL >= 3.5)ogr_execute_sql() now returns an object of class
GDALVector for SQL SELECT statementsreturn_obj in ogr_ds_create()
and ogr_layer_create(), TRUE to return a
GDALVector object for write access on the created
layerlayer argument in certain ogr_manage
functions now supports NULL or empty string, which will
default to the first layer by index (mainly as a convenience for
single-layer formats)$is_ignored from the list object for a
feature class definition (affects certain ogr_define and
ogr_manage functions): potentially breaking change but
assumed to be unused in layer / field creation (#513)g_wk2wk() (WKB <–> WKT conversion),
g_create() (create geometries from input points),
g_add_geom() (build container geometry types from
sub-geometries) (#572)wkt to geom, and by
returning raw vectors of WKB by default from functions that return
geometries (as_wkb = TRUE by default)g_is_valid(), g_is_empty(),
g_name() and g_buffer() to the new style
Geometry APIg_make_valid(): attempt to make invalid geometries
validg_summary(): obtain text summaries of WKB/WKT
geometries (GDAL >= 3.7)g_simplify(): simplify WKB/WKT geometries,
optionally preserving topologyg_swap_xy(): swap x and y coordinates of the input
geometryg_geodesic_area() and
g_geodesic_length() (#671)g_is_3D() and g_is_measured()
(#650)g_envelope(): computes and returns the bounding
envelope(s) for input geometriesg_coords(): extract coordinate values from
geometriesg_transform(): add argument
traditional_gis_order with default TRUE, to
support authority compliant order for geometries using geographic
coordinatesbbox_transform(): add argument
use_transform_bounds (TRUE by default but
requires GDAL >= 3.4)srs_is_same():
argument srs1 is renamed to srs and argument
srs2 to srs_othersrs_to_wkt() (wrapper of
OSRSetFromUserInput())?srs_convert and ?srs_query, and now includes
the following:
srs_convert functions:
epsg_to_wkt(), srs_to_wkt()srs_query functions:
srs_find_epsg(), srs_get_name(),
srs_is_geographic(), srs_is_derived_gcs(),
srs_is_local(), srs_is_projected(),
srs_is_compound(), srs_is_geocentric(),
srs_is_vertical(), srs_is_dynamic(),
srs_is_same(), srs_get_angular_units(),
srs_get_linear_units(), srs_get_coord_epoch(),
srs_get_utm_zone(),
srs_get_axis_mapping_strategy()$get_block_indexing(): helper to get
indexing values for the block layout of a raster band (#667)$addBand(): add a band to a dataset if the
underlying format supports this action, e.g., MEM and
VRT$clearColorTable(): clear the color table
associated with a raster band$getMaskBand(): return the mask filename and
band number associated with a given band of the dataset$getMaskFlags(): return the status flags of
the mask band associated with a given band of the dataset$setMetadata(): set dataset or band-level
metadata from a character vector of NAME=VALUE pairs
(instead of per metadata item with the existing method
$setMetadataItem())band = 0 in the existing method
$setDescription() to set the dataset-level description$bbox() and $res() to
handle south-up / rotated raster (with related fixes in
read_ds() and plot_raster()) (#569)vsi_get_actual_url(): return the actual URL of a
supplied VSI filename, wrapper of VSIGetActualURL() in the
GDAL APIvsi_get_signed_url(): return a signed URL for a
supplied VSI filename, wrapper of VSIGetSignedURL() in the
GDAL APIvsi_is_local(): returns whether the file/filesystem
is “local”, wrapper of VSIIsLocal() in the GDAL APIget_cache_max() and set_cache_max():
get/set maximum memory size available for the GDAL block cacheget_cache_used(): change the return value to R
numeric type carrying the integer64 class
attribute, and add argument units defaulting to
"MB"gdal_version_num() (previously
internal/undocumented): return the full version number as an
integer value (convenience for
as.integer(gdal_version()[2]))gdal_compute_version(): compute the integer version
number (GDAL_VERSION_NUM) from the individual components
(major, minor, revision)pixel_extract(): extract pixel values at geospatial
point locations, with options for multiple interpolation methods and
returning the individual pixel values from a N x N kernel (#570)transform_bounds(): transform a bounding box,
densifying the edges to account for nonlinear transformations along
these edges and extracting the outermost bounds (wrapper of
OCTTransformBounds() in the GDAL Spatial Reference System
API, requires GDAL >= 3.4)autoCreateWarpedVRT(): create a warped virtual
dataset representing the input raster warped into the target coordinate
system (wrapper of GDALAutoCreateWarpedVRT())validateCreationOptions(): validate the list of
creation options that are handled by a driver (#663)getCreationOptions(): change the return value to a
named list of options with their information (#662)getCreationOptions(): include $min and
$max attributes in the returned list if GDAL >=
3.11create(): add argument return_obj,
TRUE to return an object of class GDALRaster
with update access on the created datasetcreateCopy(): add argument return_obj,
TRUE to return an object of class GDALRaster
with update access on the created datasetcreateCopy(): an object of class
GDALRaster can be given for argument
src_filename to specify the source datasetwarp(): source and destination rasters may be given as
objects of class GDALRastertranslate(): source raster can be given as a
GDALRaster objectinspectDataset(): handle the case if separate raster
and vector drivers are identified but a specific flag for the dataset
type was not given (#693)rasterize(): support passing a GDALRaster
object for in-place updating (#660)transform_xy(),
inverse_proj(), apply_geotransform(),
get_pixel_line())transform_xy() / inv_project(): support
input points with z vertices (three column xyz) or time values (four
column xyzt), and optionally accept input of point geometries as
character vector of WKT strings, WKB raw vector, or list of WKB raw
vectorstransform_xy() / inv_project(): account
for behavior change in the GDAL Transform() methods of
OGRCoordinateTransformation at GDAL 3.11 (#631)plot_raster(): add argument pixel_fn to
specify a function that will be applied to the input data for plotting,
and handle input raster with complex data type (#582)inspectDataset() and warp(): set a quiet
error handler around code checks that are based on a try()
statement that attempts to open a raster dataset (#709)NA in the input coordinates to
transform_xy(), inv_project(),
transform_bounds(), apply_geotransform() and
get_pixel_line() (#592)plot_raster() to avoid integer overflow (#613
thanks to @mdsumner)as.numeric() (#620 thanks to @mdsumner)VSIFile$read(): the
nbytes argument should accept values carrying the
integer64 class attribute (fixes #677 thanks to @mdsumner)create(), createCopy() and
autoCreateWarpedVRT() as GDALRaster object
factories (#606)ogr_ds_create() and
ogr_layer_create() as GDALVector object
factories (#609)cppcheck style in
src/geom_api.cpp and src/srs_api.cpp
(#658)src/gdal_vsi.h, and minor code cleanups in
src/gdal_vsi.cppsrc/wkt_conv.cpp ->
src/srs_api.cpp, src/wkt_conv.h ->
src/srs_api.h, tests/testthat/test-wkt_conv.R
-> tests/testthat/test-srs_api.Rconst reference in some srs and geom
functionsstd::vector (#485)CPLIsNan() with std::isnan()
(#485)read_ds(): pre-allocate the output vector based on the
bit size of the unioned data type across all bandsreturn_obj with
create() and createCopy()-srcband and -dstband command-line
options in the documentation for warp()ogr2ogr() for dissolving features
based on an attribute valueg_transform()?ogr_defineinspectDataset() and
vsi_get_file_metadata() to use the new sample data file
inst/extdata/ynp_features.zip (#691)\dontshow{}inspectDataset(): obtain information about a GDAL
raster or vector dataset (#552)identifyDriver(): identify the driver that can open
a given filename, connection string, etc. (#553)transform_xy() and inv_project(): accept
the SRS arguments in any format supported by
srs_to_wkt()vsi_read_dir(): add the recursive argument
(#426); omit “.” and “..” from the output directory listing; add the
all_files argument, TRUE to include hidden
files; sort the directory listing alphabetically"color-relief" in
DEFAULT_DEM_PROC (#430)VSIFile: create file with
“w+” access for read/write (#546)ogr_def_geom_field(): fix input validation for the
srs argument (#507)createCopy(): check the driver for GDAL_DCAP_CREATE
capability as well as GDAL_DCAP_CREATECOPY (#479)plot_raster(): default to no stretch when the input is
an RGB Byte raster (#435)VSIFile that needs “w+” access
instead of “w”transform_xy()
examplesfillRaster() method in class
GDALRasterfix test in test-ogr_manage.R: the test for GeoJSON layer did not
need to check existence using with_update = TRUE on a file
in extdata (#410)
add apply_geotransform(): convert raster column/row
to geospatial x/y coordinates, wrapper of
GDALApplyGeoTransform() in the GDAL API, operating on a
matrix of input col/row coordinates (the internal wrapper
.apply_geotransform() is unchanged)
add GDALRaster$apply_geotransform(): class method
alternative to calling the stand-alone function
apply_geotransform() on an object of class
GDALRaster
vsi_curl_clear_cache(): add parameter
quiet to wrap the API call in a quiet error handler,
TRUE by default
Documentation: document the w+ access flag for class
VSIFile; add
CPL_VSIL_USE_TEMP_FILE_FOR_RANDOM_WRITE configuration
option in vignette GDAL
Config Quick Reference; replace paste0() with
file.path() in the examples throughout
code linting
bit64 has been added to ImportsRcppInt64 has been added in LinkingToogr_ds_exists(), ogr_ds_format(),
ogr_ds_test_cap(), ogr_ds_create(),
ogr_ds_layer_count(), ogr_ds_layer_names(),
ogr_layer_exists(), ogr_layer_test_cap(),
ogr_layer_create(), ogr_layer_field_names(),
ogr_layer_delete(), ogr_field_index(),
ogr_field_create(), ogr_geom_field_create(),
ogr_field_rename(), ogr_field_delete(),
ogr_execute_sql()ogr_def_field(), ogr_def_geom_field(),
ogr_def_layer()VSIFile wraps VSIVirtualHandle for
Standard C binary file I/O on regular file systems, URLs, cloud storage
services, Zip/GZip/7z/RAR, and in-memory filesvsi_mkdir(): the file mode was set
incorrectly because mode was not passed correctly as octal
literal. mode is now passed as a character string
containing the file mode as octal.vsi_get_file_metadata(): returns metadata for
network filesystem objects (/vsicurl/, /vsis3/, /vsiaz/, etc.), and with
GDAL >= 3.7, /vsizip/ SOZip metadatavsi_set_path_option(): set a path specific option
for a given path prefix, e.g., credential setting for a virtual file
system (GDAL >= 3.6)vsi_clear_path_options(): clear path specific
configuration options previously set with
vsi_set_path_option() (GDAL >= 3.6)vsi_rmdir(): add argument recursive,
TRUE to delete the directory and its contentvsi_mkdir(): add argument recursive,
TRUE to create the directory and its ancestors0 or -1
invisibly indicating success/failure, consistent with GDAL return
values. Those return values are now visible to be consistent with return
values from VSIFile class methods.vsi_stat() with info = "size", and
vsi_get_disk_free_space() now return
bit64::integer64 type$info() and
$infoAsJSON() now use the default command-line arguments
for the underlying gdalinfo utility. Arguments are
configurable in the new read/write $infoOptions field,
which is an empty vector by default (character(0)).raw type, and
add the setting $readByteAsRaw as a class field (#314,
thanks to @mdsumner)$infoOptions and
$quiet for applying per-object settingsTRUE by default$getActualBlockSize(): retrieve the actual
block size for a given block offset$get_pixel_line(): class method alternative
to calling the stand-alone function get_pixel_line() on an
object of class GDALRaster(#339)$getProjection(): equivalent to
$getProjectionRef() (consistent with
osgeo.gdal.Dataset.getProjection() /
osgeo.gdal.Dataset.getProjectionRef() in the GDAL Python
API)$getDefaultRAT(): add progress bar since
retrieving large raster attribute tables could take >30 seccalc(): add support for multiband output (#319)calc(): add input validation for
var.names, must be in exprget_pixel_line(): an object of class
GDALRaster can now be passed for the gt
parameter, in which case the geotransform will be obtained from the
object and bounds checking on the raster extent will be done (original
behavior for gt as numeric vector is unchanged) (#339)ogr2ogr(): add parameter open_options to
support options on the source datasetread_ds(): add parameter as_raw to read a
Byte raster as R raw type (#314, thanks to @mdsumner)dump_open_datasets(): dump a list of all open
datasets (shared or not) to the consoleget_num_cpus(): get the number of processors
detected by GDALget_usable_physical_ram(): get usable physical RAM
reported by GDALhas_spatialite(): returns TRUE if GDAL
was built with SpatiaLite supporthttp_enabled(): returns TRUE if GDAL
was built with libcurl support.cpl_http_cleanup(): wrapper of
CPLHTTPCleanup() for internal use (2024-05-29)g_is_empty(), g_is_valid(),
g_name(), g_intersects(),
g_equals(), g_disjoint(),
g_touches(), g_contains(),
g_within(),
g_crosses(),g_overlaps(),
g_intersection(), g_union(),
g_difference(), g_sym_difference(),
g_distance(), g_length(),
g_area(), g_centroid()bbox_transform(): transform a bounding box to a
different projectiong_transform(): now uses
OGR_GeomTransformer_Create() and
OGR_GeomTransformer_Transform() in the GDAL API, enhanced
version of OGR_G_Transform(); add arguments
wrap_date_line and date_line_offsetAuthors@RGDALRaster
class methods $info(), $infoAsJSON() and
$getDefaultRAT()CPLHTTPCleanup() upon R
session exitGDALRaster class method
$setFilename(): set the filename of an uninitialized
GDALRaster object, currently undocumented / for internal
useGDALRaster class method
_getGDALDatasetH(): get the GDAL dataset handle for
internal usebuildRAT(): if the input raster is an object of class
GDALRaster, use it by reference rather than instantiating
another GDALRaster object internallycalc(): close input raster dataset before exit when a
differing extent is detected"-json" as a cl_arg
to ogrinfo()vsi_get_fs_prefixes(): get the list of prefixes for
virtual file system handlers currently registeredvsi_get_fs_options(): get the list of options
associated with a virtual file system handler (for setting with
set_config_option())vsi_supports_rnd_write() and
vsi_supports_seq_write(): test whether the filesystem
supports random write or sequential write, conditional on whether a
local temp file is allowed before uploading to the target locationvsi_get_disk_free_space(): return the free disk
space available on the filesystemvsi_copy_file() and
vsi_sync() (#233)ogrinfo(): wrapper of the ogrinfo
command-line utility, retrieve information about a vector data source
and potentially edit data with SQL statements (GDAL >= 3.7)ogr2ogr(): wrapper of the ogr2ogr
command-line utility, convert vector data between different formatsg_transform(): apply a coordinate transformation to
a WKT geometrygeos_version(): get version information for the
GEOS library in use by GDALpush_error_handler(): wrapper for
CPLPushErrorHandler() in the GDAL Common Portability
Librarypop_error_handler(): wrapper for
CPLPopErrorHandler() in the GDAL Common Portability
Librarycalc(): the argument usePixelLonLat is
deprecated as unnecessary, variables pixelLon /
pixelLat are now auto-detected if used in the calc
expression; small performance improvement from computing
pixelY only when neededquiet in several functions to
configure progress reporting (#237)gdal_formats() now returns a data frame with the
supported raster and vector formats, and information about the
capabilities of each format drivernew(): assign default variable names in the constructor
if names are not givensrc/geos_wkt.cpp, src/transform.cpp,
src/wkt_conv.cpp: deallocate some OGR geometry and OSR
spatial ref objects to fix memory leaksGDALRaster::getMetadataDomainList(): deallocate the
returned string list to avoid memory leakGDALRaster::close(): clear cache if needed, and check
the return values of GDALClose() and
GDALFlushCache() if GDAL >= 3.7configure.ac: add back proj-include and
proj-lib, the latter needed in some cases for source
install on macOS; rework for the system requirement of GDAL built
against GEOShas_geos() checks and update the
documentation, since GDAL with GEOS is now required.editorconfig file and bulk reformat code
stylelintr and add .lintr
fileNULL -> nullptr in C++
codeOSR_DEFAULT_AXIS_MAPPING_STRATEGY=TRADITIONAL_GIS_ORDER
from _gdal_init() (#209), since this could give a different
SRS comparison result depending on GDAL version in cases where axis
mapping matters and the default options in OSRIsSameEx()
are usedvsi_copy_file(): wrapper for
VSICopyFile()vsi_curl_clear_cache(): wrapper for
VSICurlClearCache() and
VSICurlPartialClearCache()vsi_mkdir(): wrapper for
VSIMkdir()vsi_read_dir(): wrapper for
VSIReadDirEx()vsi_rename(): wrapper for
VSIRename()vsi_rmdir(): wrapper for
VSIRmdir()vsi_stat(): wrapper for
VSIStatExL()vsi_sync(): wrapper for VSISync()vsi_unlink(): wrapper for
VSIUnlink()vsi_unlink_batch(): wrapper for
VSIUnlinkBatch()GDALRaster$new(): add a constructor for passing dataset
open optionsfootprint(): wrapper of the
gdal_footprint command-line utility, compute footprint of a
raster (GDAL >= 3.8)read_ds(): add as_list argument for option
to return multi-band output in list form; attach attribute
gis to the output, a list containing bbox, dimension and
spatial reference (thanks to input from @mdsumner #185)plot_raster(): accept pixel data in list form (band
vectors as list elements), and make use of gis attribute if
present (thanks to input from @mdsumner #185)srs_is_same(): add arguments for
criterion, ignore_axis_mapping and
ignore_coord_epoch_check_gdal_filename(): minimal filename check and
UTF-8_get_physical_RAM(): wrapper for
CPLGetUsablePhysicalRAM() for internal useSystemRequirements since it is
required by the imported package xml2read_only=TRUE is now an optional default in the class
constructorclearStatistics(): clear statistics on PAM
supported datasets (GDAL >= 3.2)addFilesInZip(): create/append to Seek-Optimized
ZIP files (GDAL >= 3.7)plot_raster(): now uses georeferenced coordinates by
default instead of pixel/line (#184 thanks to @mdsumner)calc() using Landsat bands should have
applied scale/offset as given in the .json metadata - this has been
correctedAWS_REGION, and a section for SOZip to GDAL
Config Quick Refread_only=TRUE in the constructor for
GDALRastertranslate() and warp() in Raster
API Tutorialautoconf macros for compiler invocations; get the PROJ data
directory from pkg-config if possible; add
action-if-cross-compiling argument (#190 and #197; thanks
to Simon Urbanek for debugging an initial issue and providing helpful
feedback)pkg-config on Windows when possible
(#125 thanks to @kalibera)translate() and warp(): close the output
dataset before closing source dataset(s) in case the output is VRTpolygonize(): create a polygon feature layer from
raster data, wrapper for GDALPolygonize in the GDAL
Algorithms API.rasterize(): burn vector geometries (points, lines,
or polygons) into a raster, wrapper for the gdal_rasterize
command-line utilitybuildVRT(): build a GDAL virtual raster mosaic from
a list of datasets, wrapper for the gdalbuildvrt
command-line utilitytranslate(): convert raster data between different
formats, wrapper for the gdal_translate command-line
utilityt_srs optional in warp()TRADITIONAL_GIS_ORDER=OSR_DEFAULT_AXIS_MAPPING_STRATEGY is
now set on package loadwarp() has additional documentation covering several
processing optionsCOMPRESS_OVERVIEW configuration option to the
documentation for GDALRaster::buildOverviews()str() of the GDALRaster object in the
Raster
API TutorialdisplayRAT())getDefaultRAT(), setDefaultRAT()getDefaultHistogram(): fetch default raster
histogram for a bandgetHistogram(): compute raster histogram for a
bandgetMinMax(): compute min/max for a raster bandgetMetadataDomainList(): get a list of metadata
domains for a dataset or raster bandgetMetadataItem() for a specific domain at dataset
level (#109)buildRAT(): compute for a raster band the set of
unique pixel values and their counts, and build a GDAL Raster Attribute
Table as data framedisplayRAT(): generate a presentation Raster
Attribute Table, showing colors if the table contains RGB columnsgdal_formats(): report the supported raster
formatsgetCreationOptions(): get the list of creation
options of a raster formatcopyDatasetFiles(): copy all the files associated
with a datasetdeleteDataset(): delete a dataset in a
format-specific wayrenameDataset(): rename a dataset in a
format-specific wayincr for the count increment in
CmbTable::update() can be zerouint64_t for the count accumulator (previously
long long) and make explicit the return cast in
get_count() (no user-visible changes)plot_raster(): normalize legend correctly for
minmax_def and minmax_pct_cut (#131)RunningStats-classgdal_formats() and
getCreationOptions()getColorTable(),
getPaletteInterp(), setColorTable()getRasterColorInterp(),
setRasterColorInterp(): get/set color interpretation for
raster bandsgetDescription(), setDescription():
get/set description for raster band objectsflushCache(): flush all write cached data to
diskgetFileList(): returns a list of files forming the
datasetinfoAsJSON(): returns output of the
gdalinfo command-line utility as a JSON-formatted
stringnew(): add a warning in the class constructor if the
raster has an int64 data type (would be handled as double for now)bandCopyWholeRaster(): wrapper for
GDALRasterBandCopyWholeRaster(), efficiently copy a whole
raster bandcreateColorRamp(): wrapper for
GDALCreateColorRamp(), automatically create a ramp from one
color to anothersieveFilter(): wrapper for
GDALSieveFilter() in the Algorithms API, remove small
raster polygonsproj_version(),
proj_search_paths(), proj_networking() (via
GDAL headers)g_buffer(): compute buffer of a WKT geometry (GEOS
convenience function via GDAL headers)updateFromMatrixByRow(): update the hash table from
a matrix having integer combinations arranged in rowsasMatrix(): return the combinations table as a
numeric matrix (alternative to asDataFrame())warp() caused segfault if proj.db could not be found
(#96)plot_raster(): default value of the legend
argument has been changed to FALSE; legend can now use a
color table for continuous data; add argument maxColorValue
(e.g., to use RGB 0:255 instead of 0:1 in col_tbl)bbox_from_wkt(), bbox_to_wkt(): add
arguments extend_x, extend_yadd dem_proc(): wrapper for the gdaldem
command-line utility to generate DEM derivatives
add the following set methods in class GDALRaster:
setMetadataItem(), setUnitType(),
setScale(), setOffset()
add GDALRaster$buildOverviews(): build raster
overviews
add GDALRaster$dim(): returns a vector of xsize,
ysize, nbands
transform_xy() and inv_project():
pts can be a data frame or matrix
plot_raster() now accepts a GDALRaster
object for the data argument
plot_raster(): make the legend narrower and add
argument digits to format legend labels when raster data
are floating point
add test suite and code coverage report
GDALRaster::read(): data are now read as R
integer type when possible for the raster data type
(#23)
add fillNodata(): wrapper for
GDALFillNodata() in the GDAL Algorithms API
add read_ds(): convenience wrapper for
GDALRaster$read()
add plot_raster(): display raster data using base R
graphics
add get_cache_used(): wrapper for
GDALGetCacheUsed64() with return value in MB
add GDALRaster$getOverviewCount(): return the number
of overview layers available
GDALRaster$info(): drop -nomd argument
from the internal call
bbox_from_wkt(): return NA if creation
of the geometry object fails (#27)
fix GDALRaster$getMetadata(): requesting band-level
metadata for a domain other than the default metadata domain was
returning dataset-level metadata instead
add vignette containing an R port of the GDAL Raster API tutorial
add description of the GDAL_RASTERIO_RESAMPLING
configuration option in the documentation for
GDALRaster$read()
add web article on the GDAL
block cache and configuration of GDAL_CACHEMAX
starting at v. 1.2.0, {gdalraster} will require R
>= 4.2.0
fix: check for GEOS availability in bbox geometry functions
fix: wrong array dimensions in read() (#5). Starting
at v. 1.2.0, read() will return vector instead of matrix
which better matches the concept of a native GDAL-like interface (thanks
to Michael Sumner).
add: has_geos() exported to R
add: srs_is_same() - wrapper for OSRIsSame() in the
GDAL Spatial Reference System C API
documentation - minor edits throughout to improve clarity