Skip to content

Releases: mmomtchev/node-gdal-async

v3.4.1

05 Jan 17:02
Compare
Choose a tag to compare

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 returned Buffer on Windows
  • Remove the documentation reference to the non-existing copy argument of vsimem.set, use vsimem.copy instead
  • Fix a memory leak when throwing an exception in gdal.Geometry.exportToWKB{Async}

v3.4.0

08 Nov 17:13
Compare
Choose a tag to compare

[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} 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}
  • All gdal.RasterBand getters now have an async version
  • gdal.RasterBandPixels.clampBlock for handling partial edge blocks
  • gdal.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
  • TypeScript bindings now officially support strict: true
  • gdal.vsimem.copy allowing to copy a Buffer to GDAL's own memory heap to create an in-memory file extendable by GDAL
  • gdal.fs.stat{Async} and gdal.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 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 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 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[] form
  • gdal.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 in gdal-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 return any objects instead of a gdal.fieldValue
  • Correct TypeScript signature for gdal.Dataset.srs{Async} - now it can be null
  • Correct TypeScript signature for gdal.Dataset.geoTransform{Async} - now it can be null
  • 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 be null
  • Correct TypeScript signature for gdal.DatasetLayers.create{Async} - srs and geometry are optional and default to null
  • Correct TypeScript signature for gdal.DatasetLayers.copy{Async}, the first argument is of type gdal.Layer
  • Correct TypeScript signature for gdal.Layer.setSpatialFilter, it now has two separate signatures, one that accepts a gdal.Geometry|null and another that accepts number, number, number, number
  • Correct TypeScript signature for gdal.Layer.setAttributeFilter, it now accepts null as argument
  • Correct TypeScript signature for gdal.Feature.setGeometry, it now accepts null as argument
  • Correct TypeScript signature for gdal.Geometry.srs, now it can be null
  • Correct TypeScript signatures for gdal.SpatialReference.getAuthority{Code,Name}, now they accept null as argument
  • Correct TypeScript signatures for gdal.config.set and gdal.config.get, now they can accept/return null
  • 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

29 Oct 17:05
Compare
Choose a tag to compare

[3.3.6] 2021-10-29

Added

  • GDAL 3.3.3

v3.4.0-alpha.3

13 Oct 18:24
Compare
Choose a tag to compare
v3.4.0-alpha.3 Pre-release
Pre-release

[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 and gdal.RasterBand.getMetadataAsync
  • Add gdal.Dataset.setMetadata{Async} and gdal.RasterBand.setMetadata{Async}
  • Add gdal.info{Async}, gdal.translate{Async} and gdal.vectorTranslate{Async} - library versions of gdalinfo, gdal_translate and ogr2ogr

Changed

  • (BREAKING) Move the progress callback of gdal.Driver.createCopy{Async} before strict to allow using it with a Promise
  • gdal.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[] form
  • gdal.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 in gdal-async itself

v3.3.5

13 Oct 14:11
Compare
Choose a tag to compare

[3.3.5] 2021-10-13

Changed

  • Fix a major memory leak on the main code path in gdal.Dataset.srsAsync (~800 bytes per call)
  • Fix a memory leak in the exception-handling path of the progress callbacks
  • GC safety of gdal.checksumImage

v3.4.0-alpha.2

07 Oct 17:24
Compare
Choose a tag to compare
v3.4.0-alpha.2 Pre-release
Pre-release

[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 and gdal.RasterBand.getMetadataAsync
  • Add gdal.Dataset.setMetadata{Async} and gdal.RasterBand.setMetadata{Async}

v3.4.0-alpha.1

02 Oct 12:45
Compare
Choose a tag to compare
v3.4.0-alpha.1 Pre-release
Pre-release

[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 and gdal.RasterBand.getMetadataAsync
  • Add gdal.Dataset.setMetadata{Async} and gdal.RasterBand.setMetadata{Async}

v3.4.0-alpha.0

28 Sep 20:37
Compare
Choose a tag to compare
v3.4.0-alpha.0 Pre-release
Pre-release

[3.4.0] WIP

Added

  • PROJ 8.1.1
  • GEOS 3.9.1
  • GDAL 3.4.0-git

v3.3.4

28 Sep 14:02
Compare
Choose a tag to compare

[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 with npm 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 of gdal.Driver.createCopy{Async}() and move it after options
  • Implement progress callbacks in 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 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 returns undefined
  • Removed all source tarballs of the bundled dependencies from the published package to reduce its size

v3.3.3

07 Sep 13:20
Compare
Choose a tag to compare

[3.3.3] 2021-09-07

Added

  • GDAL 3.3.2

Changed

  • Fix #9, do not enumerate async getters
  • Fix #12, build-from-source is broken when building through npm
  • Compatibility with rollup-plugin-natives
  • Fix #6, gdal.vsimem.release is now always safe to use