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 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 expr
get_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_offset
Authors@R
GDALRaster
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
GDALRaster
translate()
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-class
gdal_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_y
add 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