diff options
Diffstat (limited to 'gnu/packages/astronomy.scm')
-rw-r--r-- | gnu/packages/astronomy.scm | 229 |
1 files changed, 211 insertions, 18 deletions
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index e84eb188ff..29f1e6fc36 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -69,6 +69,7 @@ #:use-module (gnu packages xorg) #:use-module (gnu packages) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (guix download) @@ -79,6 +80,33 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public aocommon + (let ((commit "7329a075271edab8f6264db649e81e62b2b6ae5e") + (revision "1")) + (package + (name "aocommon") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/aroffringa/aocommon") + (commit commit))) + (sha256 + (base32 "0qcfax6pbzs0yigy0x8xibrkk539wm2pbvjsb4lh50fybir02nix")) + (file-name (git-file-name name version)))) + (build-system copy-build-system) + (arguments + (list #:install-plan + #~'(("include/aocommon" "include/aocommon")))) + (home-page "https://gitlab.com/aroffringa/aocommon") + (synopsis "Collection of functionality that is reused in astronomical applications") + (description + "This package provides source-only AOCommon collection of functionality that is +reused in several astronomical applications, such as @code{wsclean}, +@code{aoflagger}, @code{DP3} and @code{everybeam}.") + (license license:gpl3+)))) + (define-public calceph (package (name "calceph") @@ -114,6 +142,69 @@ moment, supported SPICE files are: @end itemize\n") (license license:cecill))) +(define-public aoflagger + (package + (name "aoflagger") + (version "3.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/aroffringa/aoflagger") + (commit (string-append "v" version)))) + (sha256 + (base32 "1dcbfrbiybhpbypna2xhddx1wk7yifh38ha2r6p5rzsikzwlsin1")) + (patches + (search-patches "aoflagger-use-system-provided-pybind11.patch")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (arguments + (list + ;; XXX: Tests require external files download from + ;; https://www.astron.nl/citt/ci_data/aoflagger/ + ;; FIXME: runtest is not found + #:tests? #f + #:configure-flags + #~(list (string-append "-DCASACORE_ROOT_DIR=" + #$(this-package-input "casacore"))) + #:phases + #~(modify-phases %standard-phases + ;; aocommon and pybind11 are expected to be found as git submodules, + ;; link them before build. + (add-after 'unpack 'link-submodule-package + (lambda _ + (rmdir "external/aocommon") + (symlink #$(this-package-native-input "aocommon") + (string-append (getcwd) "/external/aocommon"))))))) + (native-inputs + (list aocommon + boost + pkg-config + python + pybind11)) + (inputs + (list casacore + cfitsio + fftw + gsl + gtkmm-3 + hdf5 + lapack + libpng + libsigc++ + libxml2 + lua + openblas + zlib)) + (home-page "https://gitlab.com/aroffringa/aoflagger") + (synopsis "Astronomical tool that can find and remove radio-frequency interference") + (description + "AOFlagger is a tool that can find and remove radio-frequency +interference (RFI) in radio astronomical observations. It can make use of Lua +scripts to make flagging strategies flexible, and the tools are applicable to a +wide set of telescopes.") + (license license:gpl3+))) + (define-public casacore (package (name "casacore") @@ -607,7 +698,7 @@ deconvolution). Such post-processing is not performed by Stackistry.") (inputs (list qtbase-5 qtlocation - qtmultimedia + qtmultimedia-5 qtscript qtserialport zlib)) @@ -615,7 +706,7 @@ deconvolution). Such post-processing is not performed by Stackistry.") `(("gettext" ,gettext-minimal) ; xgettext is used at compile time ("perl" ,perl) ; for pod2man ("qtbase" ,qtbase-5) ; Qt MOC is needed at compile time - ("qttools" ,qttools))) + ("qttools-5" ,qttools-5))) (arguments `(#:test-target "test" #:configure-flags (list "-DENABLE_TESTING=1" @@ -1131,6 +1222,48 @@ Mechanics, Astrometry and Astrodynamics library.") (license (list license:lgpl2.0+ license:gpl2+)))) ; examples/transforms.c & lntest/*.c +(define-public libsep + (package + (name "libsep") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kbarbary/sep") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sag96am6r1ffh9860yq40js874362v3132ahlm6sq7padczkicf")))) + (build-system cmake-build-system) + (arguments + (list + #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output)) + #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (chdir "../source") + (invoke "make" + (string-append "CC=" #$(cc-for-target)) + "test"))))))) + (native-inputs + (list python-wrapper)) + (home-page "https://github.com/kbarbary/sep") + (synopsis "Astronomical source extraction and photometry library") + (description + "SEP makes the core algorithms of +@url{https://www.astromatic.net/software/sextractor/, sextractor} available as a +library of stand-alone functions and classes. These operate directly on +in-memory arrays (no FITS files or configuration files). The code is derived +from the Source Extractor code base (written in C) and aims to produce results +compatible with Source Extractor whenever possible. SEP consists of a C library +with no dependencies outside the standard library, and a Python module that +wraps the C library in a Pythonic API. The Python wrapper operates on NumPy +arrays with NumPy as its only dependency.") + (license (list license:expat license:lgpl3+ license:bsd-3)))) + (define-public libskry (package (name "libskry") @@ -1606,29 +1739,89 @@ Astronomical Union (IAU). All C routines are wrapped as Numpy universal functions, so that they can be called with scalar or array inputs.") (license license:bsd-3))) -(define-public python-sep +(define-public python-pynbody (package - (name "python-sep") - (version "1.1.1") + (name "python-pynbody") + (version "1.2.3") (source (origin (method url-fetch) - (uri (pypi-uri "sep" version)) + (uri (pypi-uri "pynbody" version)) (sha256 - (base32 "0wxdqn92q1grv8k7xi7h88ac6wnznw4xh5bdlz1vz6za2dgsyj4m")))) + (base32 "1jxwk2s4qz1znvyak2lj7ld01kl1jh87xp81ki7a8dz1gcy93fkx")))) (build-system python-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'disable-tests-require-testdata + (lambda _ + ;; Disable tests which need to download additional 1.0GiB+ + ;; of test data archive from + ;; http://star.ucl.ac.uk/~app/testdata.tar.gz + ;; https://github.com/pynbody/pynbody/blob/ \ + ;; f4bd482dc47532831b3ec115c7cb07149d61bfc5/ \ + ;; .github/workflows/build-test.yaml#L41 + (with-directory-excursion "tests" + (for-each delete-file + '("gravity_test.py" + "adaptahop_test.py" + "ahf_halos_test.py" + "array_test.py" + "bridge_test.py" + "family_test.py" + "partial_tipsy_test.py" + "snapshot_test.py" + "test_profile.py" + "gadget_test.py" + "gadgethdf_test.py" + "grafic_test.py" + "halotools_test.py" + "nchilada_test.py" + "ramses_new_ptcl_format_test.py" + "ramses_test.py" + "rockstar_test.py" + "sph_image_test.py" + "sph_smooth_test.py" + "subfind_test.py" + "subfindhdf_gadget4_test.py" + "tipsy_test.py"))))) + (replace 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (add-installed-pythonpath inputs outputs) + (setenv "HOME" "/tmp") + (invoke "pytest" "-vv"))))))) (native-inputs - (list python-cython python-pytest)) - (inputs - (list python-numpy)) - (home-page "https://github.com/kbarbary/sep") - (synopsis "Astronomical source extraction and photometry library") - (description - "SEP makes the core algorithms of Source Extractor available as a library -of stand-alone functions and classes.") - (license (list license:bsd-3 - license:expat - license:lgpl3+)))) + (list python-cython + python-pandas + python-pytest)) + (propagated-inputs + (list python-h5py + python-matplotlib + python-numpy + python-posix-ipc + python-scipy)) + (home-page "https://pynbody.github.io/pynbody/index.html") + (synopsis "Light-weight astronomical N-body/SPH analysis for python") + (description "@code{Pynbody} is an analysis framework for N-body and hydrodynamic +astrophysical simulations supporting PKDGRAV/Gasoline, Gadget, Gadget4/Arepo, +N-Chilada and RAMSES AMR outputs.") + (license license:gpl3+))) + +(define-public python-sep + (package + (inherit libsep) + (name "python-sep") + (build-system python-build-system) + (arguments + (strip-keyword-arguments + '(#:make-flags) (package-arguments libsep))) + (native-inputs + (modify-inputs (package-inputs libsep) + (prepend python-cython))) + (propagated-inputs + (modify-inputs (package-inputs libsep) + (prepend python-numpy))))) (define-public python-asdf (package |