Releases: mmomtchev/node-gdal-async
Releases · mmomtchev/node-gdal-async
v3.4.1
Added
- Bundled GDAL 3.4.1
- Bundled OpenJPEG and enabled the JPEG2000 driver
Changed
- Fix #19, benchmarks do not execute
- Fix #20, do not block the event loop in
calcAsync
- Fix #21,
gdal.vsimem.copy
doesn't properly deallocate the returnedBuffer
on Windows - Remove the documentation reference to the non-existing
copy
argument ofvsimem.set
, usevsimem.copy
instead - Fix a memory leak when throwing an exception in
gdal.Geometry.exportToWKB{Async}
v3.4.0
[3.4.0] 2021-11-08
Added
- Bundled GDAL 3.4.0
- PROJ 8.2.0
- GEOS 3.10.0
- libcurl 7.79.1
- hdf5 1.12.1
- Node 17 support and binary packages
- Streams-based API for reading raster data as a stream of pixels
- Asynchronous iterators for all collections that have asynchronous getters
gdal.info{Async}
,gdal.translate{Async}
,gdal.vectorTranslate{Async}
andgdal.warp{Async}
- library versions ofgdalinfo
,gdal_translate
,ogr2ogr
andgdalwarp
gdal.calcAsync
, an alternative implementation ofgdal_calc.py
gdal.ColorTable
implementingGDALColorTable
andgdal.RasterBand.colorTable{Async}
- All
gdal.RasterBand
getters now have an async version gdal.RasterBandPixels.clampBlock
for handling partial edge blocksgdal.RasterBand.colorInterpretationAsync
gdal.Dataset.getMetadataAsync
andgdal.RasterBand.getMetadataAsync
gdal.Dataset.setMetadata{Async}
andgdal.RasterBand.setMetadata{Async}
gdal.SpatialReference.fromURLAsync
,gdal.SpatialReference.fromCRSURLAsync
andgdal.SpatialReference.fromUserInputAsync
gdal.RasterBandOverviews.countAsync
,gdal.RasterBandOverviews.getAsync
andgdal.RasterBandOverviews.getBySampleCountAsync
gdal.fromDataType
andgdal.toDataType
converters betweenTypedArray
constructor and GDALdataType
- TypeScript bindings now officially support
strict: true
gdal.vsimem.copy
allowing to copy aBuffer
to GDAL's own memory heap to create an in-memory file extendable by GDALgdal.fs.stat{Async}
andgdal.fs.readDir{Async}
allowing for querying GDAL VSI filesystem objects
Changed
- Requires GDAL >= 2.1 if rebuilding against a system-installed GDAL library
- (BREAKING) Switch the progress callback of
gdal.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 mode - (BREAKING)
gdal.RasterBand.noDataValue
now returnsNaN
if the original value wasNaN
instead of null; when setting it tonull
it correctly clears theNoDataValue
instead of setting it toNaN
; one should still exercise care when usingNaN
as aNoDataValue
- since even if the binary representation is defined by IEEE 754, different formats, compilers or architectures may exhibit different behavior - Fix #16, missing locking for GDAL operations involving multiple datasets when an event loop warning is emitted
- Enable lazy-binding on macOS, meaning that Release builds on all platforms use lazy-binding now
gdal.Driver.create{Async}
now throw if they fail to parse the options instead of returningundefined
gdal.DatasetBands.create{Async}
andgdal.SpatialReference.fromESRI
now have correct TypeScript signatures, all options lists are supported either in{object}
or instring[]
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.0- Fix a memory leak in
gdal.Dataset.srsAsync
- Fix a memory leak in the exception-handling path of the progress callbacks
- Fix #13, now two different warnings are emitted whether a dataset is closed by
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 ingdal-async
itself - Correctly identify all async getters as being read-only in TypeScript
- TypeScript signature and documentation entry for
gdal.LayerFields.fromObject
, it did not exist before - Correct TypeScript signatures for all
gdal.FeatureFields
iterators, they now returnany
objects instead of agdal.fieldValue
- Correct TypeScript signature for
gdal.Dataset.srs{Async}
- now it can benull
- Correct TypeScript signature for
gdal.Dataset.geoTransform{Async}
- now it can benull
- Correct TypeScript signatures for
gdal.RasterBand.id{Async}
,gdal.RasterBand.minimum{Async}
,gdal.RasterBand.maximum{Async}
,gdal.RasterBand.offset{Async}
,gdal.RasterBand.scale{Async}
- now they can benull
- Correct TypeScript signature for
gdal.DatasetLayers.create{Async}
-srs
andgeometry
are optional and default tonull
- Correct TypeScript signature for
gdal.DatasetLayers.copy{Async}
, the first argument is of typegdal.Layer
- Correct TypeScript signature for
gdal.Layer.setSpatialFilter
, it now has two separate signatures, one that accepts agdal.Geometry|null
and another that acceptsnumber, number, number, number
- Correct TypeScript signature for
gdal.Layer.setAttributeFilter
, it now acceptsnull
as argument - Correct TypeScript signature for
gdal.Feature.setGeometry
, it now acceptsnull
as argument - Correct TypeScript signature for
gdal.Geometry.srs
, now it can benull
- Correct TypeScript signatures for
gdal.SpatialReference.getAuthority{Code,Name}
, now they acceptnull
as argument - Correct TypeScript signatures for
gdal.config.set
andgdal.config.get
, now they can accept/returnnull
- Correct numerous TypeScript signatures for callback functions to match the return type of the function
- Do not produce persistent temporary files in the unit tests
v3.3.6
v3.4.0-alpha.3
[3.4.0] WIP
Added
- PROJ 8.1.1
- GEOS 3.9.1
- GDAL 3.4.0-git (2021-10-13)
- Add
gdal.Dataset.getMetadataAsync
andgdal.RasterBand.getMetadataAsync
- Add
gdal.Dataset.setMetadata{Async}
andgdal.RasterBand.setMetadata{Async}
- Add
gdal.info{Async}
,gdal.translate{Async}
andgdal.vectorTranslate{Async}
- library versions ofgdalinfo
,gdal_translate
andogr2ogr
Changed
- (BREAKING) Move the progress callback of
gdal.Driver.createCopy{Async}
beforestrict
to allow using it with a Promise gdal.Driver.create{Async}
now throw if they fail to parse the options instead of returningundefined
gdal.DatasetBands.create{Async}
andgdal.SpatialReference.fromESRI
now have correct TypeScript signatures, all options lists are supported either in{object}
or instring[]
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.0- Fix a memory leak in
gdal.Dataset.srsAsync
- Fix a memory leak in the exception-handling path of the progress callbacks
- Fix #13, now two different warnings are emitted whether a dataset is closed by
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 ingdal-async
itself
v3.3.5
v3.4.0-alpha.2
[3.4.0] WIP
Added
- PROJ 8.1.1
- GEOS 3.9.1
- GDAL 3.4.0-git (2021-10-07)
- Add
gdal.Dataset.getMetadataAsync
andgdal.RasterBand.getMetadataAsync
- Add
gdal.Dataset.setMetadata{Async}
andgdal.RasterBand.setMetadata{Async}
v3.4.0-alpha.1
[3.4.0] WIP
Added
- PROJ 8.1.1
- GEOS 3.9.1
- GDAL 3.4.0-git (2021-10-02)
- Add
gdal.Dataset.getMetadataAsync
andgdal.RasterBand.getMetadataAsync
- Add
gdal.Dataset.setMetadata{Async}
andgdal.RasterBand.setMetadata{Async}
v3.4.0-alpha.0
[3.4.0] WIP
Added
- PROJ 8.1.1
- GEOS 3.9.1
- GDAL 3.4.0-git
v3.3.4
[3.3.4] 2021-09-28
Added
- Add support for Amazon Linux and restore Ubuntu 16.04 support (glibc 2.23)
- On Linux, build GDAL with
ENABLE_UFFD
for virtual I/O support on drivers that allow it (currently only NetCDF) to allow accessing NetCDF subdatasets with remote virtual filesystems - Add a new npm script -
npm run prune
- not to be confused withnpm prune
- which allows to keep only the module runtime, significantly reducing the size of the installed package
Changed
- Fix
gdal.RasterBand.flushAsync()
- Implement the previously non-existing
strict
argument ofgdal.Driver.createCopy{Async}()
and move it afteroptions
- Implement progress callbacks in
gdal.Driver.createCopy{Async}()
gdal.Driver.createCopy{Async}()
now always throws anError
/ rejects the Promise if the operation failed instead of returning a null object in some cases- Fix #14, correctly handle exceptions in progress callbacks and return them to the calling user code
- Add a previously missing TypeScript signature for
gdal.CoordinateTransformation.transformPoint(point: xyz)
- Fix the documentation / TypeScript signature for
gdal.Geometry.segmentize
- it returnsundefined
- Removed all source tarballs of the bundled dependencies from the published package to reduce its size