summaryrefslogtreecommitdiff
path: root/gnu/packages/astronomy.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/astronomy.scm')
-rw-r--r--gnu/packages/astronomy.scm849
1 files changed, 710 insertions, 139 deletions
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 13ffdd74d3..2f08b656c0 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -33,8 +33,10 @@
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
+ #:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc)
@@ -44,23 +46,29 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
+ #:use-module (gnu packages image-processing)
+ #:use-module (gnu packages libevent)
#:use-module (gnu packages libusb)
#:use-module (gnu packages lua)
#:use-module (gnu packages maths)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages netpbm)
#:use-module (gnu packages perl)
+ #:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
+ #:use-module (gnu packages python-compression)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages sphinx)
+ #:use-module (gnu packages textutils)
#:use-module (gnu packages time)
#:use-module (gnu packages version-control)
#:use-module (gnu packages video)
@@ -72,7 +80,9 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system meson)
#:use-module (guix build-system python)
+ #:use-module (guix build-system pyproject)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
@@ -81,6 +91,58 @@
#:use-module (ice-9 match)
#:use-module (srfi srfi-1))
+(define-public alfa
+ (package
+ (name "alfa")
+ (version "2.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rwesson/ALFA")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "0aqxqar36822mh373awsl79j7zn8vik4yddyydsxv0c76gn4i2k3"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:parallel-build? #f
+ #:make-flags #~(list (string-append "PREFIX="
+ #$output)
+ (string-append "VERSION="
+ #$version))
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check)
+ (add-after 'install 'post-install-check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "make" "fittest")))))))
+ (inputs (list cfitsio gfortran))
+ (home-page "https://nebulousresearch.org/codes/alfa/")
+ (synopsis "Automated line fitting algorithm")
+ (description
+ "This package provides @acronym{ALFA, Automatic line fitting algorithm},
+which can identify and fit hundreds of lines in emission line spectra in just a
+few seconds with following features:
+@itemize
+
+@item A population of synthetic spectra is generated using a reference line
+catalogue.
+
+@item The goodness of fit for each synthetic spectrum is calculated. The best
+sets of parameters are retained and the rest discarded.
+
+@item A new population of synthetic spectra is obtained by averaging pairs of
+the best performers.
+
+@item A small fraction of the parameters of the lines in the new generation are
+randomly altered.
+
+@item The process repeats until a good fit is obtained.
+@end itemize")
+ (license license:gpl3)))
+
(define-public aocommon
(let ((commit "7329a075271edab8f6264db649e81e62b2b6ae5e")
(revision "1"))
@@ -296,7 +358,7 @@ made to get a better separation of core libraries and applications.
(define-public cfitsio
(package
(name "cfitsio")
- (version "3.49")
+ (version "4.2.0")
(source
(origin
(method url-fetch)
@@ -304,18 +366,29 @@ made to get a better separation of core libraries and applications.
"http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/"
"cfitsio-" version ".tar.gz"))
(sha256
- (base32 "1cyl1qksnkl3cq1fzl4dmjvkd6329b57y9iqyv44wjakbh6s4rav"))))
+ (base32 "128qsv2q0f0g714ahlsixiikvvbwxi9bg9q9pcr5cd3f7wdkv9gb"))))
(build-system gnu-build-system)
- ;; XXX Building with curl currently breaks wcslib. It doesn't use
- ;; pkg-config and hence won't link with -lcurl.
(arguments
- `(#:tests? #f ; no tests
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-paths
- (lambda _
- (substitute* "Makefile.in" (("/bin/") ""))
- #t)))))
+ (list
+ #:configure-flags
+ #~(list (string-append "--with-bzip2=" #$(this-package-input "bzip2")))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda _
+ (substitute* "Makefile.in" (("/bin/") ""))))
+ (delete 'check)
+ ;; TODO: Testing steps are sourced from docs/fitsio.pdf, implement
+ ;; the logic in Guile in the future.
+ (add-after 'install 'post-install-check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "make" "testprog")
+ (with-output-to-file "testprog.lis" (lambda _(invoke "./testprog")))
+ (invoke "diff" "-r" "testprog.lis" "testprog.out")
+ (invoke "cmp" "-l" "testprog.fit" "testprog.std")))))))
+ (native-inputs (list gfortran))
+ (inputs (list bzip2 curl zlib))
(home-page "https://heasarc.gsfc.nasa.gov/fitsio/fitsio.html")
(synopsis "Library for reading and writing FITS files")
(description "CFITSIO provides simple high-level routines for reading and
@@ -324,18 +397,18 @@ programmer from the internal complexities of the FITS format. CFITSIO also
provides many advanced features for manipulating and filtering the information
in FITS files.")
(license (license:non-copyleft "file://License.txt"
- "See License.txt in the distribution."))))
+ "See License.txt in the distribution."))))
(define-public python-fitsio
(package
(name "python-fitsio")
- (version "1.1.7")
+ (version "1.1.8")
(source
(origin
(method url-fetch)
(uri (pypi-uri "fitsio" version))
(sha256
- (base32 "0q8siijys9kmjnqvyipjgh6hkhf4fwvr1swhsf4if211i9b0m1xy"))
+ (base32 "1y80hgvlkjz1bijfyb2j03853yc1kc63yrf9ab7as31ad2r6kxb1"))
(modules '((guix build utils)))
(snippet
;; Remove the bundled cfitsio
@@ -359,13 +432,8 @@ in FITS files.")
(("self.system_fitsio_libdir = None") "pass")
(("self.use_system_fitsio") "True")
(("self.system_fitsio_includedir") includedir)
- (("self.system_fitsio_libdir") libdir)))))
- (add-after 'unpack 'skip-bzip2-test
- (lambda* (#:key inputs #:allow-other-keys)
- ;; The bzip2 test fails because Guix' cfitsio
- ;; is built without bzip2 support.
- (substitute* "fitsio/test.py"
- (("'SKIP_BZIP_TEST' in os.environ") "True")))))))
+ (("self.system_fitsio_libdir") libdir))))))))
+ (inputs (list curl-minimal))
(propagated-inputs
(list python-numpy cfitsio))
(home-page "https://github.com/esheldon/fitsio")
@@ -459,7 +527,7 @@ feature detection and cosmetic corrections.")
(define-public wcslib
(package
(name "wcslib")
- (version "7.5")
+ (version "7.12")
(source
(origin
(method url-fetch)
@@ -467,26 +535,26 @@ feature detection and cosmetic corrections.")
"ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib-" version
".tar.bz2"))
(sha256
- (base32 "1536gmcpm6pckn9xrb6j8s4pm1vryjhzvhfaj9wx3jwxcpbdy0dw"))))
+ (base32 "1m3bx6gh5w3c7vvsqcki0x20mg8lilg13m0i8nh7za89w58dxy4w"))))
(inputs
(list cfitsio))
(build-system gnu-build-system)
(arguments
- `(#:configure-flags
- (list (string-append "--with-cfitsiolib="
- (assoc-ref %build-inputs "cfitsio") "/lib")
- (string-append "--with-cfitsioinc="
- (assoc-ref %build-inputs "cfitsio") "/include"))
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'patch-/bin/sh
- (lambda _
- (substitute* "makedefs.in"
- (("/bin/sh") "sh"))
- #t))
- (delete 'install-license-files)) ; installed by ‘make install’
- ;; Parallel execution of the test suite is not supported.
- #:parallel-tests? #f))
+ (list
+ #:configure-flags
+ #~(list (string-append "--with-cfitsiolib="
+ #$(this-package-input "cfitsio") "/lib")
+ (string-append "--with-cfitsioinc="
+ #$(this-package-input "cfitsio") "/include"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'install-license-files) ; installed by ‘make install’
+ (add-before 'configure 'patch-/bin/sh
+ (lambda _
+ (substitute* "makedefs.in"
+ (("/bin/sh") "sh")))))))
+ ;; TODO: Fix build with gfortran and pack missing optional pgplot.
+ ;; (inputs (list gfortran pgplot))
(home-page "https://www.atnf.csiro.au/people/mcalabre/WCS")
(synopsis "Library which implements the FITS WCS standard")
(description "The FITS \"World Coordinate System\" (@dfn{WCS}) standard
@@ -518,7 +586,7 @@ astronomical image-processing packages like Drizzle, Swarp or SExtractor.")
(define-public gnuastro
(package
(name "gnuastro")
- (version "0.18")
+ (version "0.19")
(source
(origin
(method url-fetch)
@@ -526,7 +594,7 @@ astronomical image-processing packages like Drizzle, Swarp or SExtractor.")
version ".tar.lz"))
(sha256
(base32
- "1y9ig2kkwiwl0rmp9ip9n83fyjjpg2cc2pxzvdzr8rysq5az357y"))))
+ "192q3i4zlfmwfcchlf9lnpfgys9dssh7npr5qx0gzn3d2fri0xbz"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-static")))
@@ -591,6 +659,87 @@ large scale galaxy-survey data, it can perform reasonably well on moderately
crowded star fields.")
(license license:gpl3+)))
+(define-public siril
+ (package
+ (name "siril")
+ (version "1.0.6")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/free-astro/siril")
+ (commit version)))
+ (sha256
+ (base32
+ "0iqxb5zmjyygg4b6lwlq8z82mngxg7kjjpahhzk52m0cypfq0l18"))
+ (file-name (git-file-name name version))))
+ (build-system meson-build-system)
+ (native-inputs (list cmake git glib libconfig pkg-config))
+ (inputs (list cfitsio
+ exiv2
+ fftwf
+ gsl
+ gtk+
+ json-glib
+ libraw
+ librtprocess
+ opencv))
+ (home-page "https://siril.org/")
+ (synopsis "Image processing software for amateur astronomy")
+ (description
+ "This package provides an astronomical image processing tool - SIRIL. It is
+specially tailored for noise reduction and improving the signal/noise ratio of
+an image from multiple captures, as required in astronomy. SIRIL can align
+automatically or manually, stack and enhance pictures from various file formats,
+even image sequence files (films and SER files). It works well with limited
+system resources, like in embedded platforms, but is also very fast when run on
+more powerful computers and provides conversion to FITS from a large number of
+image formats.")
+ (license license:gpl3+)))
+
+(define-public splash
+ (package
+ (name "splash")
+ (version "3.5.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/danieljprice/splash")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "12s3w96wzd4zpxw4adzhalkr57fgdk7cjp6bj596jnd87pz3rhyd"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ ;; FIXME: Tests failed
+ ;; Issue submited upstream https://github.com/danieljprice/splash/issues/67
+ ;;
+ ;; make: *** No rule to make target 'test_interpolate3D.o', needed by 'test1'. Stop.
+ ;;
+ (list #:tests? #f
+ #:parallel-build? #f ;parallel build fails
+ #:make-flags #~(list "SYSTEM=gfortran" "PREFIX="
+ (string-append "GIZA_DIR="
+ #$(this-package-input "giza"))
+ (string-append "DESTDIR="
+ #$output))
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'install 'create-install-dirrectories
+ (lambda _
+ (mkdir-p (string-append #$output "/bin")))))))
+ (native-inputs (list gfortran pkg-config perl python-wrapper))
+ (inputs (list cairo cfitsio giza))
+ (home-page "https://users.monash.edu.au/~dprice/splash/")
+ (synopsis
+ "Astrophysical visualisation tool for smoothed particle hydrodynamics")
+ (description
+ "SPLASH is visualisation tool for Smoothed Particle Hydrodynamics (SPH)
+simulations in one, two and three dimensions, developed mainly for
+astrophysics. It uses a command-line menu but data can be manipulated
+interactively in the plotting window.")
+ (license license:gpl2+)))
+
(define-public skymaker
(package
(name "skymaker")
@@ -672,7 +821,7 @@ astronomical fields. SkyMaker is part of the EFIGI
(native-inputs
(list pkg-config))
(inputs
- (list gtkmm-3 libskry ffmpeg))
+ (list gtkmm-3 libskry ffmpeg-4))
(home-page "https://github.com/GreatAttractor/stackistry")
(synopsis "Astronomical lucky imaging/image stacking tool")
(description
@@ -835,25 +984,23 @@ accurately in real time at any rate desired.")
(define-public python-astropy
(package
(name "python-astropy")
- (version "5.0.1")
+ (version "5.2.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "astropy" version))
(sha256
- (base32 "09wh589ywjsgjvi76v2d2zqd9sri0461rrnml0b0pah5lbkcv0k3"))
+ (base32 "08xc6brs7xwiqchhsjq8l10p6qc5p68cfxps7s889spqfyh2gbpn"))
(modules '((guix build utils)))
(snippet
'(begin
;; Remove Python bundles.
(with-directory-excursion "astropy/extern"
(for-each delete-file-recursively '("ply" "configobj")))
- ;; Remove cextern bundles and leave the wcslib bundle. Astropy
- ;; upgrades to different versions of wcslib every few releases
- ;; and tests break every upgrade.
- ;; TODO: unbundle wcslib.
+ ;; Remove cextern bundles. Check bundled versions against available
+ ;; in Guix in the future update of astropy.
(with-directory-excursion "cextern"
- (for-each delete-file-recursively '("cfitsio" "expat")))
+ (for-each delete-file-recursively '("cfitsio" "expat" "wcslib")))
#t))))
(build-system python-build-system)
(arguments
@@ -861,10 +1008,8 @@ accurately in real time at any rate desired.")
(modify-phases %standard-phases
(add-after 'unpack 'preparations
(lambda _
- ;; Use our own libraries in place of bundles, with the
- ;; exception of wcslib.
- (setenv "ASTROPY_USE_SYSTEM_CFITSIO" "1")
- (setenv "ASTROPY_USE_SYSTEM_EXPAT" "1")
+ ;; Use our own libraries in place of bundles.
+ (setenv "ASTROPY_USE_SYSTEM_ALL" "1")
;; Some tests require a writable home.
(setenv "HOME" "/tmp")
;; Relax xfail tests.
@@ -904,14 +1049,14 @@ accurately in real time at any rate desired.")
python-ipython
python-jplephem
python-objgraph
- python-pytest
+ python-pytest-7.1
python-pytest-astropy
python-pytest-xdist
python-setuptools-scm
python-sgp4
python-skyfield))
(inputs
- (list cfitsio expat))
+ (list cfitsio expat wcslib))
(propagated-inputs
(list python-configobj
python-numpy
@@ -930,13 +1075,13 @@ astronomy and astrophysics.")
(define-public python-astropy-healpix
(package
(name "python-astropy-healpix")
- (version "0.6")
+ (version "0.7")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "astropy-healpix" version))
+ (uri (pypi-uri "astropy_healpix" version))
(sha256
- (base32 "1436ml03xkmvx4afzbhfj67ab91418sz1w3lq1b18r43qchnd6j0"))))
+ (base32 "1n1svmd41iv944zf4anbnsigd47zr4dfjf49vrc7m6928gmq9hw8"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -1013,7 +1158,7 @@ to access online Astronomical data. Each web service has its own sub-package.")
(define-public python-cdflib
(package
(name "python-cdflib")
- (version "0.4.4")
+ (version "0.4.9")
(source
(origin
(method git-fetch) ; no tests in pypi archive
@@ -1022,16 +1167,14 @@ to access online Astronomical data. Each web service has its own sub-package.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1h7750xvr6qbhnl2w3bhccs3pwp3hci3624pvvxym0yjinmskjlz"))))
- (build-system python-build-system)
+ (base32 "1k557najk7ln293zwyghnhw48ays3nqf9s94kibsc7r70c2q7p08"))))
+ (build-system pyproject-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (setenv "HOME" (getcwd))
- (invoke "pytest" "-vv" "tests")))))))
+ (add-before 'check 'set-home-env
+ (lambda _
+ (setenv "HOME" (getcwd)))))))
(propagated-inputs
(list python-attrs python-numpy))
(native-inputs
@@ -1043,7 +1186,8 @@ to access online Astronomical data. Each web service has its own sub-package.")
python-xarray))
(home-page "https://github.com/MAVENSDC/cdflib")
(synopsis "Python library to deal with NASA's CDF astronmical data format")
- (description "This package provides a Python CDF reader toolkit
+ (description "This package provides a Python @acronym{CDF, Computable
+Document Format} reader toolkit.
It provides the following functionality:
@itemize
@item Ability to read variables and attributes from CDF files
@@ -1052,9 +1196,46 @@ It provides the following functionality:
time formats
@item Can convert CDF files into XArray Dataset objects and vice versa,
attempting to maintain ISTP compliance
-@end itemize\n")
+@end itemize")
(license license:expat)))
+(define-public python-drms
+ (package
+ (name "python-drms")
+ (version "0.6.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "drms" version))
+ (sha256
+ (base32 "1b0w350y4wbgyy19zcf28xbb85mqq6gnhb6ppibbc4hbn2ixbcvj"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests?
+ #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (setenv "JSOC_EMAIL" "jsoc@sunpy.org")
+ (invoke "python" "-m" "pytest" "-vv")))))))
+ (native-inputs
+ (list python-astropy
+ python-pytest-astropy
+ python-pytest
+ python-setuptools-scm))
+ (propagated-inputs (list python-numpy python-pandas))
+ (home-page "https://sunpy.org")
+ (synopsis "Access astronomical HMI, AIA and MDI data with Python")
+ (description
+ "DRMS module provides an easy-to-use interface for accessing HMI, AIA and
+MDI data with Python. It uses the publicly accessible
+JSOC (@url{http://jsoc.stanford.edu/}) DRMS server by default, but can also be
+used with local NetDRMS sites.")
+ (license license:bsd-2)))
+
(define-public python-ephem
(package
(name "python-ephem")
@@ -1078,16 +1259,63 @@ for a table giving the position of a planet, asteroid, or comet for a series
of dates.")
(license license:expat)))
+(define-public python-hvpy
+ (package
+ (name "python-hvpy")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "hvpy" version))
+ (sha256
+ (base32 "0r0asyflz2sw9zn5vgs138nh81m0rbwbakmrncbc1ghdr3g6jahv"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:tests? #f)) ; Requires HTTP(S) access to api.beta.helioviewer.org
+ (propagated-inputs (list python-pydantic python-requests))
+ (native-inputs (list python-pytest python-pytest-astropy))
+ (home-page "https://helioviewer.org/")
+ (synopsis "Helioviewer Python API Wrapper")
+ (description "@code{hvpy} is a Python API wrapper around the formal
+@url{Helioviewer API, https://api.helioviewer.org/docs/v2/}.")
+ (license license:bsd-2)))
+
+(define-public python-mpl-animators
+ (package
+ (name "python-mpl-animators")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "mpl_animators" version))
+ (sha256
+ (base32 "12kjmj7rn3pk9ly82h5s5hn0kl3kxkr7bgkz9zr9k59pir8z1r8b"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-pytest-mpl
+ python-setuptools-scm))
+ (propagated-inputs
+ (list python-astropy
+ python-matplotlib
+ python-numpy))
+ (home-page "https://sunpy.org")
+ (synopsis "Interactive animations with matplotlib")
+ (description
+ "The @code{mpl_animators} package provides a set of classes which allow
+the easy construction of interactive matplotlib widget based animations.")
+ (license license:bsd-3)))
+
(define-public python-photutils
(package
(name "python-photutils")
- (version "1.3.0")
+ (version "1.6.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "photutils" version))
(sha256
- (base32 "1a8djakaya6w5iv9237gkcz39brqzgrfs2wqrl0izi1s85cfdymn"))))
+ (base32 "0w4kxl6aqjp2wv396krw30kwg6cmmska8gvgpihm2i2zxyzz39vd"))))
(build-system python-build-system)
(arguments
`(#:test-target "pytest"
@@ -1112,6 +1340,50 @@ of dates.")
of astronomical sources.")
(license license:bsd-3)))
+(define-public python-poppy
+ (package
+ (name "python-poppy")
+ (version "1.0.3")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "poppy" version))
+ (sha256
+ (base32
+ "050cn6aabd1dxbi7zihbqnkl79hz6q6d5n6g25zmrpvc4sii171m"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs
+ ;; XXX: With python-synphot (marked as optional) package added to the list
+ ;; it tries to download from remote host during tests and fails. Overall
+ ;; tests take up to 5-8min to pass.
+ (list python-astropy
+ python-matplotlib
+ python-numpy
+ python-scipy))
+ (native-inputs
+ (list python-docutils
+ python-h5py
+ python-pandas
+ python-pytest
+ python-pytest-astropy
+ python-sphinx
+ python-setuptools-scm))
+ (home-page "https://poppy-optics.readthedocs.io/")
+ (synopsis "Physical Optics Propagation in Python")
+ (description
+ "@acronym{POPPY, Physical Optics Propagation in Python} is a Python package that
+simulates physical optical propagation including diffraction. It implements a
+flexible framework for modeling Fraunhofer and Fresnel diffraction and point
+spread function formation, particularly in the context of astronomical
+telescopes.
+
+POPPY was developed as part of a simulation package for the James Webb Space
+Telescope, but is more broadly applicable to many kinds of imaging simulations.
+It is not, however, a substitute for high fidelity optical design software such
+as Zemax or Code V, but rather is intended as a lightweight alternative for
+cases for which diffractive rather than geometric optics is the topic of
+interest, and which require portability between platforms or ease of scripting.")
+ (license license:bsd-3)))
+
(define-public python-pyvo
(package
(name "python-pyvo")
@@ -1148,13 +1420,13 @@ Virtual observatory (VO) using Python.")
(define-public python-regions
(package
(name "python-regions")
- (version "0.5")
+ (version "0.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "regions" version))
(sha256
- (base32 "1bjrcjchbw3xw1a26d5g198lh7vxpp9m5sal58r7f8mmr1d8g2dc"))))
+ (base32 "08wsg9kxnki5pz8gdp81bq06jdmsip382fl02rvnr96cvzr7wf3m"))))
(build-system python-build-system)
(arguments
`(#:test-target "pytest"
@@ -1184,6 +1456,175 @@ Virtual observatory (VO) using Python.")
(description "Regions is an Astropy package for region handling.")
(license license:bsd-3)))
+(define-public python-reproject
+ (package
+ (name "python-reproject")
+ (version "0.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "reproject" version))
+ (sha256
+ (base32 "1msysqbhkfi3bmw29wipk250a008bnng7din56md9ipbwiar8x55"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ ;; FIXME: Failing tests
+ ;;
+ ;; reproject/adaptive/core.py:7: in <module>
+ ;; from .deforest import map_coordinates
+ ;; E ModuleNotFoundError: No module named 'reproject.adaptive.deforest'
+ ;;
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'install 'writable-compiler
+ (lambda _
+ (make-file-writable "reproject/_compiler.c")))
+ (add-before 'check 'writable-compiler
+ (lambda _
+ (make-file-writable "reproject/_compiler.c")))
+ (add-before 'check 'writable-home
+ (lambda _
+ (setenv "HOME" (getcwd)))))))
+ (propagated-inputs
+ (list python-astropy
+ python-astropy-healpix
+ python-numpy
+ python-scipy))
+ (native-inputs
+ (list python-asdf
+ python-cython
+ python-extension-helpers
+ python-gwcs
+ python-pytest-astropy
+ python-pyvo
+ python-semantic-version
+ python-pytest
+ python-setuptools-scm
+ python-shapely))
+ (home-page "https://reproject.readthedocs.io")
+ (synopsis "Astronomical image reprojection in Python")
+ (description
+ "This package provides a functionality to reproject astronomical images using
+various techniques via a uniform interface, where reprojection is the
+re-gridding of images from one world coordinate system to another e.g.
+changing the pixel resolution, orientation, coordinate system.")
+ (license license:bsd-3)))
+
+(define-public python-sgp4
+ (package
+ (name "python-sgp4")
+ (version "2.21")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "sgp4" version))
+ (sha256
+ (base32 "1vzcrlrlzmhbycdz16m8v241l8zx49vsy81wcd0yjxs80isvhyb1"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ (list python-numpy))
+ (home-page "https://github.com/brandon-rhodes/python-sgp4")
+ (synopsis "Track earth satellite TLE orbits using SGP4")
+ (description
+ "This package provides a Python implementation for computations of the
+position and velocity of an earth-orbiting satellite, given the satellite’s
+@acronym{TLE, Two-line element set} orbital elements from a source like
+@url{CelesTrak, https://celestrak.org/}.
+
+It implements the most recent version of @acronym{SGP4, Simplified General
+Perturbation models}, and is regularly run against the SGP4 test suite to make
+sure that its satellite position predictions agree to within 0.1 mm with the
+predictions of the standard distribution of the algorithm. This error is far
+less than the 1–3 km/day by which satellites themselves deviate from the ideal
+orbits described in TLE files.")
+ (license license:expat)))
+
+(define-public python-sunpy
+ (package
+ (name "python-sunpy")
+ (version "4.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "sunpy" version))
+ (sha256
+ (base32 "1h8dnsic96bxm5l278vk6jj5h4bh1b143fghsvv5rhigk137vysp"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'install 'writable-compiler
+ (lambda _
+ (make-file-writable "sunpy/_compiler.c")))
+ (add-before 'check 'prepare-test-environment
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (make-file-writable "sunpy/_compiler.c")
+ ;; TODO: (Sharlatan-20221106T115800+0000): Review failing tests
+ (substitute* "sunpy/image/tests/test_transform.py"
+ (("def test_clipping") "def __off_test_clipping")
+ (("def test_nans") "def __off_test_nans")
+ (("def test_endian") "def __off_test_endian"))
+ (substitute* "sunpy/map/tests/test_mapbase.py"
+ (("def test_derotating_nonpurerotation_pcij")
+ "def __off_test_derotating_nonpurerotation_pcij"))
+ (substitute* "sunpy/map/sources/tests/test_mdi_source.py"
+ (("def test_synoptic_source")
+ "def __off_test_synoptic_source"))
+ (substitute* "sunpy/tests/tests/test_self_test.py"
+ (("def test_main_nonexisting_module")
+ "def __off_test_main_nonexisting_module")
+ (("def test_main_stdlib_module")
+ "def __off_test_main_stdlib_module")))))))
+ (native-inputs
+ (list python-aiohttp
+ python-extension-helpers
+ python-hvpy
+ python-packaging
+ python-pytest
+ python-pytest-astropy
+ python-pytest-doctestplus
+ python-pytest-mock
+ python-pytest-mpl
+ python-pytest-xdist
+ python-setuptools-scm))
+ (propagated-inputs
+ (list parfive
+ python-asdf
+ python-asdf-astropy
+ python-astropy
+ python-beautifulsoup4
+ python-cdflib
+ python-dask
+ python-dateutil
+ python-drms
+ python-glymur
+ python-h5netcdf
+ python-h5py
+ python-hypothesis
+ python-jplephem
+ python-matplotlib
+ python-mpl-animators
+ python-numpy
+ ;; python-opencv-python ; not packed yet
+ python-pandas
+ python-reproject
+ python-scikit-image
+ python-scipy
+ python-semantic-version
+ python-sqlalchemy
+ python-tqdm
+ python-zeep))
+ (home-page "https://sunpy.org")
+ (synopsis "Python library for Solar Physics")
+ (description
+ "SunPy is package for solar physics and is meant to be a free alternative to the
+SolarSoft data analysis environment.")
+ (license license:bsd-2)))
+
(define-public python-astral
(package
(name "python-astral")
@@ -1321,7 +1762,7 @@ arrays with NumPy as its only dependency.")
(copy-recursively "include" include))
#t)))))
(inputs
- (list ffmpeg))
+ (list ffmpeg-4))
(home-page "https://github.com/GreatAttractor/libskry")
(synopsis "Astronimical lucky imaging library")
(description
@@ -1498,12 +1939,12 @@ provide you with detailed information about each pass.")
(license license:gpl2+)))
(define-public sgp4
- ;; No tagged releases, use commit directly.
- (let ((commit "ca9d4d97af4ee62461de6f13e0c85d1dc6000040")
- (revision "1"))
+ ;; Version tag v1.0 is dated to <2021-01-11>, use the lates commit instead.
+ (let ((commit "6a448b4850e5fbf8c1ca03bb5f6013a9fdc1fd91")
+ (revision "2"))
(package
(name "sgp4")
- (version (git-version "0.0.0" revision commit))
+ (version (git-version "1.0" revision commit))
(source
(origin
(method git-fetch)
@@ -1512,17 +1953,20 @@ provide you with detailed information about each pass.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "1xwfa6papmd2qz5w0hwzvijmzvp9np8dlw3q3qz4bmsippzjv8p7"))))
+ (base32 "15q8sain87cbppmzq66y6gp6bvm3kdd1bcchrl59rcvjp0w51wl1"))))
(build-system cmake-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- ;; Tests fails, probably because of a few "(e <= -0.001)" errors.
- ;; Or maybe this is not the right way to run the tests?
- ;; (invoke "runtest/runtest")
- #t)))))
+ (list
+ ;; FIXME: Tests evaluated via runtest binary, but it's failing even
+ ;; when SGP4-VER.TLE file was copied next to it during install phase.
+ ;;
+ ;; There are 2 more binaries are created after build phase -
+ ;; passpredict and sattrack which are failing to execute after
+ ;; install, strace output:
+ ;;
+ ;; strace: exec: Exec format error
+ ;;
+ #:tests? #f))
(home-page "https://github.com/dnwrnr/sgp4")
(synopsis "Simplified perturbations models library")
(description
@@ -1533,7 +1977,7 @@ It can be used to calculate the trajectory of satellites.")
(define-public imppg
(package
(name "imppg")
- (version "0.6.4")
+ (version "0.6.5")
(source
(origin
(method git-fetch)
@@ -1542,7 +1986,7 @@ It can be used to calculate the trajectory of satellites.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "04synbmyz0hkipl1cdc26nr42r57v494yjw8pi4jx0jrxrawgj9h"))))
+ (base32 "0a6wb1a9adwd01dmy0r03xxp8iz9y7mvh30088ajilhj4lf90vxa"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test provided
@@ -1561,7 +2005,7 @@ It can be used to calculate the trajectory of satellites.")
(native-inputs
(list boost pkg-config))
(inputs
- (list cfitsio freeimage glew wxwidgets))
+ (list cfitsio freeimage glew wxwidgets-3.0))
(home-page "https://github.com/GreatAttractor/imppg")
(synopsis "Astronomical Image Post-Proccessor (ImPPG)")
(description
@@ -1580,7 +2024,7 @@ floating-point (no compression, LZW- or ZIP-compressed), FITS 8-bit, 16-bit,
(define-public indi
(package
(name "indi")
- (version "1.9.3")
+ (version "1.9.9")
(source
(origin
(method git-fetch)
@@ -1589,10 +2033,12 @@ floating-point (no compression, LZW- or ZIP-compressed), FITS 8-bit, 16-bit,
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0c7md288d3g2vf0m1ai6x2l4j4rmlasc4rya92phvd4ynf8vcki2"))))
+ (base32 "1vfcas59nlw8v7n6qhxhcm4isf5wk0crip5rmsallq3bsv3zznfr"))))
(build-system cmake-build-system)
(arguments
- `(#:configure-flags
+ ;; TODO: fix failing tests on aarch64-system.
+ `(#:tests? ,(not (or (%current-target-system) (target-aarch64?)))
+ #:configure-flags
(let ((out (assoc-ref %outputs "out")))
(list
"-DINDI_BUILD_UNITTESTS=ON"
@@ -1617,6 +2063,7 @@ floating-point (no compression, LZW- or ZIP-compressed), FITS 8-bit, 16-bit,
curl
fftw
gsl
+ libev
libjpeg-turbo
libnova
libtiff
@@ -1871,26 +2318,40 @@ datetime object.")
(define-public python-asdf
(package
(name "python-asdf")
- (version "2.8.3")
+ (version "2.13.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asdf" version))
(sha256
- (base32 "0i4vq1hsympjgb1yvn4ql0gm8j1mki9ggmj03533kmg0nbzp03yy"))))
- (build-system python-build-system)
+ (base32 "1zixzv4n2fryaszsfchqh2nvp0gzvarhz03fc721yw6iafdadqij"))))
+ (build-system pyproject-build-system)
(arguments
- ;; NOTE: (Sharlatan-20211229T201059+0000): Tests depend on astropy and
- ;; gwcs, astropy gwcs depend on asdf. Disable circular dependence.
+ ;; FIXME: Tests fail a lot with
+ ;;
+ ;; ERROR - _pytest.pathlib.ImportPathMismatchError:
+ ;; ('asdf.conftest', '/gnu/sto...
+ ;;
`(#:tests? #f))
(native-inputs
- (list python-setuptools-scm
+ (list python-astropy
+ python-packaging
+ python-psutil
+ python-pytest
+ python-pytest-doctestplus
+ python-pytest-openfiles
+ python-pytest-remotedata
python-semantic-version
- python-packaging))
+ python-setuptools-scm))
(propagated-inputs
- (list python-importlib-resources
- python-jsonschema
+ (list python-asdf-standard
+ python-asdf-transform-schemas
+ python-asdf-unit-schemas
+ python-importlib-metadata
+ python-importlib-resources
python-jmespath
+ python-jsonschema-next
+ python-lz4
python-numpy
python-pyyaml))
(home-page "https://github.com/asdf-format/asdf")
@@ -1901,31 +2362,63 @@ interchange format for scientific data. This package contains the Python
implementation of the ASDF Standard.")
(license license:bsd-3)))
+(define-public python-asdf-standard
+ (package
+ (name "python-asdf-standard")
+ (version "1.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "asdf_standard" version))
+ (sha256
+ (base32
+ "0i7xdjwn5prg2hcnf1zhw57mszc68jjr5sv4rimpzcg7f2dgzn5g"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:phases #~(modify-phases %standard-phases
+ (add-before 'check 'remove-blocking-tests
+ (lambda _
+ ;; Remove tests require python-asdf where
+ ;; python-asdf require python-asdf-standard,
+ ;; break circular dependencies.
+ (for-each delete-file
+ (list "tests/test_manifests.py"
+ "tests/test_integration.py")))))))
+ (native-inputs (list python-astropy
+ python-jsonschema-next
+ python-pypa-build
+ python-pytest-7.1
+ python-packaging
+ python-setuptools-scm))
+ (propagated-inputs (list python-importlib-resources))
+ (home-page "https://asdf-standard.readthedocs.io/")
+ (synopsis "ASDF standard schemas")
+ (description
+ "This package provides Python implementation of @acronym{ASDF, Advanced
+Scientific Data Format} - a proposed next generation interchange format for
+scientific data. ASDF aims to exist in the same middle ground that made FITS
+so successful, by being a hybrid text and binary format: containing human
+editable metadata for interchange, and raw binary data that is fast to load
+and use. Unlike FITS, the metadata is highly structured and is designed
+up-front for extensibility.")
+ (license license:bsd-3)))
+
(define python-asdf-transform-schemas
(package
(name "python-asdf-transform-schemas")
- (version "0.2.0")
+ (version "0.3.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asdf_transform_schemas" version))
(sha256
- (base32 "1gmzd81hw4ppsvzrc91wcbjpcw9hhv9gavllv7nyi7qjb54c837g"))))
- (build-system python-build-system)
+ (base32 "1midgn575970p5cnsh9y6bz77fjr392b5nfxb3z0id6c49xzzwhc"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key inputs outputs tests? #:allow-other-keys)
- (when tests?
- (add-installed-pythonpath inputs outputs)
- (invoke "python" "-m" "pytest")))))))
- (native-inputs
- (list python-pytest
- python-semantic-version
- python-setuptools-scm))
- (propagated-inputs
- (list python-asdf))
+ ;; Dependency cycle with python-asdf
+ (list #:tests? #f))
+ (native-inputs (list python-setuptools-scm))
+ (propagated-inputs (list python-asdf-standard python-importlib-resources))
(home-page "https://github.com/asdf-format/asdf-transform-schemas")
(synopsis "ASDF schemas for transforms")
(description
@@ -1966,25 +2459,111 @@ coordinates tags. Users should not need to install this directly; instead,
install an implementation package such as asdf-astropy.")
(license license:bsd-3)))
+(define python-asdf-fits-schemas
+ ;; TODO: No release, change to tag when it's ready.
+ (let ((commit "572bb370d777f3a325b25c1af9d76e1b7d27dcea")
+ (revision "0"))
+ (package
+ (name "python-asdf-fits-schemas")
+ (version (git-version "0.0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/asdf-format/asdf-fits-schemas")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1yqnzd0gcrdfl0jqm8m8kz5fd36i8lgh7xkglmp1chsi1cc6mkz2"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ ;; Dependency cycle with python-asdf
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-version
+ (lambda _
+ (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" "0.0.1"))))))
+ (native-inputs (list python-setuptools-scm))
+ (propagated-inputs (list python-asdf-standard python-importlib-resources))
+ (home-page "https://github.com/asdf-format/asdf-fits-schemas")
+ (synopsis "ASDF schemas to support the FITS format")
+ (description
+ "This package provides ASDF schemas for validating FITS tags.")
+ (license license:bsd-3))))
+
+(define python-asdf-time-schemas
+ ;; TODO: No release, change to tag when it's ready.
+ (let ((commit "e9174083d9cfd3c6f7ded9eeb360d99ccb8d9d18")
+ (revision "2"))
+ (package
+ (name "python-asdf-time-schemas")
+ (version (git-version "0.0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/asdf-format/asdf-time-schemas")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1i40hcxp8sds2zq939fwczjlshfqb9r9pnzy3a44c3wqdbwhcbdb"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ ;; Dependency cycle with python-asdf
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-version
+ (lambda _
+ (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" "0.0.1"))))))
+ (native-inputs (list python-setuptools-scm))
+ (propagated-inputs (list python-asdf-standard
+ python-asdf-unit-schemas
+ python-importlib-resources))
+ (home-page "https://github.com/asdf-format/asdf-fits-schemas")
+ (synopsis "Schemas for storing time in ASDF")
+ (description
+ "This package provides ASDF schemas for validating time tags.")
+ (license license:bsd-3))))
+
+(define python-asdf-unit-schemas
+ (package
+ (name "python-asdf-unit-schemas")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "asdf_unit_schemas" version))
+ (sha256
+ (base32
+ "16grpx3a9h0v1wirp0zqrfsxm867v5c0xyr98pylzziy45kqvds2"))))
+ (build-system pyproject-build-system)
+ (arguments
+ ;; Dependency cycle with python-asdf
+ (list #:tests? #f))
+ (native-inputs (list python-setuptools-scm))
+ (propagated-inputs (list python-asdf-standard python-importlib-resources))
+ (home-page "https://asdf-unit-schemas.readthedocs.io/")
+ (synopsis "ASDF serialization schemas for the units defined by @code{astropy.units}")
+ (description "This package provides ASDF schemas for validating unit tags.")
+ (license license:bsd-3)))
+
(define-public python-asdf-astropy
(package
(name "python-asdf-astropy")
- (version "0.1.2")
+ (version "0.3.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asdf_astropy" version))
(sha256
- (base32 "0bzgah7gskvnz6jcrzipvzixv8k2jzjkskqwxngzwp4nxgjbcvi4"))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key inputs outputs tests? #:allow-other-keys)
- (when tests?
- (add-installed-pythonpath inputs outputs)
- (invoke "python" "-m" "pytest")))))))
+ (base32 "1gp5iav0a9g9q0zb22vhzi3v9vwk5wn2nxvr3mvi3bsdcdj3h23v"))))
+ (build-system pyproject-build-system)
(native-inputs
(list python-coverage
python-h5py
@@ -2044,24 +2623,16 @@ install an implementation package such as gwcs.")
(define-public python-gwcs
(package
(name "python-gwcs")
- (version "0.18.0")
+ (version "0.18.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "gwcs" version))
(sha256
- (base32 "194j49m8xjjzv9pp8cnj06igz8sdxb0nphyybcc7mhigw0f0kr30"))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key inputs outputs tests? #:allow-other-keys)
- (when tests?
- (add-installed-pythonpath inputs outputs)
- (invoke "python" "-m" "pytest")))))))
+ (base32 "0v9qcq6zl74d6s882s6xmas144jfalvll6va8rvrxmvpx4vqjzhg"))))
+ (build-system pyproject-build-system)
(native-inputs
- (list python-jsonschema
+ (list python-jsonschema-next
python-jmespath
python-pytest
python-pytest-doctestplus