gdal-async
Advanced tools
Changelog
[3.4.1] 2021-01-05
calcAsync
gdal.vsimem.copy
doesn't properly deallocate the returned Buffer
on Windowscopy
argument of vsimem.set
, use vsimem.copy
insteadgdal.Geometry.exportToWKB{Async}
Changelog
[3.4.0] 2021-11-08
gdal.info{Async}
, gdal.translate{Async}
,gdal.vectorTranslate{Async}
and gdal.warp{Async}
- library versions of gdalinfo
, gdal_translate
, ogr2ogr
and gdalwarp
gdal.calcAsync
, an alternative implementation of gdal_calc.py
gdal.ColorTable
implementing GDALColorTable
and gdal.RasterBand.colorTable{Async}
gdal.RasterBand
getters now have an async versiongdal.RasterBandPixels.clampBlock
for handling partial edge blocksgdal.RasterBand.colorInterpretationAsync
gdal.Dataset.getMetadataAsync
and gdal.RasterBand.getMetadataAsync
gdal.Dataset.setMetadata{Async}
and gdal.RasterBand.setMetadata{Async}
gdal.SpatialReference.fromURLAsync
, gdal.SpatialReference.fromCRSURLAsync
and gdal.SpatialReference.fromUserInputAsync
gdal.RasterBandOverviews.countAsync
, gdal.RasterBandOverviews.getAsync
and gdal.RasterBandOverviews.getBySampleCountAsync
gdal.fromDataType
and gdal.toDataType
converters between TypedArray
constructor and GDAL dataType
strict: true
gdal.vsimem.copy
allowing to copy a Buffer
to GDAL's own memory heap to create an in-memory file extendable by GDALgdal.fs.stat{Async}
and gdal.fs.readDir{Async}
allowing for querying GDAL VSI filesystem objectsgdal.Driver.createCopy{Async}
from a raw argument to an argument inside an object to differentiate it from a result callback when some options are omitted in async modegdal.RasterBand.noDataValue
now returns NaN
if the original value was NaN
instead of null; when setting it to null
it correctly clears the NoDataValue
instead of setting it to NaN
; one should still exercise care when using NaN
as a NoDataValue
- since even if the binary representation is defined by IEEE 754, different formats, compilers or architectures may exhibit different behaviorgdal.Driver.create{Async}
now throw if they fail to parse the options instead of returning undefined
gdal.DatasetBands.create{Async}
and gdal.SpatialReference.fromESRI
now have correct TypeScript signatures, all options lists are supported either in {object}
or in string[]
formgdal.checksumImage{Async}
now throw/reject on error instead of returning 0 if the GDAL method returned an error, but the GDAL method still returns 0 on some errors and does take into account fractional numbers < 1.0gdal.Dataset.srsAsync
gdal.Dataset.close
or it is destroyed by the GC - the former is indicative of a bug in the user application, while the latter is indicative of a bug in gdal-async
itselfgdal.LayerFields.fromObject
, it did not exist beforegdal.FeatureFields
iterators, they now return any
objects instead of a gdal.fieldValue
gdal.Dataset.srs{Async}
- now it can be null
gdal.Dataset.geoTransform{Async}
- now it can be null
gdal.RasterBand.id{Async}
, gdal.RasterBand.minimum{Async}
, gdal.RasterBand.maximum{Async}
, gdal.RasterBand.offset{Async}
, gdal.RasterBand.scale{Async}
- now they can be null
gdal.DatasetLayers.create{Async}
- srs
and geometry
are optional and default to null
gdal.DatasetLayers.copy{Async}
, the first argument is of type gdal.Layer
gdal.Layer.setSpatialFilter
, it now has two separate signatures, one that accepts a gdal.Geometry|null
and another that accepts number, number, number, number
gdal.Layer.setAttributeFilter
, it now accepts null
as argumentgdal.Feature.setGeometry
, it now accepts null
as argumentgdal.Geometry.srs
, now it can be null
gdal.SpatialReference.getAuthority{Code,Name}
, now they accept null
as argumentgdal.config.set
and gdal.config.get
, now they can accept/return null
Changelog
[3.3.4] 2021-09-28
ENABLE_UFFD
for virtual I/O support on drivers that allow it (currently only NetCDF) to allow accessing NetCDF subdatasets with remote virtual filesystemsnpm run prune
- not to be confused with npm prune
- which allows to keep only the module runtime, significantly reducing the size of the installed packagegdal.RasterBand.flushAsync()
strict
argument of gdal.Driver.createCopy{Async}()
and move it after options
gdal.Driver.createCopy{Async}()
gdal.Driver.createCopy{Async}()
now always throws an Error
/ rejects the Promise if the operation failed instead of returning a null object in some casesgdal.CoordinateTransformation.transformPoint(point: xyz)
gdal.Geometry.segmentize
- it returns undefined