Skip to content

Update README dependency graph to match current setup.cfg #1907

@brendancol

Description

@brendancol

Reason

The dependency graph at img/dependencies.dot (rendered to dependencies.svg and dependencies.png, shown in the README) is out of date. It still shows datashader, holoviews, rasterio, GDAL, GEOS, fiona, rtree, libspatialindex, and a shapely-via-fiona chain. None of those are runtime dependencies anymore:

  • xrspatial/ does not import datashader, holoviews, or rioxarray in the main package. datashader only appears in the examples extra.
  • The README advertises "Free of GDAL / GEOS Dependencies" and ships its own GeoTIFF/COG reader and writer.
  • The required dep set per setup.cfg is numba, scipy, xarray, numpy, matplotlib, zstandard.
  • New optional runtime deps are missing from the chart: kvikio (GPUDirect Storage tile reads) and nvCOMP (GPU decompression), both lazily loaded in xrspatial/geotiff/_gpu_decode.py.

Proposal

Rewrite img/dependencies.dot and re-render dependencies.svg and dependencies.png so the README image reflects what the project actually depends on.

Required (green, solid edges) — six entries from install_requires:

  • numpy, xarray, numba, scipy, matplotlib, zstandard

Optional (yellow, dashed edges) — from [options.extras_require] and lazy imports:

  • GPU compute: cupy, cuspatial, rtxpy
  • GPU I/O acceleration: kvikio, nvcomp
  • Distributed: dask, dask-geopandas
  • Vector geometry: shapely, geopandas, awkward, spatialpandas
  • Reprojection: pyproj
  • GeoTIFF compression: deflate

Removed from the chart:

  • datashader, holoviews (only in examples extra)
  • rasterio, rioxarray, GDAL (replaced by built-in GeoTIFF reader/writer)
  • GEOS, fiona, rtree, libspatialindex (no longer in the stack)
  • pandas (transitive only; not used directly by xrspatial)

Flat layout — no Graphviz clusters, dashed edges from xarray_spatial to each optional, matching the style of the current diagram.

Value

The chart in the README is one of the first things a new contributor or user reads. Showing nodes that are not actually in the dep tree is misleading and contradicts the "Free of GDAL / GEOS" claim a few lines below it.

Files to Touch

  • img/dependencies.dot
  • img/dependencies.svg
  • img/dependencies.png

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions