Changes between Version 2 and Version 3 of Conda_GDAL_lite
- Timestamp:
- 08/04/24 09:22:06 (2 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Conda_GDAL_lite
v2 v3 20 20 21 21 == Deferred C++ plugin loading 22 GDAL RFC 96 enables the support of deferred plugins. Plugins in GDAL support the various raster and vector geospatial data formats. These plugins are usually built into the core library, `libgdal.(dylib/so/dll)` , but RFC 96 introduced deferred plugins that build these plugins separately such that only the necessary plugin dependencies are needed. 22 23 [https://gdal.readthedocs.io/en/latest/development/rfc/rfc96_deferred_plugin_loading.html GDAL RFC 96] enables the support of deferred plugins. Plugins in GDAL support the various raster and vector geospatial data formats. These plugins are usually built into the core library, `libgdal.(dylib/so/dll)` , but RFC 96 introduced deferred plugins that build these plugins separately such that only the necessary plugin dependencies are needed. 23 24 24 25 For example, instead of HDF5 being a dependency of `libgdal.(dylib/so/dll)` , there’s a new `gdal_HDF5.(dylib/so/dll)` which has an HDF5 dependency and is loaded by the libgdal core library. … … 31 32 32 33 == libgdal-core and libgdal 34 33 35 In order to generalize the above strategy to more plugins, we are now introducing a `libgdal-core` conda package and more plugins as conda packages with all plugins (except arrow/parquet) being installable with `libgdal` . We also made the python bindings depend on `libgdal-core` instead of `libgdal` so that users can select the plugins that they need. 34 36 35 37 gdal conda packages 36 38 37 –`libgdal-core` — core C++ library38 –`libgdal` — core C++ library and all plugins39 –`gdal` — python library without the plugins39 * `libgdal-core` — core C++ library 40 * `libgdal` — core C++ library and all plugins 41 * `gdal` — python library without the plugins 40 42 41 43 gdal plugin conda packages 42 44 43 –`libgdal-arrow-parquet` : `vector.arrow` and `vector.parquet` drivers as a plugin44 –`libgdal-fits` : `raster.fits` driver as a plugin45 –`libgdal-grib` : `raster.grib` driver as a plugin46 –`libgdal-hdf4` : `raster.hdf4` driver as a plugin47 –`libgdal-hdf5` : `raster.hdf5` driver as a plugin48 –`libgdal-jp2openjpeg` :`raster.jp2openjpeg` driver as a plugin49 –`libgdal-kea` : `raster.kea` driver as a plugin50 –`libgdal-netcdf`: `raster.netcdf` driver as a plugin51 –`libgdal-pdf`: `raster.pdf` driver as a plugin52 –`libgdal-postgisraster`: `raster.postgisraster` driver as a plugin53 –`libgdal-pg`: `vector.pg` driver as a plugin54 –`libgdal-tiledb` : `raster.tiledb` driver as a plugin55 –`libgdal-xls`: `vector.xls` driver as a plugin45 * `libgdal-arrow-parquet` : `vector.arrow` and `vector.parquet` drivers as a plugin 46 * `libgdal-fits` : `raster.fits` driver as a plugin 47 * `libgdal-grib` : `raster.grib` driver as a plugin 48 * `libgdal-hdf4` : `raster.hdf4` driver as a plugin 49 * `libgdal-hdf5` : `raster.hdf5` driver as a plugin 50 * `libgdal-jp2openjpeg` :`raster.jp2openjpeg` driver as a plugin 51 * `libgdal-kea` : `raster.kea` driver as a plugin 52 * `libgdal-netcdf`: `raster.netcdf` driver as a plugin 53 * `libgdal-pdf`: `raster.pdf` driver as a plugin 54 * `libgdal-postgisraster`: `raster.postgisraster` driver as a plugin 55 * `libgdal-pg`: `vector.pg` driver as a plugin 56 * `libgdal-tiledb` : `raster.tiledb` driver as a plugin 57 * `libgdal-xls`: `vector.xls` driver as a plugin 56 58 57 59 `libgdal` has 113 direct/indirect dependencies, but `libgdal-core` has only 48 direct/indirect dependencies. … … 59 61 If you are missing plugins with the new split, you can install all the plugins by running: 60 62 63 {{{ 61 64 conda install libgdal 65 }}} 66 62 67 To install all the plugins or install individual plugins: 63 68 69 70 {{{ 64 71 conda install libgdal-hdf5 72 }}} 73 65 74 Currently only the python bindings `gdal` depend on `libgdal-core` and in the future more and more downstream packages of `libgdal` will depend on `libgdal-core` and individual plugins needed for their usage. Therefore we recommend either installing `libgdal` or explicitly installing the individual plugins. 66 75 … … 69 78 Note that the timings are from a quick testing on Github actions and not formal benchmarking. 70 79 71 libpdal and libpdal-core 80 **libpdal and libpdal-core** 81 72 82 Similar to `libgdal` and `libgdal-core` , we have introduced `libgdal` and `libgdal-core` conda packages. Previously the `pdal` conda package provided only the C++ library, but now it also provides the python package to match the `gdal` conda package. 73 83 … … 75 85 == pdal conda packages 76 86 77 –`libpdal-core` — core C++ library78 –`libpdal` — core C++ library and all plugins79 –`pdal-python` — python library without the plugins80 –`pdal` — python library and all plugins87 * `libpdal-core` — core C++ library 88 * `libpdal` — core C++ library and all plugins 89 * `pdal-python` — python library without the plugins 90 * `pdal` — python library and all plugins 81 91 82 92 83 93 == pdal plugin conda packages 84 94 85 –`libpdal-trajectory` : `filters.trajectory` driver as a plugin86 –`libpdal-hdf` : `readers.hdf` driver as a plugin87 –`libpdal-tiledb`: `readers.tiledb`, `writers.tiledb` driver as a plugin88 –`libpdal-pgpointcloud`: `readers.pgpointcloud` driver as a plugin89 –`libpdal-draco` : `readers.draco`, `writers.draco` driver as a plugin90 –`libpdal-arrow`: `readers.arrow`, `writers.arrow` driver as a plugin91 –`libpdal-nitf`: `readers.nitf` driver as a plugin92 –`libpdal-e57`: `readers.e57`, `writers.e57` driver as a plugin93 –`libpdal-icebridge`: `readers.icebridge` driver as a plugin94 –`libpdal-cpd` : `filters.cpd` driver as a plugin95 * `libpdal-trajectory` : `filters.trajectory` driver as a plugin 96 * `libpdal-hdf` : `readers.hdf` driver as a plugin 97 * `libpdal-tiledb`: `readers.tiledb`, `writers.tiledb` driver as a plugin 98 * `libpdal-pgpointcloud`: `readers.pgpointcloud` driver as a plugin 99 * `libpdal-draco` : `readers.draco`, `writers.draco` driver as a plugin 100 * `libpdal-arrow`: `readers.arrow`, `writers.arrow` driver as a plugin 101 * `libpdal-nitf`: `readers.nitf` driver as a plugin 102 * `libpdal-e57`: `readers.e57`, `writers.e57` driver as a plugin 103 * `libpdal-icebridge`: `readers.icebridge` driver as a plugin 104 * `libpdal-cpd` : `filters.cpd` driver as a plugin 95 105 96 106 The shift to a deferred plugin system in GDAL and PDAL is a pivotal moment in geospatial data processing, offering a more efficient and streamlined approach to handling dependencies. By enabling the separation of core libraries and plugins, users can now enjoy faster installation times and a more manageable set of dependencies tailored to their specific needs. The collaboration between Hobu and Quansight has not only modernized these essential libraries but has also set a new standard for the development and distribution of geospatial tools. 97 107 98 Acknowledgements 108 **Acknowledgements** 109 99 110 This work was funded by Hobu, Inc in collaboration with Quansight, Inc.