Subject: [PATCH 5/5] gnu: Add python-spectral-cube.

From: Sharlatan Hellseher <[email-masked]>
Date: Wed, 11 Oct 2023 02:39:35 +0100

* gnu/packages/astronomy.scm (python-spectral-cube): New variable.
---
 gnu/packages/astronomy.scm | 53 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 15ab071ed7..e76e0b0952 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -2524,6 +2524,59 @@ (define-public python-astral
 elevation, solar azimuth, rahukaalam, and the phases of the moon.")
     (license license:asl2.0)))
 
+(define-public python-spectral-cube
+  (package
+    (name "python-spectral-cube")
+    (version "0.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "spectral-cube" version))
+       (sha256
+        (base32 "1xyqdflnz084hdx1pbrqd1jrfyyc7f8v3564rww2v1hjylzgsnnh"))))
+    (build-system pyproject-build-system)
+    (propagated-inputs
+     (list python-astropy
+           python-aplpy
+           python-casa-formats-io
+           python-dask
+           python-distributed
+           python-fsspec
+           ;; python-glue-core ; Not packed http://glueviz.org/, optional.
+           python-joblib
+           python-matplotlib
+           python-numpy
+           python-radio-beam
+           python-reproject
+           python-scipy
+           python-six
+           ;; python-yt ; Not packed https://yt-project.org/, optional.
+           python-zarr))
+    (native-inputs
+     (list ;; XXX: Introduce cycle with pvextractor, listed as extra requiremnts
+           ;; in [noviz] option.
+           ;; python-pvextractor
+           python-pytest-astropy
+           python-regions
+           python-semantic-version))
+    (home-page "https://spectral-cube.readthedocs.io/en/latest/")
+    (synopsis "Library for reading and analyzing astrophysical spectral data cubes")
+    (description
+     "The spectral-cube package provides an easy way to read, manipulate,
+analyze, and write data cubes with two positional dimensions and one spectral
+dimension, optionally with Stokes parameters.
+
+It provides the following main features:
+@itemize
+@item A uniform interface to spectral cubes, robust to the wide range of conventions
+of axis order, spatial projections, and spectral units that exist in the wild.
+@item Easy extraction of cube sub-regions using physical coordinates.
+@item Ability to easily create, combine, and apply masks to datasets.
+@item Basic summary statistic methods like moments and array aggregates.
+@item Designed to work with datasets too large to load into memory.
+@end itemize")
+    (license license:bsd-3)))
+
 (define-public python-spherical-geometry
   (package
     (name "python-spherical-geometry")
-- 
2.41.0