Changelog
Source:NEWS.md
gdalraster 2.0.0.9002 (dev)
(internal) make variables
constexpr
orconst
in several places (2025-05-25)pixel_extract()
: fix input validation forxy_srs
(2025-05-23)(internal)
ogrinfo()
andGDALRaster::infoAsJSON()
now use convenience classCPLString
from the GDAL Common Portability Library for itsreplaceAll()
method (2025-05-19)
gdalraster 2.0.0
CRAN release: 2025-05-11
Summary of main changes
- add bindings to the GDAL Vector API, implemented in the exposed C++ class
GDALVector
along with several additions and enhancements toogr_*()
stand-alone functions - enhance and expand existing bindings to the Geometry API, now operating on raw vectors of WKB or WKT strings
- enhance and expand existing bindings to the Spatial Reference Systems API
- add several new features and improvements to the Raster API, Virtual Systems Interface (VSI) API, and coordinate transformation functions
- add helper functions for working with GDAL raster data types (see
?data_type_helpers
) - add an S4
show()
method for all Rcpp exposed classes - bug fixes, code linting and other internal improvements
Dependencies
- package nanoarrow has been added to Imports and LinkingTo
- package wk has been added to Imports
- C++17 is now a System Requirement
- PROJ is removed as a stand-alone external System Requirement since:
- gdalraster as of 1.12 requires GDAL >= 3.1
- PROJ has been a GDAL build requirement since GDAL 3.0
- gdalraster only uses PROJ via GDAL headers (i.e., there is no longer a requirement for linking to external libproj in this case)
Vector API bindings
- add class
GDALVector
: encapsulates anOGRLayer
object and theGDALDataset
that contains it, exposing 48 class methods for obtaining vector layer information, attribute and spatial filtering, and reading/writing feature data - wrap GDAL’s Arrow C Stream interface for reading vector data by exposing an ArrowArrayStream on a layer as a
nanoarrow_array_stream
object (GDAL >= 3.6) (#591) - add
ogr_reproject()
: reproject a vector layer (purpose-built wrapper ofGDALVectorTranslate()
) - add
ogr_proc()
: interface to GDAL OGR facilities for vector geoprocessing - add
ogr_layer_rename()
: rename an existing layer in a vector dataset (GDAL >= 3.5) -
ogr_execute_sql()
now returns an object of classGDALVector
for SQL SELECT statements - add argument
return_obj
inogr_ds_create()
andogr_layer_create()
,TRUE
to return aGDALVector
object for write access on the created layer - the
layer
argument in certainogr_manage
functions now supportsNULL
or empty string, which will default to the first layer by index (mainly as a convenience for single-layer formats) - remove element
$is_ignored
from the list object for a feature class definition (affects certainogr_define
andogr_manage
functions): potentially breaking change but assumed to be unused in layer / field creation (#513)
Geometry API
- update the geometry interface to support the vector API in gdalraster 2.0, with changes to existing functions, and add
g_wk2wk()
(WKB <–> WKT conversion),g_create()
(create geometries from input points),g_add_geom()
(build container geometry types from sub-geometries) (#572) - the geometry wrapper functions now operate on input of either WKB raw vector, list of WKB, or character vector of WKT strings, with returned geometries as either WKB raw vector (or list of) or WKT character string (vector of)
-
breaking changes: breaks some existing functions by renaming argument
wkt
togeom
, and by returning raw vectors of WKB by default from functions that return geometries (as_wkb = TRUE
by default) - update
g_is_valid()
,g_is_empty()
,g_name()
andg_buffer()
to the new style Geometry API - add
g_make_valid()
: attempt to make invalid geometries valid - add
g_summary()
: obtain text summaries of WKB/WKT geometries (GDAL >= 3.7) - add
g_simplify()
: simplify WKB/WKT geometries, optionally preserving topology - add
g_swap_xy()
: swap x and y coordinates of the input geometry - add
g_geodesic_area()
andg_geodesic_length()
(#671) - add
g_is_3D()
andg_is_measured()
(#650) - add
g_envelope()
: computes and returns the bounding envelope(s) for input geometries - add
g_coords()
: extract coordinate values from geometries -
g_transform()
: add argumenttraditional_gis_order
with defaultTRUE
, to support authority compliant order for geometries using geographic coordinates -
bbox_transform()
: add argumentuse_transform_bounds
(TRUE
by default but requires GDAL >= 3.4)
Spatial Reference Systems API
- improve and expand bindings to a subset of the GDAL Spatial Reference System API (#584)
-
breaking change in
srs_is_same()
: argumentsrs1
is renamed tosrs
and argumentsrs2
tosrs_other
- functions that previously required input as a WKT string now accept SRS definitions in any of the formats supported by
srs_to_wkt()
(wrapper ofOSRSetFromUserInput()
) - the documentation is grouped under two topics,
?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()
-
GDALRaster-class
- add method
$get_block_indexing()
: helper to get indexing values for the block layout of a raster band (#667) - add method
$addBand()
: add a band to a dataset if the underlying format supports this action, e.g.,MEM
andVRT
- add method
$clearColorTable()
: clear the color table associated with a raster band - add method
$getMaskBand()
: return the mask filename and band number associated with a given band of the dataset - add method
$getMaskFlags()
: return the status flags of the mask band associated with a given band of the dataset - add method
$setMetadata()
: set dataset or band-level metadata from a character vector ofNAME=VALUE
pairs (instead of per metadata item with the existing method$setMetadataItem()
) - support
band = 0
in the existing method$setDescription()
to set the dataset-level description - improve methods
$bbox()
and$res()
to handle south-up / rotated raster (with related fixes inread_ds()
andplot_raster()
) (#569)
GDAL VSI for operations on virtual file systems
- add
vsi_get_actual_url()
: return the actual URL of a supplied VSI filename, wrapper ofVSIGetActualURL()
in the GDAL API - add
vsi_get_signed_url()
: return a signed URL for a supplied VSI filename, wrapper ofVSIGetSignedURL()
in the GDAL API - add
vsi_is_local()
: returns whether the file/filesystem is “local”, wrapper ofVSIIsLocal()
in the GDAL API
GDAL configuration
- add
get_cache_max()
andset_cache_max()
: get/set maximum memory size available for the GDAL block cache -
get_cache_used()
: change the return value to Rnumeric
type carrying theinteger64
class attribute, and add argumentunits
defaulting to"MB"
- expose
gdal_version_num()
(previously internal/undocumented): return the full version number as aninteger
value (convenience foras.integer(gdal_version()[2])
) - add
gdal_compute_version()
: compute the integer version number (GDAL_VERSION_NUM
) from the individual components (major, minor, revision)
Other stand-alone functions
- add
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) - add
transform_bounds()
: transform a bounding box, densifying the edges to account for nonlinear transformations along these edges and extracting the outermost bounds (wrapper ofOCTTransformBounds()
in the GDAL Spatial Reference System API, requires GDAL >= 3.4) - add
autoCreateWarpedVRT()
: create a warped virtual dataset representing the input raster warped into the target coordinate system (wrapper ofGDALAutoCreateWarpedVRT()
) - add
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.11 -
create()
: add argumentreturn_obj
,TRUE
to return an object of classGDALRaster
with update access on the created dataset -
createCopy()
: add argumentreturn_obj
,TRUE
to return an object of classGDALRaster
with update access on the created dataset -
createCopy()
: an object of classGDALRaster
can be given for argumentsrc_filename
to specify the source dataset -
warp()
: source and destination rasters may be given as objects of classGDALRaster
-
translate()
: source raster can be given as aGDALRaster
object -
inspectDataset()
: 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 aGDALRaster
object for in-place updating (#660) - accept one (x, y) as a vector in functions that expect matrix or data frame input (
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 vectors -
transform_xy()
/inv_project()
: account for behavior change in the GDALTransform()
methods ofOGRCoordinateTransformation
at GDAL 3.11 (#631) -
plot_raster()
: add argumentpixel_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()
andwarp()
: set a quiet error handler around code checks that are based on atry()
statement that attempts to open a raster dataset (#709)
Bug fixes
- handle
NA
in the input coordinates totransform_xy()
,inv_project()
,transform_bounds()
,apply_geotransform()
andget_pixel_line()
(#592) - fix
plot_raster()
to avoid integer overflow (#613 thanks to @mdsumner) - fix potential integer overflow when multiplying raster dimensions in R without explicit
as.numeric()
(#620 thanks to @mdsumner) - configure.ac: fix test for GDAL >= 3.1.0
- fix class method
VSIFile$read()
: thenbytes
argument should accept values carrying theinteger64
class attribute (fixes #677 thanks to @mdsumner)
Internal
- configure.ac: remove configuration of PROJ include directory and libs as no longer needed (#702)
- implement
create()
,createCopy()
andautoCreateWarpedVRT()
asGDALRaster
object factories (#606) - implement
ogr_ds_create()
andogr_layer_create()
asGDALVector
object factories (#609) - code linting for
cppcheck
style insrc/geom_api.cpp
andsrc/srs_api.cpp
(#658) - various C++ code linting throughout (#624)
- add header
src/gdal_vsi.h
, and minor code cleanups insrc/gdal_vsi.cpp
- rename files:
src/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.R
- use consistent naming convention for C++ class member variables
- pass arguments by
const
reference in some srs and geom functions - use try/catch if potentially large allocation of
std::vector
(#485) - replace
CPLIsNan()
withstd::isnan()
(#485) -
read_ds()
: pre-allocate the output vector based on the bit size of the unioned data type across all bands - validate input columns in the data frame-to-matrix internal C++ conversion functions
Documentation
- update the package Description
- add package vignette Vector API Overview
- update descriptions of the C++ exposed classes and emphasize lack of named argument support in those cases (i.e., argument order matters, mainly of concern with class constructors)
- update Raster API Tutorial to use the argument
return_obj
withcreate()
andcreateCopy()
- additions to the section on Azure (/vsiaz/) in GDAL Config Quick Reference
- add the
-srcband
and-dstband
command-line options in the documentation forwarp()
- add an example in
ogr2ogr()
for dissolving features based on an attribute value - minor updates for
g_transform()
- restructure and edit
?ogr_define
- update examples for
inspectDataset()
andvsi_get_file_metadata()
to use the new sample data fileinst/extdata/ynp_features.zip
(#691) - add alt text to images in the package vignettes and other web-only articles
- code that cleans up temp files in the examples is now wrapped in
\dontshow{}
- add Development practices in CONTRIBUTING.md
- add the OpenSSF best practices badge in README.md
- add the OpenSSF Scorecard badge in README.md
gdalraster 1.12.0
CRAN release: 2025-01-19
Features / enhancements
- add
inspectDataset()
: obtain information about a GDAL raster or vector dataset (#552) - add
identifyDriver()
: identify the driver that can open a given filename, connection string, etc. (#553) -
transform_xy()
andinv_project()
: accept the SRS arguments in any format supported bysrs_to_wkt()
-
vsi_read_dir()
: add therecursive
argument (#426); omit “.” and “..” from the output directory listing; add theall_files
argument,TRUE
to include hidden files; sort the directory listing alphabetically
Bug fixes
- fix the mode name for
"color-relief"
inDEFAULT_DEM_PROC
(#430) - fix a unit test for class
VSIFile
: create file with “w+” access for read/write (#546) -
ogr_def_geom_field()
: fix input validation for thesrs
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)
Documentation
- fix an example for class
VSIFile
that needs “w+” access instead of “w” - fix missing double quote in
transform_xy()
examples - document the
fillRaster()
method in classGDALRaster
gdalraster 1.11.1
CRAN release: 2024-06-13
fix 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 ofGDALApplyGeoTransform()
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 functionapply_geotransform()
on an object of classGDALRaster
vsi_curl_clear_cache()
: add parameterquiet
to wrap the API call in a quiet error handler,TRUE
by defaultDocumentation: document the
w+
access flag for classVSIFile
; addCPL_VSIL_USE_TEMP_FILE_FOR_RANDOM_WRITE
configuration option in vignette GDAL Config Quick Reference; replacepaste0()
withfile.path()
in the examples throughoutcode linting
gdalraster 1.11.0
CRAN release: 2024-06-03
System requirements
- GDAL >= 3.1.0 is now required (previously >= 2.4.0)
- package
bit64
has been added to Imports - package
RcppInt64
has been added in LinkingTo
New utility functions for managing vector data sources
- initial bindings to the GDAL/OGR Vector API supporting data source management:
ogr_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()
- documentation and helper functions for feature class definition:
ogr_def_field()
,ogr_def_geom_field()
,ogr_def_layer()
New bindings to the GDAL VSIVirtualHandle API
- class
VSIFile
wrapsVSIVirtualHandle
for Standard C binary file I/O on regular file systems, URLs, cloud storage services, Zip/GZip/7z/RAR, and in-memory files
GDAL VSI for operations on virtual file systems (bug fix / enhancements)
- bug fix in
vsi_mkdir()
: the file mode was set incorrectly becausemode
was not passed correctly as octal literal.mode
is now passed as a character string containing the file mode as octal. - add
vsi_get_file_metadata()
: returns metadata for network filesystem objects (/vsicurl/, /vsis3/, /vsiaz/, etc.), and with GDAL >= 3.7, /vsizip/ SOZip metadata - add
vsi_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) - add
vsi_clear_path_options()
: clear path specific configuration options previously set withvsi_set_path_option()
(GDAL >= 3.6) -
vsi_rmdir()
: add argumentrecursive
,TRUE
to delete the directory and its content -
vsi_mkdir()
: add argumentrecursive
,TRUE
to create the directory and its ancestors - several VSI functions returned
0
or-1
invisibly indicating success/failure, consistent with GDAL return values. Those return values are now visible to be consistent with return values fromVSIFile
class methods. -
vsi_stat()
withinfo = "size"
, andvsi_get_disk_free_space()
now returnbit64::integer64
type
GDALRaster-class
- behavior change: the class methods
$info()
and$infoAsJSON()
now use the default command-line arguments for the underlyinggdalinfo
utility. Arguments are configurable in the new read/write$infoOptions
field, which is an empty vector by default (character(0)
). - add support for I/O of Byte raster as R
raw
type, and add the setting$readByteAsRaw
as a class field (#314, thanks to @mdsumner) - add read/write fields
$infoOptions
and$quiet
for applying per-object settings - add an optional constructor to allow specifying whether the dataset is opened in shared mode,
TRUE
by default - add method
$getActualBlockSize()
: retrieve the actual block size for a given block offset - add method
$get_pixel_line()
: class method alternative to calling the stand-alone functionget_pixel_line()
on an object of classGDALRaster
(#339) - add method
$getProjection()
: equivalent to$getProjectionRef()
(consistent withosgeo.gdal.Dataset.getProjection()
/osgeo.gdal.Dataset.getProjectionRef()
in the GDAL Python API) - method
$getDefaultRAT()
: add progress bar since retrieving large raster attribute tables could take >30 sec
Stand-alone processing functions
-
calc()
: add support for multiband output (#319) -
calc()
: add input validation forvar.names
, must be inexpr
-
get_pixel_line()
: an object of classGDALRaster
can now be passed for thegt
parameter, in which case the geotransform will be obtained from the object and bounds checking on the raster extent will be done (original behavior forgt
as numeric vector is unchanged) (#339) -
ogr2ogr()
: add parameteropen_options
to support options on the source dataset -
read_ds()
: add parameteras_raw
to read a Byte raster as Rraw
type (#314, thanks to @mdsumner)
GDAL configuration
- add
dump_open_datasets()
: dump a list of all open datasets (shared or not) to the console - add
get_num_cpus()
: get the number of processors detected by GDAL - add
get_usable_physical_ram()
: get usable physical RAM reported by GDAL - add
has_spatialite()
: returnsTRUE
if GDAL was built with SpatiaLite support - add
http_enabled()
: returnsTRUE
if GDAL was built with libcurl support - add
.cpl_http_cleanup()
: wrapper ofCPLHTTPCleanup()
for internal use (2024-05-29)
Geometry functions
- new additional geometry functions operating on WKT (GEOS via GDAL headers):
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()
- add
bbox_transform()
: transform a bounding box to a different projection -
g_transform()
: now usesOGR_GeomTransformer_Create()
andOGR_GeomTransformer_Transform()
in the GDAL API, enhanced version ofOGR_G_Transform()
; add argumentswrap_date_line
anddate_line_offset
Documentation
- add Discussions on the GitHub repository
- add a section for HTTP/HTTPS (/vsicurl/) in the vignette GDAL Config Quick Reference
- DESCRIPTION file: add Michael D. Sumner in
Authors@R
Other internal changes and fixes
- fix memory leaks detected by Valgrind in
GDALRaster
class methods$info()
,$infoAsJSON()
and$getDefaultRAT()
- register a finalizer to call
CPLHTTPCleanup()
upon R session exit - add
GDALRaster
class method$setFilename()
: set the filename of an uninitializedGDALRaster
object, currently undocumented / for internal use - add
GDALRaster
class method_getGDALDatasetH()
: get the GDAL dataset handle for internal use -
buildRAT()
: if the input raster is an object of classGDALRaster
, use it by reference rather than instantiating anotherGDALRaster
object internally -
calc()
: close input raster dataset before exit when a differing extent is detected - add some missing null checks, and object destruction on error conditions, in src/geos_wkt.cpp
- improve the check for
"-json"
as acl_arg
toogrinfo()
- code linting
gdalraster 1.10.0
CRAN release: 2024-03-26
GDAL VSI for operations on virtual file systems
- add
vsi_get_fs_prefixes()
: get the list of prefixes for virtual file system handlers currently registered - add
vsi_get_fs_options()
: get the list of options associated with a virtual file system handler (for setting withset_config_option()
) - add
vsi_supports_rnd_write()
andvsi_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 location - add
vsi_get_disk_free_space()
: return the free disk space available on the filesystem - fixed misspelled argument in
vsi_copy_file()
andvsi_sync()
(#233)
Other stand-alone functions
- add
ogrinfo()
: wrapper of theogrinfo
command-line utility, retrieve information about a vector data source and potentially edit data with SQL statements (GDAL >= 3.7) - add
ogr2ogr()
: wrapper of theogr2ogr
command-line utility, convert vector data between different formats - add
g_transform()
: apply a coordinate transformation to a WKT geometry - add
geos_version()
: get version information for the GEOS library in use by GDAL - add
push_error_handler()
: wrapper forCPLPushErrorHandler()
in the GDAL Common Portability Library - add
pop_error_handler()
: wrapper forCPLPopErrorHandler()
in the GDAL Common Portability Library -
calc()
: the argumentusePixelLonLat
is deprecated as unnecessary, variablespixelLon
/pixelLat
are now auto-detected if used in the calc expression; small performance improvement from computingpixelY
only when needed - add optional argument
quiet
in several functions to configure progress reporting (#237) - make the dataset management functions quieter (#282)
-
gdal_formats()
now returns a data frame with the supported raster and vector formats, and information about the capabilities of each format driver
Internal
-
src/geos_wkt.cpp
,src/transform.cpp
,src/wkt_conv.cpp
: deallocate some OGR geometry and OSR spatial ref objects to fix memory leaks - add more unit tests for geometry operations using GEOS via GDAL headers
-
GDALRaster::getMetadataDomainList()
: deallocate the returned string list to avoid memory leak -
GDALRaster::close()
: clear cache if needed, and check the return values ofGDALClose()
andGDALFlushCache()
if GDAL >= 3.7 -
configure.ac
: add backproj-include
andproj-lib
, the latter needed in some cases for source install on macOS; rework for the system requirement of GDAL built against GEOS - remove internal
has_geos()
checks and update the documentation, since GDAL with GEOS is now required - add
.editorconfig
file and bulk reformat code style - fix up R code for
lintr
and add.lintr
file - mass replace
NULL
->nullptr
in C++ code - format diagnostic messages throughout for consistency and follow guidelines given in “Writing R Extensions”
- clean up temp files in the examples throughout
gdalraster 1.9.0
CRAN release: 2024-02-25
Behavior change
- remove
OSR_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 inOSRIsSameEx()
are used
GDAL VSI for operations on virtual file systems
- add
vsi_copy_file()
: wrapper forVSICopyFile()
- add
vsi_curl_clear_cache()
: wrapper forVSICurlClearCache()
andVSICurlPartialClearCache()
- add
vsi_mkdir()
: wrapper forVSIMkdir()
- add
vsi_read_dir()
: wrapper forVSIReadDirEx()
- add
vsi_rename()
: wrapper forVSIRename()
- add
vsi_rmdir()
: wrapper forVSIRmdir()
- add
vsi_stat()
: wrapper forVSIStatExL()
- add
vsi_sync()
: wrapper forVSISync()
- add
vsi_unlink()
: wrapper forVSIUnlink()
- add
vsi_unlink_batch()
: wrapper forVSIUnlinkBatch()
Stand-alone functions
- add
footprint()
: wrapper of thegdal_footprint
command-line utility, compute footprint of a raster (GDAL >= 3.8) -
read_ds()
: addas_list
argument for option to return multi-band output in list form; attach attributegis
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 ofgis
attribute if present (thanks to input from @mdsumner #185) -
srs_is_same()
: add arguments forcriterion
,ignore_axis_mapping
andignore_coord_epoch
Documentation
- organize the website reference index
- add Microsoft Azure information in GDAL Config Quick Reference
- update DESCRIPTION
gdalraster 1.8.0
CRAN release: 2024-01-27
Dependencies
- libxml2 is listed in
SystemRequirements
since it is required by the imported package xml2
GDALRaster-class
-
read_only=TRUE
is now an optional default in the class constructor - add
clearStatistics()
: clear statistics on PAM supported datasets (GDAL >= 3.2)
Stand-alone functions
- add
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)
Documentation
- example code for
calc()
using Landsat bands should have applied scale/offset as given in the .json metadata - this has been corrected - add
AWS_REGION
, and a section for SOZip to GDAL Config Quick Ref - update documentation and examples throughout for default
read_only=TRUE
in the constructor forGDALRaster
- add
translate()
andwarp()
in Raster API Tutorial
Internal
- configure.ac: remove parts of PROJ config that were unneeded since gdalraster only uses PROJ via GDAL headers; use
autoconf
macros for compiler invocations; get the PROJ data directory frompkg-config
if possible; addaction-if-cross-compiling
argument (#190 and #197; thanks to Simon Urbanek for debugging an initial issue and providing helpful feedback) - get GDAL libs from
pkg-config
on Windows when possible (#125 thanks to @kalibera) -
translate()
andwarp()
: close the output dataset before closing source dataset(s) in case the output is VRT - switch to using the R convention for x.x.x.9000 development versioning
gdalraster 1.7.0
CRAN release: 2023-11-29
GDAL API stand-alone functions
- add
polygonize()
: create a polygon feature layer from raster data, wrapper forGDALPolygonize
in the GDAL Algorithms API. - add
rasterize()
: burn vector geometries (points, lines, or polygons) into a raster, wrapper for thegdal_rasterize
command-line utility - add
buildVRT()
: build a GDAL virtual raster mosaic from a list of datasets, wrapper for thegdalbuildvrt
command-line utility - add
translate()
: convert raster data between different formats, wrapper for thegdal_translate
command-line utility - make
t_srs
optional inwarp()
- the GDAL configuration option
TRADITIONAL_GIS_ORDER=OSR_DEFAULT_AXIS_MAPPING_STRATEGY
is now set on package load
Documentation
- add GDAL Config Quick Reference to vignettes
-
warp()
has additional documentation covering several processing options - add the
COMPRESS_OVERVIEW
configuration option to the documentation forGDALRaster::buildOverviews()
- add
str()
of theGDALRaster
object in the Raster API Tutorial - add display of the EVT raster itself along with its attribute table in Raster Attribute Tables
gdalraster 1.6.0
CRAN release: 2023-10-27
Dependencies
- GDAL >= 2.4.0 (previously >= 2.3.0)
- package xml2 is now required (previously in Suggests)
- package gt has been added to Suggests (required for
displayRAT()
)
GDALRaster-class
- add methods for Raster Attribute Tables:
getDefaultRAT()
,setDefaultRAT()
- add
getDefaultHistogram()
: fetch default raster histogram for a band - add
getHistogram()
: compute raster histogram for a band - add
getMinMax()
: compute min/max for a raster band - add
getMetadataDomainList()
: get a list of metadata domains for a dataset or raster band - fix
getMetadataItem()
for a specific domain at dataset level (#109)
GDAL API stand-alone functions
- add
buildRAT()
: compute for a raster band the set of unique pixel values and their counts, and build a GDAL Raster Attribute Table as data frame - add
displayRAT()
: generate a presentation Raster Attribute Table, showing colors if the table contains RGB columns - add
gdal_formats()
: report the supported raster formats - add
getCreationOptions()
: get the list of creation options of a raster format - add
copyDatasetFiles()
: copy all the files associated with a dataset - add
deleteDataset()
: delete a dataset in a format-specific way - add
renameDataset()
: rename a dataset in a format-specific way - add some missing error checks in src/gdal_exp.cpp (#104)
RunningStats-class
- use
uint64_t
for the count accumulator (previouslylong long
) and make explicit the return cast inget_count()
(no user-visible changes) - slightly faster update
Other miscellaneous
-
plot_raster()
: normalize legend correctly forminmax_def
andminmax_pct_cut
(#131)
Documentation
- add vignette Raster Attribute Tables
- add notes for
RunningStats-class
- update vignette Raster API Tutorial with
gdal_formats()
andgetCreationOptions()
- update installation instructions in README
gdalraster 1.5.0
CRAN release: 2023-09-25
GDALRaster-class
- add methods for color tables:
getColorTable()
,getPaletteInterp()
,setColorTable()
- add
getRasterColorInterp()
,setRasterColorInterp()
: get/set color interpretation for raster bands - add
getDescription()
,setDescription()
: get/set description for raster band objects - add
flushCache()
: flush all write cached data to disk - add
getFileList()
: returns a list of files forming the dataset - add
infoAsJSON()
: returns output of thegdalinfo
command-line utility as a JSON-formatted string -
new()
: add a warning in the class constructor if the raster has an int64 data type (would be handled as double for now)
GDAL API stand-alone functions
- add
bandCopyWholeRaster()
: wrapper forGDALRasterBandCopyWholeRaster()
, efficiently copy a whole raster band - add
createColorRamp()
: wrapper forGDALCreateColorRamp()
, automatically create a ramp from one color to another - add
sieveFilter()
: wrapper forGDALSieveFilter()
in the Algorithms API, remove small raster polygons - add PROJ utility functions:
proj_version()
,proj_search_paths()
,proj_networking()
(via GDAL headers) - add
g_buffer()
: compute buffer of a WKT geometry (GEOS convenience function via GDAL headers)
CmbTable-class
- add
updateFromMatrixByRow()
: update the hash table from a matrix having integer combinations arranged in rows - add
asMatrix()
: return the combinations table as a numeric matrix (alternative toasDataFrame()
)
Other miscellaneous
-
plot_raster()
: default value of thelegend
argument has been changed toFALSE
; legend can now use a color table for continuous data; add argumentmaxColorValue
(e.g., to use RGB 0:255 instead of 0:1 incol_tbl
) -
bbox_from_wkt()
,bbox_to_wkt()
: add argumentsextend_x
,extend_y
- on Windows, reset GDAL environment variables on package unload if they were previously set on load
- add inst/extdata/storml_tcc.tif: example dataset of NLCD Tree Canopy Cover
- update the package vignette for color tables and raster display
gdalraster 1.4.0
CRAN release: 2023-08-29
add
dem_proc()
: wrapper for thegdaldem
command-line utility to generate DEM derivativesadd the following set methods in class
GDALRaster
:setMetadataItem()
,setUnitType()
,setScale()
,setOffset()
add
GDALRaster$buildOverviews()
: build raster overviewsadd
GDALRaster$dim()
: returns a vector of xsize, ysize, nbandstransform_xy()
andinv_project()
:pts
can be a data frame or matrixplot_raster()
now accepts aGDALRaster
object for thedata
argumentplot_raster()
: make the legend narrower and add argumentdigits
to format legend labels when raster data are floating pointadd test suite and code coverage report
gdalraster 1.3.0
CRAN release: 2023-06-29
GDALRaster::read()
: data are now read as Rinteger
type when possible for the raster data type (#23)add
fillNodata()
: wrapper forGDALFillNodata()
in the GDAL Algorithms APIadd
read_ds()
: convenience wrapper forGDALRaster$read()
add
plot_raster()
: display raster data using base R graphicsadd
get_cache_used()
: wrapper forGDALGetCacheUsed64()
with return value in MBadd
GDALRaster$getOverviewCount()
: return the number of overview layers availableGDALRaster$info()
: drop-nomd
argument from the internal callbbox_from_wkt()
: returnNA
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 insteadadd vignette containing an R port of the GDAL Raster API tutorial
add description of the
GDAL_RASTERIO_RESAMPLING
configuration option in the documentation forGDALRaster$read()
add web article on the GDAL block cache and configuration of
GDAL_CACHEMAX
gdalraster 1.2.0
CRAN release: 2023-05-28
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 Radd:
srs_is_same()
- wrapper for OSRIsSame() in the GDAL Spatial Reference System C APIdocumentation - minor edits throughout to improve clarity