JuliaGeo / GDAL.jl

Thin Julia wrapper for GDAL - Geospatial Data Abstraction Library
MIT License
90 stars 13 forks source link

Which external drivers to support #65

Open evetion opened 5 years ago

evetion commented 5 years ago

We build GDAL (https://github.com/JuliaPackaging/Yggdrasil/tree/master/G/GDAL) only with the most basic drivers/support for now. This includes:

Which drivers should we also include? See the raster and vector format lists on the GDAL website.

Note that it is not the goal to provide everyone with a GDAL build with all drivers. Many drivers see only little use and would increase both the build size and complexity of maintaining the build too much. Therefore it would be good to try to find a rather minimal build that includes enough drivers for most use cases.

If you do need an esoteric format that will not be included in the default build, this does not mean you cannot use this wrapper. If you provide your own build, you can simply point to that instead, see https://github.com/JuliaGeo/GDAL.jl/issues/64#issuecomment-493771461.

visr commented 5 years ago

This is also a nice reference for what could consitute a good set of drivers to include: https://github.com/OSGeo/gdal/tree/master/docker

We should probably aim to cover ultrasmall first, then small.

evetion commented 5 years ago

UltraSmall

Raster drivers: VRT, GTiff, HFA, PNG, JPEG, MEM, JP2OpenJPEG, WEB, GPKG Vector drivers: Shapefile, MapInfo, VRT, Memory, GeoJSON, GPKG, SQLite External libraries enabled: libsqlite3, libproj, libcurl, libjpeg, libpng, libwebp, libzstd

Small

Raster drivers: ultrasmall + built-in + SQLite-based ones + network-based ones Vector drivers: ultrasmall + built-in + most XML-based ones + network-based ones + PostgreSQL External libraries enabled: ultrasmall + libexpat, libpq, libssl

Normal

Raster drivers: small + netCDF, HDF5, BAG Vector drivers: small + Spatialite, XLS External libraries enabled: small + libgeos, libhdf5, libhdf5, libkea, libnetcdf, libfreexl, libspatialite, libxml2, libpoppler

yeesian commented 4 years ago

On the surface this issue looks complete based on https://github.com/JuliaGeo/GDAL.jl/issues/65#issue-445980332. Are there remaining TODOs?

visr commented 4 years ago

I think the remaining TODO's is completing and tracking UltraSmall as listed above, a few are stil missing from that, I believe libpng, libwebp, libzstd.

And next would be finishing Small. Although we also have a few items from Normal, such as libgeos. Would be good to update the OP with checkboxes for this though. (edit: done)

visr commented 2 years ago

It would be nice to have support for GeoArrow and GeoParquet as well. This was brought up in https://github.com/JuliaGeo/GDAL.jl/pull/136#issuecomment-1145187808. But it would first require switching the build to CMake, which is something we should do soon anyway, since for GDAL 3.6 it will be the only option. EDIT: done in https://github.com/JuliaPackaging/Yggdrasil/pull/5423

I saw https://github.com/conda-forge/gdal-feedstock/issues/628 discussing about the possible advantages to build drivers that are large external dependencies as plugins. We might want to look into that as well for Arrow, Parquet and perhaps netCDF.