diff options
Diffstat (limited to 'gnu/packages/astronomy.scm')
-rw-r--r-- | gnu/packages/astronomy.scm | 849 |
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 |