Changes between Version 2 and Version 3 of Conda_GDAL_lite


Ignore:
Timestamp:
08/04/24 09:22:06 (2 months ago)
Author:
darkblueb
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Conda_GDAL_lite

    v2 v3  
    2020
    2121== 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.
    2324
    2425For 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.
     
    3132
    3233== libgdal-core and libgdal
     34
    3335In 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.
    3436
    3537gdal conda packages
    3638
    37  `libgdal-core` — core C++ library
    38  `libgdal` — core C++ library and all plugins
    39  `gdal` — python library without the plugins
     39* `libgdal-core` — core C++ library
     40* `libgdal` — core C++ library and all plugins
     41* `gdal` — python library without the plugins
    4042
    4143gdal plugin conda packages
    4244
    43  `libgdal-arrow-parquet` : `vector.arrow` and `vector.parquet` drivers as a plugin
    44  `libgdal-fits` : `raster.fits` driver as a plugin
    45  `libgdal-grib` : `raster.grib` driver as a plugin
    46  `libgdal-hdf4` : `raster.hdf4` driver as a plugin
    47  `libgdal-hdf5` : `raster.hdf5` driver as a plugin
    48  `libgdal-jp2openjpeg` :`raster.jp2openjpeg` driver as a plugin
    49  `libgdal-kea` : `raster.kea` driver as a plugin
    50  `libgdal-netcdf`: `raster.netcdf` driver as a plugin
    51  `libgdal-pdf`: `raster.pdf` driver as a plugin
    52  `libgdal-postgisraster`: `raster.postgisraster` driver as a plugin
    53  `libgdal-pg`: `vector.pg` driver as a plugin
    54  `libgdal-tiledb` : `raster.tiledb` driver as a plugin
    55  `libgdal-xls`: `vector.xls` driver as a plugin
     45* `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
    5658
    5759`libgdal` has 113 direct/indirect dependencies, but `libgdal-core` has only 48 direct/indirect dependencies.
     
    5961If you are missing plugins with the new split, you can install all the plugins by running:
    6062
     63{{{
    6164conda install libgdal
     65}}}
     66
    6267To install all the plugins or install individual plugins:
    6368
     69
     70{{{
    6471conda install libgdal-hdf5
     72}}}
     73
    6574Currently 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.
    6675
     
    6978Note that the timings are from a quick testing on Github actions and not formal benchmarking.
    7079
    71 libpdal and libpdal-core
     80**libpdal and libpdal-core**
     81
    7282Similar 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.
    7383
     
    7585== pdal conda packages
    7686
    77  `libpdal-core` — core C++ library
    78  `libpdal` — core C++ library and all plugins
    79  `pdal-python` — python library without the plugins
    80  `pdal` — python library and all plugins
     87* `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
    8191
    8292
    8393== pdal plugin conda packages
    8494
    85  `libpdal-trajectory` : `filters.trajectory` driver as a plugin
    86  `libpdal-hdf` : `readers.hdf` driver as a plugin
    87  `libpdal-tiledb`: `readers.tiledb`, `writers.tiledb` driver as a plugin
    88  `libpdal-pgpointcloud`: `readers.pgpointcloud` driver as a plugin
    89  `libpdal-draco` : `readers.draco`, `writers.draco` driver as a plugin
    90  `libpdal-arrow`: `readers.arrow`, `writers.arrow` driver as a plugin
    91  `libpdal-nitf`: `readers.nitf` driver as a plugin
    92  `libpdal-e57`: `readers.e57`, `writers.e57` driver as a plugin
    93  `libpdal-icebridge`: `readers.icebridge` driver as a plugin
    94  `libpdal-cpd` : `filters.cpd` driver as a plugin
     95* `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
    95105
    96106The 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.
    97107
    98 Acknowledgements
     108**Acknowledgements**
     109
    99110This work was funded by Hobu, Inc in collaboration with Quansight, Inc.