projects/guix·blob java-team · refs

14671 lines · 537.9 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2016 John Darrington <[email protected]>
3;;; Copyright © 2018–2023 Tobias Geerinckx-Rice <[email protected]>
4;;; Copyright © 2018-2023 Efraim Flashner <[email protected]>
5;;; Copyright © 2019 by Amar Singh <[email protected]>
6;;; Copyright © 2020 R Veera Kumar <[email protected]>
7;;; Copyright © 2020, 2021 Guillaume Le Vaillant <[email protected]>
8;;; Copyright © 2021-2026 Sharlatan Hellseher <[email protected]>
9;;; Copyright © 2021, 2022 Vinicius Monego <[email protected]>
10;;; Copyright © 2021 Greg Hogan <[email protected]>
11;;; Copyright © 2021 Foo Chuan Wei <[email protected]>
12;;; Copyright © 2023-2024 Iliya Tikhonenko <[email protected]>
13;;; Copyright © 2023 Andreas Enge <[email protected]>
14;;; Copyright © 2023, 2025 Simon Tournier <[email protected]>
15;;; Copyright © 2024-2025 Ricardo Wurmus <[email protected]>
16;;; Copyright © 2024 Andy Tai <[email protected]>
17;;; Copyright © 2024-2025 Artyom V. Poptsov <[email protected]>
18;;; Copyright © 2025 Vasilii Smirnov <[email protected]>
19;;; Copyright © 2025 Daniel Ziltener <[email protected]>
20;;; Copyright © 2025-2026 Hugo Buddelmeijer <[email protected]>
21;;; Copyright © 2025 Brendan Tildesley <[email protected]>
22;;;
23;;; This file is part of GNU Guix.
24;;;
25;;; GNU Guix is free software; you can redistribute it and/or modify it
26;;; under the terms of the GNU General Public License as published by
27;;; the Free Software Foundation; either version 3 of the License, or (at
28;;; your option) any later version.
29;;;
30;;; GNU Guix is distributed in the hope that it will be useful, but
31;;; WITHOUT ANY WARRANTY; without even the implied warranty of
32;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33;;; GNU General Public License for more details.
34;;;
35;;; You should have received a copy of the GNU General Public License
36;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
37
38(define-module (gnu packages astronomy)
39 #:use-module ((guix licenses) #:prefix license:)
40 #:use-module (guix build-system ant)
41 #:use-module (guix build-system cargo)
42 #:use-module (guix build-system cmake)
43 #:use-module (guix build-system copy)
44 #:use-module (guix build-system gnu)
45 #:use-module (guix build-system go)
46 #:use-module (guix build-system meson)
47 #:use-module (guix build-system pyproject)
48 #:use-module (guix build-system qt)
49 #:use-module (guix download)
50 #:use-module (guix gexp)
51 #:use-module (guix git-download)
52 #:use-module (guix packages)
53 #:use-module (guix utils)
54 #:use-module (gnu packages)
55 #:use-module (gnu packages algebra)
56 #:use-module (gnu packages audio)
57 #:use-module (gnu packages autotools)
58 #:use-module (gnu packages base)
59 #:use-module (gnu packages bash)
60 #:use-module (gnu packages bison)
61 #:use-module (gnu packages boost)
62 #:use-module (gnu packages build-tools)
63 #:use-module (gnu packages c)
64 #:use-module (gnu packages check)
65 #:use-module (gnu packages cmake)
66 #:use-module (gnu packages compression)
67 #:use-module (gnu packages curl)
68 #:use-module (gnu packages databases)
69 #:use-module (gnu packages documentation)
70 #:use-module (gnu packages compiler-tools)
71 #:use-module (gnu packages fontutils)
72 #:use-module (gnu packages fortran-xyz)
73 #:use-module (gnu packages freedesktop)
74 #:use-module (gnu packages gcc)
75 #:use-module (gnu packages geo)
76 #:use-module (gnu packages gettext)
77 #:use-module (gnu packages ghostscript)
78 #:use-module (gnu packages gl)
79 #:use-module (gnu packages glib)
80 #:use-module (gnu packages gnome)
81 #:use-module (gnu packages golang)
82 #:use-module (gnu packages golang-maths)
83 #:use-module (gnu packages golang-xyz)
84 #:use-module (gnu packages gperf)
85 #:use-module (gnu packages gps)
86 #:use-module (gnu packages graph)
87 #:use-module (gnu packages graphviz)
88 #:use-module (gnu packages gtk)
89 #:use-module (gnu packages image)
90 #:use-module (gnu packages image-processing)
91 #:use-module (gnu packages imagemagick)
92 #:use-module (gnu packages jupyter)
93 #:use-module (gnu packages libevent)
94 #:use-module (gnu packages libusb)
95 #:use-module (gnu packages linux)
96 #:use-module (gnu packages lua)
97 #:use-module (gnu packages machine-learning)
98 #:use-module (gnu packages markup)
99 #:use-module (gnu packages maths)
100 #:use-module (gnu packages mpi)
101 #:use-module (gnu packages multiprecision)
102 #:use-module (gnu packages ncurses)
103 #:use-module (gnu packages netpbm)
104 #:use-module (gnu packages nss)
105 #:use-module (gnu packages onc-rpc)
106 #:use-module (gnu packages parallel)
107 #:use-module (gnu packages pdf)
108 #:use-module (gnu packages perl)
109 #:use-module (gnu packages photo)
110 #:use-module (gnu packages pkg-config)
111 #:use-module (gnu packages plotutils)
112 #:use-module (gnu packages popt)
113 #:use-module (gnu packages pretty-print)
114 #:use-module (gnu packages python)
115 #:use-module (gnu packages python-build)
116 #:use-module (gnu packages python-check)
117 #:use-module (gnu packages python-compression)
118 #:use-module (gnu packages python-crypto)
119 #:use-module (gnu packages python-graphics)
120 #:use-module (gnu packages python-science)
121 #:use-module (gnu packages python-web)
122 #:use-module (gnu packages python-xyz)
123 #:use-module (gnu packages qt)
124 #:use-module (gnu packages readline)
125 #:use-module (gnu packages rust)
126 #:use-module (gnu packages serialization)
127 #:use-module (gnu packages specifications)
128 #:use-module (gnu packages sphinx)
129 #:use-module (gnu packages sqlite)
130 #:use-module (gnu packages statistics)
131 #:use-module (gnu packages swig)
132 #:use-module (gnu packages textutils)
133 #:use-module (gnu packages time)
134 #:use-module (gnu packages tls)
135 #:use-module (gnu packages version-control)
136 #:use-module (gnu packages video)
137 #:use-module (gnu packages vim)
138 #:use-module (gnu packages web)
139 #:use-module (gnu packages wxwidgets)
140 #:use-module (gnu packages xiph)
141 #:use-module (gnu packages xml)
142 #:use-module (gnu packages xorg)
143 #:use-module (ice-9 match)
144 #:use-module (ice-9 format)
145 #:use-module (srfi srfi-1))
146
147(define-public alfa
148 (package
149 (name "alfa")
150 (version "2.3")
151 (source (origin
152 (method git-fetch)
153 (uri (git-reference
154 (url "https://github.com/rwesson/ALFA")
155 (commit (string-append "v" version))))
156 (sha256
157 (base32
158 "1wi7pjra49qyyz8qz2qcgjcjck16ld0zczavxqn2xksdx1p99ajs"))
159 (file-name (git-file-name name version))))
160 (build-system gnu-build-system)
161 (arguments
162 (list #:parallel-build? #f
163 #:make-flags #~(list (string-append "PREFIX="
164 #$output)
165 (string-append "VERSION="
166 #$version))
167 #:tests? (not (or (%current-target-system)
168 ;; The test suite consumes all disk space
169 (target-riscv64?)))
170 #:test-target "fittest"
171 #:phases #~(modify-phases %standard-phases
172 (delete 'configure)
173 (delete 'check)
174 (add-after 'install 'post-install-check
175 (assoc-ref %standard-phases 'check)))))
176 (inputs (list cfitsio gfortran))
177 (home-page "https://nebulousresearch.org/codes/alfa/")
178 (synopsis "Automated line fitting algorithm")
179 (description
180 "This package provides @acronym{ALFA, Automatic line fitting algorithm},
181which can identify and fit hundreds of lines in emission line spectra in just a
182few seconds with following features:
183@itemize
184
185@item A population of synthetic spectra is generated using a reference line
186catalogue.
187
188@item The goodness of fit for each synthetic spectrum is calculated. The best
189sets of parameters are retained and the rest discarded.
190
191@item A new population of synthetic spectra is obtained by averaging pairs of
192the best performers.
193
194@item A small fraction of the parameters of the lines in the new generation are
195randomly altered.
196
197@item The process repeats until a good fit is obtained.
198@end itemize")
199 (license license:gpl3)))
200
201(define-public aocommon
202 (let ((commit "5f3f28099f354cfd4d077ed461c365ba46eb9ffb")
203 (revision "4"))
204 (package
205 (name "aocommon")
206 (version (git-version "0.0.0" revision commit))
207 (source
208 (origin
209 (method git-fetch)
210 (uri (git-reference
211 (url "https://gitlab.com/aroffringa/aocommon")
212 (commit commit)))
213 (sha256
214 (base32 "0a5bmjpx6g0hpr9v9njsmlza0inckcmhfhnkk3lipg32rl6b5398"))
215 (file-name (git-file-name name version))))
216 (build-system copy-build-system)
217 (arguments
218 (list #:install-plan
219 #~'(("include/aocommon" "include/aocommon")
220 ("CMake" "CMake"))))
221 (home-page "https://gitlab.com/aroffringa/aocommon")
222 (synopsis "Collection of functionality that is reused in astronomical applications")
223 (description
224 "This package provides source-only AOCommon collection of functionality that is
225reused in several astronomical applications, such as @code{wsclean},
226@code{aoflagger}, @code{DP3} and @code{everybeam}.")
227 (license license:gpl3+))))
228
229(define-public aoflagger
230 (package
231 (name "aoflagger")
232 (version "3.5.0")
233 (source
234 (origin
235 (method git-fetch)
236 (uri (git-reference
237 (url "https://gitlab.com/aroffringa/aoflagger")
238 (commit (string-append "v" version))))
239 (sha256
240 (base32 "08r36xjw6hf3zc7w6qyk8bm049bzyl264ah0g03shzsci91lp8q9"))
241 (file-name (git-file-name name version))))
242 (build-system cmake-build-system)
243 (arguments
244 (list
245 ;; Tests require external files download from
246 ;; https://www.astron.nl/citt/ci_data/aoflagger/
247 #:tests? #f
248 #:configure-flags
249 #~(list (string-append "-DCASACORE_ROOT_DIR="
250 #$(this-package-input "casacore")))
251 #:phases
252 #~(modify-phases %standard-phases
253 ;; aocommon and pybind11 are expected to be found as git submodules,
254 ;; link them before build.
255 (add-after 'unpack 'link-submodule-package
256 (lambda _
257 (rmdir "external/aocommon")
258 (symlink #$(this-package-native-input "aocommon")
259 (string-append (getcwd) "/external/aocommon")))))))
260 (native-inputs
261 (list aocommon
262 boost
263 pkg-config
264 python
265 pybind11-2))
266 (inputs
267 (list casacore
268 cfitsio
269 fftw
270 gsl
271 gtkmm
272 hdf5
273 libpng
274 libsigc++
275 libxml2
276 lua
277 openblas
278 zlib))
279 (home-page "https://gitlab.com/aroffringa/aoflagger")
280 (synopsis "Astronomical tool that can find and remove radio-frequency interference")
281 (description
282 "AOFlagger is a tool that can find and remove radio-frequency
283interference (RFI) in radio astronomical observations. It can make use of Lua
284scripts to make flagging strategies flexible, and the tools are applicable to
285a wide set of telescopes.")
286 (license license:gpl3+)))
287
288(define-public astroterm
289 (package
290 (name "astroterm")
291 (version "1.2.0")
292 (source
293 (origin
294 (method git-fetch)
295 (uri (git-reference
296 (url "https://github.com/da-luce/astroterm")
297 (commit (string-append "v" version))))
298 (file-name (git-file-name name version))
299 (sha256
300 (base32 "1p6rxv18gp989fmydbp75mrqxffjlqwp6xkdk18jj322hri0lidv"))))
301 (build-system meson-build-system)
302 (arguments
303 (list
304 #:phases
305 #~(modify-phases %standard-phases
306 (add-before 'configure 'copy-bsc5
307 (lambda _
308 (let* ((ybsc-input #+(this-package-native-input "specification-ybsc"))
309 (ybsc-file (string-append ybsc-input "/share/ybsc5")))
310 (copy-file ybsc-file "./data/ybsc5"))))
311 (add-before 'configure 'fix-embed-sh-ref
312 (lambda _
313 (substitute* "meson.build"
314 (("'../scripts/embed.sh'")
315 "meson.source_root() / 'scripts/embed.sh'")))))))
316 (native-inputs
317 (list pkg-config python-wrapper specification-ybsc xxd))
318 (inputs
319 (list ncurses argtable3))
320 (home-page "https://github.com/da-luce/astroterm")
321 (synopsis "Planetarium for your terminal")
322 (description
323 "@code{astroterm} is a terminal-based star map written in C. It displays
324the real-time positions of stars, planets, constellations, and more, all
325within your terminal - no telescope required!")
326 (license license:expat)))
327
328(define-public calceph
329 (package
330 (name "calceph")
331 (version "5.0.0")
332 (source
333 (origin
334 (method git-fetch)
335 (uri (git-reference
336 (url "https://gitlab.obspm.fr/imcce_calceph/calceph")
337 (commit (string-append name "_"
338 (string-replace-substring version "." "_")))))
339 (sha256
340 (base32 "01ms8mfvbb3qf2qnkpd0biqpjawzfjkblfaw489czl78ad2hfa3d"))
341 (file-name (git-file-name name version))))
342 (build-system cmake-build-system)
343 (native-inputs
344 (list gfortran))
345 (home-page "https://www.imcce.fr/inpop/calceph")
346 (synopsis "Astronomical library to access the binary planetary ephemeris files")
347 (description
348 "The CALCEPH Library is designed to access the binary planetary ephemeris files,
349such INPOPxx and JPL DExxx ephemeris files, (called @code{original JPL binary} or
350@code{INPOP 2.0 or 3.0 binary} ephemeris files in the next sections) and the SPICE
351kernel files (called @code{SPICE} ephemeris files in the next sections). At the
352moment, supported SPICE files are:
353
354@itemize
355@item text Planetary Constants Kernel (KPL/PCK) files;
356@item binary PCK (DAF/PCK) files;
357@item binary SPK (DAF/SPK) files containing segments of type 1, 2, 3, 5, 8, 9,
35812, 13, 17, 18, 19, 20, 21, 102, 103 and 120;
359@item meta kernel (KPL/MK) files;
360@item frame kernel (KPL/FK) files (only basic support).
361@end itemize\n")
362 (license license:cecill)))
363
364(define-public calcmysky
365 (package
366 (name "calcmysky")
367 (version "0.4.0")
368 (source
369 (origin
370 (method git-fetch)
371 (uri (git-reference
372 (url "https://github.com/10110111/CalcMySky")
373 (commit (string-append "v" version))))
374 (file-name (git-file-name name version))
375 (sha256
376 (base32 "0yavkxb15j8ylgsk6jbw3ni0vcky2wpmcl12qnv2py4j0cpcgq02"))))
377 (build-system cmake-build-system)
378 (arguments
379 (list #:configure-flags
380 #~(list "-DQT_VERSION=6"
381 "-DCMAKE_CXX_FLAGS=-fPIC")))
382 (inputs
383 (list eigen glm qtbase))
384 (home-page "https://10110111.github.io/CalcMySky/")
385 (synopsis "Simulator of light scattering by planetary atmospheres")
386 (description
387 "CalcMySky is a software package that simulates scattering of light by the
388atmosphere to render daytime and twilight skies (without stars). Its primary
389purpose is to enable realistic view of the sky in applications such as
390planetaria. Secondary objective is to make it possible to explore atmospheric
391effects such as glories, fogbows etc., as well as simulate unusual environments
392such as on Mars or an exoplanet orbiting a star with a non-solar spectrum of
393radiation.
394
395This package consists of three parts:
396
397@itemize
398@item @code{calcmysky} utility that does the precomputation of the atmosphere
399model to enable rendering.
400
401@item @code{libShowMySky} library that lets the applications render the
402atmosphere model.
403
404@item @code{ShowMySky} preview GUI that makes it possible to preview the
405rendering of the atmosphere model and examine its properties.
406@end itemize")
407 (license (list license:gpl2
408 license:gpl3))))
409
410(define-public casacore
411 (package
412 (name "casacore")
413 (version "3.8.1")
414 (source
415 (origin
416 (method git-fetch)
417 (uri (git-reference
418 (url "https://github.com/casacore/casacore")
419 (commit (string-append "v" version))))
420 (file-name (git-file-name name version))
421 (sha256
422 (base32 "13h1vkm64fhmdxyc9nnysj12wk5cjghs5pkmdrar6myqfazis2p0"))))
423 (build-system cmake-build-system)
424 (arguments
425 (list
426 ;; Note: There are multiple failures in
427 ;; tests which require additional measures data. They are
428 ;; distributed via FTP without any license:
429 ;; ftp://ftp.astron.nl/outgoing/Measures/
430 ;; TODO: Check how to fix tests.
431 #:tests? #f
432 #:parallel-build? #t
433 #:configure-flags
434 #~(list "-DBUILD_PYTHON3=ON"
435 "-DBUILD_PYTHON=OFF"
436 "-DUSE_HDF5=ON"
437 "-DUSE_OPENMP=OFF"
438 "-DUSE_THREADS=ON"
439 (string-append "-DDATA_DIR=" #$output "/data")
440 (string-append "-DPYTHON3_EXECUTABLE="
441 #$(this-package-input "python") "/bin")
442 (string-append "-DPYTHON3_INCLUDE_DIR="
443 #$(this-package-input "python") "/include")
444 (string-append "-DPYTHON3_LIBRARY="
445 #$(this-package-input "python") "/lib"))
446 #:phases
447 #~(modify-phases %standard-phases
448 (add-after 'unpack 'set-env
449 (lambda _
450 (setenv "HOME" "/tmp")))
451 (add-after 'unpack 'use-absolute-rm
452 (lambda* (#:key inputs #:allow-other-keys)
453 (substitute* "casa/OS/test/tFile.run"
454 (("/bin/rm")
455 (search-input-file inputs "/bin/rm")))))
456 (add-after 'unpack 'use-absolute-python3
457 (lambda _
458 (substitute* "build-tools/casacore_floatcheck"
459 (("#!/usr/bin/env python")
460 (string-append "#!" (which "python3"))))))
461 ;; NOTE: (Sharlatan-20220611T200837+0100): Workaround for casacore
462 ;; tests stuck with missing "qsub" issue.
463 ;; https://github.com/casacore/casacore/issues/1122
464 (add-after 'unpack 'patch-pre-test-checks
465 (lambda _
466 (substitute* "build-tools/casacore_assay"
467 (("QSUBP=.*$") "QSUBP=\n")
468 (("YODP=.*$") "YODP=\n"))))
469 ;; XXX: It fails to find the stdlib types when the gfortran header
470 ;; is used. Remove gfortran from CPLUS_INCLUDE_PATH as a
471 ;; workaround. Taken from <https://issues.guix.gnu.org/73439#45>.
472 (add-after 'set-paths 'hide-gfortran
473 (lambda _
474 (let ((gfortran #$(this-package-input "gfortran")))
475 (setenv "CPLUS_INCLUDE_PATH"
476 (string-join
477 (delete (string-append gfortran "/include/c++")
478 (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
479 ":"))))))))
480 (native-inputs
481 (list bison
482 boost
483 flex
484 readline))
485 (inputs
486 (list cfitsio
487 fftw
488 fftwf
489 gfortran
490 gsl
491 hdf5
492 libdeflate
493 ncurses
494 openblas
495 python
496 python-numpy
497 wcslib))
498 (home-page "https://casacore.github.io/casacore/")
499 (synopsis "Suite of C++ libraries for radio astronomy data processing")
500 (description
501 "The casacore package contains the core libraries of the old
502AIPS++/CASA (Common Astronomy Software Application) package. This split was
503made to get a better separation of core libraries and applications.
504@url{https://casa.nrao.edu/, CASA} is now built on top of Casacore.")
505 (license license:gpl2+)))
506
507(define-public casacore-data
508 ;; Meeasures data is updated daily and distributed via Westerbork Synthesis
509 ;; Radio Telescope (WSRT) FTP server.
510 (package
511 (name "casacore-data")
512 (version "20260715-160001")
513 (source
514 (origin
515 (method url-fetch)
516 (uri (string-append "ftp://ftp.astron.nl/outgoing/Measures/"
517 "WSRT_Measures_" version ".ztar"))
518 (sha256
519 (base32 "1mrajq3wjnixm0j7lmfjr8pyn3y5ajviisx24r4vib6ybkg7lq7i"))))
520 (build-system copy-build-system)
521 (arguments
522 (list
523 #:patch-shebangs? #f
524 #:strip-binaries? #f
525 #:validate-runpath? #f
526 #:install-plan
527 #~'(("ephemerides" "share/casacore-data/ephemerides")
528 ("geodetic" "share/casacore-data/geodetic"))
529 #:phases
530 #~(modify-phases %standard-phases
531 (add-before 'install 'unpack-measures
532 (lambda _
533 (invoke "tar" "xvzf"
534 (string-append "WSRT_Measures_" #$version ".ztar"))
535 (invoke "rm" "-vf"
536 (string-append "WSRT_Measures_" #$version ".ztar")))))))
537 (home-page "https://astron.nl")
538 (synopsis "Measures data for Casacore")
539 (description "Westerbork Synthesis Radio Telescope (WSRT) measures data.")
540 (license license:public-domain)))
541
542(define-public ccfits
543 (package
544 (name "ccfits")
545 (version "2.7")
546 ;; Updater struggles to determine the version, check for the latest one on
547 ;; <https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/ccfits/> or on the
548 ;; home page.
549 (source
550 (origin
551 (method url-fetch)
552 (uri (string-append
553 "https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/ccfits/v"
554 version "/CCfits-" version ".tar.gz"))
555 (sha256
556 (base32 "06mhvvdsaqvk3cc309gv6zd4lcxm5q5aialaq0n77gzczv94cdgn"))))
557 (build-system cmake-build-system)
558 (arguments
559 (list
560 #:configure-flags
561 #~(list "-DBUILD_SHARED_LIBS=ON"
562 "-DTESTS=ON")))
563 (inputs (list cfitsio zlib))
564 (home-page "https://heasarc.gsfc.nasa.gov/docs/software/fitsio/ccfits/")
565 (synopsis "C++ interface to the CFITSIO")
566 (description
567 "CCfits is an object oriented interface to the cfitsio library. It is
568designed to make the capabilities of cfitsio available to programmers working
569in C++. It is written in ANSI C++ and implemented using the C++ Standard
570Library with namespaces, exception handling, and member template functions.")
571 (license (license:non-copyleft "file://License.txt"
572 "See License.txt in the distribution."))))
573
574(define-public celestia
575 ;; 1.6.4 was placed in 2023 while master migrated to Qt6, use the latest
576 ;; commit for now.
577 (let ((commit "6de0339a85be38e85e2ad34f58850700be4342c5")
578 (revision "1"))
579 (package
580 (name "celestia")
581 (version (git-version "1.6.4" revision commit))
582 (source
583 (origin
584 (method git-fetch)
585 (uri (git-reference
586 (url "https://github.com/celestiaproject/celestia")
587 (commit commit)))
588 (file-name (git-file-name name version))
589 (sha256
590 (base32 "0jjcirjnvj670m2xmcsmvqxpk303mb7bf3y41zrr53rgykqd7ypf"))))
591 (build-system cmake-build-system)
592 (arguments
593 (list
594 #:tests? #f ;no tests were found
595 #:configure-flags
596 #~(list "-DENABLE_FFMPEG=ON"
597 "-DENABLE_GLES=ON"
598 "-DENABLE_LIBAVIF=ON"
599 "-DENABLE_QT6=ON"
600 "-DENABLE_TOOLS=ON"
601 "-DUSE_QT6=ON")
602 #:phases
603 #~(modify-phases %standard-phases
604 ;; TODO: Wrap celestia-content instead of copying it, if possible.
605 (add-after 'install 'install-content
606 (lambda _
607 (copy-recursively
608 (string-append #$(this-package-native-input "celestia-content")
609 "/share")
610 (string-append #$output "/share")))))))
611 (native-inputs
612 (list boost
613 celestia-content
614 gettext-minimal
615 pkg-config))
616 (inputs
617 (list eigen
618 ffmpeg
619 fmt
620 freetype
621 glu
622 gperf
623 libavif
624 libepoxy
625 libjpeg-turbo
626 libpng
627 mesa
628 qtbase
629 qtwayland))
630 (propagated-inputs
631 (list lua
632 perl))
633 (home-page "https://celestia.space/")
634 (synopsis "Real-time 3D visualization of space")
635 (description
636 "This simulation program lets you explore our universe in three
637dimensions. Celestia simulates many different types of celestial objects.
638From planets and moons to star clusters and galaxies, you can visit every
639object in the expandable database and view it from any point in space and
640time. The position and movement of solar system objects is calculated
641accurately in real time at any rate desired.")
642 (license license:gpl2+))))
643
644(define-public celestia-content
645 ;; No releases or version tags.
646 (let ((commit "94ae7673d7dd615acc3dbc483f2a7304099b2ad8")
647 (revision "10"))
648 (package
649 (name "celestia-content")
650 (version (git-version "0.0.0" revision commit))
651 (source
652 (origin
653 (method git-fetch)
654 (uri (git-reference
655 (url "https://github.com/CelestiaProject/CelestiaContent")
656 (commit commit)))
657 (file-name (git-file-name name version))
658 (sha256
659 (base32 "1qj69iwkhnvycbd35l3nmxma4nr041d5y50vd76418b0c85janbn"))))
660 (build-system cmake-build-system)
661 (arguments
662 (list
663 #:tests? #f)) ;no tests were found
664 (native-inputs
665 (list gettext-minimal
666 imagemagick))
667 (home-page "https://celestia.space/")
668 (synopsis "Data files for Celestia space simulator")
669 (description
670 "This package provides data content for Celestia.
671@itemize
672@item Scientific Data Base
673@item Texture maps
674@item 3D Models
675@end itemize")
676 (license license:gpl2+))))
677
678(define-public cext
679 (package
680 (name "cext")
681 (version "1.3.2")
682 (source
683 (origin
684 (method url-fetch)
685 (uri (string-append
686 "https://ftp.eso.org/pub/dfs/pipelines/libraries/cext/"
687 "cext-" version ".tar.gz"))
688 (sha256
689 (base32 "0790f8h5mczbc6whr8rcfajbr5jwh70m25xmdrsjdbb3191k49b2"))))
690 (build-system gnu-build-system)
691 ;; I could not find actual homepage of the project on
692 ;; <https://www.eso.org/public/about-eso/>.
693 (home-page "https://www.eso.org/public/")
694 (synopsis "ESO's C Library Extensions")
695 (description
696 "This package provdies @code{libcext} - ESO's C Library Extensions. It
697is a C utility library,which is used to implement ESO's Common Pipeline
698Library (CPL). This package provides the libcext library including the
699on-line reference manual.")
700 (license license:gpl2+)))
701
702(define-public cfitsio
703 (package
704 (name "cfitsio")
705 (version "4.7.0")
706 (source
707 (origin
708 (method git-fetch)
709 (uri (git-reference
710 ;; FTP: https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/
711 (url "https://github.com/HEASARC/cfitsio")
712 (commit (string-append name "-" version))))
713 (file-name (git-file-name name version))
714 (sha256
715 (base32 "1a7fgsvyv3zgi5ni1c3brxrq7ivq63881hdxp8c1pyhzqsa74klk"))))
716 (build-system gnu-build-system)
717 (arguments
718 (list
719 #:configure-flags
720 #~(list "--enable-reentrant"
721 (string-append "--with-bzip2=" #$(this-package-input "bzip2")))))
722 (native-inputs (list gfortran))
723 (inputs (list bzip2 curl zlib))
724 (home-page "https://heasarc.gsfc.nasa.gov/fitsio/fitsio.html")
725 (synopsis "Library for reading and writing FITS files")
726 (description
727 "CFITSIO provides simple high-level routines for reading and writing
728@acronym{Flexible Image Transport System,FITS} files that insulate the
729programmer from the internal complexities of the FITS format. CFITSIO also
730provides many advanced features for manipulating and filtering the information
731in FITS files.")
732 (license (license:non-copyleft "file://License.txt"
733 "See License.txt in the distribution."))))
734
735;;; The version is required for gnuastro. It fails on check phase with a
736;;; newer version.
737(define-public cfitsio-4.4
738 (package
739 (inherit cfitsio)
740 (version "4.4.1")
741 (source
742 (origin
743 (method url-fetch)
744 (uri (string-append
745 "https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/"
746 "cfitsio-" version ".tar.gz"))
747 (sha256
748 (base32 "098x1l8ijwsjp2ivp3v7pamrmpgwj5xmgb4yppm9w3w044zxr8b6"))))
749 (arguments
750 (list
751 #:configure-flags
752 #~(list "--enable-reentrant"
753 (string-append "--with-bzip2=" #$(this-package-input "bzip2")))
754 #:phases
755 #~(modify-phases %standard-phases
756 (add-after 'unpack 'patch-paths
757 (lambda _
758 (substitute* "Makefile.in" (("/bin/") ""))))
759 (delete 'check)
760 ;; TODO: Testing steps are sourced from docs/fitsio.pdf, implement
761 ;; the logic in Guile in the future.
762 (add-after 'install 'post-install-check
763 (lambda* (#:key tests? #:allow-other-keys)
764 (when tests?
765 (invoke "make" "testprog")
766 (with-output-to-file "testprog.lis" (lambda _(invoke "./testprog")))
767 (invoke "diff" "-r" "testprog.lis" "testprog.out")
768 (invoke "cmp" "-l" "testprog.fit" "testprog.std")))))))))
769
770(define-public cianna
771 (package
772 (name "cianna")
773 ;; Project does not publish regular releases, see:
774 ;; <https://github.com/Deyht/CIANNA/issues/3>.
775 (properties '((commit . "7e22ab36c9ee2ad32e22c54772fd40687b8bcd0a")
776 (revision . "1")))
777 (version (git-version "1.0.1.4"
778 (assoc-ref properties 'revision)
779 (assoc-ref properties 'commit)))
780 (source
781 (origin
782 (method git-fetch)
783 (uri (git-reference
784 (url "https://github.com/Deyht/CIANNA")
785 (commit (assoc-ref properties 'commit))))
786 (file-name (git-file-name name version))
787 (sha256
788 (base32 "0922n0frvvzia5il1jjxs7yzjrlzymn790c6rbyddz9xnxrp99jd"))))
789 (build-system cmake-build-system)
790 (arguments
791 (list
792 #:tests? #f ;no tests
793 #:build-type "Release"
794 #:configure-flags
795 #~(list "-DUSE_BLAS=ON" "-DBUILD_MODULE=OFF" "-DUSE_CUDA=OFF")
796 #:phases
797 #~(modify-phases %standard-phases
798 (replace 'install ;no install rule
799 (lambda _
800 (let ((bin (string-append #$output "/bin")))
801 (install-file "cianna" bin)))))))
802 (inputs
803 (list openblas))
804 (home-page "https://github.com/Deyht/CIANNA")
805 (synopsis "Deep learning framework for astronomical data analysis")
806 (description
807 "This package provides a @acronym{CIANNA, Convolutional Interactive
808Artificial Neural Networks by/for Astrophysicists} - a general-purpose deep
809learning framework primarily developed and used for astronomical data
810analysis.")
811 (license license:asl2.0)))
812
813(define-public cpl
814 (package
815 (name "cpl")
816 (version "7.4")
817 (source
818 (origin
819 (method url-fetch)
820 (uri (string-append
821 "https://ftp.eso.org/pub/dfs/pipelines/libraries/cpl/cpl-"
822 version ".tar.gz"))
823 (sha256
824 (base32 "1m4brm7dizwsld56q43mrwvld3390af5irgk8848iayyx5ki85v3"))))
825 (build-system gnu-build-system)
826 (arguments
827 ;; pycpl expects to find a lib/esopipes-plugins directory. This is
828 ;; overruled by the PYESOREX_PLUGIN_DIR search path, but the default
829 ;; directory is still consulted and therefore needs to exist.
830 (list
831 #:phases
832 #~(modify-phases %standard-phases
833 (add-after 'install 'create-plugins-directory
834 (lambda _
835 (mkdir-p (string-append #$output "/lib/esopipes-plugins")))))))
836 (native-inputs
837 (list automake
838 autoconf
839 libtool
840 pkg-config
841 perl))
842 (inputs
843 (list cext
844 cfitsio
845 wcslib
846 fftw
847 fftwf))
848 (home-page "https://www.eso.org/sci/software/cpl/")
849 (synopsis "Common Pipeline Library for astronomical data reduction")
850 (description
851 "The @acronym{CPL, Common Pipeline Library} comprises a set of ISO-C
852libraries that provide a comprehensive, efficient and robust software toolkit
853to develop astronomical data-reduction tasks (known as recipes). These
854data-reduction tasks can then be executed manually by a user, or can be
855triggered in an automated data-reduction framework (known as pipelines) which
856are used at @acronym{ESO, European Southern Observatory} to monitor the health
857status of @acronym{VLT, Very Large Telescope} instruments, for quick-look data
858processing at the observatory, and the creation of data products available
859from the ESO archive facility.")
860 (license license:gpl2+)))
861
862(define-public cpl-7.3
863 (package
864 (inherit cpl)
865 (version "7.3.4")
866 (source
867 (origin
868 (method url-fetch)
869 (uri (string-append
870 "https://ftp.eso.org/pub/dfs/pipelines/libraries/cpl/cpl-"
871 version ".tar.gz"))
872 (sha256
873 (base32 "090xp9scg34z60iiklf8w7gmbjbja3sdv7xk97pn8llklvks8xgi"))))
874 (inputs
875 (list cfitsio
876 wcslib
877 fftw
878 fftwf))))
879
880(define-public erfa
881 (package
882 (name "erfa")
883 (version "2.0.1")
884 (source
885 (origin
886 (method git-fetch)
887 (uri (git-reference
888 (url "https://github.com/liberfa/erfa")
889 (commit (string-append "v" version))))
890 (file-name (git-file-name name version))
891 (sha256
892 (base32 "1hxjbcvdlq4871r17fphbaf3bd8dsjagp1rdb3j8v6kr4f1dil9n"))))
893 (build-system gnu-build-system)
894 (native-inputs
895 (list automake autoconf libtool pkg-config))
896 (home-page "https://github.com/liberfa/erfa")
897 (synopsis "Essential Routines for Fundamental Astronomy")
898 (description
899 "The @acronym{ERFA, Essential Routines for Fundamental Astronomy} C library
900contains key algorithms for astronomy, and is based on the @acronym{SOFA,
901Standards of Fundamental Astronomy} library published by the @acronym{IAU,
902International Astronomical Union}.")
903 (license license:bsd-3)))
904
905(define-public esorex
906 (package
907 (name "esorex")
908 (version "3.13.11")
909 (source
910 (origin
911 (method url-fetch)
912 (uri (string-append
913 "https://ftp.eso.org/pub/dfs/pipelines/libraries/esorex/esorex-"
914 version ".tar.gz"))
915 (sha256
916 (base32 "04mvmrkannmjcb59v6r30xyd6w3mw4f64lcsrk71083d9i73ijia"))))
917 (build-system gnu-build-system)
918 (native-inputs
919 (list automake
920 autoconf
921 libtool
922 pkg-config
923 perl))
924 (inputs
925 (list cext
926 cfitsio
927 cpl
928 wcslib))
929 (native-search-paths
930 (list (search-path-specification
931 (variable "ESOREX_PLUGIN_DIR")
932 (files '("lib/esopipes-plugins")))))
933 (home-page "https://www.eso.org/sci/software/cpl/esorex.html")
934 (synopsis "The European Southern Observatory Recipe Execution Tool")
935 (description
936 "EsoRex is the @acronym{European Southern Observatory, ESO} Recipe
937Execution Tool. It can list, configure and execute @acronym{Common Pipeline
938Library, CPL}-based recipes from the command line.")
939 ;; Set a rerlease-monitoring-url because the ftp directory includes
940 ;; prereleases that should not be refreshed to.
941 (properties `((release-monitoring-url
942 . "https://www.eso.org/sci/software/cpl/download.html")))
943 (license license:gpl2+)))
944
945(define-public eye
946 (package
947 (name "eye")
948 (version "1.4.1")
949 (source
950 (origin
951 (method git-fetch)
952 (uri (git-reference
953 (url "https://github.com/astromatic/eye")
954 (commit version)))
955 (file-name (git-file-name name version))
956 (sha256
957 (base32 "1j8rpgz3fjp6fw0qmxgfqycf3n01fzxds4w12vgyrhbnk658ia41"))))
958 (build-system gnu-build-system)
959 (arguments
960 (list
961 #:configure-flags
962 #~(list "CPPFLAGS=-fcommon"))) ; fix build with GCC 10
963 (home-page "https://www.astromatic.net/software/eye")
964 (synopsis "Small image feature detector using machine learning")
965 (description
966 "In @acronym{EyE, Enhance Your Extraction} an artificial neural network
967connected to pixels of a moving window (@dfn{retina}) is trained to associate
968these input stimuli to the corresponding response in one or several output
969image(s). The resulting filter can be loaded in SExtractor to operate
970complex, wildly non-linear filters on astronomical images. Typical
971applications of EyE include adaptive filtering, feature detection and cosmetic
972corrections.")
973 (license license:cecill)))
974
975(define-public fitsverify
976 (package
977 (name "fitsverify")
978 (version "4.22")
979 (source
980 (origin
981 (method url-fetch)
982 (uri (string-append "https://heasarc.gsfc.nasa.gov/docs/software/ftools/"
983 name "/" name "-" version ".tar.gz"))
984 (sha256
985 (base32 "1d0qvgmrpv09qm4vi4n26frx4qb3mrdn261rs6vvrvg0lw1yhibc"))))
986 (build-system gnu-build-system)
987 (arguments
988 (list
989 #:tests? #f ;no tests
990 #:phases
991 #~(modify-phases %standard-phases
992 (delete 'configure) ; no configure
993 (replace 'build
994 (lambda* _
995 ;; Build steps are taken from Debian's package definition.
996 (invoke #$(cc-for-target) "-o" #$name
997 "ftverify.c"
998 "fvrf_data.c"
999 "fvrf_file.c"
1000 "fvrf_head.c"
1001 "fvrf_key.c"
1002 "fvrf_misc.c"
1003 "-DSTANDALONE"
1004 "-lcfitsio"
1005 "-lm")))
1006 (replace 'install
1007 (lambda _
1008 (install-file #$name (string-append #$output "/bin")))))))
1009 (inputs
1010 (list cfitsio))
1011 (home-page "https://heasarc.gsfc.nasa.gov/docs/software/ftools/fitsverify/index.html")
1012 (synopsis "FITS File Format-Verification Tool")
1013 (description
1014 "Fitsverify is a computer program that rigorously checks whether a
1015@acronym{FITS, Flexible Image Transport System} data file conforms to the
1016requirements defined in Version 3.0 of the
1017@url{http://fits.gsfc.nasa.gov/fits_documentation.html, FITS Standard
1018document}.")
1019 (properties
1020 '((release-monitoring-url .
1021 "https://heasarc.gsfc.nasa.gov/docs/software/ftools/fitsverify/")))
1022 ;; The license is the same as for CFITSIO, see
1023 ;; URL: <https://salsa.debian.org/debian-astro-team/fitsverify>
1024 ;; File: <debian/copyright>
1025 (license (license:non-copyleft "file://License.txt"
1026 "See License.txt in the distribution."))))
1027
1028(define-public genetic
1029 (package
1030 (name "genetic")
1031 (version "1.5.0")
1032 (source
1033 (origin
1034 (method git-fetch)
1035 (uri (git-reference
1036 (url "https://github.com/pynbody/genetic")
1037 (commit (string-append "v" version))))
1038 (file-name (git-file-name name version))
1039 (sha256
1040 (base32 "0pwvr8bvnbp6d16f51hy981pdlrqz9yf9fh2wvxl958ikyjmaaiy"))))
1041 (build-system cmake-build-system)
1042 (arguments
1043 (list
1044 #:phases
1045 #~(modify-phases %standard-phases
1046 (add-after 'unpack 'link-highfive
1047 (lambda _
1048 (rmdir "genetIC/HighFive")
1049 (symlink #+(package-source (this-package-native-input "highfive"))
1050 (string-append (getcwd) "/HighFive"))))
1051 (add-before 'check 'delete-problematic-tests
1052 (lambda _
1053 (with-directory-excursion "../source/genetIC/tests"
1054 (for-each delete-file-recursively
1055 ;; XXX: Some NumPy related tests failed with "Arrays
1056 ;; are not almost equal to <...> decimals", it
1057 ;; might need attention.
1058 (list "test_06c_stray_subsampling"
1059 "test_09a_border_safety"
1060 "test_10a_gadget"
1061 "test_10b_gadget_zoom_varimass"
1062 "test_10c_gadget_zoom_ptype"
1063 "test_10d_gadget_flagged_particles"
1064 "test_10e_gadget_zoom_ptype_resample"
1065 "test_10g_gadget_multifile_baryons"
1066 "test_10h_gadget_zoom_ptype_gas"
1067 "test_10i_gadget_zoom_ptype_autopad"
1068 "test_14_velocity_modif"
1069 "test_17_reversal"
1070 "test_19_rounding_errors"
1071 "test_22_angular_momentum_modif"
1072 "test_26_gadgethdf"
1073 "test_26a_gadgethdf_multifile_baryons"
1074 ;; Error "File zoomtest.txt not found" on line
1075 ;; 27 ("idfile zoomtest.txt")
1076 "test_10f_gadget_multifile")))))
1077 (replace 'check
1078 (lambda* (#:key tests? #:allow-other-keys)
1079 (when tests?
1080 (with-directory-excursion "../source/genetIC/tests"
1081 ;; Matplotlib needs to write access.
1082 (setenv "HOME" "/tmp")
1083 (invoke "./run_tests.sh"))))))))
1084 (native-inputs
1085 (list boost
1086 git-minimal/pinned
1087 highfive
1088 pkg-config
1089 python-pynbody
1090 python-wrapper))
1091 (inputs
1092 (list fftw
1093 fftwf
1094 gsl
1095 hdf5))
1096 (home-page "https://github.com/pynbody/genetic")
1097 (synopsis "Genetically-modified initial conditions generator")
1098 (description
1099 "GenetIC is a code to generate initial conditions for cosmological
1100simulations, especially for zoom simulations of galaxies. It provides support
1101for \"genetic modifications\" as described by e.g.
1102@url{https://arxiv.org/abs/1504.07250, Roth et al 2015},
1103@url{https://arxiv.org/abs/1706.04615, Rey & Pontzen 2018}. It also supports
1104'splicing' as described by @url{https://arxiv.org/abs/2107.03407, Cadiou et al
11052021}.")
1106 (license license:gpl3+)))
1107
1108(define-public ginga
1109 (package
1110 (name "ginga")
1111 (version "7.3.0")
1112 (source
1113 (origin
1114 (method git-fetch)
1115 (uri (git-reference
1116 (url "https://github.com/ejeschke/ginga")
1117 (commit (string-append "v" version))))
1118 (file-name (git-file-name name version))
1119 (sha256
1120 (base32 "1q4qdc4s2p9i6lzyvxcr3bfyclxsr0xg7dkmnz4ilgy561zxy87w"))))
1121 (build-system pyproject-build-system)
1122 (arguments
1123 (list
1124 #:phases
1125 #~(modify-phases %standard-phases
1126 (add-after 'unpack 'relax-requirements
1127 (lambda _
1128 (substitute* "setup.cfg"
1129 ;; All tests passed with older Pillow, remove when it's
1130 ;; updated.
1131 (("pillow>=12.3.0") "pillow"))))
1132 (add-before 'sanity-check 'set-home
1133 (lambda _
1134 (setenv "HOME" "/tmp"))))))
1135 (native-inputs
1136 (list python-attrs
1137 python-pytest-doctestplus
1138 python-pytest-astropy
1139 python-pytest-astropy-header
1140 python-setuptools
1141 python-setuptools-scm))
1142 (inputs
1143 (list python-astropy
1144 python-numpy
1145 python-packaging
1146 python-pillow
1147 python-puremagic
1148 python-pyyaml
1149 python-qtpy
1150 ;; [optional]
1151 opencv
1152 python-astroquery
1153 python-dateutil
1154 python-exif-read
1155 python-matplotlib
1156 python-photutils
1157 python-pillow-heif
1158 python-pycairo
1159 python-pyqt-6
1160 python-pyside-6
1161 python-scipy
1162 python-tornado))
1163 (home-page "https://ejeschke.github.io/ginga/")
1164 (synopsis "Scientific image viewer and toolkit for FITS files")
1165 (description
1166 "Ginga is a toolkit designed for building viewers for scientific image
1167data in Python, visualizing 2D pixel data in numpy arrays. It can view
1168astronomical data such as contained in files based on the FITS (Flexible Image
1169Transport System) file format. It is written and is maintained by software
1170engineers at the National Astronomical Observatory of Japan (NAOJ), the Space
1171Telescope Science Institute (STScI), and other contributing entities.
1172
1173The Ginga toolkit centers around an image display object which supports
1174zooming and panning, color and intensity mapping, a choice of several
1175automatic cut levels algorithms and canvases for plotting scalable geometric
1176forms. In addition to this widget, a general purpose \"reference\" FITS
1177viewer is provided, based on a plugin framework. A fairly complete set of
1178standard plugins are provided for features that we expect from a modern FITS
1179viewer: panning and zooming windows, star catalog access, cuts, star
1180pick/FWHM, thumbnails, etc.")
1181(license license:bsd-3)))
1182
1183(define-public glnemo2
1184 (package
1185 (name "glnemo2")
1186 (version "1.21.0")
1187 (source
1188 (origin
1189 (method git-fetch)
1190 (uri (git-reference
1191 (url "https://gitlab.lam.fr/jclamber/glnemo2")
1192 (commit version)))
1193 (file-name (git-file-name name version))
1194 (sha256
1195 (base32 "1jmmxszh8d2jmfghig36nhykff345mqnpssfa64d0r7l9cnfp3cn"))))
1196 (build-system cmake-build-system)
1197 (arguments
1198 (list
1199 #:tests? #f ; No test target
1200 #:configure-flags
1201 #~(list "CPPFLAGS=-fcommon"
1202 (string-append "-DCMAKE_C_FLAGS="
1203 " -Wno-error=implicit-function-declaration"
1204 " -Wno-error=implicit-int"
1205 " -Wno-error=int-conversion"))
1206 #:phases
1207 #~(modify-phases %standard-phases
1208 (add-after 'unpack 'patch-libraries-paths
1209 (lambda _
1210 (substitute* "CMakeLists.txt"
1211 ;; There is some not straightforward logic on how to set
1212 ;; the installation prefix for the project; inherit it
1213 ;; from the build-system default flags.
1214 (("CMAKE_INSTALL_PREFIX \"/usr\"")
1215 "CMAKE_INSTALL_PREFIX")
1216 (("/usr/include/CCfits")
1217 (string-append
1218 #$(this-package-input "ccfits") "/include/CCfits"))
1219 (("/usr/include/tirpc")
1220 (string-append
1221 #$(this-package-input "libtirpc") "/include/tirpc"))
1222 ;; It tries to detect library in two "predictable" paths,
1223 ;; required during the link phase.
1224 (("/usr/lib64/libtirpc.so")
1225 (string-append
1226 #$(this-package-input "libtirpc") "/lib/libtirpc.so"))))))))
1227 (inputs
1228 (list ccfits
1229 cfitsio
1230 glm
1231 glu
1232 hdf5
1233 libtirpc
1234 qtbase-5
1235 zlib))
1236 (home-page "https://projets.lam.fr/projects/glnemo2/wiki/Wiki")
1237 (synopsis "3D interactive visualization program for n-body like particles")
1238 (description
1239 "GLNEMO2 is an interactive 3D visualization program which displays
1240particles positions of the different components (gas, stars, disk, dark
1241matter halo, bulge) of an N-body snapshot. It is a tool for running
1242N-body simulations from isolated galaxies to cosmological simulations.
1243It has a graphical user interface (based on QT 5.X API), uses a fast
12443D engine (OPenGL and GLSL), and is generic with the possibility to load
1245different kinds of input files.")
1246 (license license:cecill)))
1247
1248(define-public gnuastro
1249 (package
1250 (name "gnuastro")
1251 (version "0.24")
1252 (source
1253 (origin
1254 (method url-fetch)
1255 (uri (string-append "mirror://gnu/gnuastro/gnuastro-"
1256 version ".tar.lz"))
1257 (sha256
1258 (base32
1259 "0z2i5cx4wx1m90nyg98f653gwdil86mi0w55sg8rick4rg2a9ifz"))))
1260 (build-system gnu-build-system)
1261 (arguments
1262 '(#:configure-flags '("--disable-static")))
1263 (inputs
1264 (list cfitsio-4.4
1265 curl
1266 gsl
1267 libgit2
1268 libjpeg-turbo
1269 libtiff
1270 wcslib
1271 zlib))
1272 (native-inputs
1273 (list libtool lzip))
1274 (home-page "https://www.gnu.org/software/gnuastro/")
1275 (synopsis "Astronomy utilities")
1276 (description "The GNU Astronomy Utilities (Gnuastro) is a suite of
1277programs for the manipulation and analysis of astronomical data.")
1278 (license license:gpl3+)))
1279
1280(define-public gpredict
1281 (package
1282 (name "gpredict")
1283 (version "2.6")
1284 (source
1285 (origin
1286 (method git-fetch)
1287 (uri (git-reference
1288 (url "https://github.com/csete/gpredict")
1289 (commit (string-append "v" version))))
1290 (file-name (git-file-name name version))
1291 (sha256
1292 (base32 "1np1fif9jgmv3s28lcwc4pvkx386bwf9v08g5ix8izqm4wvk8l9s"))))
1293 (build-system gnu-build-system)
1294 (arguments
1295 (list
1296 #:phases
1297 #~(modify-phases %standard-phases
1298 (replace 'bootstrap
1299 (lambda _
1300 (invoke "autoreconf" "-vif")
1301 (invoke "intltoolize" "--force" "--automake"))))))
1302 (native-inputs
1303 (list autoconf
1304 automake
1305 gettext-minimal
1306 (list glib "bin") ; glib-gettextize
1307 intltool
1308 libtool
1309 pkg-config))
1310 (inputs
1311 (list curl
1312 glib
1313 goocanvas
1314 gtk+))
1315 (home-page "https://oz9aec.dk/gpredict/")
1316 (synopsis "Satellite tracking and orbit prediction application")
1317 (description
1318 "Gpredict is a real-time satellite tracking and orbit prediction
1319application. It can track a large number of satellites and display their
1320position and other data in lists, tables, maps, and polar plots (radar view).
1321Gpredict can also predict the time of future passes for a satellite, and
1322provide you with detailed information about each pass.
1323
1324Some core features of Gpredict include:
1325
1326@itemize
1327@item Tracking of a large number of satellites only limited by the physical
1328memory and processing power of the computer
1329@item Display the tracking data in lists, maps, polar plots and any
1330combination of these
1331@item Have many modules open at the same either in a notebook or in their own
1332windows. The modules can also run in full-screen mode
1333@item You can use many ground stations
1334@item Predict upcoming passes
1335@item Gpredict can run in real-time, simulated real-time (fast forward and
1336backward), and manual time control
1337@item Detailed information both the real time and non-real time modes
1338@item Doppler tuning of radios via Hamlib rigctld
1339@item Antenna rotator control via Hamlib rotctld
1340@end itemize")
1341 (license license:gpl2+)))
1342
1343(define-public hdrl
1344 (package
1345 (name "hdrl")
1346 (version "1.6.0")
1347 (source
1348 (origin
1349 (method url-fetch)
1350 (uri (string-append
1351 "https://ftp.eso.org/pub/dfs/pipelines/libraries/hdrl/hdrl-"
1352 version ".tar.gz"))
1353 (sha256
1354 (base32 "0y1kp5i7847liw8zr1m5mw3hl5ygcr5lm5m2plx024pn001b8z34"))))
1355 (build-system gnu-build-system)
1356 (arguments
1357 (list
1358 #:configure-flags
1359 #~(list "--enable-standalone"
1360 (string-append "CC=" #$(cc-for-target))
1361 (string-append "--prefix=" #$output))
1362 #:phases
1363 #~(modify-phases %standard-phases
1364 (add-after 'unpack 'skip-tests
1365 (lambda _
1366 ;; Test tries to download calibration data from
1367 ;; <https://ftp.eso.org/pub/dfs/pipelines/gravity/finals2000A.data>
1368 ;; 2.3M.
1369 (substitute* "tests/Makefile.am"
1370 ((".*hdrl_download-test.*") ""))))
1371 (replace 'bootstrap
1372 (lambda _
1373 (invoke "autoreconf" "-vif"))))))
1374 (native-inputs
1375 (list automake
1376 autoconf
1377 libtool
1378 pkg-config))
1379 (inputs
1380 (list cfitsio
1381 fftwf
1382 cpl-7.3 ;CPL (headers) was not found on your system for v7.4
1383 curl
1384 erfa
1385 gsl
1386 wcslib))
1387 ;; I could not find actual homepage of the project on
1388 ;; <https://www.eso.org/public/about-eso/>.
1389 (home-page "https://www.eso.org/public/")
1390 (synopsis "ESO High-level Data Reduction Library")
1391 (description
1392 "@acronym{High-level Data Reduction Library, HDRL} provides
1393instrument-independent, high-level scientific functions for ESO data reduction
1394pipelines. It aims to concentrate cross-pipeline algorithms in a single
1395place, verify and homogenize algorithms, implement error propagation, and is
1396extensively tested. Pipeline developers and instrument consortia can use HDRL
1397so that bug-fixes and improvements benefit all pipelines that use it.
1398
1399This package includes the HDRL library (built on top of the ESO
1400@acronym{Common Pipeline Library, CPL}, unit tests, and documentation. The
1401library covers functionalities such as: overscan, bias, dark, flat, bad-pixel
1402handling, Strehl, fringing, catalogue operations, efficiency and response
1403computation, refraction and airmass, pattern noise, resampling, limiting
1404magnitude, and barycentric correction.")
1405 (license license:gpl2+)))
1406
1407(define* (healpix-source #:key version sha256-base32-hash)
1408 ;; The sources of HEALPix contains 6 independent packages (Fortran90, IDL,
1409 ;; C, C++, Java and Python) and distributed together with libsharp. There
1410 ;; is also a fresh C++ tarball which does not follow the naming pattern
1411 ;; e.g. healpix_cxx-3.82.1.tar.gz.
1412 (origin
1413 (method url-fetch)
1414 (uri
1415 (let* ((name "Healpix")
1416 (version-list (string-split version #\.))
1417 (name+version (format #f "~a_~{~a.~a~a~}" name version-list)))
1418 (string-append "mirror://sourceforge/healpix/"
1419 name+version "/" name+version "_" "2024Nov13.tar.gz")))
1420 (sha256
1421 (base32 sha256-base32-hash ))))
1422
1423(define-public healpix
1424 (package
1425 (name "healpix")
1426 (version "3.8.3")
1427 (source
1428 (healpix-source
1429 #:version version
1430 #:sha256-base32-hash "1nhxad4zbk6qm6zblvyvyaavfq7vy8asq150n83dfvsrzj7c2xl8"))
1431 (build-system gnu-build-system)
1432 (arguments
1433 (list
1434 #:tests? #f ; no tests
1435 #:make-flags
1436 #~(list "shared"
1437 "AR=ar -rsv"
1438 "OPT=-O2 -Wall"
1439 "PIC=-fPIC"
1440 (string-append "CC=" #$(cc-for-target))
1441 (string-append "CFITSIO_INCDIR="
1442 #$(this-package-input "cfitsio") "/include")
1443 (string-append "CFITSIO_LIBDIR="
1444 #$(this-package-input "cfitsio") "/lib")
1445 (string-append "INCDIR=" #$output "/include")
1446 (string-append "LIBDIR=" #$output "/lib"))
1447 #:phases
1448 #~(modify-phases %standard-phases
1449 (delete 'configure) ; no configure
1450 (add-after 'unpack 'chdir-c
1451 (lambda _
1452 (chdir "src/C/subs")))
1453 (add-before 'install 'set-output-directories
1454 (lambda _
1455 (mkdir-p (string-append #$output "/include"))
1456 (mkdir-p (string-append #$output "/lib")))))))
1457 (native-inputs
1458 (list pkg-config autoconf automake))
1459 (inputs
1460 (list cfitsio))
1461 (home-page "https://healpix.sourceforge.io/")
1462 (synopsis "Representation of spherical data")
1463 (description
1464 "@acronym{HEALPix, Hierarchical Equal Area isoLatitude Pixelation} of a
1465sphere produces a subdivision of a spherical surface in which each pixel
1466covers the same surface area as every other pixel. This package provides the
1467dynamic library for the C language implementation of HEALPix.")
1468 (license license:gpl2+)))
1469
1470(define-public healpix-cxx
1471 (package
1472 (inherit healpix)
1473 (name "healpix-cxx")
1474 (arguments
1475 (list
1476 #:phases
1477 #~(modify-phases %standard-phases
1478 (add-after 'unpack 'chdir-cxx
1479 (lambda _
1480 (chdir "src/cxx")))
1481 (add-after 'chdir-cxx 'adjust-unit-tests
1482 (lambda _
1483 (substitute* "configure.ac"
1484 ;; Run unit tests using serial harness, taken from
1485 ;; <https://salsa.debian.org/debian-astro-team/healpix-cxx/>.
1486 (("foreign subdir-objects -Wall -Werror")
1487 "foreign serial-tests subdir-objects -Wall -Werror"))))
1488 (replace 'bootstrap
1489 (lambda _
1490 (invoke "aclocal")
1491 (invoke "automake" "--add-missing")
1492 (invoke "autoconf"))))))
1493 (inputs (modify-inputs inputs
1494 (prepend libsharp zlib)))
1495 (description
1496 (string-replace-substring (package-description healpix)
1497 "C language"
1498 "C++ language"))))
1499
1500(define-public imppg
1501 (package
1502 (name "imppg")
1503 (version "2.1.0")
1504 (source
1505 (origin
1506 (method git-fetch)
1507 (uri (git-reference
1508 (url "https://github.com/GreatAttractor/imppg")
1509 (commit (string-append "v" version))))
1510 (file-name (git-file-name name version))
1511 (sha256
1512 (base32 "1fcssjpavjyvjwwbbcs2i0b0sk409hl7x8il88d7xviggfiyh1hm"))))
1513 (build-system cmake-build-system)
1514 (native-inputs
1515 (list boost
1516 pkg-config))
1517 (inputs
1518 (list cfitsio
1519 freeimage
1520 glew
1521 lua
1522 wxwidgets))
1523 (home-page "https://github.com/GreatAttractor/imppg")
1524 (synopsis "Astronomical Image Post-Proccessor (ImPPG)")
1525 (description
1526 "ImPPG performs Lucy-Richardson deconvolution, unsharp masking,
1527brightness normalization and tone curve adjustment. It can also apply
1528previously specified processing settings to multiple images. All operations
1529are performed using 32-bit floating-point arithmetic.
1530
1531Supported input formats: FITS, BMP, JPEG, PNG, TIFF (most of bit depths and
1532compression methods), TGA and more. Images are processed in grayscale and can
1533be saved as: BMP 8-bit; PNG 8-bit; TIFF 8-bit, 16-bit, 32-bit
1534floating-point (no compression, LZW- or ZIP-compressed), FITS 8-bit, 16-bit,
153532-bit floating-point.")
1536 (license license:gpl3+)))
1537
1538(define-public indi
1539 (package
1540 (name "indi")
1541 (version "2.2.4.2")
1542 (source
1543 (origin
1544 (method git-fetch)
1545 (uri (git-reference
1546 (url "https://github.com/indilib/indi")
1547 (commit (string-append "v" version))))
1548 (file-name (git-file-name name version))
1549 (sha256
1550 (base32 "0w3izplv2790zj9494sfbgmiw5qmkl1lrcggblilf7zb87qqx10c"))))
1551 (build-system cmake-build-system)
1552 (arguments
1553 (list
1554 #:parallel-tests? #f ; Socket address collisions between tests
1555 #:configure-flags
1556 #~(list "-DINDI_BUILD_UNITTESTS=ON"
1557 "-DINDI_BUILD_INTEGTESTS=ON"
1558 "-DCMAKE_INSTALL_LIBDIR=lib"
1559 ;; See: <https://github.com/indilib/indi/issues/2422>.
1560 "-DFIX_WARNINGS=OFF"
1561 (string-append "-DCMAKE_INSTALL_PREFIX=" #$output)
1562 (string-append "-DUDEVRULES_INSTALL_DIR=" #$output
1563 "/lib/udev/rules.d"))
1564 #:phases
1565 #~(modify-phases %standard-phases
1566 (add-after 'unpack 'patch-udev-rules
1567 (lambda _
1568 (substitute* (list "drivers/auxiliary/99-indi_auxiliary.rules"
1569 "drivers/video/80-dbk21-camera.rules")
1570 (("/bin/sh") (which "sh"))
1571 (("/sbin/modprobe")
1572 (string-append #$(this-package-input "kmod")
1573 "/bin/modprobe")))))
1574 (replace 'check
1575 (lambda* (#:key tests? #:allow-other-keys)
1576 (when tests?
1577 (with-directory-excursion "integs"
1578 (invoke "ctest" "-V" "--output-on-failure"))
1579 (with-directory-excursion "test"
1580 (invoke "ctest" "-V"))))))))
1581 (native-inputs
1582 (list googletest
1583 pkg-config))
1584 (inputs
1585 (list cfitsio
1586 curl
1587 fftw
1588 gsl
1589 kmod
1590 libev
1591 libjpeg-turbo
1592 libnova
1593 libtiff
1594 libusb
1595 zlib))
1596 (home-page "https://www.indilib.org")
1597 (synopsis "Library for astronimical instrumentation control")
1598 (description
1599 "INDI (Instrument-Neutral Device Interface) is a distributed XML-based
1600control protocol designed to operate astronomical instrumentation. INDI is
1601small, flexible, easy to parse, scalable, and stateless. It supports common
1602DCS functions such as remote control, data acquisition, monitoring, and a lot
1603more.")
1604 (license (list license:bsd-3
1605 license:gpl2+
1606 license:lgpl2.0+
1607 license:lgpl2.1+))))
1608
1609;; For [email protected], remove when a fresh version is released.
1610(define-public indi-2.2.1
1611 (hidden-package
1612 (package
1613 (inherit indi)
1614 (name "indi")
1615 (version "2.2.1.1")
1616 (source
1617 (origin
1618 (method git-fetch)
1619 (uri (git-reference
1620 (url "https://github.com/indilib/indi")
1621 (commit (string-append "v" version))))
1622 (file-name (git-file-name name version))
1623 (sha256
1624 (base32 "06p1hdvbs63nmrkzhp9mqw4ayvhx1wbh1w80ikq896k30i9sx5g0")))))))
1625
1626(define-public iraf-community
1627 (package
1628 (name "iraf-community")
1629 (version "2.18.1")
1630 (source
1631 (origin
1632 (method git-fetch)
1633 (uri (git-reference
1634 (url "https://github.com/iraf-community/iraf")
1635 (commit (string-append "v" version))))
1636 (file-name (git-file-name name version))
1637 (sha256
1638 (base32 "1bp88lgciibkm83jbmv8nazz8mzcrl1vlmll853fib6pwiikd015"))))
1639 (build-system gnu-build-system)
1640 (arguments
1641 (list
1642 ;; XXX: All tests fail, figure out how to fix them.
1643 #:tests? #f
1644 ;; It fails with segmentation fault in parallel build
1645 #:parallel-build? #f
1646 ;; No such file or directory .../lib/iraf/lib/libmemdbg.a
1647 #:validate-runpath? #f
1648 #:make-flags
1649 #~(list (format #f "IRAFARCH=~a" (cond (#$(target-hurd?) "hurd")
1650 (#$(target-64bit?) "linux64")
1651 (else "linux")))
1652 "MNAME=linux64"
1653 (string-append "CC=" #$(cc-for-target))
1654 (string-append "prefix=" #$output))
1655 #:phases
1656 #~(modify-phases %standard-phases
1657 (delete 'configure) ;; no configure
1658 (add-after 'unpack 'patch-paths
1659 (lambda* (#:key inputs #:allow-other-keys)
1660 (substitute* (list "test/run_tests"
1661 "unix/boot/spp/xc.c"
1662 "unix/f2c/libf2c/makefile.u"
1663 "unix/f2c/src/changes"
1664 "unix/f2c/src/main.c"
1665 "unix/f2c/src/makefile.u"
1666 "unix/f2c/trim_f2c.sh"
1667 "unix/hlib/f77.sh"
1668 "unix/hlib/irafarch.sh"
1669 "unix/hlib/irafcl.sh"
1670 "unix/hlib/mkfloat"
1671 "unix/hlib/mkiraf.sh"
1672 "unix/hlib/mkmlist.sh"
1673 "unix/os/zoscmd.c")
1674 (("/bin/sh") (which "sh")))
1675 (substitute* "unix/hlib/irafarch.sh"
1676 (("/usr/bin/uname") (search-input-file inputs "/bin/uname"))
1677 (("/bin/uname") (search-input-file inputs "/bin/uname")))
1678 (substitute* "Makefile"
1679 (("DESTDIR./etc/iraf") "prefix)/etc/iraf")))))))
1680 (native-inputs
1681 (list bison flex perl))
1682 (inputs
1683 (list curl expat ncurses readline zlib))
1684 (home-page "https://iraf-community.github.io/")
1685 (synopsis "Image Reduction and Analysis Facility")
1686 (description
1687 "IRAF is the Image Reduction and Analysis Facility, a general purpose
1688software system for the reduction and analysis of astronomical data. IRAF was
1689written by the @acronym{NOAO, National Optical Astronomy Observatories} in
1690Tucson, Arizona. This package provides a community successor of the last IRAF
1691release from 2013.")
1692 ;; It's multi licenses project but primary one is MIT (Expat) it was
1693 ;; checked with upstream, see
1694 ;; <https://github.com/iraf-community/iraf/issues/403>.
1695 (license license:expat)))
1696
1697(define-public java-cds-healpix
1698 ;; XXX: Upstream bundles java-commons-math3 available in Guix, find out how
1699 ;; to use the system package instead of it.
1700 (package
1701 (name "java-cds-healpix")
1702 (version "0.30.3")
1703 (source
1704 (origin
1705 (method git-fetch)
1706 (uri (git-reference
1707 (url "https://github.com/cds-astro/cds-healpix-java")
1708 (commit (string-append "v" version))))
1709 (file-name (git-file-name name version))
1710 (sha256
1711 (base32 "1wi5ni6j0rvjyhz80g1gglxdimf7gnfa1kx8a3c2przzbwya0j8d"))))
1712 (build-system ant-build-system)
1713 (arguments
1714 (list
1715 #:jar-name "cdshealpix.jar"
1716 #:source-dir "src/main/java/cds/healpix"
1717 #:test-dir "src/test"))
1718 (home-page "https://github.com/cds-astro/cds-healpix-java")
1719 (synopsis "CDS HEALPix library in Java")
1720 (description
1721 "This package provides a @acronym{Centre de Données astronomiques de
1722Strasbourg, CDS} implementation in Java of the @acronym{Hierarchical Equal
1723Area isoLatitude Pixelization of a sphere , HEALPix} tessellation.")
1724 (license license:bsd-3)))
1725
1726(define-public libnova
1727 (package
1728 (name "libnova")
1729 (version "0.16")
1730 (source
1731 (origin
1732 (method git-fetch)
1733 (uri (git-reference
1734 (url "https://git.code.sf.net/p/libnova/libnova.git")
1735 (commit (string-append "v" version))))
1736 (file-name (git-file-name name version))
1737 (sha256
1738 (base32
1739 "0icwylwkixihzni0kgl0j8dx3qhqvym6zv2hkw2dy6v9zvysrb1b"))))
1740 (build-system gnu-build-system)
1741 (arguments
1742 (list
1743 #:phases
1744 #~(modify-phases %standard-phases
1745 (add-after 'unpack 'patch-git-version
1746 (lambda _
1747 (substitute* "./git-version-gen"
1748 (("/bin/sh") (which "sh"))))))))
1749 (native-inputs
1750 (list autoconf automake libtool))
1751 (home-page "https://libnova.sourceforge.net/")
1752 (synopsis "Celestial mechanics, astrometry and astrodynamics library")
1753 (description
1754 "Libnova is a general purpose, double precision, Celestial Mechanics,
1755Astrometry and Astrodynamics library.")
1756 (license (list license:lgpl2.0+
1757 license:gpl2+)))) ; examples/transforms.c & lntest/*.c
1758
1759(define-public libpasastro
1760 (package
1761 (name "libpasastro")
1762 (version "1.4.4")
1763 (source
1764 (origin
1765 (method git-fetch)
1766 (uri (git-reference
1767 (url "https://github.com/pchev/libpasastro")
1768 (commit (string-append "v" version))))
1769 (file-name (git-file-name name version))
1770 (sha256
1771 (base32 "0y8naadlcd0ybh0qnfpdz4rqfb5sml7x8hx4isk4r7d84iy4cl61"))))
1772 (build-system gnu-build-system)
1773 (arguments
1774 (list
1775 #:tests? #f ; no tests provided
1776 #:make-flags
1777 #~(list
1778 ;; Keep OS detection for the case when Hurd would be suitable to try.
1779 #$@(if (target-linux?) '("OS_TARGET=linux") '())
1780 ;; Enable buildtime CPU detection where supported,
1781 ;; and set a suitable CPU target variable.
1782 #$@(match (or (%current-target-system)
1783 (%current-system))
1784 ("i686-linux"
1785 '("CPU_TARGET=i386"))
1786 ("x86_64-linux"
1787 '("CPU_TARGET=x86_64"))
1788 ;; There is no a case for RISCV in upstream, attempt to treat it
1789 ;; as ARM.
1790 ((or "armhf-linux" "aarch64-linux" "riscv64")
1791 '("CPU_TARGET=armv7l"))
1792 (_ '()))
1793 (string-append "PREFIX=" #$output))
1794 #:phases
1795 #~(modify-phases %standard-phases
1796 (delete 'configure))))
1797 (home-page "https://github.com/pchev/libpasastro")
1798 (synopsis "Interface to astronomy library for use from Pascal program")
1799 (description
1800 "This package provides shared libraries to interface Pascal program with
1801standard astronomy libraries:
1802
1803@itemize
1804@item @code{libpasgetdss.so}: Interface with GetDSS to work with DSS images.
1805@item @code{libpasplan404.so}: Interface with Plan404 to compute planets
1806position.
1807@item @code{libpaswcs.so}: Interface with libwcs to work with FITS WCS.
1808@item @code{libpasspice.so}: To work with NAIF/SPICE kernel.
1809@end itemize")
1810 (license license:gpl2+)))
1811
1812(define-public libsep
1813 (package
1814 (name "libsep")
1815 (version "1.4.1")
1816 (source
1817 (origin
1818 (method git-fetch)
1819 (uri (git-reference
1820 (url "https://github.com/kbarbary/sep")
1821 (commit (string-append "v" version))))
1822 (file-name (git-file-name name version))
1823 (sha256
1824 (base32 "1ni02sf3pcg438mi26csdcwsbq1v5mnxlna2aiwxj0mhq2psb1rw"))))
1825 (build-system cmake-build-system)
1826 (arguments
1827 (list
1828 #:make-flags
1829 #~(list (string-append "CC=" #$(cc-for-target))
1830 (string-append "PREFIX=" #$output))
1831 #:modules '((guix build cmake-build-system)
1832 ((guix build gnu-build-system) #:prefix gnu:)
1833 (guix build utils))
1834 #:phases
1835 #~(modify-phases %standard-phases
1836 (replace 'check
1837 (lambda* (#:rest args)
1838 (with-directory-excursion "../source"
1839 (apply (assoc-ref gnu:%standard-phases 'check)
1840 #:test-target "test" args)))))))
1841 (native-inputs
1842 (list python-wrapper))
1843 (home-page "https://github.com/kbarbary/sep")
1844 (synopsis "Astronomical source extraction and photometry library")
1845 (description
1846 "SEP makes the core algorithms of
1847@url{https://www.astromatic.net/software/sextractor/, sextractor} available as
1848a library of stand-alone functions and classes. These operate directly on
1849in-memory arrays (no FITS files or configuration files). The code is derived
1850from the Source Extractor code base (written in C) and aims to produce results
1851compatible with Source Extractor whenever possible. SEP consists of a C
1852library with no dependencies outside the standard library, and a Python module
1853that wraps the C library in a Pythonic API. The Python wrapper operates on
1854NumPy arrays with NumPy as its only dependency.")
1855 (license (list license:expat license:lgpl3+ license:bsd-3))))
1856
1857(define-public libsharp
1858 (package
1859 (name "libsharp")
1860 (version "3.8.2")
1861 (source
1862 (healpix-source
1863 #:version version
1864 #:sha256-base32-hash "09x1lafq01gzk16yvmz2pdhrxnqfjp3b2p9hlgy0dbrdg82ryqj7"))
1865 (build-system gnu-build-system)
1866 (arguments
1867 (list
1868 #:phases
1869 #~(modify-phases %standard-phases
1870 (add-after 'unpack 'chdir-libsharp
1871 (lambda _
1872 (chdir "src/common_libraries/libsharp"))))))
1873 (home-page "https://healpix.sourceforge.io/")
1874 (synopsis "Efficient spherical harmonic transforms at arbitrary spins")
1875 (description
1876 "This package provides a librari for spherical harmonic
1877transforms (SHTs), which evolved from the libpsht library, addressing several
1878of its shortcomings, such as adding MPI support for distributed memory systems
1879and SHTs of fields with arbitrary spin, but also supporting new developments
1880in CPU instruction sets like the Advanced Vector Extensions (AVX) or fused
1881multiply-accumulate (FMA) instructions. The library is implemented in
1882portable C99 and provides an interface that can be easily accessed from other
1883programming languages such as C++, Fortran, Python etc. Generally, libsharp's
1884performance is at least on par with that of its predecessor; however,
1885significant improvements were made to the algorithms for scalar SHTs, which
1886are roughly twice as fast when using the same CPU capabilities.
1887
1888Supporting paper is available at https://arxiv.org/abs/1303.4945")
1889 (license license:gpl2+)))
1890
1891(define-public libskry
1892 (package
1893 (name "libskry")
1894 (version "0.3.0")
1895 (source
1896 (origin
1897 (method git-fetch)
1898 (uri (git-reference
1899 (url "https://github.com/GreatAttractor/libskry")
1900 (commit (string-append "v" version))))
1901 (file-name (git-file-name name version))
1902 (sha256
1903 (base32 "14kwng0j8wqzlb0gqg3ayq36l15dpz7kvxc56fa47j55b376bwh6"))))
1904 (build-system gnu-build-system)
1905 (arguments
1906 `(#:make-flags
1907 (list
1908 (string-append
1909 "LIBAV_INCLUDE_PATH=" (assoc-ref %build-inputs "ffmpeg") "/include"))
1910 #:phases
1911 (modify-phases %standard-phases
1912 (delete 'configure) ;; no configure provided
1913 (delete 'check) ;; no tests provided
1914 (replace 'install
1915 ;; The Makefile lacks an ‘install’ target.
1916 (lambda* (#:key outputs #:allow-other-keys)
1917 (let* ((out (assoc-ref outputs "out"))
1918 (lib (string-append out "/lib"))
1919 (include (string-append out "/include")))
1920 (copy-recursively "bin" lib)
1921 (copy-recursively "include" include))
1922 #t)))))
1923 (inputs
1924 (list ffmpeg-4))
1925 (home-page "https://github.com/GreatAttractor/libskry")
1926 (synopsis "Astronimical lucky imaging library")
1927 (description
1928 "@code{libskry} implements the lucky imaging principle of astronomical
1929imaging: creating a high-quality still image out of a series of many
1930thousands) low quality ones")
1931 (license license:gpl3+)))
1932
1933(define-public libxisf
1934 (package
1935 (name "libxisf")
1936 (version "0.2.13")
1937 (source
1938 (origin
1939 (method git-fetch)
1940 (uri (git-reference
1941 (url "https://gitea.nouspiro.space/nou/libXISF")
1942 (commit (string-append "v" version))))
1943 (file-name (git-file-name name version))
1944 (sha256
1945 (base32 "0zhj4xijr374c9raddxw8ibawx0n66lqvypgpccb81g41qkkdkmx"))))
1946 (build-system cmake-build-system)
1947 (arguments
1948 (list #:configure-flags #~(list "-DUSE_BUNDLED_LIBS=OFF")))
1949 (native-inputs
1950 (list pkg-config))
1951 (inputs
1952 (list lz4 pugixml zlib))
1953 (home-page "https://nouspiro.space/?page_id=306")
1954 (synopsis "Astronomical library to load and write XISF file format")
1955 (description
1956 "LibXISF is C++ library that can read and write @acronym{XISF,Extensible
1957Image Serialization Format} files produced by @url{https://pixinsight.com/,
1958PixInsight}. It implements
1959@url{https://pixinsight.com/doc/docs/XISF-1.0-spec/XISF-1.0-spec.html, XISF
19601.0 specification}.")
1961 (license license:gpl3+)))
1962
1963(define-public libxisf-for-tenmon
1964 ;; This is an exact commit required for tenmon git submodule.
1965 (let ((commit "556bb22d2675ee6072c6224fef3da0fb5d93db41")
1966 (revision "0"))
1967 (hidden-package
1968 (package
1969 (inherit libxisf)
1970 (name "libxisf")
1971 (version (git-version "0.2.13" revision commit))
1972 (source
1973 (origin
1974 (method git-fetch)
1975 (uri (git-reference
1976 (url "https://gitea.nouspiro.space/nou/libXISF")
1977 (commit commit)))
1978 (file-name (git-file-name name version))
1979 (sha256
1980 (base32 "037dijy0ql1mwm8nddwawlf3ms6w30kxdlkrjjprfsss80ssn30k"))))))))
1981
1982(define-public missfits
1983 (package
1984 (name "missfits")
1985 (version "2.8.0")
1986 (source
1987 (origin
1988 (method git-fetch)
1989 (uri (git-reference
1990 (url "https://github.com/astromatic/missfits")
1991 (commit version)))
1992 (file-name (git-file-name name version))
1993 (sha256
1994 (base32 "12ndvrr3l5j7ph2i5f3qf0wqmv5ymsyjzxnnypqajsvliw72iprh"))))
1995 (build-system gnu-build-system)
1996 (arguments
1997 (list
1998 #:configure-flags
1999 #~(list
2000 ;; Address this link error:
2001 ;; ld: ... multiple definition of ... first defined here
2002 "CPPFLAGS=-fcommon")))
2003 (home-page "https://www.astromatic.net/software/missfits")
2004 (synopsis "FITS files Maintenance program")
2005 (description
2006 "MissFITS is a program that performs basic maintenance and packaging tasks
2007on FITS files:
2008
2009@itemize
2010@item add/edit FITS header keywords
2011@item split/join @acronym{MEF, Multi-Extension-FITS} files
2012@item unpack/pack FITS data-cubes
2013@item create/check/update FITS checksums, using
2014@uref{http://www.adass.org/adass/proceedings/adass94/seamanr.html,
2015R. Seaman's protocol}
2016@end itemize\n")
2017 (license license:gpl3+)))
2018
2019(define-public phd2
2020 (package
2021 (name "phd2")
2022 (version "2.6.14")
2023 (source
2024 (origin
2025 (method git-fetch)
2026 (uri (git-reference
2027 (url "https://github.com/OpenPHDGuiding/phd2")
2028 (commit (string-append "v" version))))
2029 (file-name (git-file-name name version))
2030 (sha256
2031 (base32 "0n2jzlpwvjgj8ydg7hsqxnvy8s9pdi5z96id0231kgi87pyfkh7s"))
2032 (modules '((guix build utils)
2033 (ice-9 ftw)
2034 (srfi srfi-26)))
2035 (snippet
2036 #~(begin
2037 ;; XXX: 'delete-all-but' is copied from the turbovnc package.
2038 (define (delete-all-but directory . preserve)
2039 (with-directory-excursion directory
2040 (let* ((pred (negate (cut member <>
2041 (cons* "." ".." preserve))))
2042 (items (scandir "." pred)))
2043 (for-each (cut delete-file-recursively <>) items))))
2044 (delete-all-but "thirdparty" "thirdparty.cmake")))))
2045 (build-system cmake-build-system)
2046 (arguments
2047 (list
2048 #:configure-flags
2049 #~(list "-DOPENSOURCE_ONLY=yes"
2050 "-DUSE_SYSTEM_CFITSIO=yes"
2051 "-DUSE_SYSTEM_EIGEN3=yes"
2052 "-DUSE_SYSTEM_GTEST=yes"
2053 "-DUSE_SYSTEM_LIBINDI=yes"
2054 "-DUSE_SYSTEM_LIBUSB=yes")))
2055 (native-inputs
2056 (list gettext-minimal
2057 googletest
2058 perl
2059 pkg-config
2060 python))
2061 (inputs
2062 (list cfitsio
2063 curl
2064 eigen
2065 gtk+
2066 indi
2067 libnova
2068 libusb
2069 opencv
2070 wxwidgets
2071 zlib))
2072 (home-page "https://openphdguiding.org")
2073 (synopsis "Teleskope guiding software")
2074 (description
2075 "PHD2 is the enhanced,second generation version of the PHD guiding
2076software from Stark Labs.")
2077 (license license:bsd-3)))
2078
2079(define-public planetary-system-stacker
2080 (package
2081 (name "planetary-system-stacker")
2082 (version "0.9.8")
2083 ;; There is no tag for releases after 0.8.31; this commit corresponds to
2084 ;; version 0.9.8.
2085 (properties
2086 '((commit . "304952a8ac8e991e111e3fe2dba95a6ca4304b4e")
2087 (revision . "0")))
2088 (source
2089 (origin
2090 (method git-fetch)
2091 (uri (git-reference
2092 (url "https://github.com/Rolf-Hempel/PlanetarySystemStacker")
2093 (commit (assoc-ref properties 'commit))))
2094 (file-name (git-file-name name version))
2095 (sha256
2096 (base32 "0ngzmr8b7xavivw76xfdqsgmi0k7n7qwmvqqawrdl7ygs5p2mnil"))))
2097 (build-system pyproject-build-system)
2098 (arguments
2099 (list
2100 #:tests? #false ;none included
2101 #:phases
2102 '(modify-phases %standard-phases
2103 (add-after 'unpack 'compatibility
2104 (lambda _
2105 (substitute* "planetary_system_stacker/planetary_system_stacker.py"
2106 (("import pip") "")
2107 (("pip.__version__") "''"))))
2108 (add-after 'unpack 'relax-requirements
2109 (lambda _
2110 (substitute* "setup.py"
2111 (("numpy <.*'") "numpy'")
2112 (("'opencv-python'") "") ;not detected, but it's available
2113 ((", <3.7'") "'")))))))
2114 (inputs
2115 (list opencv
2116 python-astropy
2117 python-matplotlib
2118 python-numpy
2119 python-pyqt
2120 python-psutil
2121 python-scipy
2122 python-scikit-image))
2123 (home-page "https://github.com/Rolf-Hempel/PlanetarySystemStacker")
2124 (synopsis
2125 "Stack frames of planetary system objects to produce a sharp image")
2126 (description
2127 "This software lets you produce a sharp image of a planetary system
2128object (moon, sun, planets) from many seeing-affected frames using the \"lucky
2129imaging\" technique. Input to the program can be either video files or
2130directories containing still images.")
2131 (license license:gpl3)))
2132
2133(define-public psfex
2134 (package
2135 (name "psfex")
2136 (version "3.24.2")
2137 (source
2138 (origin
2139 (method git-fetch)
2140 (uri (git-reference
2141 (url "https://github.com/astromatic/psfex")
2142 (commit version)))
2143 (file-name (git-file-name name version))
2144 (sha256
2145 (base32 "0ykgzyxnxjxqk6b8jng006wjilg4fqaxclpfn8plg6brk1qf39sn"))))
2146 (build-system gnu-build-system)
2147 (arguments
2148 (list
2149 #:configure-flags
2150 #~(list "CPPFLAGS=-fcommon"
2151 "--enable-openblas"
2152 "--enable-plplot"
2153 (string-append "--with-fftw-libdir="
2154 #$(this-package-input "fftw") "/lib")
2155 (string-append "--with-fftw-incdir="
2156 #$(this-package-input "fftw") "/include")
2157 (string-append "--with-openblas-libdir="
2158 #$(this-package-input "openblas") "/lib")
2159 (string-append "--with-openblas-incdir="
2160 #$(this-package-input "openblas") "/include")
2161 (string-append "--with-plplot-libdir="
2162 #$(this-package-input "plplot") "/lib")
2163 (string-append "--with-plplot-incdir="
2164 #$(this-package-input "plplot") "/include"))))
2165 (native-inputs
2166 (list autoconf automake libtool pkg-config))
2167 (inputs
2168 (list openblas fftw fftwf plplot))
2169 (home-page "https://www.astromatic.net/software/psfex/")
2170 (synopsis "Astronomical PSF modelling and quality assessment")
2171 (description
2172 "@acronym{PSFEx, PSF Extractor} extracts models of the @acronym{PSF,
2173Point Spread Function} from FITS images processed with SExtractor, and
2174measures the quality of images. The generated PSF models can be used for
2175model-fitting photometry or morphological analyses.")
2176 (license license:gpl3+)))
2177
2178(define-public python-acstools
2179 (package
2180 (name "python-acstools")
2181 (version "3.8.2")
2182 (source
2183 (origin
2184 (method git-fetch)
2185 (uri (git-reference
2186 (url "https://github.com/spacetelescope/acstools")
2187 (commit version)))
2188 (file-name (git-file-name name version))
2189 (sha256
2190 (base32 "00s4g9fksa0i0w4l4wqc775a5k1lk0r3nf7g8882bkfafqdc9ava"))))
2191 (build-system pyproject-build-system)
2192 (arguments
2193 (list
2194 #:test-flags
2195 #~(list
2196 ;; OSError: No SIMPLE card found, this file does not appear to be a
2197 ;; valid FITS file. If this is really a FITS file, try with
2198 ;; ignore_missing_simple=True
2199 "--deselect=acstools/tests/test_wfc_findsat_mrt.py::test_WfcWrapper")))
2200 (native-inputs
2201 (list python-ci-watson
2202 python-pytest
2203 python-pytest-astropy-header
2204 python-pytest-remotedata
2205 python-setuptools
2206 python-setuptools-scm))
2207 (propagated-inputs
2208 (list python-astropy
2209 python-numpy
2210 python-pyyaml
2211 python-requests
2212 ;; [optional]
2213 python-dask
2214 python-matplotlib
2215 python-photutils
2216 python-scikit-image
2217 python-scipy
2218 python-stsci-imagestats
2219 python-stsci-tools))
2220 (home-page "https://github.com/spacetelescope/acstools")
2221 (synopsis "Hubble Space Telescope Advanced Camera for Surveys Tools")
2222 (description
2223 "Python Tools for HST ACS (Advanced Camera for Surveys) Data.")
2224 (license license:bsd-3)))
2225
2226(define-public python-adari-core
2227 (package
2228 (name "python-adari-core")
2229 (version "4.3.0")
2230 (source
2231 (origin
2232 (method url-fetch)
2233 (uri (string-append
2234 "https://ftp.eso.org/pub/dfs/pipelines/libraries/adari_core/"
2235 "adari_core-" version ".tar.gz"))
2236 (sha256
2237 (base32 "152p32miwhpiwkd7lcdxljby20w15qf63s00brp9ilvxmy2cqdn4"))))
2238 (build-system pyproject-build-system)
2239 (arguments
2240 (list
2241 ;; Some custom ESO Python module is missing:
2242 ;; E ModuleNotFoundError: No module named 'inst_reports'
2243 #:tests? #f))
2244 (native-inputs
2245 (list python-setuptools))
2246 (propagated-inputs
2247 (list python-astropy
2248 python-fastapi
2249 python-matplotlib
2250 python-pydantic
2251 python-requests
2252 python-requests-unixsocket
2253 python-uvicorn))
2254 ;; I could not find actual homepage of the project on
2255 ;; <https://www.eso.org/public/about-eso/>.
2256 (home-page "https://arxiv.org/abs/2510.00147")
2257 (synopsis "Visualizing the quality of VLT data")
2258 (description
2259 "ADARI (Astronomical DAta Reporting Infrastructure) is a system designed
2260for creating graphical reports of astronomical data so that the quality of
2261these products can be assessed. It has been designed from the ground up to be
2262backend-agnostic, meaning the same ADARI code can be sent to a web plotting
2263API, or a code-based plotting API, with no alteration.")
2264 (license license:bsd-3)))
2265
2266(define-public python-ads
2267 (package
2268 (name "python-ads")
2269 (version "0.12.7")
2270 (source
2271 (origin
2272 (method url-fetch)
2273 (uri (pypi-uri "ads" version))
2274 (sha256
2275 (base32 "156y3zp0nm77976rwsxjjdh7yvggas8s6m0nm523khvn4lq8f9n0"))))
2276 (build-system pyproject-build-system)
2277 (arguments
2278 (list
2279 #:test-flags
2280 ;; Assertion errors:
2281 ;;
2282 ;; You are lazy loading attributes via 'bibtex', and so are making
2283 ;; multiple calls to the API. This will impact your overall rate
2284 ;; limits. bibtex should be queried with ads.ExportQuery(); You will hit
2285 ;; API ratelimits very quickly otherwise.
2286 #~(list (string-append "--deselect=ads/tests/test_search.py"
2287 "::TestArticle::test_get_field_bibtex"))))
2288 (native-inputs
2289 (list nss-certs-for-test
2290 python-httpretty
2291 python-pytest
2292 python-setuptools))
2293 (propagated-inputs
2294 (list python-mock
2295 python-requests
2296 python-six
2297 python-werkzeug))
2298 (home-page "http://www.github.com/andycasey/ads/")
2299 (synopsis "Python client to NASA's Astrophysics Data System")
2300 (description
2301 "This package provides a Python Module to Interact with NASA's
2302@acronym{Astrophysics Data System,ADS}.")
2303 (license license:expat)))
2304
2305(define-public python-aiapy
2306 (package
2307 (name "python-aiapy")
2308 (version "0.12.1")
2309 (source
2310 (origin
2311 (method git-fetch)
2312 (uri (git-reference
2313 (url "https://github.com/LM-SAL/aiapy")
2314 (commit (string-append "v" version))))
2315 (file-name (git-file-name name version))
2316 (sha256
2317 (base32 "0q5h4rfl9l8linnxmbkj605rd4laczpdjamy1kpw7qgwc3a6aamq"))))
2318 (build-system pyproject-build-system)
2319 (arguments
2320 (list
2321 ;; tests: 47 passed, 82 skipped, 133 warnings
2322 #:phases
2323 #~(modify-phases %standard-phases
2324 (add-before 'check 'set-HOME
2325 (lambda _
2326 (setenv "HOME" "/tmp"))))))
2327 (native-inputs
2328 (list nss-certs-for-test
2329 python-hissw
2330 python-pytest
2331 python-pytest-astropy
2332 python-pytest-doctestplus
2333 python-setuptools
2334 python-setuptools-scm))
2335 (propagated-inputs
2336 (list python-astropy
2337 python-matplotlib
2338 python-numpy
2339 python-sunpy))
2340 (home-page "https://aia.lmsal.com/")
2341 (synopsis "Library for AIA data analysis")
2342 (description
2343 "aiapy is a Python package for analyzing data from the @acronym{AIA,
2344Atmospheric Imaging Assembly} instrument onboard NASA's @acronym{SDO, Solar
2345Dynamics Observatory} spacecraft.")
2346 (license license:bsd-3)))
2347
2348(define-public python-aplpy
2349 (package
2350 (name "python-aplpy")
2351 (version "2.2.1")
2352 (source
2353 (origin
2354 (method git-fetch)
2355 (uri (git-reference
2356 (url "https://github.com/aplpy/aplpy")
2357 (commit (string-append "v" version))))
2358 (file-name (git-file-name name version))
2359 (sha256
2360 (base32 "181718r5pjzvsw66hn0aq2q1lxpj0fvcp1jyb5cqldq2yhkjk863"))))
2361 (build-system pyproject-build-system)
2362 (arguments
2363 (list
2364 #:test-flags #~(list "--pyargs" "aplpy")
2365 #:phases
2366 #~(modify-phases %standard-phases
2367 (add-after 'unpack 'patch-manifest.in
2368 ;; See: <https://codeberg.org/guix/guix/issues/4393>.
2369 (lambda* (#:key name source inputs #:allow-other-keys)
2370 (let ((port (open-file "MANIFEST.in" "w")))
2371 (for-each
2372 (lambda (file)
2373 (display "include " port)
2374 (display file port)
2375 (display "\n" port))
2376 (find-files "."))
2377 (close port))))
2378 (add-after 'unpack 'set-env
2379 (lambda _
2380 (setenv "HOME" "/tmp"))))))
2381 (native-inputs
2382 (list python-pytest-astropy
2383 python-pytest-mpl
2384 python-setuptools
2385 python-setuptools-scm))
2386 (propagated-inputs
2387 (list python-astropy
2388 python-matplotlib
2389 python-numpy
2390 python-pillow
2391 python-pyavm
2392 python-pyregion
2393 python-reproject
2394 python-scikit-image
2395 python-shapely))
2396 (home-page "http://aplpy.github.io")
2397 (synopsis "Astronomical Plotting Library in Python")
2398 (description
2399 "@acronym{APLpy, the Astronomical Plotting Library in Python} is a Python
2400module aimed at producing publication-quality plots of astronomical imaging
2401data in FITS format. The module uses @code{matplotlib}, a powerful and
2402interactive plotting package. It is capable of creating output files in
2403several graphical formats, including EPS, PDF, PS, PNG, and SVG.
2404
2405Main features:
2406@itemize
2407@item Make plots interactively or using scripts
2408@item Show grayscale, colorscale, and 3-color RGB images of FITS files
2409@item Generate co-aligned FITS cubes to make 3-color RGB images
2410@item Make plots from FITS files with arbitrary WCS (e.g. position-velocity)
2411@item Slice multi-dimensional FITS cubes
2412@item Overlay any number of contour sets
2413@item Overlay markers with fully customizable symbols
2414@item Plot customizable shapes like circles, ellipses, and rectangles
2415@item Overlay ds9 region files
2416@item Overlay coordinate grids
2417@item Show colorbars, scalebars, and beams
2418@item Customize the appearance of labels and ticks
2419@item Hide, show, and remove different contour and marker layers
2420@item Pan, zoom, and save any view as a full publication-quality plot
2421@item Save plots as EPS, PDF, PS, PNG, and SVG
2422@end itemize")
2423 (license license:expat)))
2424
2425(define-public python-asdf
2426 (package
2427 (name "python-asdf")
2428 (version "5.3.1")
2429 (source
2430 (origin
2431 (method git-fetch)
2432 (uri (git-reference
2433 (url "https://github.com/asdf-format/asdf")
2434 (commit version)))
2435 (file-name (git-file-name name version))
2436 (sha256
2437 (base32 "0dbzpqmi38z6iab52f3mlsx4xq1kld6dag5l6msq9z5m7lr4kcnb"))))
2438 (build-system pyproject-build-system)
2439 (arguments
2440 (list
2441 ;; tests: 2150 passed, 2 xfailed
2442 #:test-flags
2443 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count))))
2444 #:phases
2445 #~(modify-phases %standard-phases
2446 (add-after 'unpack 'patch-manifest.in
2447 ;; See: <https://codeberg.org/guix/guix/issues/4393>.
2448 (lambda* (#:key name source inputs #:allow-other-keys)
2449 (let ((port (open-file "MANIFEST.in" "w")))
2450 (for-each
2451 (lambda (file)
2452 (display "include " port)
2453 (display file port)
2454 (display "\n" port))
2455 (find-files "."))
2456 (close port)))))))
2457 (native-inputs
2458 (list python-psutil
2459 python-pytest
2460 python-pytest-remotedata
2461 python-pytest-xdist
2462 python-setuptools
2463 python-setuptools-scm
2464 python-syrupy))
2465 (propagated-inputs
2466 (list python-asdf-standard
2467 python-attrs ;for vendorized jsonschema
2468 python-importlib-metadata
2469 python-jmespath
2470 python-numpy
2471 python-packaging
2472 python-pyyaml
2473 python-semantic-version
2474 ;; [optional]
2475 python-fsspec
2476 python-lz4))
2477 (home-page "https://github.com/asdf-format/asdf")
2478 (synopsis "Python tools to handle ASDF files")
2479 (description
2480 "The Advanced Scientific Data Format (ASDF) is a next-generation
2481interchange format for scientific data. This package contains the Python
2482implementation of the ASDF Standard.")
2483 (license license:bsd-3)))
2484
2485(define-public python-asdf-astropy
2486 (package
2487 (name "python-asdf-astropy")
2488 (version "0.11.0")
2489 (source
2490 (origin
2491 (method git-fetch)
2492 (uri (git-reference
2493 (url "https://github.com/astropy/asdf-astropy")
2494 (commit version)))
2495 (file-name (git-file-name name version))
2496 (sha256
2497 (base32 "1a2ly230c6rrizv78mgzfcdysn2fhp1lfcc1004igr98adabwy3l"))))
2498 (build-system pyproject-build-system)
2499 (arguments
2500 (list
2501 ;; tests: 4438 passed, 2 skipped
2502 #:test-flags
2503 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count))))
2504 #:phases
2505 #~(modify-phases %standard-phases
2506 (add-after 'install 'include-package-data
2507 ;; XXX: Check why resources stopped being copied with setuptools
2508 ;; in 0.11.0 version.
2509 (lambda* (#:key inputs outputs #:allow-other-keys)
2510 (copy-recursively "asdf_astropy/resources"
2511 (string-append (site-packages inputs outputs)
2512 "/asdf_astropy/resources"))))
2513 (add-before 'check 'set-HOME
2514 (lambda _
2515 (setenv "HOME" "/tmp"))))))
2516 (native-inputs
2517 (list python-pytest
2518 python-pytest-asdf-plugin
2519 python-pytest-astropy
2520 python-pytest-xdist
2521 python-scipy
2522 python-setuptools
2523 python-setuptools-scm))
2524 (propagated-inputs
2525 (list python-asdf
2526 python-asdf-coordinates-schemas
2527 python-asdf-standard
2528 python-asdf-transform-schemas
2529 python-astropy-minimal
2530 python-numpy
2531 python-packaging))
2532 (home-page "https://github.com/astropy/asdf-astropy")
2533 (synopsis "ASDF serialization support for astropy")
2534 (description
2535 "This package includes plugins that provide ASDF serialization support for
2536Astropy objects.")
2537 (license license:bsd-3)))
2538
2539(define-public python-asdf-bootstrap
2540 (hidden-package
2541 (package/inherit python-asdf
2542 (name "python-asdf-bootstrap")
2543 (arguments
2544 (substitute-keyword-arguments arguments
2545 ((#:tests? #t #t) #f)))
2546 (native-inputs
2547 (list python-setuptools
2548 python-setuptools-scm))
2549 (propagated-inputs
2550 (modify-inputs propagated-inputs
2551 (replace "python-asdf-standard"
2552 python-asdf-standard-bootstrap))))))
2553
2554(define-public python-asdf-compression
2555 (package
2556 (name "python-asdf-compression")
2557 (version "0.1.0")
2558 (source
2559 (origin
2560 (method git-fetch)
2561 (uri (git-reference
2562 (url "https://github.com/asdf-format/asdf-compression")
2563 (commit version)))
2564 (file-name (git-file-name name version))
2565 (sha256
2566 (base32 "0fd2d5raglp1nwjy0hr3kckk518xrph451zymlw58jgwg5l1vq3m"))))
2567 (build-system pyproject-build-system)
2568 (native-inputs
2569 (list python-numpy
2570 python-pytest
2571 python-setuptools
2572 python-setuptools-scm))
2573 (propagated-inputs
2574 (list python-asdf
2575 python-blosc
2576 python-lz4
2577 python-zstandard))
2578 (home-page "https://github.com/asdf-format/asdf-compression")
2579 (synopsis "ASDF extension to support various compression algorithms")
2580 (description
2581 "This package includes a plugin for the Python library ASDF to add support for
2582reading and writing various compression algorithms including:
2583@url{https://www.blosc.org/python-blosc/reference.html,
2584Blosc},@url{https://python-lz4.readthedocs.io/en/stable/lz4.frame.html, LZ4
2585Frame},@url{http://facebook.github.io/zstd/, Zstandard}.")
2586 (license license:bsd-3)))
2587
2588(define-public python-asdf-coordinates-schemas
2589 (package
2590 (name "python-asdf-coordinates-schemas")
2591 (version "0.5.1")
2592 (source
2593 (origin
2594 (method url-fetch)
2595 (uri (pypi-uri "asdf_coordinates_schemas" version))
2596 (sha256
2597 (base32 "1qilyzmb0nzpj7ss22xqwvi2dy7b706f2v4y5f7wn9rg67y75kyr"))))
2598 (build-system pyproject-build-system)
2599 (arguments
2600 (list
2601 ;; tests: 257 passed
2602 #:test-flags
2603 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count))))))
2604 (native-inputs
2605 (list python-pytest
2606 python-pytest-asdf-plugin
2607 python-pytest-xdist
2608 python-setuptools
2609 python-setuptools-scm))
2610 (propagated-inputs
2611 (list python-asdf
2612 python-asdf-standard))
2613 (home-page "https://github.com/asdf-format/asdf-coordinates-schemas")
2614 (synopsis "ASDF coordinates schemas")
2615 (description
2616 "This package provides ASDF schemas for validating coordinates tags.
2617Users should not need to install this directly; instead, install an
2618implementation package such as asdf-astropy.")
2619 (license license:bsd-3)))
2620
2621(define-public python-asdf-standard
2622 (package
2623 (name "python-asdf-standard")
2624 (version "1.5.0")
2625 (source
2626 (origin
2627 (method url-fetch)
2628 (uri (pypi-uri "asdf_standard" version))
2629 (sha256
2630 (base32 "0rjrzqrqx18k3qkkrnyif62y837lqxrl6j1lyrr9zws3s7vwlhjr"))))
2631 (build-system pyproject-build-system)
2632 ;; tests: 470 passed, 19 skipped
2633 (native-inputs
2634 (list python-asdf-bootstrap
2635 python-packaging
2636 python-pytest
2637 python-pytest-asdf-plugin
2638 python-pyyaml
2639 python-setuptools
2640 python-setuptools-scm))
2641 (home-page "https://asdf-standard.readthedocs.io/")
2642 (synopsis "ASDF standard schemas")
2643 (description
2644 "This package provides Python implementation of @acronym{ASDF, Advanced
2645Scientific Data Format} - a proposed next generation interchange format for
2646scientific data. ASDF aims to exist in the same middle ground that made FITS
2647so successful, by being a hybrid text and binary format: containing human
2648editable metadata for interchange, and raw binary data that is fast to load
2649and use. Unlike FITS, the metadata is highly structured and is designed
2650up-front for extensibility.")
2651 (license license:bsd-3)))
2652
2653(define-public python-asdf-standard-bootstrap
2654 (hidden-package
2655 (package/inherit python-asdf-standard
2656 (name "python-asdf-standard-bootstrap")
2657 (arguments
2658 (list #:tests? #f))
2659 (native-inputs
2660 (list python-setuptools
2661 python-setuptools-scm)))))
2662
2663(define-public python-asdf-transform-schemas
2664 (package
2665 (name "python-asdf-transform-schemas")
2666 (version "0.6.0")
2667 (source
2668 (origin
2669 (method url-fetch)
2670 (uri (pypi-uri "asdf_transform_schemas" version))
2671 (sha256
2672 (base32 "0clp3a2ldfhvsh5c7zqd7nr2bvv62a89aaf8p4a2vzgzjvhghl0g"))))
2673 (build-system pyproject-build-system)
2674 (arguments
2675 (list
2676 ;; XXX: Check why all tests fail in this file.
2677 #:test-flags #~(list "--deselect=tests/test_invalid.py")))
2678 (native-inputs
2679 (list python-asdf-bootstrap
2680 python-pytest
2681 python-setuptools
2682 python-setuptools-scm))
2683 (propagated-inputs
2684 (list python-asdf-standard))
2685 (home-page "https://github.com/asdf-format/asdf-transform-schemas")
2686 (synopsis "ASDF schemas for transforms")
2687 (description
2688 "This package provides ASDF schemas for validating transform tags.
2689Users should not need to install this directly; instead, install an
2690implementation package such as asdf-astropy.")
2691 (license license:bsd-3)))
2692
2693(define-public python-asdf-transform-schemas-bootstrap
2694 (hidden-package
2695 (package/inherit python-asdf-transform-schemas
2696 (name "python-asdf-transform-schemas-bootstrap")
2697 (arguments
2698 (list #:tests? #f))
2699 (native-inputs
2700 (list python-setuptools
2701 python-setuptools-scm))
2702 (propagated-inputs
2703 (list python-asdf-standard-bootstrap)))))
2704
2705(define-public python-asdf-wcs-schemas
2706 (package
2707 (name "python-asdf-wcs-schemas")
2708 (version "0.5.0")
2709 (source
2710 (origin
2711 (method url-fetch)
2712 (uri (pypi-uri "asdf_wcs_schemas" version))
2713 (sha256
2714 (base32 "1dar2pzf2plwyl1rbmnv8fqvx1ljgpf3z39d4ybmn690djjdsyxg"))))
2715 (build-system pyproject-build-system)
2716 (arguments
2717 (list
2718 #:test-flags #~(list "tests")))
2719 (native-inputs
2720 (list python-asdf
2721 python-pytest
2722 python-pytest-openfiles
2723 python-setuptools
2724 python-setuptools-scm))
2725 (propagated-inputs
2726 (list python-asdf-coordinates-schemas
2727 python-asdf-standard
2728 python-asdf-transform-schemas))
2729 (home-page "https://github.com/asdf-format/asdf-wcs-schemas")
2730 (synopsis "ASDF WCS Schemas")
2731 (description
2732 "This package provides ASDF schemas for validating World Coordinate
2733System (WCS) tags. Users should not need to install this directly; instead,
2734install an implementation package such as gwcs.")
2735 (license license:bsd-3)))
2736
2737(define-public python-asdf-zarr
2738 (package
2739 (name "python-asdf-zarr")
2740 ;; 0.0.4 (2024-06-28); to support latest Zarr.
2741 (properties '((commit . "06a7b4baf6d98c95dc03bb76de671e614f771a4f")
2742 (revision . "1")))
2743 (version (git-version "0.0.4"
2744 (assoc-ref properties 'revision)
2745 (assoc-ref properties 'commit)))
2746 (source
2747 (origin
2748 (method git-fetch)
2749 (uri (git-reference
2750 (url "https://github.com/asdf-format/asdf-zarr")
2751 (commit (assoc-ref properties 'commit))))
2752 (file-name (git-file-name name version))
2753 (sha256
2754 (base32 "11gj9d3lhv3a3ygfpyiddrfqridg6f363s9mjdl8ygji08lz5mrb"))))
2755 (build-system pyproject-build-system)
2756 (native-inputs
2757 (list python-pytest
2758 python-pytest-asyncio
2759 python-setuptools
2760 python-setuptools-scm))
2761 (propagated-inputs
2762 (list python-asdf
2763 python-fsspec
2764 python-zarr))
2765 (home-page "https://github.com/asdf-format/asdf-zarr")
2766 (synopsis "Asdf extension to support Zarr arrays")
2767 (description
2768 "This package includes an extension for the Python library asdf to add
2769support for reading and writing chunked
2770@url{https://zarr.readthedocs.io/en/stable/,Zarr} arrays, a file storage
2771format for chunked, compressed, N-dimensional arrays based on an open-source
2772specification.")
2773 (license license:bsd-3)))
2774
2775(define-public python-astlib
2776 (package
2777 (name "python-astlib")
2778 (version "0.13.2")
2779 (source
2780 (origin
2781 (method url-fetch)
2782 (uri (pypi-uri "astlib" version))
2783 (sha256
2784 (base32 "0kaqb6k5rsgggg8k00x30s8055l2w6f70bsqpqv82lgnrdwgkx7j"))))
2785 (build-system pyproject-build-system)
2786 (native-inputs
2787 (list python-pytest
2788 python-setuptools))
2789 (propagated-inputs
2790 (list python-astropy
2791 python-matplotlib
2792 python-numpy
2793 python-scipy))
2794 (home-page "https://astlib.readthedocs.io")
2795 (synopsis "Plots with World Coordinate System information")
2796 (description
2797 "This package provides a set of Python modules for producing simple plots,
2798statistics, common calculations, coordinate conversions, and manipulating FITS
2799images with World Coordinate System (WCS) information.")
2800 (license license:lgpl2.1)))
2801
2802(define-public python-astral
2803 (package
2804 (name "python-astral")
2805 (version "3.2")
2806 (source
2807 (origin
2808 (method url-fetch)
2809 (uri (pypi-uri "astral" version))
2810 (sha256
2811 (base32 "121xag65rmv6pszbi3d206yz3jfwmpkf0jxjrxrd2scy5r0knz4v"))))
2812 (build-system pyproject-build-system)
2813 (arguments
2814 (list
2815 #:test-flags
2816 ;; XXX: Disable tests which require newer version of python-pytz.
2817 ;; No time zone found with key Pacific/Auckland
2818 #~(list "-k" (string-append
2819 "not test_TimezoneLookup"
2820 " and not test_Sun"
2821 " and not test_Dawn"
2822 " and not test_Sunrise"
2823 " and not test_SolarNoon"
2824 " and not test_Dusk"
2825 " and not test_Sunset"
2826 " and not test_SolarElevation"
2827 " and not test_SolarAzimuth"
2828 " and not test_TimeAtAltitude"
2829 " and not test_MoonNoDate"
2830 " and not test_lookup"
2831 " and not test_tzinfo"
2832 " and not test_australia"
2833 " and not test_adak"
2834 " and not test_australia"
2835 " and not test_Elevation_NonNaive"
2836 " and not test_Wellington"
2837 " and not test_Sun_Local_tzinfo"
2838 " and not test_Sun_Local_str"
2839 " and not test_SolarZenith_London"
2840 " and not test_SolarZenith_Riyadh"
2841 " and not test_moonrise_utc"
2842 " and not test_moonrise_wellington"
2843 " and not test_moonset_wellington"))
2844 #:phases
2845 #~(modify-phases %standard-phases
2846 (add-before 'check 'prepare-test-environment
2847 (lambda _
2848 (setenv "HOME" "/tmp"))))))
2849 (native-inputs
2850 (list python-freezegun
2851 python-poetry-core
2852 python-pytest
2853 python-setuptools-scm))
2854 (propagated-inputs
2855 (list python-pytest python-pytz))
2856 (home-page "https://github.com/sffjunkie/astral")
2857 (synopsis "Calculations for the position of the sun and moon")
2858 (description "Astral is a Python module that calculates times for various
2859positions of the sun: dawn, sunrise, solar noon, sunset, dusk, solar
2860elevation, solar azimuth, rahukaalam, and the phases of the moon.")
2861 (license license:asl2.0)))
2862
2863(define-public python-astroalign
2864 (package
2865 (name "python-astroalign")
2866 (version "2.6.2")
2867 (source
2868 (origin
2869 (method git-fetch)
2870 (uri (git-reference
2871 (url "https://github.com/quatrope/astroalign")
2872 (commit (string-append "v" version))))
2873 (file-name (git-file-name name version))
2874 (sha256
2875 (base32 "0jcnv0gll0p7aqykmn9qffyzfq4gm3py5g20v6xxwf91vr85xrl3"))))
2876 (build-system pyproject-build-system)
2877 (native-inputs
2878 (list python-astropy-minimal
2879 python-ccdproc
2880 python-pillow
2881 python-pytest
2882 python-setuptools))
2883 (propagated-inputs
2884 (list python-numpy
2885 python-scikit-image
2886 python-scipy
2887 python-sep))
2888 (home-page "https://astroalign.readthedocs.io/")
2889 (synopsis "Astrometric Alignment of Images")
2890 (description
2891 "ASTROALIGN is a python module that will try to align two stellar
2892astronomical images, especially when there is no WCS information available.")
2893 (license license:expat)))
2894
2895(define-public python-astrocut
2896 (package
2897 (name "python-astrocut")
2898 (version "1.2.0")
2899 (source
2900 (origin
2901 (method url-fetch)
2902 (uri (pypi-uri "astrocut" version))
2903 (sha256
2904 (base32 "1mq8vwjyinzzvmaadmn5ijj6618qa90w4nyq8iszw2zz0fq13028"))))
2905 (build-system pyproject-build-system)
2906 (arguments
2907 (list
2908 ;; tests: 126 passed, 2 skipped, 39 deselected, 1 xfailed, 205 warnings
2909 #:test-flags
2910 #~(list "--deselect=docs/astrocut/index.rst::index.rst"
2911 #$@(map (lambda (ls)
2912 (string-append "--deselect="
2913 "astrocut/tests/"
2914 (string-join ls "::")))
2915 ;; botocore.exceptions.EndpointConnectionError: Could
2916 ;; not connect to the endpoint URL:
2917 ;; "https://stpubdata.s3.amazonaws.com/<...>"
2918 '(("test_cube_cut.py" "test_s3_cube_cut")
2919 ("test_cube_cut.py" "test_multithreading")
2920 ("test_cutouts.py" "test_fits_cut")
2921 ("test_fits_cutout.py" "test_fits_cutout_cloud")
2922 ("test_tess_cube_cutout.py"
2923 "test_tess_cube_cutout_s3")
2924 ("test_tess_cube_cutout.py"
2925 "test_tess_cube_cutout_threads")
2926 ("test_tess_footprint_cutout.py"
2927 "test_cube_cut_from_footprint")
2928 ("test_tess_footprint_cutout.py"
2929 "test_get_tess_sectors")
2930 ("test_tess_footprint_cutout.py"
2931 "test_get_tess_sectors_invalid_coordinates")
2932 ("test_tess_footprint_cutout.py"
2933 "test_get_tess_sectors_no_matches")
2934 ("test_tess_footprint_cutout.py"
2935 "test_ra_dec_crossmatch_point")
2936 ("test_tess_footprint_cutout.py"
2937 "test_ra_dec_crossmatch_poly")
2938 ("test_tess_footprint_cutout.py"
2939 "test_tess_footprint_cutout")
2940 ("test_tess_footprint_cutout.py"
2941 "test_tess_footprint_cutout_all_sequences")
2942 ("test_tess_footprint_cutout.py"
2943 "test_tess_footprint_cutout_invalid_sequence")
2944 ("test_tess_footprint_cutout.py"
2945 "test_tess_footprint_cutout_multi_sequence")
2946 ("test_tess_footprint_cutout.py"
2947 "test_tess_footprint_cutout_outside_coords")
2948 ("test_tess_footprint_cutout.py"
2949 "test_tess_footprint_cutout_write_as_tpf")
2950 ;; assert (np.int64(16) - np.int64(12)) == 5
2951 ("test_utils.py" "test_get_cutout_limits")
2952 ;; assert np.False_ where np.False_ = <built-in
2953 ;; method all of numpy.ndarray object at
2954 ;; 0x7fff553cde90>()
2955 ("test_utils.py" "test_get_cutout_wcs"))))
2956 #:phases
2957 #~(modify-phases %standard-phases
2958 ;; TODO: Report upstream: ModuleNotFoundError: No module named
2959 ;; 'packagename'.
2960 (add-after 'unpack 'fix-setup.cfg
2961 (lambda _
2962 (substitute* "setup.cfg"
2963 (("astropy-package-template-example.*") "")))))))
2964 (native-inputs
2965 (list nss-certs-for-test
2966 python-pytest
2967 python-astroquery
2968 python-pytest-astropy
2969 python-setuptools
2970 python-setuptools-scm))
2971 (propagated-inputs
2972 (list python-asdf
2973 python-astropy
2974 python-cachetools
2975 python-fsspec
2976 python-gwcs
2977 python-pillow
2978 python-requests
2979 python-roman-datamodels
2980 python-s3fs
2981 python-s3path
2982 python-scipy
2983 python-spherical-geometry))
2984 (home-page "https://astrocut.readthedocs.io")
2985 (synopsis "Cutout tools for astronomical images")
2986 (description
2987 "Astrocut provides tools for making cutouts from sets of astronomical
2988images with shared footprints. It is under active development.
2989
2990Three main areas of functionality are included:
2991@itemize
2992@item solving the specific problem of creating image cutouts from sectors of
2993@acronym{Transiting Exoplanet Survey Satellite, TESS} full-frame images
2994@item general fits file cutouts including from single images and sets of
2995images with the shared WCS/pixel scale
2996@item cutout post-processing functionality, including centering cutouts along
2997a path (for moving targets) and combining cutouts
2998@end itemize")
2999 (license license:bsd-3)))
3000
3001(define-public python-astrodata
3002 (package
3003 (name "python-astrodata")
3004 (version "3.0.0")
3005 (source
3006 (origin
3007 (method git-fetch)
3008 (uri (git-reference
3009 (url "https://github.com/GeminiDRSoftware/astrodata")
3010 (commit version)))
3011 (file-name (git-file-name name version))
3012 (sha256
3013 (base32 "0bcs283v8fgz4a175pdgiiin8sx4vcbviarsqzwzzhamsha6azwh"))))
3014 (build-system pyproject-build-system)
3015 (arguments
3016 (list
3017 ;; tests: 985 passed, 6 skipped, 61 deselected
3018 #:test-flags
3019 ;; Tests depend on unpackaged DRAGON's module "gemini_instruments".
3020 #~(list "--ignore=tests/integration/"
3021 ;; Access to https://archive.gemini.edu/file is required to
3022 ;; download test data.
3023 "--deselect=tests/unit/test_provenance.py::test_convert_provhistory"
3024 #$@(map (lambda (test) (string-append "--deselect="
3025 "tests/unit/"
3026 "test_fits.py::"
3027 test))
3028 (list "test_attributes"
3029 "test_can_add_and_del_extension"
3030 "test_copy"
3031 "test_crop"
3032 "test_crop_ext"
3033 "test_do_arith_and_retain_features"
3034 "test_extver3"
3035 "test_from_hdulist"
3036 "test_header"
3037 "test_header_collection"
3038 "test_paths"
3039 "test_phu"
3040 "test_read_no_extensions"
3041 "test_set_a_keyword_on_phu_deprecated"
3042 "test_slice"
3043 "test_slice_data"
3044 "test_slice_multiple"
3045 "test_slice_single_element"))
3046 #$@(map (lambda (test) (string-append "--deselect="
3047 "tests/unit/"
3048 "test_object_construction.py::"
3049 test))
3050 (list "test_append_array_to_extension_with_arbitrary_name"
3051 "test_append_array_to_extension_with_name_sci"
3052 "test_append_array_to_root_no_name"
3053 "test_append_array_to_root_with_arbitrary_name"
3054 "test_append_array_to_root_with_name_sci"
3055 "test_append_dq_var"
3056 "test_append_nddata_to_root_no_name"
3057 "test_append_nddata_to_root_with_arbitrary_name"
3058 "test_append_non_single_slice"
3059 "test_append_single_slice"
3060 "test_append_slice_to_extension"
3061 "test_append_whole_instance"
3062 "test_can_read_data"
3063 "test_delete_arbitrary_attribute_from_ad"
3064 "test_delete_named_associated_extension"))
3065 #$@(map (lambda (test) (string-append "--deselect="
3066 "tests/unit/"
3067 "test_testing.py::"
3068 test))
3069 (list "test_ADCompare_header_matching"
3070 "test_ADCompare_header_matching_flip"
3071 "test_ADCompare_init"
3072 "test_ADCompare_missing_refcat"
3073 "test_ADCompare_numext"
3074 "test_ADCompare_run_comparison"
3075 "test_ADCompare_wcs"
3076 "test_ad_compare"
3077 "test_download_file_path_subpath"
3078 "test_download_from_archive"
3079 "test_download_from_archive_None_sub_path"
3080 "test_download_memory_leaks"
3081 "test_warning_if_no_cache_path"))
3082 #$@(map (lambda (test) (string-append "--deselect="
3083 "tests/unit/"
3084 "test_wcs.py::"
3085 test))
3086 (list "test_gwcs_creation"
3087 "test_loglinear_axis"
3088 "test_reading_and_writing_sliced_image"
3089 "test_remove_unused_world_axis"))
3090 "-k" "not test_script_executes[script0-]")))
3091 (native-inputs
3092 (list python-docutils
3093 python-poetry-core
3094 python-poetry-dynamic-versioning
3095 python-objgraph
3096 python-pytest
3097 python-pytest-doctestplus
3098 python-tomli))
3099 (propagated-inputs
3100 (list python-asdf
3101 python-astropy
3102 python-gwcs
3103 python-jsonschema
3104 python-numpy))
3105 (home-page "https://github.com/GeminiDRSoftware/astrodata")
3106 (synopsis "Managing astronomical data through a uniform interface")
3107 (description
3108 "@code{astrodata} is a package for managing astronomical data through a
3109uniform interface. It is designed to be used with the
3110@url{https://www.astropy.org/, Astropy package}. @code{astrodata} was created
3111for use as part of the @url{https://github.com/GeminiDRSoftware/DRAGONS,
3112DRAGONS} data reduction pipeline, but it is now implemented to be useful for
3113any astronomical data reduction or analysis project.
3114
3115Unlike managing files using the @code{astropy.io.fits} package alone,
3116@code{astrodata} is designed to be extendible to any data format, and to
3117parse, respond to, and store metadata in a consistent, intentional way. This
3118makes it especially useful for managing data from multiple instruments,
3119telescopes, and data generation utilities.")
3120 (license license:bsd-3)))
3121
3122(define-public python-astrodendro
3123 (package
3124 (name "python-astrodendro")
3125 (version "0.3.1")
3126 (source
3127 (origin
3128 (method url-fetch)
3129 (uri (pypi-uri "astrodendro" version))
3130 (sha256
3131 (base32 "0pav2rq5q0wyr38g6z8ai4z2iqqc9x04iwll158yvkvgnv352m0i"))))
3132 (build-system pyproject-build-system)
3133 (native-inputs
3134 (list python-pytest python-setuptools python-setuptools-scm))
3135 (propagated-inputs
3136 (list python-astropy
3137 python-h5py
3138 python-matplotlib
3139 python-numpy))
3140 (home-page "https://dendrograms.readthedocs.io/")
3141 (synopsis "Astronomical dendrograms computation")
3142 (description
3143 "This package provides an way to compute dendrograms of observed or
3144simulated Astronomical data in Python.")
3145 (license license:expat)))
3146
3147(define-public python-astromartini
3148 (package
3149 (name "python-astromartini")
3150 (version "3.0.0")
3151 (source
3152 (origin
3153 (method git-fetch)
3154 (uri (git-reference
3155 (url "https://github.com/kyleaoman/martini")
3156 (commit (string-append "v" version))))
3157 (file-name (git-file-name name version))
3158 (sha256
3159 (base32 "0d3dqvfplhk9jbsczw3871qzds28hfld37a9nhpa8wcibwz41c0d"))))
3160 (build-system pyproject-build-system)
3161 (arguments
3162 (list
3163 ;; Tests are not thread save, see
3164 ;; <https://github.com/kyleaoman/martini/issues/98>.
3165 ;;
3166 ;; tests: 2786 passed, 6 skipped, 4 xfailed
3167 #:phases
3168 #~(modify-phases %standard-phases
3169 (add-before 'check 'pre-check
3170 (lambda _
3171 ;; If the secret isn't available (e.g. github workflow on fork)
3172 ;; then skip: see
3173 ;; <tests/test_sources.py::TestTNGSource::test_tng_notebook>.
3174 (setenv "TNG_API_KEY" ""))))))
3175 (native-inputs
3176 (list python-pytest
3177 python-setuptools))
3178 (propagated-inputs
3179 (list python-astropy
3180 python-numpy
3181 python-scipy
3182 python-tqdm
3183 ;; [optional]
3184 python-eaglesqltools
3185 ;; python-g3read ;not packaged yet in Guix
3186 python-gizmo-analysis
3187 python-h5py
3188 python-halo-analysis
3189 python-hdecompose
3190 python-matplotlib
3191 python-numba
3192 python-pyread-eagle
3193 python-requests
3194 python-swiftgalaxy
3195 python-utilities-awetzel))
3196 (home-page "https://github.com/kyleaoman/martini")
3197 (synopsis "Synthetic datacube creation from simulations")
3198 (description
3199 "MARTINI is a modular package for the creation of synthetic resolved HI
3200line observations (data cubes) of smoothed-particle hydrodynamics simulations
3201of galaxies. The various aspects of the mock-observing process are divided
3202logically into sub-modules handling the data cube, source, beam,
3203noise,spectral model and SPH kernel. MARTINI is object-oriented: each
3204sub-module provides a class (or classes) which can be configured as desired.
3205For most sub-modules, base classes are provided to allow for straightforward
3206customization. Instances of each sub-module class are given as parameters to
3207the Martini class; a mock observation is then constructed by calling a handful
3208of functions to execute the desired steps in the mock-observing process.")
3209 (license license:gpl3)))
3210
3211(define-public python-astroml
3212 (package
3213 (name "python-astroml")
3214 (version "1.0.2.post1")
3215 (source (origin
3216 (method url-fetch)
3217 (uri (pypi-uri "astroML" version))
3218 (sha256
3219 (base32
3220 "14g2mcd5qdr3nn7icvjs84bjvx17l9glx81sbbna6v53i1x8l625"))))
3221 (build-system pyproject-build-system)
3222 (arguments
3223 (list
3224 ;; tests: 196 passed, 4 skipped, 3 deselected, 29 warnings
3225 #:test-flags
3226 '(list "--ignore-glob=examples/*"
3227 ;; Disable tests which are not compatible with Astropy 6.0.0, see
3228 ;; <https://github.com/astroML/astroML/issues/273>.
3229 "--ignore=astroML/density_estimation/tests/test_bayesian_blocks.py"
3230 "--ignore=astroML/density_estimation/tests/test_bayesian_blocks.py"
3231 "--ignore=astroML/density_estimation/tests/test_hist_binwidth.py"
3232 "--ignore=astroML/density_estimation/tests/test_hist_binwidth.py"
3233 ;; Disable tests with NumPy, see
3234 ;; <https://github.com/astroML/astroML/issues/281>.
3235 "--ignore=astroML/tests/test_resample.py"
3236 "-k" (string-append "not astroML.density_estimation.empirical.EmpiricalDistribution"
3237 " and not astroML.utils.utils.log_multivariate_gaussian"
3238 " and not test_generate_RW"))
3239 #:phases
3240 '(modify-phases %standard-phases
3241 (add-after 'unpack 'patch-build-system
3242 (lambda _
3243 (substitute* "setup.cfg"
3244 ;; Do not error out on deprecations
3245 ((" error::DeprecationWarning.*") "")
3246 ;; Do not test examples
3247 (("testspaths = astroML doc examples")
3248 "testspaths = astroML"))))
3249 (add-after 'unpack 'matplotlib-compatibility
3250 (lambda _
3251 (substitute* "astroML/plotting/tools.py"
3252 (("^( *)ax.(lines|patches|tables|artists|images).clear.*" _ indent type)
3253 (string-append indent "for art in ax." type ":\n"
3254 indent " art.remove()\n")))))
3255 ;; See commit e1c779de1f0ce4cb499dbda6c23d14f76b98e430
3256 (add-after 'unpack 'scipy-compatibility
3257 (lambda _
3258 (substitute* "astroML/dimensionality/iterative_pca.py"
3259 (("sym_pos=True") "assume_a=\"pos\""))))
3260 (add-before 'check 'pre-check
3261 ;; Some tests need this
3262 (lambda _
3263 (setenv "HOME" "/tmp"))))))
3264 (native-inputs
3265 (list python-pytest
3266 python-pytest-astropy
3267 python-pytest-astropy-header
3268 python-pytest-doctestplus
3269 python-pytest-remotedata
3270 python-setuptools))
3271 (propagated-inputs
3272 (list python-astropy
3273 python-matplotlib
3274 python-numpy
3275 python-scikit-learn
3276 python-scipy))
3277 (home-page "https://astroml.org")
3278 (synopsis "Tools for machine learning and data mining in astronomy")
3279 (description "This package provides tools for machine learning and data
3280mining in astronomy.")
3281 (license license:bsd-2)))
3282
3283(define-public python-astronify
3284 (package
3285 (name "python-astronify")
3286 (version "0.11")
3287 (source
3288 (origin
3289 (method url-fetch)
3290 (uri (pypi-uri "astronify" version))
3291 (sha256
3292 (base32 "1nl8rbpg6b9v3mny90spv7g9aqx2lfnnrmxv0nm3d458mgikgagc"))))
3293 (build-system pyproject-build-system)
3294 (arguments
3295 (list
3296 #:phases
3297 #~(modify-phases %standard-phases
3298 ;; TODO: Report upstream: ModuleNotFoundError: No module named
3299 ;; 'packagename'.
3300 (add-after 'unpack 'fix-setup.cfg
3301 (lambda _
3302 (substitute* "setup.cfg"
3303 (("astropy-package-template-example.*") "")))))))
3304 (native-inputs
3305 (list python-pytest-astropy
3306 python-setuptools
3307 python-setuptools-scm))
3308 (propagated-inputs
3309 (list python-astropy
3310 python-matplotlib
3311 python-notebook
3312 python-pyo
3313 python-requests
3314 python-scipy))
3315 (home-page "https://github.com/spacetelescope/astronify")
3316 (synopsis "Sonification of astronomical data")
3317 (description
3318 "Astronify is a Python package for sonifying astronomical data - turning
3319telescope observations into sound.")
3320 (license license:bsd-3)))
3321
3322(define-public python-astroplan
3323 (package
3324 (name "python-astroplan")
3325 (version "0.10.1")
3326 (source
3327 (origin
3328 (method url-fetch)
3329 (uri (pypi-uri "astroplan" version))
3330 (sha256
3331 (base32 "0nb97fz0mlypdlvs09wyh0z7mxw0d6aqqkd9yfzhlqz1fwrprn9r"))))
3332 (build-system pyproject-build-system)
3333 (arguments
3334 (list
3335 ;; tests: 44 passed, 31 deselected, 135 warnings
3336 #:test-flags
3337 #~(list "--ignore=doc/"
3338 "--ignore=astroplan/constraints.py"
3339 "--ignore=astroplan/target.py"
3340 ;; Network access is required to download test data.
3341 "--ignore=astroplan/tests/test_scheduling.py"
3342 "--deselect=astroplan/plots/tests/test_sky.py::test_timezone"
3343 "-k" (string-join
3344 (list "not test_at_night_basic"
3345 "test_FixedTarget_from_name"
3346 "test_altitude_constraint"
3347 "test_caches_shapes"
3348 "test_compare_airmass_constraint_and_observer"
3349 "test_compare_altitude_constraint_and_observer"
3350 "test_docs_example"
3351 "test_eclipses"
3352 "test_eq_observer"
3353 "test_event_observable"
3354 "test_galactic_plane_separation"
3355 "test_get_skycoord"
3356 "test_hash_observer"
3357 "test_is_night"
3358 "test_local_time_constraint_hawaii_tz"
3359 "test_local_time_constraint_utc"
3360 "test_moon_illumination"
3361 "test_moon_separation"
3362 "test_observability_table"
3363 "test_observer_lon_lat_el"
3364 "test_regression_airmass_141"
3365 "test_regression_shapes"
3366 "test_sun_separation"
3367 "test_tonight")
3368 " and not "))
3369 #:phases
3370 #~(modify-phases %standard-phases
3371 (add-before 'check 'pre-check
3372 (lambda _
3373 (setenv "HOME" "/tmp"))))))
3374 (native-inputs
3375 (list nss-certs-for-test
3376 python-ephem
3377 python-pytest-astropy
3378 python-pytest-mpl
3379 python-setuptools
3380 python-setuptools-scm
3381 tzdata-for-tests))
3382 (propagated-inputs
3383 (list python-astropy
3384 python-astroquery
3385 python-matplotlib
3386 python-numpy
3387 python-pytz))
3388 (home-page "https://github.com/astropy/astroplan")
3389 (synopsis "Observation planning package for astronomers")
3390 (description
3391 "This package provides a flexible toolbox for observation planning and
3392scheduling. When complete, the goal is to be easy for Python beginners and new
3393observers to to pick up, but powerful enough for observatories preparing nightly
3394and long-term schedules.
3395
3396Features:
3397@itemize
3398@item calculate rise/set/meridian transit times, alt/az positions for targets at
3399observatories anywhere on Earth
3400@item built-in plotting convenience functions for standard observation planning
3401plots (airmass, parallactic angle, sky maps)
3402@item determining observability of sets of targets given an arbitrary set of
3403constraints (i.e., altitude, airmass, moon separation/illumination, etc.)
3404@end itemize")
3405 (license license:bsd-3)))
3406
3407(define-public python-astropy
3408 (package
3409 (name "python-astropy")
3410 (version "8.0.1")
3411 (source
3412 (origin
3413 (method url-fetch)
3414 (uri (pypi-uri "astropy" version))
3415 (sha256
3416 (base32 "1nji4flblxsq9mgiahx3r3wyfkdr5nir2iqab76r98hzp7ak3jj5"))
3417 (modules '((guix build utils)))
3418 (patches
3419 ;; Do not download updated iers data on the fly. Refresh the
3420 ;; python-astropy-iers-data package instead.
3421 ;; That is, the python-astropy-iers-data package contains tables with
3422 ;; an expiration date, for example with leap second information.
3423 ;; The astropy.time package will try to download updated data
3424 ;; once the current date is within 5 months of the expiration date.
3425 ;; For reproducibility reasons it is more idiomatic to disable the
3426 ;; downloading and instead regularly update python-astropy-iers-data.
3427 ;; In particular some tests python-astropy and some dependent packages
3428 ;; will fail 5 months 'into the future' because they will trigger this
3429 ;; downloading of data. This patch ensures that these packages can
3430 ;; still be build with guix time-machine.
3431 ;; E.g., this command, using a commit before this patch, will fail:
3432 ;; guix time-machine --commit=86813d5779253bb50002d79ab791eeda5a8b4729
3433 ;; -- build python-astropy
3434 (search-patches "python-astropy-dont-download-iers-data.patch"))
3435 (snippet
3436 '(begin
3437 ;; Remove Python bundles.
3438 (with-directory-excursion "astropy/extern"
3439 (for-each delete-file-recursively '("ply" "configobj")))
3440 ;; Remove cextern bundles. Check bundled versions against available
3441 ;; in Guix in the future update of astropy.
3442 ;; Linking against an external cfitsio version has been removed,
3443 ;; see https://github.com/astropy/astropy/pull/14311
3444 (with-directory-excursion "cextern"
3445 (for-each delete-file-recursively '("expat" "wcslib")))))))
3446 (build-system pyproject-build-system)
3447 (arguments
3448 (list
3449 ;; tests: 31959 passed, 410 skipped, 261 xfailed
3450 #:test-flags
3451 #~(list "--pyargs" "astropy"
3452 ;; XXX: Tests are not thread save when they are more than 8.
3453 "--numprocesses" (number->string (min 8 (parallel-job-count))))
3454 #:phases
3455 #~(modify-phases %standard-phases
3456 (add-after 'unpack 'install-coordinates/sites.json
3457 (lambda _
3458 (copy-file
3459 (string-append #$(this-package-native-input
3460 "specification-astropy-data")
3461 "/share/coordinates/sites.json")
3462 "astropy/coordinates/data/sites.json")))
3463 (add-after 'unpack 'preparations
3464 (lambda _
3465 ;; Use our own libraries in place of bundles.
3466 (setenv "ASTROPY_USE_SYSTEM_ALL" "1")
3467 ;; Relax xfail tests.
3468 (substitute* "pyproject.toml"
3469 (("xfail_strict = true") "xfail_strict = false"))
3470 ;; Replace reference to external ply.
3471 (substitute* (find-files "." "\\.py$")
3472 (("astropy.extern.ply") "ply"))
3473 ;; Replace reference to external configobj.
3474 (substitute* "astropy/config/configuration.py"
3475 (("from astropy.extern.configobj ") ""))))
3476 (add-before 'check 'pre-check
3477 (lambda _
3478 (delete-file-recursively "astropy")
3479 (setenv "HOME" "/tmp")
3480 (setenv "OMP_NUM_THREADS" "1"))))))
3481 (native-inputs
3482 (list nss-certs-for-test
3483 pkg-config
3484 python-array-api-strict
3485 python-cython
3486 python-extension-helpers
3487 python-objgraph
3488 python-pytest
3489 python-pytest-astropy
3490 python-pytest-astropy-header
3491 python-pytest-doctestplus
3492 python-pytest-xdist
3493 python-setuptools
3494 python-setuptools-scm
3495 python-sgp4
3496 python-skyfield
3497 python-threadpoolctl
3498 specification-astropy-data))
3499 (inputs
3500 (list expat
3501 ;; XXX: One test fails with [email protected]: ValueError: ERROR 5 in
3502 ;; wcsset() at line 2895 of file wcs.c.
3503 wcslib-8.6))
3504 (propagated-inputs
3505 (list python-astropy-iers-data-primary
3506 python-configobj ;to replace custom module
3507 python-numpy
3508 python-packaging
3509 python-ply ;to replace custom module
3510 python-pyerfa
3511 python-pyyaml
3512 ;; [optional]
3513 python-asdf-astropy
3514 python-beautifulsoup4
3515 python-bleach
3516 python-bottleneck
3517 python-certifi
3518 python-dask
3519 python-fsspec
3520 python-h5py
3521 python-html5lib
3522 ;; python-ipydatagrid ;not packaged yet in Guix
3523 python-ipykernel
3524 python-ipython
3525 python-ipywidgets
3526 python-jplephem
3527 python-jupyter-core
3528 python-matplotlib
3529 python-mpmath
3530 python-narwhals
3531 python-pandas
3532 python-pyarrow
3533 python-pytz
3534 python-s3fs
3535 python-scipy
3536 python-sortedcontainers
3537 python-uncompresspy))
3538 (home-page "https://www.astropy.org/")
3539 (synopsis "Core package for Astronomy in Python")
3540 (description
3541 "Astropy is a single core package for Astronomy in Python. It contains
3542much of the core functionality and some common tools needed for performing
3543astronomy and astrophysics.")
3544 (license license:bsd-3)))
3545
3546(define-public python-astropy-7
3547 ;; tests: 31440 passed, 426 skipped, 262 xfailed
3548 (package
3549 (inherit python-astropy)
3550 (name "python-astropy")
3551 (version "7.2.2")
3552 (source
3553 (origin
3554 (inherit (package-source python-astropy))
3555 (method url-fetch)
3556 (uri (pypi-uri "astropy" version))
3557 (sha256
3558 (base32 "1kamyh9xndli5a2ia8af83dbcqam6h0rqfv0jh2k78bgccjn13fl"))))
3559 (arguments
3560 (substitute-keyword-arguments arguments
3561 ((#:test-flags test-flags #~(list))
3562 #~(list "--pyargs" "astropy"
3563 "--numprocesses" (number->string (min 8 (parallel-job-count)))
3564 ;; AssertionError: assert dtype('O') == 'U3'
3565 (string-append "--deselect=io/misc/tests/test_parquet.py"
3566 "::test_parquet_read_pandas")))))))
3567
3568(define-public python-astropy-healpix
3569 (package
3570 (name "python-astropy-healpix")
3571 (version "2.0.1")
3572 (source
3573 (origin
3574 (method git-fetch)
3575 (uri (git-reference
3576 (url "https://github.com/astropy/astropy-healpix")
3577 (commit (string-append "v" version))))
3578 (file-name (git-file-name name version))
3579 (sha256
3580 (base32 "1qjjy21bypld50xvvhx1ms5kxssqp3j52wb4l8n3cj5shpzfp203"))))
3581 (build-system pyproject-build-system)
3582 (arguments
3583 (list
3584 #:test-flags
3585 #~(list "--pyargs" "astropy_healpix")
3586 #:phases
3587 #~(modify-phases %standard-phases
3588 (add-before 'check 'remove-local-source
3589 (lambda _
3590 (delete-file-recursively "astropy_healpix"))))))
3591 (native-inputs
3592 (list python-extension-helpers
3593 python-pytest
3594 python-setuptools
3595 python-setuptools-scm))
3596 (propagated-inputs
3597 (list python-astropy
3598 python-numpy))
3599 (home-page "https://github.com/astropy/astropy-healpix")
3600 (synopsis "HEALPix for Astropy")
3601 (description "This package provides HEALPix to the Astropy project.")
3602 (license license:bsd-3)))
3603
3604(define-public python-astropy-iers-data-primary
3605 ;; XXX: See: <https://codeberg.org/guix/guix/pulls/10344>.
3606 (hidden-package
3607 (package
3608 (name "python-astropy-iers-data-primary")
3609 (version "0.2026.7.6.1.1.20")
3610 (source
3611 (origin
3612 (method git-fetch)
3613 (uri (git-reference
3614 (url "https://github.com/astropy/astropy-iers-data")
3615 (commit (string-append "v" version))))
3616 (file-name (git-file-name name version))
3617 (sha256
3618 (base32 "0apwrw8r5bvhmih11ffa8ja6adi66fvjfi9k0w8ilhv2f88b970g"))))
3619 (build-system pyproject-build-system)
3620 (arguments
3621 (list #:tests? #f)) ; no tests
3622 (native-inputs
3623 (list python-hatch-vcs
3624 python-hatchling))
3625 (home-page "https://docs.astropy.org/en/latest/utils/iers.html")
3626 (synopsis "IERS Earth Rotation and Leap Second tables for Astropy core")
3627 (description
3628 "The @code{iers} package provides access to the tables provided by the
3629@acronym{International Earth Rotation and Reference Systems, IERS} service, in
3630particular the
3631@url{https://www.iers.org/IERS/EN/DataProducts/EarthOrientationData/eop.html,
3632Earth Orientation data} allowing interpolation of published UT1-UTC and polar
3633motion values for given times. The UT1-UTC values are used in
3634@url{https://docs.astropy.org/en/latest/time/index.html#astropy-time, Time and
3635Dates (astropy.time)} to provide UT1 values, and the polar motions are used in
3636@code{astropy.coordinates} to determine Earth orientation for
3637celestial-to-terrestrial coordinate transformations.")
3638 (license license:bsd-3))))
3639
3640(define-public python-astropy-iers-data
3641 ;; astropy-iers-data is updated quite often, refresh the main package with
3642 ;; Astropy or during planed refresh cycle. The latest version is safe to be
3643 ;; installed to user's profile, and it should come togather with
3644 ;; python-astropy.
3645 (package
3646 (inherit python-astropy-iers-data-primary)
3647 (name "python-astropy-iers-data")
3648 (version "0.2026.9.14.0.56.43")
3649 (source
3650 (origin
3651 (method git-fetch)
3652 (uri (git-reference
3653 (url "https://github.com/astropy/astropy-iers-data")
3654 (commit (string-append "v" version))))
3655 (file-name (git-file-name name version))
3656 (sha256
3657 (base32 "11g5f9vh6gh3xyazxjqn42ji23n9pf7zrj2jhqv64pzy8dvvlqd3"))))
3658 (properties
3659 (alist-delete 'hidden?
3660 (package-properties python-astropy-iers-data-primary)))))
3661
3662;; XXX: Deprecated on <2026-08-06>.
3663(define-public python-astropy-iers-data-next python-astropy-iers-data)
3664
3665;; A bare minimal package, mainly to use in tests and reduce closure
3666;; size. Tests are left out in the main package to slim down native-inputs.
3667(define-public python-astropy-minimal
3668 (package/inherit python-astropy
3669 (name "python-astropy-minimal")
3670 (arguments
3671 (substitute-keyword-arguments arguments
3672 ((#:tests? _ #t) #f)))
3673 (native-inputs
3674 (list nss-certs-for-test
3675 pkg-config
3676 python-cython
3677 python-extension-helpers
3678 python-setuptools-scm
3679 specification-astropy-data))
3680 (propagated-inputs
3681 (list python-astropy-iers-data-primary
3682 python-configobj ;to replace custom module
3683 python-numpy
3684 python-packaging
3685 python-ply ;to replace custom module
3686 python-pyerfa
3687 python-pyyaml))))
3688
3689(define-public python-astropydantic
3690 (package
3691 (name "python-astropydantic")
3692 (version "0.1.0")
3693 (source
3694 (origin
3695 (method git-fetch)
3696 (uri (git-reference
3697 (url "https://github.com/JBorrow/astropydantic")
3698 (commit version)))
3699 (file-name (git-file-name name version))
3700 (sha256
3701 (base32 "17h7p225szdd33654kzijqg506ym9q9y86bs4pfkiacdir4f1s4g"))))
3702 (build-system pyproject-build-system)
3703 (native-inputs
3704 (list python-fastapi
3705 python-httpx
3706 python-pytest
3707 python-setuptools))
3708 (propagated-inputs
3709 (list python-astropy
3710 python-pydantic))
3711 (home-page "https://github.com/JBorrow/astropydantic")
3712 (synopsis "Integrates Astropy's numerical types with Pydantic")
3713 (description
3714 "This package provides @code{pydantic} typing support for @code{astropy}
3715unit types. Can be used to de(serialize) astropy quantities and units.
3716
3717Types:
3718@itemize
3719@item @code{AstroPydanticUnit}: an overlay for @code{astropy.units.UnitBase}
3720(all unit types).
3721@item @code{AstroPydanticQuantity}: an overlay for
3722@code{astropy.units.Quantity}, including array types.
3723@item @code{AstroPydanticTime}: an overlay for @code{astropy.time.Time}.
3724@item @code{AstroPydanticICRS}: an overlay for @code{astropy.coordinates.ICRS}
3725and @code{astropy.coordinates.SkyCoord}.
3726@end itemize")
3727 (license license:expat)))
3728
3729(define-public python-astroquery
3730 (package
3731 (name "python-astroquery")
3732 (version "0.4.11")
3733 (source
3734 (origin
3735 (method url-fetch)
3736 (uri (pypi-uri "astroquery" version))
3737 (sha256
3738 (base32 "0crb0h39bs389y8x3vbl6kczbqwklnn9pkfmfgkhgyn7vndm4dsm"))))
3739 (build-system pyproject-build-system)
3740 (arguments
3741 (list
3742 ;; Tests are not thread save, see:
3743 ;; <https://github.com/astropy/astroquery/issues/2968>.
3744 ;;
3745 ;; tests: 1833 passed, 11 skipped, 2047 deselected, 2 xfailed
3746 #:test-flags
3747 #~(list "--pyargs" "astroquery"
3748 "-k" (string-join
3749 ;; E fixture 'tmp_cwd' not found
3750 (list "not test_download_cache"
3751 "test_download_local"
3752 "test_download_table"
3753 "test_read_uncompressed")
3754 " and not "))
3755 #:phases
3756 #~(modify-phases %standard-phases
3757 (add-before 'check 'pre-check
3758 (lambda _
3759 (setenv "HOME" "/tmp")
3760 (delete-file-recursively "astroquery"))))))
3761 (native-inputs
3762 (list nss-certs-for-test
3763 python-matplotlib
3764 python-pytest-astropy
3765 python-pytest-dependency
3766 python-pytest-doctestplus
3767 python-pytest-rerunfailures
3768 python-pytest-timeout
3769 python-setuptools))
3770 (propagated-inputs
3771 (list python-astropy
3772 python-beautifulsoup4
3773 python-html5lib
3774 python-keyring
3775 python-numpy
3776 python-pyvo
3777 python-requests
3778 ;; [optional]
3779 python-astropy-healpix
3780 python-boto3
3781 python-mocpy
3782 python-regions))
3783 (home-page "https://astroquery.readthedocs.io/en/latest/index.html")
3784 (synopsis "Access online astronomical data resources")
3785 (description
3786 "Astroquery is a package that contains a collection of tools to access
3787online Astronomical data. Each web service has its own sub-package.")
3788 (license license:bsd-3)))
3789
3790(define-public python-astroscrappy
3791 (package
3792 (name "python-astroscrappy")
3793 (version "1.3.0")
3794 (source
3795 (origin
3796 (method url-fetch)
3797 (uri (pypi-uri "astroscrappy" version))
3798 (sha256
3799 (base32 "1jpj7df26w31brbkhc1xrqaz2ayz9w3s88ia5vq86als7sfhfs5q"))))
3800 (build-system pyproject-build-system)
3801 (arguments
3802 (list
3803 #:phases
3804 #~(modify-phases %standard-phases
3805 (replace 'check
3806 (lambda* (#:key tests? test-flags #:allow-other-keys)
3807 (with-directory-excursion #$output
3808 (apply invoke "pytest" "-vv" test-flags))))
3809 (add-before 'check 'post-check
3810 (lambda _
3811 (for-each delete-file-recursively
3812 (find-files #$output "__pycache__" #:directories? #t)))))))
3813 (native-inputs
3814 (list python-cython
3815 python-extension-helpers
3816 python-pytest-astropy
3817 python-scipy
3818 python-setuptools
3819 python-setuptools-scm))
3820 (propagated-inputs
3821 (list python-astropy
3822 python-numpy))
3823 (home-page "https://github.com/astropy/astroscrappy")
3824 (synopsis "Speedy Cosmic Ray Annihilation Package in Python")
3825 (description
3826 "Astro-SCRAPPY is designed to detect cosmic rays in images (numpy
3827arrays), based on Pieter van Dokkum's L.A.Cosmic algorithm. Much of this was
3828originally adapted from cosmics.py written by Malte Tewes. This is designed to
3829be as fast as possible so some of the readability has been sacrificed,
3830specifically in the C code.")
3831 (license license:bsd-3)))
3832
3833(define-public python-baseband
3834 (package
3835 (name "python-baseband")
3836 (version "4.3.0")
3837 (source
3838 (origin
3839 (method url-fetch)
3840 (uri (pypi-uri "baseband" version))
3841 (sha256
3842 (base32 "1yzgzdf8ri4blcpmnz5f3dv6in076vgbhbcqp37kjidlp4f4w05r"))))
3843 (build-system pyproject-build-system)
3844 (arguments
3845 (list
3846 ;; FIXME: Tests are broken during collection phase, see
3847 ;; <https://github.com/mhvk/baseband/issues/539>.
3848 #:tests? #f))
3849 (native-inputs
3850 (list python-setuptools python-setuptools-scm))
3851 (propagated-inputs
3852 (list python-astropy))
3853 (home-page "https://github.com/mhvk/baseband")
3854 (synopsis "Radio baseband I/O")
3855 (description
3856 "Baseband is a package for reading and writing @acronym{VLBI,
3857Very-long-baseline interferometry} and other radio baseband files, with the
3858aim of simplifying and streamlining data conversion and standardization.")
3859 (license license:gpl3+)))
3860
3861(define-public python-bayesicfitting
3862 (package
3863 (name "python-bayesicfitting")
3864 (version "3.3.0")
3865 (source
3866 (origin
3867 (method git-fetch)
3868 (uri (git-reference
3869 (url "https://github.com/dokester/BayesicFitting")
3870 (commit (string-append "v" version))))
3871 (file-name (git-file-name name version))
3872 (sha256
3873 (base32 "09yfyvpg6v5lnlw0yiia00vwfxmbxwa3c1a2b7viva548gmhkh8w"))))
3874 (build-system pyproject-build-system)
3875 (arguments
3876 (list
3877 ;; XXX: To run full tests suite is quite expansive, select the one which
3878 ;; is mentioned in <BayesicFitting/test/testall.csh>.
3879 #:test-flags #~(list "-m" "unittest"
3880 "discover"
3881 "-p" "TestUserModel.py"
3882 "--top-level-directory" ".")
3883 #:phases
3884 #~(modify-phases %standard-phases
3885 (replace 'check
3886 (lambda* (#:key tests? test-flags #:allow-other-keys)
3887 (when tests?
3888 (with-directory-excursion "BayesicFitting/test"
3889 (apply invoke "python" test-flags))))))))
3890 (native-inputs
3891 (list python-setuptools))
3892 (propagated-inputs
3893 (list python-astropy
3894 python-matplotlib
3895 python-numpy
3896 python-scipy))
3897 (home-page "https://dokester.github.io/BayesicFitting/")
3898 (synopsis "Astronimical Bayesian fitting")
3899 (description
3900 "@code{BayesicFitting} is a package for model fitting and Bayesian
3901evidence calculation, it is a Python version of the the fitter classes in
3902@acronym{HCSS, Herschel Common Science System}. HCSS was the all encompassing
3903software system for the operations and analysis of the ESA satellite Herschel.")
3904 (license license:gpl3+)))
3905
3906(define-public python-bdsf
3907 (package
3908 (name "python-bdsf")
3909 (version "1.14.1")
3910 (source
3911 (origin
3912 (method git-fetch)
3913 (uri (git-reference
3914 (url "https://github.com/lofar-astron/PyBDSF")
3915 (commit (string-append "v" version))))
3916 (file-name (git-file-name name version))
3917 (sha256
3918 (base32 "1mdaicv5sxwdpi6z4c0x8wb3h1rcwjffd1w3izx4lvkjb00a5a0k"))))
3919 (build-system pyproject-build-system)
3920 (arguments
3921 (list
3922 #:phases
3923 #~(modify-phases %standard-phases
3924 (add-after 'unpack 'relax-requirements
3925 (lambda _
3926 (substitute* "pyproject.toml"
3927 ;; This looks like not required, as the project was last time
3928 ;; updated in 2015,
3929 ;; <https://github.com/chrippa/backports.shutil_get_terminal_size>:
3930 ;; "A backport of the get_terminal_size function from Python
3931 ;; 3.3's shutil."
3932 ((".*backports.shutil_get_terminal_size.*") ""))))
3933 (replace 'check
3934 (lambda* (#:key tests? test-flags #:allow-other-keys)
3935 (when tests?
3936 (with-directory-excursion "test"
3937 (invoke "python" "tbdsf_process_image.py"))))))))
3938 (native-inputs
3939 (list boost-with-numpy
3940 cmake-minimal
3941 gfortran
3942 python-meson
3943 python-pytest
3944 python-scikit-build
3945 python-setuptools
3946 python-setuptools-scm))
3947 (propagated-inputs
3948 (list python-astropy
3949 python-numpy
3950 python-scipy))
3951 (home-page "https://github.com/lofar-astron/PyBDSF")
3952 (synopsis "Blob Detector and Source Finder")
3953 (description
3954 "PyBDSF (the Python Blob Detection and Source Finder) is a tool designed
3955to decompose radio interferometry images into sources and make available their
3956properties for further use. PyBDSF can decompose an image into a set of
3957Gaussians, shapelets, or wavelets as well as calculate spectral indices and
3958polarization properties of sources and measure the psf variation across an
3959image. PyBDSF uses an interactive environment based on CASA that will be
3960familiar to most radio astronomers. Additionally, PyBDSF may also be used in
3961Python scripts.")
3962 (license license:gpl3 )))
3963
3964(define-public python-calcos
3965 (package
3966 (name "python-calcos")
3967 (version "3.6.2")
3968 (source
3969 (origin
3970 (method url-fetch)
3971 (uri (pypi-uri "calcos" version))
3972 (sha256
3973 (base32 "0f0idd6kdkzyq99zs3202d0nm2fjcdyjnk6wd1zy0w86vc8vmsx8"))))
3974 (build-system pyproject-build-system)
3975 (native-inputs
3976 (list python-ci-watson
3977 python-numpy
3978 python-pytest
3979 python-setuptools
3980 python-setuptools-scm))
3981 (propagated-inputs
3982 (list python-astropy
3983 python-numpy
3984 python-scipy))
3985 (home-page "https://hst-docs.stsci.edu/cosdhb/chapter-3-cos-calibration")
3986 (synopsis "Calibration software for Cosmic Origins Spectrograph")
3987 (description
3988 "This packages provides a calibration software for @acronym{COS, Cosmic
3989Origins Spectrograph}.")
3990 (license license:bsd-3)))
3991
3992(define-public python-camb
3993 (package
3994 (name "python-camb")
3995 (version "2.0.0")
3996 (source
3997 (origin
3998 (method git-fetch)
3999 (uri (git-reference
4000 (url "https://github.com/cmbant/CAMB")
4001 (commit version)))
4002 (file-name (git-file-name name version))
4003 (sha256
4004 (base32 "1drjaijsz4nr3g6pl2pi7236wyzl6bv63wxg7jq0knrza0104d37"))))
4005 (build-system pyproject-build-system)
4006 (arguments
4007 (list
4008 #:test-backend #~'unittest
4009 #:test-flags #~(list "camb.tests.camb_test")
4010 #:phases
4011 #~(modify-phases %standard-phases
4012 ;; XXX: It may be set via FORUTILSPATH environment variable but
4013 ;; build fails with error:
4014 ;; mkdir: cannot create directory ‘Releaselib’: Read-only file system
4015 (add-after 'unpack 'copy-forutils
4016 (lambda _
4017 ;; It's a git submodule to <https://github.com/cmbant/forutils>.
4018 (copy-recursively
4019 #+(package-source (this-package-native-input "fortran-forutils"))
4020 "forutils"))))))
4021 (native-inputs
4022 (list fortran-forutils
4023 gfortran
4024 python-packaging
4025 python-setuptools
4026 which)) ; for fortran/Makefile
4027 (propagated-inputs
4028 (list python-numpy
4029 python-packaging
4030 python-scipy
4031 python-sympy))
4032 (home-page "https://camb.info/")
4033 (synopsis "Code for Anisotropies in the Microwave Background")
4034 (description
4035 "CAMB is a cosmology code for calculating cosmological observables,
4036including @acronym{CMB, Cosmic microwave background}, lensing, source count
4037and 21cm angular power spectra, matter power spectra, transfer functions and
4038background evolution. The code is in Python, with numerical code implemented
4039in fast modern Fortran.")
4040 (license license:gpl3+)))
4041
4042(define-public python-casa-cube
4043 (package
4044 (name "python-casa-cube")
4045 ;; PyPI lacks documentations, Git has no tags, use the latest commit from
4046 ;; master HEAD.
4047 (properties '((commit . "57c9dbc7130da236aff65a355047fcaa1a282292")
4048 (revision . "0")))
4049 (version (git-version "0.1.0"
4050 (assoc-ref properties 'revision)
4051 (assoc-ref properties 'commit)))
4052 (source
4053 (origin
4054 (method git-fetch)
4055 (uri (git-reference
4056 (url "https://github.com/cpinte/casa_cube")
4057 (commit (assoc-ref properties 'commit))))
4058 (file-name (git-file-name name version))
4059 (sha256
4060 (base32 "1g6d7ilvgl4fwj8gi4j7fwwasccycjd1m45fycf7aqzdwpnfi664"))))
4061 (outputs '("out" "doc"))
4062 (build-system pyproject-build-system)
4063 (arguments
4064 (list
4065 #:tests? #f ;no tests
4066 #:phases
4067 #~(modify-phases %standard-phases
4068 (add-before 'build 'set-home
4069 (lambda _
4070 (setenv "HOME" "/tmp")))
4071 (add-after 'install 'build-and-install-doc
4072 (lambda _
4073 (let* ((data (string-append #$output:doc "/share"))
4074 (doc (string-append data "/doc/" #$name "-" #$version))
4075 (man (string-append doc "/man/man1"))
4076 (html (string-append doc "/html")))
4077 (invoke "make" "-C" "docs" "html" "man")
4078 (copy-recursively "docs/_build/html" html)
4079 (copy-recursively "docs/_build/man" man)))))))
4080 (native-inputs
4081 (list python-setuptools
4082 python-sphinx
4083 python-sphinx-rtd-theme))
4084 (propagated-inputs
4085 (list python-astropy
4086 python-astroquery
4087 python-cmasher
4088 python-matplotlib
4089 python-numpy))
4090 (home-page "https://github.com/cpinte/casa_cube")
4091 (synopsis "Plot data cube from CASA in Python")
4092 (description
4093 "casa_cube is a python package that provides an interface to data cubes
4094generates by CASA or Gildas. It allows the user to perform simple tasks such
4095plotting given channel maps, moment maps, line profile in various units,
4096correcting for cloud extinction, reconvolving with a beam taper, trimming a
4097cube. The syntax is similar to pymcfost to perform quick and easy comparison
4098with models.")
4099 (license license:expat)))
4100
4101(define-public python-casa-formats-io
4102 (package
4103 (name "python-casa-formats-io")
4104 (version "0.3.0")
4105 (source (origin
4106 (method url-fetch)
4107 (uri (pypi-uri "casa-formats-io" version))
4108 (sha256
4109 (base32
4110 "16qwr6yq86qgdb0lvnmfm5mn6g2d29b1vrmfv26v77kxm6szxr8h"))))
4111 (build-system pyproject-build-system)
4112 (arguments
4113 (list
4114 ;; tests: 17 passed, 58 skipped, 1 deselected, 1 xfailed, 25 warnings
4115 #:test-flags
4116 #~(list "--pyargs" "casa_formats_io"
4117 ;; AttributeError: module 'numpy' has no attribute 'product'
4118 "-k" "not test_ms_tables[.]")
4119 #:phases
4120 #~(modify-phases %standard-phases
4121 (add-before 'check 'remove-local-source
4122 (lambda _
4123 (delete-file-recursively "casa_formats_io"))))))
4124 (native-inputs
4125 (list python-pytest
4126 python-pytest-openfiles
4127 python-setuptools
4128 python-setuptools-scm))
4129 (propagated-inputs
4130 (list python-astropy
4131 python-click
4132 python-dask
4133 python-numpy))
4134 (home-page "https://casa-formats-io.readthedocs.io/")
4135 (synopsis "Dask-based reader for CASA data")
4136 (description
4137 "The @code{casa-formats-io} package is a small package which implements
4138functionality to read data stored in @acronym{CASA, Common Astronomy Software
4139Applications} formats (such as @file{.image} datasets). This implementation
4140is independent of and does not use @code{casacore}.")
4141 (license license:lgpl2.0)))
4142
4143(define-public python-casacore
4144 (package
4145 (name "python-casacore")
4146 (version "3.8.1")
4147 (source
4148 (origin
4149 (method git-fetch)
4150 (uri (git-reference
4151 (url "https://github.com/casacore/python-casacore")
4152 (commit (string-append "v" version))))
4153 (file-name (git-file-name name version))
4154 (sha256
4155 (base32 "03hwv4xc913n2j85rlics88bla0dfrr37yjc5nlq8mwfcgzhdczx"))))
4156 (build-system pyproject-build-system)
4157 (arguments
4158 (list
4159 #:phases
4160 #~(modify-phases %standard-phases
4161 (add-after 'unpack 'set-casacore-data
4162 (lambda* (#:key inputs #:allow-other-keys)
4163 (setenv "CASACORE_DATA"
4164 (search-input-directory inputs "share/casacore-data")))))))
4165 (native-inputs
4166 (list boost
4167 casacore-data
4168 cmake-minimal
4169 python-pytest
4170 python-scikit-build-core
4171 python-setuptools-scm))
4172 (inputs
4173 (list casacore
4174 cfitsio
4175 hdf5
4176 openblas
4177 wcslib))
4178 (propagated-inputs
4179 (list python-numpy))
4180 (home-page "https://casacore.github.io/python-casacore")
4181 (synopsis "Python wrapper for Casacore")
4182 (description
4183 "This package provides a wrapper around @code{casacore}, the radio
4184astronomy library.")
4185 (license license:gpl3+)))
4186
4187(define-public python-ccdproc
4188 (package
4189 (name "python-ccdproc")
4190 (version "2.5.1")
4191 (source
4192 (origin
4193 (method url-fetch)
4194 (uri (pypi-uri "ccdproc" version))
4195 (sha256
4196 (base32 "1ymx9ssapv52m6flfvlhgjnvwmqdgv1qimyjvci8w66k9j4446q5"))))
4197 (build-system pyproject-build-system)
4198 (native-inputs
4199 (list python-hatch-vcs
4200 python-hatchling
4201 python-memory-profiler
4202 python-pytest-astropy))
4203 (propagated-inputs
4204 (list python-astropy
4205 python-astroscrappy
4206 python-numpy
4207 python-reproject
4208 python-scikit-image
4209 python-scipy))
4210 (home-page "http://ccdproc.readthedocs.io/")
4211 (synopsis "Basic data reductions of CCD images")
4212 (description "The ccdproc package provides many of the necessary tools for
4213processing of CCD images built on a framework to provide error propagation and
4214bad pixel tracking throughout the reduction process.")
4215 (license license:bsd-3)))
4216
4217(define-public python-cdasws
4218 (package
4219 (name "python-cdasws")
4220 (version "1.8.18")
4221 (source
4222 (origin
4223 (method url-fetch)
4224 (uri (pypi-uri "cdasws" version))
4225 (sha256
4226 (base32 "0pnfm96jwdrly4fc1yr1bw4rg8g869by3hli90bb1p1w4y7zsaiw"))))
4227 (build-system pyproject-build-system)
4228 (arguments
4229 (list #:tests? #f)) ;require network, and missing "context" module
4230 (native-inputs
4231 (list python-setuptools))
4232 (propagated-inputs
4233 (list python-dateutil
4234 python-requests
4235 python-urllib3))
4236 (home-page "https://cdaweb.gsfc.nasa.gov/WebServices/REST/")
4237 (synopsis
4238 "NASA's Coordinated Data Analysis System Web Service Client Library")
4239 (description
4240 "This package provides NASA's Coordinated Data Analysis System Web
4241Service Client Library.
4242
4243The Coordinated Data Analysis System (CDAS) supports simultaneous
4244multi-mission, multi-instrument selection and comparison of science data among
4245a wide range of current space missions. While CDAWeb provides access to this
4246data through an HTML-based user interface, these Web services provides a (Web)
4247application programmming interface (API) to CDAS. If you are not a software
4248developer and simply want to use the existing web (HTML) interface to CDAS,
4249then return to the main CDAWeb page. If you are developing software that
4250requires science data from any of the CDAWeb datasets, then the CDAS Web
4251services will provide access to the data without having to explicitly
4252find,download, and read the data files.")
4253 ;; NASA open source agreement version 1.3, BSD like.
4254 (license license:bsd-3)))
4255
4256(define-public python-cdflib
4257 (package
4258 (name "python-cdflib")
4259 (version "1.3.12")
4260 (source
4261 (origin
4262 (method git-fetch)
4263 (uri (git-reference
4264 (url "https://github.com/lasp/cdflib")
4265 (commit version)))
4266 (file-name (git-file-name name version))
4267 (sha256
4268 (base32 "0ajq39nyqzx9kina20i9pksnjhzqb9kq30gzlvyv1dfz0y49x2b0"))))
4269 (build-system pyproject-build-system)
4270 (arguments
4271 (list
4272 ;; tests: 81 passed, 1 skipped, 25 deselected, 17 warnings
4273 #:test-flags
4274 #~(list "-m" "not remote_data")
4275 #:phases
4276 #~(modify-phases %standard-phases
4277 (add-before 'check 'set-HOME
4278 (lambda _
4279 (setenv "HOME" "/tmp"))))))
4280 (native-inputs
4281 (list python-astropy-minimal
4282 python-pytest
4283 python-setuptools
4284 python-setuptools-scm
4285 python-xarray))
4286 (propagated-inputs
4287 (list python-numpy))
4288 (home-page "https://github.com/lasp/cdflib")
4289 (synopsis "Python library to deal with NASA's CDF astronmical data format")
4290 (description
4291 "This package provides a Python @acronym{CDF, Computable Document Format}
4292reader toolkit.
4293
4294It provides the following functionality:
4295@itemize
4296@item Ability to read variables and attributes from CDF files
4297@item Writes CDF version 3 files
4298@item Can convert between CDF time types (EPOCH/EPOCH16/TT2000) to other common
4299time formats
4300@item Can convert CDF files into XArray Dataset objects and vice versa,
4301attempting to maintain ISTP compliance
4302@end itemize")
4303 (license license:expat)))
4304
4305(define-public python-cesium
4306 (package
4307 (name "python-cesium")
4308 (version "0.12.4")
4309 (source
4310 (origin
4311 (method git-fetch)
4312 (uri (git-reference
4313 (url "https://github.com/cesium-ml/cesium")
4314 (commit (string-append "v" version))))
4315 (file-name (git-file-name name version))
4316 (sha256
4317 (base32 "0qmgixiasyv57xc5s6l62gvrcnywjqgzpwr9hwdrpx8awlf5zw9h"))))
4318 (build-system pyproject-build-system)
4319 (arguments
4320 (list
4321 #:test-flags
4322 ;; XXX: Current version might be not compatible with NumPy 2.4.6.
4323 #~(list (string-append "--deselect=lib/python3.12/site-packages/"
4324 "cesium/tests/test_featurize.py::test_impute"))
4325 #:phases
4326 #~(modify-phases %standard-phases
4327 ;; The installed test files contain the /gnu/store location, not the
4328 ;; location of the discovered test files from the build directory.
4329 ;; The test framework doesn't like this. The easiest way around
4330 ;; this mismatch is to jump to the output directory.
4331 (add-before 'check 'check-chdir
4332 (lambda _ (chdir #$output))))))
4333 (native-inputs
4334 (list python-cython
4335 python-pytest
4336 python-setuptools
4337 python-setuptools-scm))
4338 (propagated-inputs
4339 (list python-cloudpickle
4340 python-dask
4341 python-gatspy
4342 python-joblib
4343 python-numpy
4344 python-pandas
4345 python-scikit-learn
4346 python-scipy
4347 python-toolz))
4348 (home-page "https://cesium-ml.org/")
4349 (synopsis "Library for time-series feature extraction and processing")
4350 (description
4351 "Cesium is an end-to-end machine learning platform for time-series, from
4352calculation of features to model-building to predictions. Cesium has two main
4353components - a Python library, and a web application platform that allows
4354interactive exploration of machine learning pipelines. Take control over the
4355workflow in a Python terminal or Jupyter notebook with the Cesium library, or
4356upload your time-series files, select your machine learning model, and watch
4357Cesium do feature extraction and evaluation right in your browser with the web
4358application.")
4359 (license license:bsd-3)))
4360
4361(define-public python-chiantipy
4362 (package
4363 (name "python-chiantipy")
4364 (version "0.16.0")
4365 (source
4366 (origin
4367 (method git-fetch)
4368 (uri (git-reference
4369 (url "https://github.com/chianti-atomic/ChiantiPy")
4370 (commit (string-append "v" version))))
4371 (file-name (git-file-name name version))
4372 (sha256
4373 (base32 "1h0vxmfcnc04bsj7mz2r6n2g23a2rpcg2sav3ldjgksw41sd42q3"))))
4374 (build-system pyproject-build-system)
4375 (arguments
4376 (list
4377 ;; XXX: tests require CHIANTI database
4378 ;; <https://www.chiantidatabase.org/chianti_download.html> (~500MiB
4379 ;; compressed) accessible via setting XUVTOP environment variable.
4380 #:tests? #f))
4381 (native-inputs
4382 (list python-setuptools))
4383 (propagated-inputs
4384 (list python-matplotlib
4385 python-numpy
4386 python-roman
4387 python-scipy))
4388 (home-page "https://github.com/chianti-atomic/ChiantiPy")
4389 (synopsis "Python interface to the CHIANTI atomic database")
4390 (description
4391 "ChiantiPy is the Python interface to the
4392@url{http://www.chiantidatabase.org/, CHIANTI atomic database} for
4393astrophysical spectroscopy. It provides the capability to calculate the
4394emission line and continuum spectrum of an optically thin plasma based on the
4395data in the CHIANTI database.")
4396 (license license:isc)))
4397
4398(define-public python-ci-watson
4399 (package
4400 (name "python-ci-watson")
4401 (version "0.11.0")
4402 (source
4403 (origin
4404 (method url-fetch)
4405 (uri (pypi-uri "ci_watson" version))
4406 (sha256
4407 (base32 "0rwmfzgbfazfb511fq6ipcwr5n2n4ngz4whxjd7kbcyj56580dg6"))))
4408 (build-system pyproject-build-system)
4409 (native-inputs
4410 (list python-pytest-astropy-header
4411 python-pytest
4412 python-setuptools
4413 python-setuptools-scm))
4414 (propagated-inputs
4415 (list python-colorama
4416 python-crds
4417 python-readchar
4418 python-requests))
4419 (home-page "https://github.com/spacetelescope/ci_watson")
4420 (synopsis "Helper functions for STScI software")
4421 (description
4422 "This package contains a helper functionality to test ROMAN and JWST.")
4423 (license license:bsd-3)))
4424
4425(define-public python-cianna
4426 (package
4427 (inherit cianna)
4428 (name "python-cianna")
4429 (build-system pyproject-build-system)
4430 (arguments
4431 (list #:tests? #f))
4432 (native-inputs
4433 (list cmake-minimal
4434 python-numpy
4435 python-setuptools))
4436 (synopsis "Python bindings for CIANNA")))
4437
4438(define-public python-clipy-like
4439 (package
4440 (name "python-clipy-like")
4441 (version "0.15")
4442 (source
4443 (origin
4444 (method git-fetch)
4445 (uri (git-reference
4446 (url "https://github.com/benabed/clipy")
4447 (commit (string-append "clipy_" version))))
4448 (file-name (git-file-name name version))
4449 (sha256 (base32 "0dg4l6ala51ip8ijhlpgli4giw6f1vg3dc4gxpq7pa719zwgfd9m"))))
4450 (build-system pyproject-build-system)
4451 (arguments
4452 (list #:tests? #f)) ;no tests
4453 (native-inputs
4454 (list python-flit-core))
4455 (propagated-inputs
4456 (list python-astropy
4457 python-numpy))
4458 (home-page "https://github.com/benabed/clipy")
4459 (synopsis "Pure Python CLIK implementation with JAX support")
4460 (description
4461 "@code{clipy} is a pure python implementation of most of
4462@url{https://github.com/benabed/clik, CLIK} with JAX support (see here for the
4463list of currently supported likelihoods).")
4464 (license license:expat)))
4465
4466(define-public python-cmyt
4467 (package
4468 (name "python-cmyt")
4469 (version "2.0.2")
4470 (source
4471 (origin
4472 (method git-fetch)
4473 (uri (git-reference
4474 (url "https://github.com/yt-project/cmyt")
4475 (commit (string-append "v" version))))
4476 (file-name (git-file-name name version))
4477 (sha256
4478 (base32 "1d257xlgxc06x47k07xn5ml2kjqzc7dgjal4bl9x2w6b90xn0pm1"))))
4479 (build-system pyproject-build-system)
4480 (native-inputs
4481 (list python-colorspacious
4482 python-pytest
4483 python-pytest-mpl
4484 python-hatchling))
4485 (propagated-inputs
4486 (list python-matplotlib
4487 python-numpy))
4488 (home-page "https://yt-project.org/")
4489 (synopsis "Matplotlib colormaps from the yt project")
4490 (description
4491 "This package provides a range of colormaps designed for scientific use
4492with Matplotlib. It includes perceptually uniform sequential colormaps such
4493as @code{abre}, @code{dusk}, @code{kepl}, and @code{octarine}, as well as
4494monochromatic sequential colormaps like @code{blue}, @code{green}, and
4495@code{red}, and others (@code{algae}, @code{pastel}, and @code{xray}).")
4496 (license license:bsd-3)))
4497
4498(define-public python-cobaya
4499 (package
4500 (name "python-cobaya")
4501 ;; 3.6.2 (2026-03-27); to support changes in pythoncamb. see:
4502 ;; <https://github.com/CobayaSampler/cobaya/pull/495>.
4503 (properties '((commit . "b76b6fed2a6c8c5594c6f92d5058bef10079746a")
4504 (revision . "0")))
4505 (version (git-version "3.6.2"
4506 (assoc-ref properties 'revision)
4507 (assoc-ref properties 'commit)))
4508 (source
4509 (origin
4510 (method git-fetch)
4511 (uri (git-reference
4512 (url "https://github.com/CobayaSampler/cobaya")
4513 (commit (assoc-ref properties 'commit))))
4514 (file-name (git-file-name name version))
4515 (sha256
4516 (base32 "1ni2a7nr0vy49j2d5lh5zyv5bdpy735axxvh8b16r6wnhjv728pm"))))
4517 (build-system pyproject-build-system)
4518 (arguments
4519 (list
4520 ;; tests: 77 passed, 3 skipped, 94 xfailed, 2 warnings
4521 #:test-flags
4522 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count)))
4523 "--skip-not-installed"
4524 ;; cobaya.component.ComponentNotFoundError: 'planckpr4lensing'
4525 ;; could not be found. Tried loading internal and external
4526 ;; classes. No component path was given.
4527 "-k" "not test_planck_NPIPE_p_CamSpec_camb and not test_grid")
4528 #:phases
4529 #~(modify-phases %standard-phases
4530 (add-before 'check 'pre-check
4531 (lambda _
4532 (setenv "HOME" "/tmp")
4533 (setenv "COBAYA_PACKAGES_PATH" "/tmp"))))))
4534 (native-inputs
4535 (list python-camb
4536 python-flaky
4537 python-pytest
4538 python-pytest-xdist
4539 python-setuptools))
4540 (propagated-inputs
4541 (list python-dill
4542 python-fuzzywuzzy
4543 python-getdist
4544 python-numpy
4545 python-packaging
4546 python-pandas
4547 python-portalocker
4548 python-py-bobyqa
4549 python-pyyaml
4550 python-requests
4551 python-scipy
4552 python-tqdm
4553 python-typing-extensions
4554 ;; [optional]
4555 python-matplotlib
4556 python-mpi4py
4557 python-numba
4558 python-pyside-6))
4559 (home-page "https://github.com/CobayaSampler/cobaya")
4560 (synopsis "Code for Bayesian analysis in Cosmology")
4561 (description
4562 "@acronym{Cobaya, COde for BAYesian Analysis}, and Spanish for Guinea
4563Pig) is a framework for sampling and statistical modelling: it allows you to
4564explore an arbitrary prior or posterior using a range of Monte Carlo
4565samplers (including the advanced MCMC sampler from CosmoMC, and the advanced
4566nested sampler PolyChord). The results of the sampling can be analysed with
4567GetDist. It supports MPI parallelization (and very soon HPC containerization
4568with Docker/Shifter and Singularity).")
4569 (license license:lgpl3+)))
4570
4571(define-public python-colossus
4572 ;; There is no source distribution in PyPI and no version tags, use the
4573 ;; latest commit from the master HEAD.
4574 (let ((commit "b4811875b49006d258dac9ad23682917bcece102")
4575 (revision "0"))
4576 (package
4577 (name "python-colossus")
4578 (version (git-version "1.4.0" revision commit))
4579 (source
4580 (origin
4581 (method git-fetch)
4582 (uri (git-reference
4583 (url "https://bitbucket.org/bdiemer/colossus")
4584 (commit commit)))
4585 (file-name (git-file-name name version))
4586 (sha256
4587 (base32 "1x0c5amnqf7aa98a7l79y5xx4fsirjln6fzi5b7lhc95k22q1sc0"))))
4588 (build-system pyproject-build-system)
4589 (arguments
4590 (list
4591 ;; tests: 178 passed, 5 warnings
4592 #:phases
4593 #~(modify-phases %standard-phases
4594 (add-before 'check 'pre-check
4595 (lambda _
4596 (setenv "HOME" "/tmp"))))))
4597 (native-inputs
4598 (list python-astropy-minimal
4599 python-jsonpickle
4600 python-lenstronomy-minimal
4601 python-pytest
4602 python-scikit-image
4603 python-setuptools))
4604 (propagated-inputs
4605 (list python-numpy
4606 python-scipy))
4607 (home-page "https://bitbucket.org/bdiemer/colossus")
4608 (synopsis "Cosmology, halo, and large-scale structure tools")
4609 (description
4610 "@acronym{Colossus, COsmology haLO and large-Scale StrUcture toolS} is a
4611Python toolkit for calculations pertaining to cosmology, the large-scale
4612structure of the universe, and the properties of dark matter halos.")
4613 (license license:expat))))
4614
4615(define-public python-coolest
4616 (package
4617 (name "python-coolest")
4618 (version "0.1.11")
4619 (source
4620 (origin
4621 (method git-fetch)
4622 (uri (git-reference
4623 (url "https://github.com/aymgal/COOLEST")
4624 (commit (string-append "v" version))))
4625 (file-name (git-file-name name version))
4626 (sha256
4627 (base32 "1mdj5c91w1p2ch1y80y0x1y3ky30b95lzlscz2b6hl7jcf3n6jfb"))))
4628 (build-system pyproject-build-system)
4629 (arguments
4630 (list
4631 ;; tests: 120 passed, 81 warnings
4632 #:test-flags
4633 ;; Cycle with python-lenstronomy.
4634 #~(list "--ignore=test/api/profiles/light_test.py"
4635 "--ignore=test/api/profiles/mass_test.py")))
4636 (native-inputs
4637 (list python-pytest
4638 python-scikit-image
4639 python-setuptools))
4640 (propagated-inputs
4641 (list python-astropy
4642 python-getdist
4643 python-jsonpickle
4644 python-numpy
4645 python-pandas
4646 python-scipy))
4647 (home-page "https://github.com/aymgal/COOLEST")
4648 (synopsis "Strong Gravitational Lensing Analyses")
4649 (description
4650 "The COde-independent Organized LEns STandard (COOLEST) defines a set of
4651conventions to be shared across the strong lensing community, in order to
4652consistently store, share and improve lens modeling analyses. In short, this
4653project provides tools to manipulate lens models as a single, human-readable
4654JSON template file alongside Python routines for visualizing and comparing
4655lens models possibly obtained from different modeling codes.")
4656 (license license:gpl3)))
4657
4658(define-public python-corsikaio
4659 (package
4660 (name "python-corsikaio")
4661 (version "0.6.1")
4662 (source
4663 (origin
4664 (method git-fetch)
4665 (uri (git-reference
4666 (url "https://github.com/cta-observatory/pycorsikaio")
4667 (commit (string-append "v" version))))
4668 (file-name (git-file-name name version))
4669 (sha256
4670 (base32 "0rnp1myhilkcr7mnv6x3cmxqjn0adgmb89crszn536qphsisyc35"))))
4671 (build-system pyproject-build-system)
4672 ;; tests: 51 passed
4673 (native-inputs
4674 (list python-pytest
4675 python-scipy
4676 python-setuptools
4677 python-setuptools-scm))
4678 (propagated-inputs
4679 (list python-numpy
4680 python-zstandard))
4681 (home-page "https://github.com/cta-observatory/pycorsikaio")
4682 (synopsis "Reader for CORSIKA binary output files")
4683 (description
4684 "This package implements a reader for
4685@url{https://www.iap.kit.edu/corsika/, @acronym{CORSIKA, COsmic Ray
4686SImulations for KAscade}} binary output files using NumPy.")
4687 (license license:expat)))
4688
4689(define-public python-cosmopy
4690 (package
4691 (name "python-cosmopy")
4692 (version "3.6")
4693 (source
4694 (origin
4695 (method url-fetch)
4696 (uri (pypi-uri "cosmopy" version))
4697 (sha256
4698 (base32 "16xlg0vyzdx1h5h28y8az48nhiqvx43yd9s30g3rk9ywl4r1j6h8"))))
4699 (build-system pyproject-build-system)
4700 (arguments
4701 (list
4702 #:phases
4703 #~(modify-phases %standard-phases
4704 (add-after 'unpack 'relax-requirements
4705 (lambda _
4706 ;; See: <https://github.com/lzkelley/cosmopy/issues/6>.
4707 (substitute* "requirements.txt"
4708 (("future") "")))))))
4709 (native-inputs
4710 (list python-pytest
4711 python-setuptools))
4712 (propagated-inputs
4713 (list python-astropy
4714 python-click
4715 python-numpy
4716 python-scipy))
4717 (home-page "https://github.com/lzkelley/cosmopy")
4718 (synopsis "Cosmological calculator in Python")
4719 (description
4720 "This package provides a CLI and Python module to quickly calculate
4721cosmological parameters e.g. redshift or luminosity-distance.")
4722 (license license:expat)))
4723
4724(define-public python-costools
4725 (package
4726 (name "python-costools")
4727 (version "1.2.7")
4728 (source
4729 (origin
4730 (method url-fetch)
4731 (uri (pypi-uri "costools" version))
4732 (sha256
4733 (base32 "1ij503zshjf3hynhhqgvkyrgzma8a77v9nghvgij8xr852p2lqdy"))))
4734 (build-system pyproject-build-system)
4735 (native-inputs
4736 (list python-pytest
4737 python-setuptools
4738 python-setuptools-scm))
4739 (propagated-inputs
4740 (list python-astropy
4741 python-calcos
4742 python-numpy
4743 python-stsci-tools))
4744 (home-page "https://github.com/spacetelescope/costools")
4745 (synopsis "Tools for Cosmic Origins Spectrograph")
4746 (description
4747 "This package provides tools for @acronym{COS, Cosmic Origins
4748Spectrograph}.")
4749 (license license:bsd-3)))
4750
4751(define-public python-crds
4752 (package
4753 (name "python-crds")
4754 (version "13.2.8")
4755 (source
4756 (origin
4757 (method git-fetch)
4758 (uri (git-reference
4759 (url "https://github.com/spacetelescope/crds")
4760 (commit version)))
4761 (file-name (git-file-name name version))
4762 (sha256
4763 (base32 "1hfabffdn4idqn6ki4bn2cla6asz3ap10j4vl858318hmmipygpl"))))
4764 (build-system pyproject-build-system)
4765 (arguments
4766 (list
4767 ;; tests: 106 passed, 539 deselected, 1 warning
4768 #:test-flags
4769 ;; XXX: Tests require a complex set up and test data, try to run some
4770 ;; minimal portion of unit tests to persist package compatibility during
4771 ;; updates, see:
4772 ;; <https://github.com/spacetelescope/crds/blob/13.1.1/TESTING>.
4773 #~(list "-m" (string-join
4774 (list "not bestrefs" "cmdline" "jwst" "hst" "rmap" "roman"
4775 "special" "synphot")
4776 " and not "))))
4777 (native-inputs
4778 (list python-mock
4779 python-moto
4780 python-pytest
4781 python-pytest-astropy
4782 python-pytest-doctestplus
4783 python-setuptools
4784 python-setuptools-scm
4785 python-stdatamodels-minimal
4786 python-stsynphot))
4787 (propagated-inputs
4788 (list python-astropy
4789 python-numpy
4790 python-filelock
4791 python-asdf
4792 python-requests
4793 python-parsley
4794 ;; [optional]
4795 python-beautifulsoup4
4796 ;; python-jwst
4797 python-roman-datamodels
4798 python-stsynphot))
4799 (home-page "https://hst-crds.stsci.edu")
4800 (synopsis "Calibration Reference Data System for HST and JWST")
4801 (description
4802 "CRDS is a package used for working with astronomical reference files for
4803the HST and JWST telescopes. CRDS is useful for performing various operations
4804on reference files or reference file assignment rules. CRDS is used to
4805assign, check, and compare reference files and rules, and also to predict
4806those datasets which should potentially be reprocessed due to changes in
4807reference files or assignment rules. CRDS has versioned rules which define
4808the assignment of references for each type and instrument configuration. CRDS
4809has web sites corresponding to each project @url{http://hst-crds.stsci.edu} or
4810@url{https://jwst-crds.stsci.edu/} which record information about reference
4811files and provide related services.")
4812 (license license:bsd-3)))
4813
4814;; A bare minimal package, mainly to use in tests and reduce closure
4815;; size. Tests are left out in the main package to slim down native-inputs.
4816(define-public python-crds-minimal
4817 (package/inherit python-crds
4818 (name "python-crds-minimal")
4819 (arguments
4820 (list #:tests? #f))
4821 (native-inputs
4822 (list python-setuptools
4823 python-setuptools-scm))
4824 (propagated-inputs
4825 (list python-astropy
4826 python-numpy
4827 python-filelock
4828 python-asdf
4829 python-requests
4830 python-parsley))))
4831
4832(define-public python-ctapipe
4833 (package
4834 (name "python-ctapipe")
4835 (version "0.31.0")
4836 (source
4837 (origin
4838 (method git-fetch)
4839 (uri (git-reference
4840 (url "https://github.com/cta-observatory/ctapipe/")
4841 (commit (string-append "v" version))))
4842 (file-name (git-file-name name version))
4843 (sha256
4844 (base32 "1xkm21nan9fxvfjgna4schm1fcq2m38a05nl4x7h4f5riwx7g2lw"))))
4845 (build-system pyproject-build-system)
4846 (arguments
4847 (list
4848 ;; tests: 174 passed, 14 warnings
4849 #:test-flags
4850 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count)))
4851 "--pyargs" "ctapipe"
4852 "-m" "not vizier"
4853 "--durations=20")
4854 #:phases
4855 #~(modify-phases %standard-phases
4856 (add-after 'unpack 'remove-test-files
4857 ;; XXX: Tests require remote data and can't be ignored with
4858 ;; --ignore or --ignore-glob option when --pyargs is provided.
4859 ;; Check if the test data may be included to enable more.
4860 (lambda _
4861 (with-directory-excursion "src/ctapipe"
4862 (for-each delete-file
4863 (list "coordinates/tests/test_coordinates.py"
4864 "calib/camera/tests/test_calibrator.py"
4865 "coordinates/tests/test_impact_distance.py"
4866 "coordinates/tests/test_utils.py"
4867 "core/tests/test_component.py"
4868 "core/tests/test_feature_generator.py"
4869 "core/tests/test_provenance.py"
4870 "core/tests/test_telescope_component.py"
4871 "core/tests/test_tool.py"
4872 "core/tests/test_traits.py"
4873 "image/muon/tests/test_intensity_fit.py"
4874 "image/muon/tests/test_processor.py"
4875 "image/muon/tests/test_ring_fitter.py"
4876 "image/tests/test_cleaning.py"
4877 "image/tests/test_concentration.py"
4878 "image/tests/test_extractor.py"
4879 "image/tests/test_hillas.py"
4880 "image/tests/test_image_cleaner_component.py"
4881 "image/tests/test_image_processor.py"
4882 "image/tests/test_invalid_pixels.py"
4883 "image/tests/test_leakage.py"
4884 "image/tests/test_modifications.py"
4885 "image/tests/test_morphology.py"
4886 "image/tests/test_reducer.py"
4887 "image/tests/test_timing_parameters.py"
4888 "image/tests/test_toy.py"
4889 "instrument/camera/tests/test_description.py"
4890 "instrument/camera/tests/test_geometry.py"
4891 "instrument/camera/tests/test_image_conversion.py"
4892 "instrument/camera/tests/test_readout.py"
4893 "instrument/tests/test_optics.py"
4894 "instrument/tests/test_psf_model.py"
4895 "instrument/tests/test_subarray.py"
4896 "instrument/tests/test_telescope.py"
4897 "instrument/tests/test_trigger.py"
4898 "io/tests/test_datawriter.py"
4899 "io/tests/test_event_source.py"
4900 "io/tests/test_eventseeker.py"
4901 "io/tests/test_hdf5.py"
4902 "io/tests/test_hdf5eventsource.py"
4903 "io/tests/test_hdf5monitoringsource.py"
4904 "io/tests/test_merge.py"
4905 "io/tests/test_plugin.py"
4906 "io/tests/test_preprocessing.py"
4907 "io/tests/test_prod2.py"
4908 "io/tests/test_simteleventsource.py"
4909 "io/tests/test_table_loader.py"
4910 "io/tests/test_toysource.py"
4911 "irf/tests/test_benchmarks.py"
4912 "irf/tests/test_optimize.py"
4913 "monitoring/tests/test_calculator.py"
4914 "monitoring/tests/test_interpolator.py"
4915 "monitoring/tests/test_outlier.py"
4916 "reco/tests/test_HillasReconstructor.py"
4917 "reco/tests/test_ImPACT.py"
4918 "reco/tests/test_hillas_intersection.py"
4919 "reco/tests/test_preprocessing.py"
4920 "reco/tests/test_reconstruction_methods.py"
4921 "reco/tests/test_reconstructor.py"
4922 "reco/tests/test_shower_processor.py"
4923 "reco/tests/test_sklearn.py"
4924 "reco/tests/test_telescope_event_handling.py"
4925 "tests/test_atmosphere.py"
4926 "tools/tests/test_apply_models.py"
4927 "tools/tests/test_astropy_cache.py"
4928 "tools/tests/test_calculate_pixel_stats.py"
4929 "tools/tests/test_compute_irf.py"
4930 "tools/tests/test_merge.py"
4931 "tools/tests/test_optimize_event_selection.py"
4932 "tools/tests/test_process.py"
4933 "tools/tests/test_process_ml.py"
4934 "tools/tests/test_tools.py"
4935 "tools/tests/test_train.py"
4936 "visualization/tests/test_bokeh.py"
4937 "visualization/tests/test_mpl.py"
4938 "utils/tests/test_datasets.py")))))
4939 (add-before 'check 'pre-check
4940 (lambda _
4941 (setenv "HOME" "/tmp")
4942 (delete-file-recursively "src"))))))
4943 (native-inputs
4944 (list nss-certs-for-test
4945 python-h5py
4946 python-pytest
4947 python-pytest-astropy-header
4948 python-pytest-xdist
4949 python-setuptools
4950 python-setuptools-scm
4951 python-tomli))
4952 (propagated-inputs
4953 (list python-astropy
4954 python-docutils
4955 python-hist
4956 python-joblib
4957 python-numba
4958 python-numpy
4959 python-packaging
4960 python-psutil
4961 python-pyyaml
4962 python-requests
4963 python-scikit-learn
4964 python-scipy
4965 python-tables
4966 python-tqdm
4967 python-traitlets
4968 ;; [poptional]
4969 python-bokeh
4970 python-eventio
4971 python-iminuit
4972 python-matplotlib
4973 python-pyirf))
4974 (home-page "https://github.com/cta-observatory/ctapipe/")
4975 (synopsis "Low-level data processing pipeline software for CTAO")
4976 (description
4977 "Event reconstruction framework for Imaging Atmospheric Cherenkov
4978Telescopes developed for @acronym{CTAO, Cherenkov Telescope Array
4979Observatory}.")
4980 (license license:bsd-3)))
4981
4982(define-public python-ctapipe-io-magic
4983 (package
4984 (name "python-ctapipe-io-magic")
4985 (version "0.5.8")
4986 (source
4987 (origin
4988 (method url-fetch)
4989 (uri (pypi-uri "ctapipe_io_magic" version))
4990 (sha256
4991 (base32 "1g574wgwrb6k25dcn9vnv8rypa4s3bc4mi16d9dksb4dbjizxiww"))))
4992 (build-system pyproject-build-system)
4993 (arguments
4994 ;; XXX: Tests require additional data, see: <download_test_data.sh>.
4995 (list
4996 #:tests? #f
4997 #:phases
4998 #~(modify-phases %standard-phases
4999 (add-before 'build 'set-ctapipe-env
5000 (lambda _
5001 (setenv "CTAPIPE_DISABLE_NUMBA_CACHE" "1"))))))
5002 (native-inputs
5003 (list python-setuptools
5004 python-setuptools-scm))
5005 (propagated-inputs
5006 (list python-astropy
5007 python-ctapipe
5008 python-numpy
5009 python-scipy
5010 python-uproot))
5011 (home-page "https://github.com/cta-observatory/ctapipe_io_magic")
5012 (synopsis "Ctapipe plugin for reading calibrated MAGIC files")
5013 (description
5014 "This package provides a EventSource plugin for ctapipe, needed to read the
5015 calibrated data of the MAGIC telescope system.")
5016 (license license:bsd-3)))
5017
5018(define-public python-ctaplot
5019 (package
5020 (name "python-ctaplot")
5021 (version "0.6.6")
5022 (source
5023 (origin
5024 (method git-fetch)
5025 (uri (git-reference
5026 (url "https://github.com/cta-observatory/ctaplot")
5027 (commit (string-append "v" version))))
5028 (file-name (git-file-name name version))
5029 (sha256
5030 (base32 "1qvi6vz3gc8gy3h7kqnmkab0sgin94hz92gb0syp7nr1likdcd6b"))))
5031 (build-system pyproject-build-system)
5032 (native-inputs
5033 (list python-pytest
5034 python-setuptools))
5035 (propagated-inputs
5036 (list jupyter
5037 python-astropy
5038 python-ipywidgets
5039 python-matplotlib
5040 python-numpy
5041 python-pandas
5042 python-pyyaml
5043 python-scikit-learn
5044 python-scipy
5045 python-tables
5046 python-tqdm))
5047 (home-page "https://github.com/cta-observatory/ctaplot")
5048 (synopsis "Plotting library for CTA and other IACT")
5049 (description
5050 "@code{ctaplot} provides low-level reconstruction quality-checks metrics
5051computation and vizualisation for Imaging Atmospheric Cherenkov Telescopes
5052such as CTA.")
5053 (license license:expat)))
5054
5055(define-public python-czml3
5056 (package
5057 (name "python-czml3")
5058 (version "3.3.1")
5059 (source
5060 (origin
5061 (method git-fetch)
5062 (uri (git-reference
5063 ;; Maintainer of the project has been changed, see
5064 ;; <https://github.com/poliastro/czml3/issues/112>.
5065 (url "https://github.com/Stoops-ML/czml3")
5066 (commit (string-append "v" version))))
5067 (file-name (git-file-name name version))
5068 (sha256
5069 (base32 "0hnlqn0jyazkkc6p81f9dsn7jgm37b7bmnvykxn1m7xchkhzc2hr"))))
5070 (build-system pyproject-build-system)
5071 ;; tests: 255 passed, 1 xfailed, 1 warning
5072 (native-inputs
5073 (list python-pytest
5074 python-setuptools))
5075 (propagated-inputs
5076 (list python-dateutil
5077 python-numpy
5078 python-pydantic
5079 python-strenum
5080 python-typing-extensions
5081 python-w3lib))
5082 (home-page "https://github.com/Stoops-ML/czml3")
5083 (synopsis "Python library to write CZML")
5084 (description
5085 "CZML3 is a Python library to write CZML, a JSON format for describing
5086a time-dynamic graphical scene, primarily for display in a web browser running
5087Cesium.")
5088 (license license:bsd-3)))
5089
5090(define-public python-dkist
5091 (package
5092 (name "python-dkist")
5093 (version "1.18.0")
5094 (source
5095 (origin
5096 (method git-fetch)
5097 (uri (git-reference
5098 (url "https://github.com/DKISTDC/dkist")
5099 (commit (string-append "v" version))))
5100 (file-name (git-file-name name version))
5101 (sha256
5102 (base32 "13mlcqrbydhyfd3z7vzw49wlav83fssr2qwwv5h58djgjqnjmjk1"))))
5103 (build-system pyproject-build-system)
5104 (arguments
5105 (list
5106 ;; tests: 492 passed, 7 skipped
5107 #:test-flags
5108 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count)))
5109 ;; When python-pytest-benchmark is added: Benchmarks are
5110 ;; automatically disabled because xdist plugin is
5111 ;; active.Benchmarks cannot be performed reliably in a
5112 ;; parallelized environment.
5113 "--ignore=dkist/tests/test_benchmarks.py"
5114 ;; Network access is required.
5115 "--deselect=dkist/net/tests/test_client.py::test_fetch_with_headers")
5116 #:phases
5117 #~(modify-phases %standard-phases
5118 (add-after 'unpack 'relax-requirements
5119 (lambda _
5120 (substitute* "pyproject.toml"
5121 (("platformdirs>=4.5") "platformdirs>=4.3.6"))))
5122 (add-before 'sanity-check 'set-home-env
5123 (lambda _
5124 (setenv "HOME" "/tmp"))))))
5125 (native-inputs
5126 (list python-pydot
5127 python-pytest
5128 python-pytest-asdf-plugin
5129 python-pytest-doctestplus
5130 python-pytest-filter-subpackage
5131 python-pytest-httpserver
5132 python-pytest-lazy-fixtures
5133 python-pytest-xdist
5134 python-pytest-mock
5135 python-pytest-mpl
5136 python-pytest-remotedata
5137 python-pytest-xdist
5138 python-setuptools
5139 python-setuptools-scm))
5140 (propagated-inputs
5141 (list python-aiohttp
5142 python-asdf
5143 python-asdf-astropy
5144 python-asdf-coordinates-schemas
5145 python-asdf-standard
5146 python-asdf-transform-schemas
5147 python-asdf-wcs-schemas
5148 python-astropy
5149 python-dask
5150 python-globus-sdk
5151 python-gwcs
5152 python-matplotlib
5153 python-ndcube
5154 python-numpy
5155 python-packaging
5156 python-parfive
5157 python-platformdirs
5158 python-sunpy
5159 python-tqdm))
5160 (home-page "https://github.com/DKISTDC/dkist")
5161 (synopsis "Obtaining, processing and interacting with calibrated DKIST data")
5162 (description
5163 "The @acronym{DKIST, Daniel K. Inouye Solar Telescope} package aims to
5164help you search, obtain and use DKIST data as part of your Python software.")
5165 (license license:bsd-3)))
5166
5167(define-public python-drizzle
5168 (package
5169 (name "python-drizzle")
5170 (version "2.2.0")
5171 (source
5172 (origin
5173 (method git-fetch)
5174 (uri (git-reference
5175 (url "https://github.com/spacetelescope/drizzle")
5176 (commit version)))
5177 (file-name (git-file-name name version))
5178 (sha256
5179 (base32 "1chy80svnbj2z215slxvnih097gh4c08wwchv2nk2ydmgra1bvli"))))
5180 (build-system pyproject-build-system)
5181 (arguments
5182 (list
5183 ;; tests: 257 passed, 9 xfailed
5184 #:phases
5185 #~(modify-phases %standard-phases
5186 (add-before 'check 'build-extensions
5187 (lambda _
5188 ;; XXX: "drizzle/tests/data" is not part of the final package
5189 ;; which blocks using "--pyargs".
5190 ;; Cython extensions have to be built before running the tests.
5191 (invoke "python" "setup.py" "build_ext" "--inplace"))))))
5192 (native-inputs
5193 (list python-astropy-minimal
5194 python-gwcs
5195 python-pytest
5196 python-pytest-doctestplus
5197 python-setuptools
5198 python-setuptools-scm))
5199 (propagated-inputs
5200 (list python-numpy))
5201 (home-page "https://github.com/spacetelescope/drizzle")
5202 (synopsis "Combining dithered images into a single image")
5203 (description
5204 "The drizzle library is a Python package for combining dithered images
5205into a single image. This library is derived from code used in DrizzlePac.
5206Like DrizzlePac, most of the code is implemented in the C language. The
5207biggest change from DrizzlePac is that this code passes an array that maps the
5208input to output image into the C code, while the DrizzlePac code computes the
5209mapping by using a Python callback. Switching to using an array allowed the
5210code to be greatly simplified.")
5211 (license license:bsd-3)))
5212
5213(define-public python-drizzlepac
5214 (package
5215 (name "python-drizzlepac")
5216 (version "3.11.0")
5217 (source
5218 (origin
5219 (method git-fetch)
5220 (uri (git-reference
5221 (url "https://github.com/spacetelescope/drizzlepac")
5222 (commit (string-append "v" version))))
5223 (file-name (git-file-name name version))
5224 (sha256
5225 (base32 "00f32b544i9jrgf6phzgbj3as3cfpqn7gl7wn1njl09gbfvy0yvw"))))
5226 (build-system pyproject-build-system)
5227 (arguments
5228 (list
5229 #:test-flags
5230 #~(list #$@(map (lambda (ls) (string-append "--deselect=tests/"
5231 (string-join ls "::")))
5232 ;; Network access is required.
5233 '(("hap/test_pipeline.py" "TestSingleton"
5234 "test_astrometric_singleton[iaaua1n4q]")
5235 ("hap/test_svm_ci.py" "TestSVMCI" "test_svm_ci"))))
5236 #:phases
5237 #~(modify-phases %standard-phases
5238 (add-before 'check 'remove-local-source
5239 (lambda _
5240 (delete-file-recursively "drizzlepac"))))))
5241 (native-inputs
5242 (list python-ci-watson
5243 python-crds-minimal
5244 python-markupsafe
5245 python-pytest
5246 python-pytest-remotedata
5247 python-setuptools
5248 python-setuptools-scm))
5249 (propagated-inputs
5250 (list python-astrocut
5251 python-astropy
5252 python-astroquery
5253 python-bokeh
5254 python-fitsblender
5255 python-lxml
5256 python-matplotlib
5257 python-numpy
5258 python-pandas
5259 python-photutils
5260 python-pypdf
5261 python-stregion
5262 python-requests
5263 python-scikit-image
5264 python-scikit-learn
5265 python-scipy
5266 python-simplify-polyline
5267 python-spherical-geometry
5268 python-stsci-image
5269 python-stsci-imagestats
5270 python-stsci-skypac
5271 python-stsci-stimage
5272 python-stsci-tools
5273 python-stwcs
5274 python-tweakwcs))
5275 (home-page "https://drizzlepac.readthedocs.io/")
5276 (synopsis "AstroDrizzle for HST images")
5277 (description
5278 "@acronym{Hubble Space Telescope , HST} image combination using the
5279drizzle algorithm to combine astronomical images, to model image distortion,
5280to remove cosmic rays, and generally to improve the fidelity of data in the
5281final image.")
5282 (license license:bsd-3)))
5283
5284(define-public python-drms
5285 (package
5286 (name "python-drms")
5287 (version "0.9.1")
5288 (source
5289 (origin
5290 (method url-fetch)
5291 (uri (pypi-uri "drms" version))
5292 (sha256
5293 (base32 "1v651dddh38fdap0jb4mmnw8lkbvlcxd3jkcc21jlkp2lhpiqbsg"))))
5294 (build-system pyproject-build-system)
5295 (native-inputs
5296 (list python-astropy-minimal
5297 python-pytest-astropy
5298 python-setuptools
5299 python-setuptools-scm))
5300 (propagated-inputs
5301 (list python-numpy
5302 python-packaging
5303 python-pandas))
5304 (home-page "https://sunpy.org")
5305 (synopsis "Access astronomical HMI, AIA and MDI data with Python")
5306 (description
5307 "DRMS module provides an easy-to-use interface for accessing HMI, AIA and
5308MDI data with Python. It uses the publicly accessible
5309JSOC (@url{http://jsoc.stanford.edu/}) DRMS server by default, but can also be
5310used with local NetDRMS sites.")
5311 (license license:bsd-2)))
5312
5313(define-public python-dust-extinction
5314 (package
5315 (name "python-dust-extinction")
5316 (version "1.7")
5317 (source
5318 (origin
5319 (method url-fetch)
5320 (uri (pypi-uri "dust_extinction" version))
5321 (sha256
5322 (base32 "0r0hm0x750712m3v0qkl9i1hj28zq12d8bhjk8pfh8n68kyfl8f4"))))
5323 (build-system pyproject-build-system)
5324 ;; tests: 365 passed, 41 skipped, 75 warnings
5325 (native-inputs
5326 (list python-pytest
5327 python-pytest-doctestplus
5328 python-setuptools))
5329 (propagated-inputs
5330 (list python-astropy
5331 python-scipy))
5332 (home-page "http://dust-extinction.readthedocs.io/")
5333 (synopsis "Interstellar Dust Extinction Models")
5334 (description
5335 "This package provides astronomical interstellar dust extinction curves
5336implemented using the astropy.modeling framework.")
5337 (license license:bsd-3)))
5338
5339(define-public python-eaglesqltools
5340 (package
5341 (name "python-eaglesqltools")
5342 ;; 2.0.0 was published in 2018 on PyPI, where Git repository has no tags,
5343 ;; use the latest commit to have latest changes.
5344 (properties '((commit . "31732c696681adc27ee8ea3cd23ae06652f2401b")
5345 (revision . "0")))
5346 (version (git-version "2.0.0"
5347 (assoc-ref properties 'revision)
5348 (assoc-ref properties 'commit)))
5349 (source
5350 (origin
5351 (method git-fetch)
5352 (uri (git-reference
5353 (url "https://github.com/kyleaoman/eagleSqlTools")
5354 (commit (assoc-ref properties 'commit))))
5355 (file-name (git-file-name name version))
5356 (sha256
5357 (base32 "007inh0i3jk47agmvk10g4ifqi1grqp2s6ywx769pl95yn4y8435"))))
5358 (build-system pyproject-build-system)
5359 (arguments
5360 (list #:tests? #f)) ;no tests
5361 (native-inputs
5362 (list python-setuptools))
5363 (propagated-inputs
5364 (list python-numpy))
5365 (home-page "https://github.com/kyleaoman/eagleSqlTools")
5366 (synopsis "Python API for the EAGLE cosmological simulation database")
5367 (description
5368 "This package provides utilities for accessing
5369@url{https://arxiv.org/abs/1510.01320, EAGLE public database}.")
5370 (license license:gpl3)))
5371
5372(define-public python-ebtelplusplus
5373 (package
5374 (name "python-ebtelplusplus")
5375 (version "0.6.0")
5376 (source
5377 (origin
5378 (method git-fetch)
5379 (uri (git-reference
5380 (url "https://github.com/rice-solar-physics/ebtelplusplus")
5381 (commit (string-append "v" version))))
5382 (file-name (git-file-name name version))
5383 (sha256
5384 (base32 "1qj7rd1xa1q2z1m68ss47w289bjlc3pm68p7g16pr5xnj0w3g5l7"))))
5385 (build-system pyproject-build-system)
5386 (arguments
5387 (list #:test-flags #~(list "--pyargs" "ebtelplusplus")
5388 #:phases
5389 #~(modify-phases %standard-phases
5390 (add-before 'check 'remove-local-source
5391 (lambda _
5392 (delete-file-recursively "ebtelplusplus"))))))
5393 (native-inputs
5394 (list boost
5395 python-hissw
5396 python-pytest
5397 python-pytest-astropy
5398 python-scikit-build-core
5399 python-setuptools-scm))
5400 (propagated-inputs
5401 (list python-astropy))
5402 (home-page "https://github.com/rice-solar-physics/ebtelplusplus")
5403 (synopsis "Zero-dimensional hydrodynamics of coronal loops")
5404 (description
5405 "ebtelplusplus is an implementation of the enthalpy-based thermal
5406evolution of loops (EBTEL) model for doing efficient hydrodynamics of
5407dynamically-heated solar coronal loops. ebtelplusplus decouples the electron
5408and ion energy equations such that the two populations can evolve separately.
5409This implementation also includes effects to due to cross-sectional area
5410expansion.")
5411 (license license:gpl3+)))
5412
5413(define-public python-edps
5414 (package
5415 (name "python-edps")
5416 (version "1.8.1")
5417 (source
5418 (origin
5419 (method url-fetch)
5420 (uri (string-append
5421 "https://ftp.eso.org/pub/dfs/pipelines/libraries/edps/edps-"
5422 version ".tar.gz"))
5423 (sha256
5424 (base32 "1fz7mr1kwb7jzid3l414z6qpcsfv205qxckjfgcqqxk08jawgnkz"))))
5425 (build-system pyproject-build-system)
5426 (arguments
5427 (list
5428 #:tests? #f)) ;no tests in tarball
5429 (native-inputs
5430 (list python-setuptools))
5431 (propagated-inputs
5432 (list python-astropy
5433 python-fastapi
5434 python-networkx
5435 python-pyyaml
5436 python-requests
5437 python-uvicorn
5438 python-tinydb
5439 python-frozendict
5440 python-jinja2
5441 python-pydantic
5442 python-psutil))
5443 (home-page "https://www.eso.org/sci/software/edps.html")
5444 (synopsis "ESO's Data Processing System")
5445 (description
5446 "@acronym{European Southern Observatory Data Processing System EDPS} is a
5447system to automatically organise data from ESO instruments for pipeline
5448processing and running the pipeline on these data. It is used for quality
5449control at ESO. The current public release is a beta version without a GUI.
5450A GUI is being developed and the system is meant to eventually replace the
5451older EsoReflex environment.")
5452 (properties '((upstream-name . "edps")))
5453 (license license:bsd-3)))
5454
5455(define-public python-ephem
5456 (package
5457 (name "python-ephem")
5458 (version "4.2.1")
5459 (source
5460 (origin
5461 (method git-fetch)
5462 (uri (git-reference
5463 (url "https://github.com/brandon-rhodes/pyephem")
5464 (commit version)))
5465 (file-name (git-file-name name version))
5466 (sha256
5467 (base32 "1slb77iqmg3krh43iscpxljp8p41crpvn914gpxcnkgx8njraix1"))))
5468 (build-system pyproject-build-system)
5469 (arguments
5470 (list
5471 #:test-backend #~'unittest
5472 #:test-flags #~(list "discover" "ephem")
5473 #:phases
5474 #~(modify-phases %standard-phases
5475 (add-before 'check 'remove-local-source
5476 (lambda _
5477 ;; See: <https://codeberg.org/guix/guix/issues/7243>.
5478 (delete-file-recursively "ephem"))))))
5479 (native-inputs
5480 (list python-pytest
5481 python-setuptools
5482 tzdata-for-tests))
5483 (home-page "https://rhodesmill.org/pyephem/")
5484 (synopsis "Compute positions of the planets and stars")
5485 (description
5486 "PyEphem provides an @code{ephem} Python package for performing
5487high-precision astronomy computations.
5488
5489The name ephem is short for the word ephemeris, which is the traditional term
5490for a table giving the position of a planet, asteroid, or comet for a series
5491of dates.")
5492 (license license:expat)))
5493
5494(define-public python-esutil
5495 (package
5496 (name "python-esutil")
5497 (version "0.6.16")
5498 (source
5499 (origin
5500 (method git-fetch)
5501 (uri (git-reference
5502 (url "https://github.com/esheldon/esutil")
5503 (commit version)))
5504 (file-name (git-file-name name version))
5505 (sha256
5506 (base32 "05csk5asq3si7gdq8mpfh288z10rs45ylpcrrcjx0009q52l95xq"))))
5507 (build-system pyproject-build-system)
5508 (arguments
5509 (list
5510 #:phases
5511 #~(modify-phases %standard-phases
5512 (add-before 'build 'relax-gcc-14-strictness
5513 (lambda _
5514 (setenv "CFLAGS" (string-join
5515 (list "-g" "-O2"
5516 "-Wno-error=incompatible-pointer-types")
5517 " ")))))))
5518 (native-inputs
5519 (list python-pytest
5520 python-setuptools))
5521 (propagated-inputs
5522 (list python-numpy
5523 python-scipy))
5524 (home-page "https://github.com/esheldon/esutil")
5525 (synopsis "Numerical, scientific, and astrophysical computing utilities")
5526 (description
5527 "This package provides a wide variety of utilities, focused primarily on
5528numerical python, statistics, and file input/output. Includes specialized
5529tools for astronomers.")
5530 (license license:gpl2+)))
5531
5532(define-public python-euclidlike
5533 (package
5534 (name "python-euclidlike")
5535 ;; No PyPI release or Git version tags, use the latest commit.
5536 (properties '((commit . "48cc8b3727d72aa77eb30a42972d21a3b8ca6385")
5537 (revision . "1")))
5538 (version (git-version "0.9.0"
5539 (assoc-ref properties 'revision)
5540 (assoc-ref properties 'commit)))
5541 (source
5542 (origin
5543 (method git-fetch)
5544 (uri (git-reference
5545 (url "https://github.com/GalSim-developers/GalSim-Euclid-Like")
5546 (commit (assoc-ref properties 'commit))))
5547 (file-name (git-file-name name version))
5548 (sha256
5549 (base32 "1zy3sqkbm2iny3a7ila3cdr12p6msc1khbhq103gh03wpkxwi022"))))
5550 (build-system pyproject-build-system)
5551 (native-inputs
5552 (list python-pytest
5553 python-pytest-xdist
5554 python-setuptools))
5555 (propagated-inputs
5556 (list python-astropy
5557 python-galsim
5558 python-numpy))
5559 (home-page "https://galsim-developers.github.io/GalSim-Euclid-Like/")
5560 (synopsis "Helper functions to generate simulations of Euclid-Like images")
5561 (description
5562 "This package provides information about the Euclid space telescope and
5563survey that is needed to produce simulations using GalSim. Some of the
5564information provided is approximate, aimed towards fast simulations rather
5565than full accuracy in representation of Euclid images. Places where the
5566information is only approximate are flagged and described in the docstring,
5567and we particularly highlight that the PSF is only approximate; for details,
5568see the docstring of the @code{getPSF()} method. This library should enable
5569generation of Euclid-like images of sufficient fidelity for preliminary
5570exploration of object detection, photometry, deblending, and joint analysis
5571with ground-based observatories. For applications requiring high precision
5572such as weak lensing, the higher fidelity simulations available within the
5573Euclid Consortium should be used.")
5574 ;; license = {text = "GalSim"}
5575 (license license:bsd-3)))
5576
5577(define-public python-eventio
5578 (package
5579 (name "python-eventio")
5580 (version "2.1.1")
5581 (source
5582 (origin
5583 (method git-fetch)
5584 (uri (git-reference
5585 (url "https://github.com/cta-observatory/pyeventio")
5586 (commit (string-append "v" version))))
5587 (file-name (git-file-name name version))
5588 (sha256
5589 (base32 "1mk5ajfg8q3209lq6prqialdz2y9hpwi6pbkcgrrkrxmp0ws0hqf"))))
5590 (build-system pyproject-build-system)
5591 ;; tests: 163 passed, 3 skipped, 4 xfailed
5592 (native-inputs
5593 (list python-cython
5594 python-numpy
5595 python-pytest
5596 python-setuptools
5597 python-setuptools-scm))
5598 (propagated-inputs
5599 (list python-corsikaio
5600 python-matplotlib
5601 python-numpy
5602 python-zstandard))
5603 (home-page "https://github.com/cta-observatory/pyeventio")
5604 (synopsis "Python read-only implementation of the EventIO file format")
5605 (description
5606 "Python read-only implementation of the @code{EventIO} file format.")
5607 (license license:expat)))
5608
5609(define-public python-extinction
5610 (package
5611 (name "python-extinction")
5612 (version "0.4.9")
5613 (source
5614 (origin
5615 (method git-fetch)
5616 (uri (git-reference
5617 (url "https://github.com/sncosmo/extinction")
5618 (commit (string-append "v" version))))
5619 (file-name (git-file-name name version))
5620 (sha256
5621 (base32 "19cq9dfmiwm77c928104jrzynga7h1y6x62z495d2qf0qji6v2d6"))))
5622 (build-system pyproject-build-system)
5623 (native-inputs
5624 (list python-cython
5625 python-pytest
5626 python-setuptools))
5627 (propagated-inputs
5628 (list python-numpy))
5629 (home-page "https://github.com/sncosmo/extinction")
5630 (synopsis "Fast interstellar dust extinction laws")
5631 (description
5632 "This package provides a cython-optimized implementation of empirical
5633dust exitinction laws found in the literature.")
5634 (license license:expat)))
5635
5636(define-public python-fiasco
5637 (package
5638 (name "python-fiasco")
5639 (version "0.8.2")
5640 (source
5641 (origin
5642 (method git-fetch)
5643 (uri (git-reference
5644 (url "https://github.com/wtbarnes/fiasco")
5645 (commit (string-append "v" version))))
5646 (file-name (git-file-name name version))
5647 (sha256
5648 (base32 "1drlfyppdvjkinic4gky4vgzmr2zva3xyl9xk2fzplx9pz97lgfv"))))
5649 (build-system pyproject-build-system)
5650 (arguments
5651 (list
5652 ;; Network access is required to fetch remote data from
5653 ;; <download.chiantidatabase.org>.
5654 #:tests? #f
5655 #:phases
5656 #~(modify-phases %standard-phases
5657 (add-after 'unpack 'patch-manifest.in
5658 ;; See: <https://codeberg.org/guix/guix/issues/4393>.
5659 (lambda* (#:key name source inputs #:allow-other-keys)
5660 (let ((port (open-file "MANIFEST.in" "w")))
5661 (for-each
5662 (lambda (file)
5663 (display "include " port)
5664 (display file port)
5665 (display "\n" port))
5666 (find-files "fiasco"))
5667 (close port)))))))
5668 (native-inputs
5669 (list nss-certs-for-test ;sanity-check fails without it
5670 python-setuptools
5671 python-setuptools-scm))
5672 (propagated-inputs
5673 (list python-astropy
5674 python-fortranformat
5675 python-h5py
5676 python-numpy
5677 python-plasmapy))
5678 (home-page "https://fiasco.readthedocs.io")
5679 (synopsis "Python interface to the CHIANTI atomic database")
5680 (description
5681 "fiasco provides a Python interface to
5682@url{http://www.chiantidatabase.org/, CHIANTI}, an atomic database for
5683astrophysical spectroscopy. In addition to several high-level abstractions of
5684the atomic data, fiasco also provides many common atomic physics
5685calculations.")
5686 (license license:bsd-3)))
5687
5688(define-public python-fits-schema
5689 (package
5690 (name "python-fits-schema")
5691 ;; 0.5.6 (2022-04-14), there are NumPy 2 comparability changes which are
5692 ;; available on master HEAD, use the latest commit for now.
5693 (properties '((commit . "e638ea7595597b8ecfe0761886e7052e58b81a2d")
5694 (revision . "1")))
5695 (version (git-version "0.5.6"
5696 (assoc-ref properties 'revision)
5697 (assoc-ref properties 'commit)))
5698 (source
5699 (origin
5700 (method git-fetch)
5701 (uri (git-reference
5702 (url "https://github.com/VODF/fits_schema")
5703 (commit (assoc-ref properties 'commit))))
5704 (file-name (git-file-name name version))
5705 (sha256
5706 (base32 "0rj9xwlr9clnlvw0nvr0ynpvwny380pnjynw45c7znnhlnh02dn0"))))
5707 (build-system pyproject-build-system)
5708 (native-inputs
5709 (list python-pytest
5710 python-setuptools
5711 python-setuptools-scm))
5712 (propagated-inputs
5713 (list python-astropy
5714 python-numpy))
5715 (home-page "https://github.com/VODF/fits_schema")
5716 (synopsis "Schemata for FITS files")
5717 (description
5718 "This package provides a Python definition and validation schemata for FITS
5719files.")
5720 (license license:expat)))
5721
5722(define-public python-fits-schema-0.5.6
5723 ;; The latest fits_schema removed HeaderSchema class requiring for
5724 ;; python-ogadf-schema, drop this variant when a fresh release is published.
5725 (package
5726 (inherit python-fits-schema)
5727 (name "python-fits-schema")
5728 (version "0.5.6")
5729 (source
5730 (origin
5731 (method git-fetch)
5732 (uri (git-reference
5733 (url "https://github.com/VODF/fits_schema")
5734 (commit (string-append "v" version))))
5735 (file-name (git-file-name name version))
5736 (sha256
5737 (base32 "0cmc3z5jwzzgpszdwfjysa43clx96r8g1h59nv4dbmshnwih9kk2"))))
5738 (arguments
5739 (list
5740 #:tests? #f
5741 #:phases
5742 #~(modify-phases %standard-phases
5743 (add-after 'unpack 'remove-broken-entry-point
5744 (lambda _
5745 (substitute* "setup.cfg"
5746 (("fibonacci.*") "")))))))))
5747
5748(define-public python-fitsblender
5749 (package
5750 (name "python-fitsblender")
5751 (version "0.4.4")
5752 (source
5753 (origin
5754 (method url-fetch)
5755 (uri (pypi-uri "fitsblender" version))
5756 (sha256
5757 (base32 "1ba1374axaxh3dzzpii6q05z4jcrfp7yjk1wsfm2gzmxalnp0f6r"))))
5758 (build-system pyproject-build-system)
5759 (native-inputs
5760 (list python-pytest python-setuptools python-setuptools-scm))
5761 (propagated-inputs
5762 (list python-astropy
5763 python-numpy
5764 python-stsci-tools))
5765 (home-page "https://github.com/spacetelescope/fitsblender")
5766 (synopsis "Aggregate values in FITS headers")
5767 (description
5768 "This package supports the creation of a combined header for a FITS file
5769based on the contents of the headers of a set of input FITS images. A rules
5770file defines what keywords will be present in the combined output header as
5771well as how the output value will be determined from the set of values from
5772all the input image headers.")
5773 (license license:bsd-3)))
5774
5775(define-public python-fitsio
5776 (package
5777 (name "python-fitsio")
5778 (version "1.4.2")
5779 (source
5780 (origin
5781 (method git-fetch)
5782 (uri (git-reference
5783 (url "https://github.com/esheldon/fitsio")
5784 (commit version)))
5785 (file-name (git-file-name name version))
5786 (sha256
5787 (base32 "1gylk2qk49wv24wdq8yzyg6d29hg5kvdnnd2bqq8c7p7qndgqxw8"))
5788 (modules '((guix build utils)))
5789 (snippet
5790 ;; Remove the bundled cfitsio. When update the package check the
5791 ;; current bundled version.
5792 #~(begin
5793 (delete-file-recursively "cfitsio-4.6.4.tar.gz")
5794 (substitute* "MANIFEST.in"
5795 (("recursive-include cfitsio-4.6.4.*$\n") ""))))))
5796 (build-system pyproject-build-system)
5797 (arguments
5798 (list
5799 ;; tests: 1884 passed, 905 skipped, 113 xfailed, 2 xpassed, 13 warnings
5800 #:test-flags
5801 #~(list "--pyargs" "fitsio")
5802 #:phases
5803 #~(modify-phases %standard-phases
5804 (add-before 'build 'set-env
5805 (lambda _
5806 (setenv "FITSIO_USE_SYSTEM_FITSIO" "True")
5807 (setenv "FITSIO_SYSTEM_FITSIO_INCLUDEDIR"
5808 (string-append
5809 #$(this-package-input "cfitsio") "/include"))
5810 (setenv "FITSIO_SYSTEM_FITSIO_LIBDIR"
5811 (string-append
5812 #$(this-package-input "cfitsio") "/lib")))))))
5813 (native-inputs
5814 (list python-pytest
5815 python-setuptools
5816 python-setuptools-scm))
5817 (inputs
5818 (list curl
5819 cfitsio
5820 zlib))
5821 (propagated-inputs
5822 (list python-numpy))
5823 (home-page "https://github.com/esheldon/fitsio")
5824 (synopsis "Python library to read from and write to FITS files")
5825 (description
5826 "This package provides a Python library for reading from and writing
5827to @acronym{FITS, Flexible Image Transport System} files using the
5828CFITSIO library. Among other things, it can
5829
5830@itemize
5831@item read and write image, binary, and ascii table extensions;
5832
5833@item read arbitrary subsets of tables in a lazy manner;
5834
5835@item query the rows and columns of a table;
5836
5837@item read and write header keywords;
5838
5839@item read and write Gzip files.
5840@end itemize")
5841 (license license:gpl2+)))
5842
5843(define-public python-flatstar
5844 (package
5845 (name "python-flatstar")
5846 (version "0.2.1-alpha")
5847 (source
5848 (origin
5849 (method git-fetch)
5850 (uri (git-reference
5851 (url "https://github.com/ladsantos/flatstar")
5852 (commit (string-append "v" version))))
5853 (file-name (git-file-name name version))
5854 (sha256
5855 (base32 "0r6w8sz7z9ri9plqn98dz93c9rb33ky544y1wzwifh1m8y3m67si"))))
5856 (build-system pyproject-build-system)
5857 (arguments
5858 (list
5859 #:test-flags
5860 ;; assert np.float32(2.861023e-06) < 1e-06
5861 #~(list "--deselect=tests/test_draw.py::test_supersampling"
5862 ;; assert np.float32(1.9073486e-06) < 1e-06
5863 "--deselect=tests/test_draw.py::test_upscaling")))
5864 (native-inputs
5865 (list python-pytest
5866 python-setuptools))
5867 (propagated-inputs
5868 (list python-numpy
5869 python-pillow))
5870 (home-page "https://github.com/ladsantos/flatstar")
5871 (synopsis "Make 2d intensity maps of limb-darkened stars")
5872 (description
5873 "@code{flatstar} is a pure-Python tool for drawing stellar disks with
5874scientifically-rigorous limb darkening. Each pixel has an accurate fractional
5875intensity in relation to the total stellar intensity of @code{1.0}. It is
5876ideal for ray-tracing simulations of stars and planetary transits.")
5877 (license license:expat)))
5878
5879(define-public python-galpy
5880 (package
5881 (name "python-galpy")
5882 (version "1.12.0")
5883 (source
5884 (origin
5885 (method git-fetch)
5886 (uri (git-reference
5887 (url "https://github.com/jobovy/galpy")
5888 (commit (string-append "v" version))))
5889 (file-name (git-file-name name version))
5890 (sha256
5891 (base32 "0jqwnvldb2pzjh0nbb9h7jfswwznzl6s9j542mf33a3xakghvbdl"))))
5892 (build-system pyproject-build-system)
5893 (arguments
5894 (list
5895 #:test-flags
5896 ;; Test steps are taken from project's GitHub Actions file. Full test
5897 ;; suite might take about 2h to complete.
5898 #~(list "tests/test_orbit.py"
5899 "tests/test_orbits.py"
5900 ;; Network access is required to access the capabilities endpointt
5901 ;; at <https://simbad.cds.unistra.fr/simbad/sim-tap/capabilities>.
5902 "--deselect=tests/test_orbit.py::test_from_name_errors"
5903 "--deselect=tests/test_orbit.py::test_from_name_values"
5904 "--deselect=tests/test_orbits.py::test_from_name_values")
5905 #:phases
5906 #~(modify-phases %standard-phases
5907 ;; XXX: Sanity check failes with error: ImportError: dynamic module
5908 ;; does not define module export function (PyInit_libgalpy)
5909 (delete 'sanity-check)
5910 ;; Galpy needs modified source of Torus project which is not bundled
5911 ;; with this package, see:
5912 ;; <https://docs.galpy.org/en/latest/installation.html>.
5913 (add-after 'unpack 'copy-torus-source
5914 (lambda _
5915 (mkdir-p "galpy/actionAngle/actionAngleTorus_c_ext/torus")
5916 (copy-recursively
5917 #+(origin
5918 (method git-fetch)
5919 (uri (git-reference
5920 (url "https://github.com/jobovy/Torus")
5921 (commit "b7bf7965db8c3b2034d6a92f5a1c1fefe13e0e5d")))
5922 (file-name (git-file-name
5923 (string-append "torus-source-for-" name) version))
5924 (sha256
5925 (base32 "0qjjj6qw4mjqrcx2kabd7rr621ndr6la329jlz5yh122zpyzz3vq")))
5926 "galpy/actionAngle/actionAngleTorus_c_ext/torus")))
5927 (add-before 'build 'patch-gsl-config-bin-path
5928 (lambda* (#:key inputs #:allow-other-keys)
5929 (substitute* "setup.py"
5930 (("'gsl-config'")
5931 (format #f "~s" (search-input-file inputs "/bin/gsl-config"))))))
5932 (add-before 'build 'pre-build
5933 (lambda _
5934 (setenv "CC" #$(cc-for-target))))
5935 (add-after 'build 'remove-local-source
5936 (lambda _
5937 (delete-file-recursively "galpy")))
5938 (add-before 'check 'pre-check
5939 (lambda _
5940 (setenv "MPLBACKEND" "Agg"))))))
5941 (native-inputs
5942 (list python-numexpr
5943 python-pytest
5944 python-setuptools))
5945 (inputs
5946 (list gsl))
5947 (propagated-inputs
5948 (list python-astropy
5949 python-astroquery
5950 python-matplotlib
5951 python-numba
5952 python-numpy
5953 python-packaging
5954 python-pynbody
5955 python-scipy
5956 python-tqdm))
5957 (home-page "https://www.galpy.org/")
5958 (synopsis "Galactic Dynamics in Python")
5959 (description
5960 "Galpy is a Python package for galactic dynamics. It supports orbit
5961integration in a variety of potentials, evaluating and sampling various
5962distribution functions, and the calculation of action-angle coordinates for
5963all static potentials. Galpy is an Astropy affiliated package and provides
5964full support for Astropy’s Quantity framework for variables with units.")
5965 (license (list license:bsd-3
5966 license:gpl2)))) ;for Torus source
5967
5968(define-public python-galsim
5969 (package
5970 (name "python-galsim")
5971 (version "2.8.5")
5972 (source
5973 (origin
5974 (method git-fetch)
5975 (uri (git-reference
5976 (url "https://github.com/GalSim-developers/GalSim")
5977 (commit (string-append "v" version))))
5978 (file-name (git-file-name name version))
5979 (sha256
5980 (base32 "0g21lnhjmqyszxk0lka9m99gd0ipsddx6fzv13ylda2iahi3dz4s"))))
5981 (build-system pyproject-build-system)
5982 (arguments
5983 (list
5984 ;; tests: 234 passed, 7 warnings
5985 #:test-flags
5986 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count)))
5987 "--ignore=devel/"
5988 ;; XXX: Tests need data from
5989 ;; <http://www.sas.upenn.edu/~mjarvis/des_data.tar.gz> 637MiB,
5990 ;; see how it's implemented in CI
5991 ;; (.github/workflows/ci.yml). Try to activate more tests: 141
5992 ;; failed, 608 passed, 1 skipped, 1 warning
5993 #$@(map (lambda (file) (string-append "--ignore="
5994 "tests/"
5995 file))
5996 (list "test_bandpass.py"
5997 "test_catalog.py"
5998 "test_cdmodel.py"
5999 "test_chromatic.py"
6000 "test_config_gsobject.py"
6001 "test_config_image.py"
6002 "test_config_input.py"
6003 "test_config_noise.py"
6004 "test_config_output.py"
6005 "test_config_value.py"
6006 "test_convolve.py"
6007 "test_correlatednoise.py"
6008 "test_deprecated.py"
6009 "test_des.py"
6010 "test_download.py"
6011 "test_draw.py"
6012 "test_fitsheader.py"
6013 "test_galaxy_sample.py"
6014 "test_hsm.py"
6015 "test_image.py"
6016 "test_inclined.py"
6017 "test_interpolatedimage.py"
6018 "test_knots.py"
6019 "test_lensing.py"
6020 "test_main.py"
6021 "test_optics.py"
6022 "test_phase_psf.py"
6023 "test_photon_array.py"
6024 "test_random.py"
6025 "test_real.py"
6026 "test_roman.py"
6027 "test_sensor.py"
6028 "test_sum.py"
6029 "test_table.py"
6030 "test_transforms.py"
6031 "test_wcs.py")))
6032 #:phases
6033 #~(modify-phases %standard-phases
6034 (add-before 'check 'remove-local-galsim
6035 (lambda _
6036 ;; See: <https://codeberg.org/guix/guix/issues/7243>.
6037 (delete-file-recursively "galsim"))))))
6038 (native-inputs
6039 (list python-pytest
6040 python-pytest-xdist
6041 python-setuptools))
6042 (inputs
6043 (list eigen
6044 fftw))
6045 (propagated-inputs
6046 (list pybind11
6047 python-astropy
6048 python-lsstdesc-coord
6049 python-numpy))
6050 (home-page "https://github.com/GalSim-developers/GalSim")
6051 (synopsis "Modular galaxy image simulation toolkit")
6052 (description
6053 "GalSim is software for simulating images of astronomical objects (stars,
6054 galaxies) in a variety of ways.")
6055 (license license:bsd-3)))
6056
6057(define-public python-gammapy
6058 (package
6059 (name "python-gammapy")
6060 (version "2.1")
6061 (source
6062 (origin
6063 (method git-fetch)
6064 (uri (git-reference
6065 (url "https://github.com/gammapy/gammapy")
6066 (commit (string-append "v" version))))
6067 (file-name (git-file-name name version))
6068 (sha256
6069 (base32 "1kgnmp65a3d1h7hd69clhvsfkcj5ishgx63k2vx15xh2ssc45ckz"))))
6070 (build-system pyproject-build-system)
6071 (arguments
6072 (list
6073 ;; tests: 1892 passed, 831 skipped, 9 xfailed, 1 xpassed, 264 warnings
6074 #:test-flags
6075 #~(list "--durations=20"
6076 "--numprocesses" (number->string (min 8 (parallel-job-count)))
6077 "--pyargs" "gammapy")
6078 #:phases
6079 #~(modify-phases %standard-phases
6080 (add-before 'build 'set-home-env
6081 (lambda _
6082 (setenv "HOME" "/tmp")))
6083 (add-before 'check 'remove-local-source
6084 (lambda _
6085 (delete-file-recursively "gammapy"))))))
6086 (native-inputs
6087 (list python-cython
6088 python-pytest
6089 python-pytest-astropy
6090 python-pytest-xdist
6091 python-setuptools
6092 python-setuptools-scm))
6093 (propagated-inputs
6094 (list python-astropy
6095 python-click
6096 python-iminuit
6097 python-matplotlib
6098 python-numpy
6099 python-pydantic
6100 python-pyyaml
6101 python-regions
6102 python-scipy
6103 ;; [optional]
6104 python-healpy
6105 python-ipywidgets
6106 python-naima
6107 python-numba
6108 ;;python-ray ;not packaged yet in Guix
6109 python-requests
6110 ;;python-sherpa ;not packaged yet in Guix
6111 python-tqdm
6112 #;python-ultranest)) ;not packaged yet in Guix
6113 (home-page "https://gammapy.org")
6114 (synopsis "Gamma-ray astronomy in Python")
6115 (description
6116 "Gammapy is an Python package for gamma-ray astronomy built on Numpy,
6117Scipy and Astropy. It is used as core library for the Science Analysis tools
6118of the Cherenkov Telescope Array (CTA), recommended by the
6119H.E.S.S. collaboration to be used for Science publications, and is already
6120widely used in the analysis of existing gamma-ray instruments, such as
6121@acronym{MAGIC, Major Atmospheric Gamma Imaging Cherenkov Telescopes}
6122@acronym{VERITAS, Very Energetic Radiation Imaging Telescope Array System} and
6123@acronym{HAWC, The High-Altitude Water Cherenkov Gamma-Ray Observatory}.")
6124 (license license:bsd-3)))
6125
6126(define-public python-gatspy
6127 (package
6128 (name "python-gatspy")
6129 (version "0.3")
6130 (source
6131 (origin
6132 (method url-fetch)
6133 (uri (pypi-uri "gatspy" version))
6134 (sha256
6135 (base32 "1gw2z6x8nikvnw2gkdl70gr81cwczd1pd7v8ry2kjn6k4kssrfav"))))
6136 (build-system pyproject-build-system)
6137 ;;TODO: Tests depends on Nose, report upstream.
6138 (arguments (list #:tests? #f))
6139 (native-inputs
6140 (list python-setuptools
6141 python-setuptools-scm))
6142 (propagated-inputs
6143 (list python-astroml
6144 python-numpy
6145 python-scipy
6146 python-supersmoother))
6147 (home-page "https://github.com/astroml/gatspy")
6148 (synopsis "General tools for astronomical time series in Python")
6149 (description
6150 "This package provides general tools for astronomical time series in
6151Python.")
6152 (license license:bsd-2)))
6153
6154(define-public python-ginga
6155 (package/inherit ginga
6156 (name "python-ginga")
6157 (inputs '())
6158 (propagated-inputs
6159 (list python-astropy
6160 python-numpy
6161 python-packaging
6162 python-pillow
6163 python-puremagic
6164 python-pyyaml
6165 python-qtpy))))
6166
6167(define-public python-gizmo-analysis
6168 (package
6169 (name "python-gizmo-analysis")
6170 (version "1.0.5")
6171 (source
6172 (origin
6173 (method url-fetch)
6174 (uri (pypi-uri "gizmo_analysis" version))
6175 (sha256
6176 (base32 "1pffz3kq9rs5jhqz6j23igl0650xl74hgmh17sll4m0fraq6d4ma"))))
6177 (build-system pyproject-build-system)
6178 (arguments
6179 (list #:tests? #f)) ;no tests
6180 (native-inputs
6181 (list python-setuptools))
6182 (propagated-inputs
6183 (list python-h5py
6184 python-matplotlib
6185 python-numpy
6186 python-scipy
6187 python-utilities-awetzel))
6188 (home-page "https://bitbucket.org/awetzel/gizmo_analysis")
6189 (synopsis "Read and analyze Gizmo simulations")
6190 (description
6191 "Python package for reading and analyzing simulations generated using
6192the Gizmo code, in particular, the FIRE cosmological simulations.")
6193 (license license:expat)))
6194
6195(define-public python-glue-astronomy
6196 (package
6197 (name "python-glue-astronomy")
6198 (version "0.15.0")
6199 (source
6200 (origin
6201 (method git-fetch)
6202 (uri (git-reference
6203 (url "https://github.com/glue-viz/glue-astronomy")
6204 (commit (string-append "v" version))))
6205 (file-name (git-file-name name version))
6206 (sha256
6207 (base32 "0w4ligr0943yi6dia1qkfwkpdj8gp6mqxnkbz1gd61p9hwwm7paa"))))
6208 (build-system pyproject-build-system)
6209 (arguments
6210 (list
6211 ;; tests: 72 passed, 2 skipped, 8 deselected
6212 #:test-flags
6213 #~(list "--pyargs" "glue_astronomy"
6214 ;; XXX: See: <https://github.com/glue-viz/glue-astronomy/issues/117>.
6215 "-k" (string-join
6216 ;; Not equal to tolerance rtol=1e-07, atol=0
6217 (list "not test_from_spectrum1d[wcs3d]"
6218 ;; ValueError: WCS is 1D but flux is
6219 ;; multi-dimensional. Please specify
6220 ;; spectral_axis_index.
6221 "test_spectrum1d_2d_data[2]"
6222 "test_spectrum1d_2d_data[3]"
6223 ;; AssertionError: assert False
6224 "test_identifier_casa"
6225 ;; AttributeError: module 'numpy' has no attribute
6226 ;; 'product'
6227 "test_reader_casa"
6228 "test_spectral_cube_io")
6229 " and not "))
6230 #:phases
6231 #~(modify-phases %standard-phases
6232 (add-before 'check 'pre-check
6233 (lambda _
6234 (setenv "HOME" "/tmp"))))))
6235 (native-inputs
6236 (list python-mock
6237 python-pytest-astropy
6238 python-setuptools
6239 python-setuptools-scm))
6240 (propagated-inputs
6241 (list python-astropy
6242 python-glue-core
6243 python-regions
6244 python-specreduce
6245 python-spectral-cube
6246 python-specutils))
6247 (home-page "https://github.com/glue-viz/glue-astronomy")
6248 (synopsis "Astronomy-specific plugins for glue")
6249 (description
6250 "The glue-astronomy plugin for glue provides a collection of
6251astronomy-specific functionality")
6252 (license license:bsd-3)))
6253
6254(define-public python-glue-core
6255 (package
6256 (name "python-glue-core")
6257 (version "1.27.0")
6258 (source
6259 (origin
6260 (method git-fetch)
6261 (uri (git-reference
6262 (url "https://github.com/glue-viz/glue")
6263 (commit (string-append "v" version))))
6264 (file-name (git-file-name name version))
6265 (sha256
6266 (base32 "1a0ycvnnm610jj75f07bi10f4riahvdzi1l59w32s5zzqxnhpqpn"))))
6267 (build-system pyproject-build-system)
6268 (arguments
6269 (list
6270 ;; tests: 1661 passed, 1 deselected, 6 xfailed, 1 xpassed, 35 warnings
6271 #:test-flags
6272 ;; XXX: This test is flaky, it can fail if the CI system is slow.
6273 #~(list "-k" "not test_combine_slices_hypot")))
6274 (native-inputs
6275 (list python-pytest
6276 python-pytest-mpl
6277 python-setuptools
6278 python-setuptools-scm))
6279 (propagated-inputs
6280 (list python-astropy
6281 python-dill
6282 python-echo
6283 python-fast-histogram
6284 python-h5py
6285 python-ipython
6286 python-matplotlib
6287 python-mpl-scatter-density
6288 python-numpy
6289 python-openpyxl
6290 python-pandas
6291 python-scipy
6292 python-shapely
6293 python-xlrd
6294 ;; [optional]
6295 python-astrodendro
6296 python-pillow
6297 python-pyavm
6298 python-scikit-image
6299 python-spectral-cube))
6300 (home-page "http://glueviz.org")
6301 (synopsis "Multidimensional data visualization project")
6302 (description
6303 "Glue is a python project to link visualizations of scientific datasets
6304across many files.")
6305 (license license:bsd-3)))
6306
6307(define-public python-glue-geospatial
6308 (package
6309 (name "python-glue-geospatial")
6310 (version "0.4")
6311 (source
6312 (origin
6313 (method url-fetch)
6314 (uri (pypi-uri "glue-geospatial" version))
6315 (sha256
6316 (base32 "1mn71zqsrxlg9gp5czmvw5k523ddvwp42mlx6fqvm5ahw42yhqaj"))))
6317 (build-system pyproject-build-system)
6318 (native-inputs
6319 (list python-mock
6320 python-pytest
6321 python-setuptools))
6322 (propagated-inputs
6323 (list python-affine
6324 python-glue-core
6325 python-pyproj
6326 python-rasterio))
6327 (home-page "https://github.com/glue-viz/glue-geospatial")
6328 (synopsis "Glue plugin to support satellite imagery")
6329 (description
6330 "This package provides a Glue plugin for geospatial imagery.")
6331 (license license:bsd-3)))
6332
6333(define-public python-glue-qt
6334 (package
6335 (name "python-glue-qt")
6336 (version "0.4.2")
6337 (source
6338 (origin
6339 (method git-fetch)
6340 (uri (git-reference
6341 (url "https://github.com/glue-viz/glue-qt")
6342 (commit (string-append "v" version))))
6343 (file-name (git-file-name name version))
6344 (sha256
6345 (base32 "02qpigz3vjlr0w3xvicd6g3mpczrd9bqn56sxyc0djgmrdz4486v"))))
6346 (build-system pyproject-build-system)
6347 (arguments
6348 (list
6349 ;; tests: 537 passed, 2 skipped, 17 deselected, 1 xfailed, 26 warnings
6350 #:test-flags
6351 ;; XXX: Tests fail with various pixel mismatches.
6352 #~(list "--ignore=glue_qt/viewers/image/tests/test_data_viewer.py"
6353 (string-append "--deselect=glue_qt/app/tests/"
6354 "test_application.py::test_reset_session_terminal")
6355 (string-append "--deselect=glue_qt/app/tests/"
6356 "test_application.py::test_open_session_terminal")
6357 (string-append "--deselect=glue_qt/plugins/dendro_viewer/tests/"
6358 "test_data_viewer.py::TestDendrogramCommon::"
6359 "test_session_round_trip")
6360 #$@(map (lambda (ls)
6361 (string-append "--deselect=glue_qt/viewers/"
6362 (string-join ls "::")))
6363 '(("common/tests/test_data_viewer.py"
6364 "TestDataViewerScatter" "test_viewer_size")
6365 ("common/tests/test_data_viewer.py"
6366 "TestDataViewerImage" "test_viewer_size")
6367 ("common/tests/test_data_viewer.py"
6368 "TestDataViewerHistogram" "test_viewer_size")
6369 ("histogram/tests/test_data_viewer.py"
6370 "TestHistogramCommon" "test_session_round_trip")
6371 ("profile/tests/test_data_viewer.py"
6372 "TestProfileCommon" "test_session_round_trip")
6373 ("scatter/tests/test_data_viewer.py"
6374 "TestScatterCommon" "test_session_round_trip")
6375 ("table/tests/test_data_viewer.py"
6376 "test_table_widget")
6377 ("table/tests/test_data_viewer.py"
6378 "test_table_widget_session_no_subset")
6379 ("table/tests/test_data_viewer.py"
6380 "test_table_widget_session_filter")
6381 ("image/tests/test_display_region_data.py"
6382 "TestRegionScatterViewer" "test_link_first_then_add")
6383 ("image/tests/test_display_region_data.py"
6384 "TestRegionScatterViewer" "test_add_first_then_link")
6385 ("image/tests/test_display_region_data.py"
6386 "TestRegionScatterViewer" "test_subset")
6387 ("image/tests/test_display_region_data.py"
6388 "TestWCSRegionDisplay" "test_basics"))))
6389 #:phases
6390 #~(modify-phases %standard-phases
6391 (add-after 'unpack 'relax-requirements
6392 (lambda _
6393 (substitute* "pyproject.toml"
6394 ;; ipython>=4.0,<9.0
6395 ((">=4.0,<9\\.0") ">=4.0"))))
6396 (add-before 'check 'prepare-x
6397 (lambda _
6398 (system "Xvfb &")
6399 (setenv "DISPLAY" ":0")
6400 (setenv "HOME" "/tmp"))))))
6401 (native-inputs
6402 (list python-objgraph
6403 python-pytest
6404 python-setuptools
6405 python-setuptools-scm
6406 xorg-server-for-tests))
6407 (propagated-inputs
6408 (list python-astropy
6409 python-echo
6410 python-glue-core
6411 python-ipykernel
6412 python-ipython
6413 python-matplotlib
6414 python-numpy
6415 python-pvextractor
6416 python-qtconsole
6417 python-qtpy
6418 python-scipy))
6419 (home-page "http://glueviz.org")
6420 (synopsis "Multidimensional data visualization across files")
6421 (description "Multidimensional data visualization across files.")
6422 (license license:bsd-3)))
6423
6424(define-public python-glue-vispy-viewers
6425 (package
6426 (name "python-glue-vispy-viewers")
6427 (version "1.4.0")
6428 (source
6429 (origin
6430 (method git-fetch)
6431 (uri (git-reference
6432 (url "https://github.com/glue-viz/glue-vispy-viewers")
6433 (commit (string-append "v" version))))
6434 (file-name (git-file-name name version))
6435 (sha256
6436 (base32 "0wa6sgyvnmdgpb7h88nqz31wb11lf7v31a3bs91z5ncdxhq9sbvz"))))
6437 (build-system pyproject-build-system)
6438 (arguments
6439 (list
6440 #:test-flags
6441 #~(list "--pyargs" "glue_vispy_viewers"
6442 ;; XXX: Fatal Python error: Segmentation fault.
6443 "-k" "not test_vispy_widget")
6444 #:phases
6445 #~(modify-phases %standard-phases
6446 (add-before 'check 'prepare-x
6447 (lambda _
6448 (system "Xvfb :99 -screen 0 1024x768x24 &")
6449 (setenv "DISPLAY" ":99.0")
6450 (setenv "HOME" "/tmp"))))))
6451 (native-inputs
6452 (list python-mock
6453 python-objgraph
6454 python-pytest
6455 ;; python-pytest-faulthandler
6456 python-setuptools
6457 xorg-server-for-tests))
6458 (propagated-inputs
6459 (list python-echo
6460 python-glfw
6461 python-glue-core
6462 python-imageio
6463 python-matplotlib
6464 python-numpy
6465 python-pyopengl
6466 python-scipy
6467 python-vispy))
6468 (home-page "https://github.com/glue-viz/glue-vispy-viewers")
6469 (synopsis "Vispy-based viewers for Glue")
6470 (description
6471 "This package provides a Glue plugin which adds a 3D scatter plot viewer
6472and a 3D volume rendering viewer.")
6473 (license license:bsd-2)))
6474
6475(define-public python-gw-sky
6476 (package
6477 (name "python-gw-sky")
6478 (version "0.1.0")
6479 (source
6480 (origin
6481 (method url-fetch)
6482 (uri (pypi-uri "gw_sky" version))
6483 (sha256
6484 (base32 "0k2qgy6d443lgxb140w70q078hclaf2c1jl85czkzkmz77yiiblc"))))
6485 (build-system pyproject-build-system)
6486 (arguments
6487 (list
6488 #:test-flags
6489 ;; See: <https://github.com/Hazboun6/gw_sky/issues/2>.
6490 ;;
6491 ;; 0.1.0 was released in 2023 and might be not compatible with some
6492 ;; function in Jupyter: subprocess.CalledProcessError: Command
6493 ;; '['jupyter', 'nbconvert', <...>
6494 #~(list "--deselect=tests/test_notebooks.py::test_pta_smbbh")))
6495 (native-inputs
6496 (list python-pytest
6497 python-healpy
6498 python-setuptools))
6499 (propagated-inputs
6500 (list python-astropy
6501 python-matplotlib
6502 python-numpy
6503 python-scipy))
6504 (home-page "https://github.com/Hazboun6/gw_sky")
6505 (synopsis "Gravitational wave signals visualization tool")
6506 (description
6507 "Python package for making visuals of gravitational wave signals,
6508specifically pulsar timing array signals.")
6509 (license license:expat)))
6510
6511(define-public python-gwcs
6512 (package
6513 (name "python-gwcs")
6514 (version "1.0.3")
6515 (source
6516 (origin
6517 (method url-fetch)
6518 (uri (pypi-uri "gwcs" version))
6519 (sha256
6520 (base32 "0jhizh8m2bd8hcq4biinnya0xfl62rg0cix0jhyl7x7slaq87k67"))))
6521 (build-system pyproject-build-system)
6522 ;; tests: 1061 passed, 12 skipped, 10 warnings
6523 (native-inputs
6524 (list python-pytest
6525 python-pytest-astropy
6526 python-pyyaml
6527 python-setuptools
6528 python-setuptools-scm))
6529 (propagated-inputs
6530 (list python-asdf
6531 python-asdf-astropy
6532 python-asdf-wcs-schemas
6533 python-astropy
6534 python-numpy
6535 python-scipy))
6536 (home-page "https://gwcs.readthedocs.io/en/latest/")
6537 (synopsis "Generalized World Coordinate System")
6538 (description "Generalized World Coordinate System (GWCS) is an Astropy
6539affiliated package providing tools for managing the World Coordinate System of
6540astronomical data.
6541
6542GWCS takes a general approach to the problem of expressing transformations
6543between pixel and world coordinates. It supports a data model which includes
6544the entire transformation pipeline from input coordinates (detector by
6545default) to world coordinates.")
6546 (license license:bsd-3)))
6547
6548;; XXX: Deprecated on <2026-05-16>.
6549(define-public python-gwcs-1 python-gwcs)
6550
6551(define-public python-halo-analysis
6552 (package
6553 (name "python-halo-analysis")
6554 (version "1.0.5")
6555 (source
6556 (origin
6557 (method url-fetch)
6558 (uri (pypi-uri "halo_analysis" version))
6559 (sha256
6560 (base32 "1kxhfgbblhx8yhyny6gj11z6518k969lmc4nzidmm7yf7ziv0jfq"))))
6561 (build-system pyproject-build-system)
6562 (arguments
6563 (list
6564 #:tests? #f ;no tests in PyPI or Git
6565 #:phases
6566 #~(modify-phases %standard-phases
6567 (add-before 'check 'set-home
6568 (lambda _
6569 ;; There is a silent error during sanity-check: mkdir -p failed
6570 ;; for path /homeless-shelter/.config/matplotlib: [Errno 13]
6571 ;; Permission denied: '/homeless-shelter'
6572 (setenv "HOME" "/tmp"))))))
6573 (native-inputs
6574 (list python-setuptools))
6575 (propagated-inputs
6576 (list python-h5py
6577 python-matplotlib
6578 python-numpy
6579 python-scipy
6580 python-utilities-awetzel))
6581 (home-page "https://bitbucket.org/awetzel/halo_analysis/src/master/" )
6582 (synopsis "Read and analyze halo/galaxy catalogs")
6583 (description
6584 "This package implements a functionality to read and analyze halo/galaxy
6585 catalogs (generated from Rockstar or AHF) and merger trees (generated from
6586ConsistentTrees).")
6587 (license license:expat)))
6588
6589(define-public python-halotools
6590 (package
6591 (name "python-halotools")
6592 (version "0.9.4")
6593 (source
6594 (origin
6595 (method url-fetch)
6596 (uri (pypi-uri "halotools" version))
6597 (sha256
6598 (base32 "1zwa2pbfk944kf415s3bdyq4cql9alicls56dw82gvwd8mkg9567"))))
6599 (build-system pyproject-build-system)
6600 (arguments
6601 (list
6602 #:phases
6603 #~(modify-phases %standard-phases
6604 (add-before 'check 'remove-local-source
6605 (lambda _
6606 (delete-file-recursively "halotools"))))))
6607 (native-inputs
6608 (list python-cython
6609 python-extension-helpers
6610 python-pytest
6611 python-pytest-astropy
6612 python-setuptools
6613 python-setuptools-scm))
6614 (propagated-inputs
6615 (list python-astropy
6616 python-beautifulsoup4
6617 python-h5py
6618 python-numpy
6619 python-requests
6620 python-scipy))
6621 (home-page "http://halotools.rtfd.org/")
6622 (synopsis "N-body simulations and constrain models of cosmology evolution")
6623 (description
6624 "Halotools is a specialized python package for building and testing
6625models of the galaxy-halo connection, and analyzing catalogs of dark matter
6626halos. The core feature of Halotools is a modular platform for creating mock
6627universes of galaxies starting from a catalog of dark matter halos obtained
6628from a cosmological simulation.")
6629 (license license:bsd-3)))
6630
6631(define-public python-hapiclient
6632 (package
6633 (name "python-hapiclient")
6634 (version "0.3.3")
6635 (source
6636 (origin
6637 (method git-fetch)
6638 (uri (git-reference
6639 (url "https://github.com/hapi-server/client-python")
6640 (commit (string-append "v" version))))
6641 (file-name (git-file-name name version))
6642 (sha256
6643 (base32 "1frh5ihvzdm0hw6xk38a28w9x7l6r5j5a4nhj2r9ghjf65pwvy41"))))
6644 (build-system pyproject-build-system)
6645 (arguments
6646 (list
6647 ;; Tests require access to:
6648 ;; http://hapi-server.org/servers/TestData/xhapi
6649 ;; http://hapi-server.org/servers/TestData2.0/hapi
6650 #:tests? #f))
6651 (native-inputs
6652 (list python-setuptools))
6653 (propagated-inputs
6654 (list python-isodate
6655 python-joblib
6656 python-numpy
6657 python-pandas
6658 python-urllib3))
6659 (home-page "https://github.com/hapi-server/client-python")
6660 (synopsis "Interface to Heliophysics data server API")
6661 (description
6662 "This package provides an interface to @acronym{Heliophysics Application
6663Programmer’s Interface, HAPI} data server API.")
6664 (license license:bsd-3)))
6665
6666(define-public python-hasasia
6667 (package
6668 (name "python-hasasia")
6669 (version "1.2.3")
6670 (source
6671 (origin
6672 (method url-fetch)
6673 (uri (pypi-uri "hasasia" version))
6674 (sha256
6675 (base32 "0vs3935c9cqwp44dycxfsv4p9q4zbw8i5z3946928yy0nqmj1aw7"))))
6676 (build-system pyproject-build-system)
6677 (arguments
6678 (list
6679 #:phases
6680 #~(modify-phases %standard-phases
6681 ;; trapz is removed in NumPy 2.4.6, and is now called trapezoid.
6682 (add-after 'unpack 'numpy-compatibility
6683 (lambda _
6684 (substitute* (find-files "." ".\\py$")
6685 (("np.trapz\\(") "np.trapezoid(")))))))
6686 (native-inputs
6687 (list python-pytest python-setuptools))
6688 (propagated-inputs
6689 (list python-astropy
6690 python-numpy
6691 python-scipy))
6692 (home-page "https://github.com/Hazboun6/hasasia")
6693 (synopsis "Pulsar timing array sensitivity curves calculation in Python")
6694 (description
6695 "This package provides a Python package to calculate gravitational-wave
6696sensitivity curves for pulsar timing arrays.
6697
6698Features:
6699@itemize
6700@item pulsar transmission functions
6701@item inverse-noise-weighted transmission functions
6702@item individual pulsar sensitivity curves
6703@item pulsar timing array sensitivity curves as characteristic strain, strain
6704sensitivity or energy density
6705@item power-law integrated sensitivity curves
6706@item sensitivity sky maps for pulsar timing arrays
6707@end itemize")
6708 (license license:expat)))
6709
6710(define-public python-hdecompose
6711 (package
6712 (name "python-hdecompose")
6713 (version "0.1.0")
6714 (source
6715 (origin
6716 (method url-fetch)
6717 (uri (pypi-uri "hdecompose" version))
6718 (sha256
6719 (base32 "0bjvzighrywcys31aypjbyyc9xmzwws7fl0lp6aywcm9akgb9578"))))
6720 (build-system pyproject-build-system)
6721 (arguments
6722 (list #:tests? #f)) ;no tests
6723 (native-inputs
6724 (list python-setuptools))
6725 (propagated-inputs
6726 (list python-astropy
6727 python-numpy))
6728 (home-page "https://github.com/kyleaoman/Hdecompose")
6729 (synopsis "Decomposition of hydrogen into neutral/ionized and atomic/molecular")
6730 (description
6731 "This package implements functionality for decomposition of Hydrogen
6732content of simulation particles into neutral/ionized and atomic/molecular.
6733Implementations of @url{https://iopscience.iop.org/article/10.1086/505417,
6734Blitz & Rosolowsky (2006) and Rahmati et al (2013)}.")
6735 (license license:gpl3)))
6736
6737(define-public python-healpy
6738 (package
6739 (name "python-healpy")
6740 (version "1.20.0")
6741 (source
6742 (origin
6743 (method url-fetch)
6744 ;; TODO: PyPI bundles CFITSIO and HEALPix sources, and it's not picking
6745 ;; up the ones from Guix, build from Git and unbundle them.
6746 (uri (pypi-uri "healpy" version))
6747 (sha256
6748 (base32 "1v82c615vc943661jldylbw99hfdm6gzdzcv1qlwfdg239ay3c03"))))
6749 (build-system pyproject-build-system)
6750 (arguments
6751 (list
6752 ;; tests: 11 passed
6753 #:test-flags
6754 #~(list "--pyargs" "healpy")))
6755 (native-inputs
6756 (list nss-certs-for-test
6757 pkg-config
6758 python-cython
6759 python-pytest
6760 python-pytest-astropy-header
6761 python-pytest-cython
6762 python-pytest-doctestplus
6763 python-setuptools
6764 python-setuptools-scm))
6765 (inputs
6766 (list cfitsio
6767 healpix-cxx
6768 libsharp))
6769 (propagated-inputs
6770 (list python-astropy
6771 python-numpy
6772 ;; [optional]
6773 python-matplotlib
6774 python-scipy))
6775 (home-page "http://healpy.readthedocs.org/")
6776 (synopsis "Healpix tools package for Python")
6777 (description
6778 "healpy is a Python package to handle pixelated data on the sphere. It
6779is based on the Hierarchical Equal Area isoLatitude Pixelization (HEALPix)
6780scheme and builds with the HEALPix C++ library.")
6781 (license license:gpl2+)))
6782
6783;; Deprecated on <2026-0815>.
6784(define-public python-healpy-1.19 python-healpy)
6785
6786(define-public python-hierarc
6787 (package
6788 (name "python-hierarc")
6789 ;; Latest commit works with AstroPy 7 and NumPy 2.
6790 (properties '((commit . "6c33217a49c69b9c132280e83b9c6be185a3b94c")
6791 (revision . "0")))
6792 (version (git-version "1.2.0"
6793 (assoc-ref properties 'revision)
6794 (assoc-ref properties 'commit)))
6795 (source
6796 (origin
6797 (method git-fetch)
6798 (uri (git-reference
6799 (url "https://github.com/sibirrer/hierArc")
6800 (commit (assoc-ref properties 'commit))))
6801 (file-name (git-file-name name version))
6802 (sha256
6803 (base32 "0lz3w8san0n3p0hkid4g6jfr5703wcmzvd08h76z15k0w9qpf1wn"))))
6804 (build-system pyproject-build-system)
6805 (arguments
6806 (list
6807 #:test-flags
6808 ;; Some tests are computation intensive and not thread safe, failing
6809 ;; during parallel invocation:
6810 ;; 109 passed, 32 deselected, 43 warnings in 634.59s
6811 #~(list "--durations" "5"
6812 ;; AttributeError: 'LambdaCDM' object has no attribute '_Ok0'.
6813 "-k" (string-join
6814 (list "not test_cosmo_instance"
6815 "test_kde_likelihood_integration"
6816 "test_log_likelihood"
6817 "test_mcmc_emcee"
6818 "test_sne_likelihood_integration")
6819 " and not "))
6820 #:phases
6821 #~(modify-phases %standard-phases
6822 (add-before 'check 'pre-check
6823 (lambda _
6824 ;; RuntimeError: cannot cache function 'rotate': no locator
6825 ;; available for file '<...>/lenstronomy/Util/util.py'.
6826 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
6827 (native-inputs
6828 (list python-pytest
6829 python-setuptools))
6830 (propagated-inputs
6831 (list python-astropy-7
6832 python-emcee
6833 python-h5py
6834 python-lenstronomy
6835 python-matplotlib
6836 python-mpmath
6837 python-numpy
6838 python-pandas
6839 python-scikit-learn
6840 python-scipy))
6841 (home-page "https://github.com/sibirrer/hierarc")
6842 (synopsis "Hierarchical analysis of strong lensing systems")
6843 (description
6844 "This package implements functionality for hierarchical analysis of
6845strong lensing systems to infer lens properties and cosmological parameters
6846simultaneously. It allows fitting lenses with measured time delays, imaging
6847information, kinematics constraints and standardizable magnifications with
6848parameters described on the ensemble level.")
6849 (license license:bsd-3)))
6850
6851(define-public python-hissw
6852 (package
6853 (name "python-hissw")
6854 (version "2.3")
6855 (source
6856 (origin
6857 (method git-fetch)
6858 (uri (git-reference
6859 (url "https://github.com/wtbarnes/hissw")
6860 (commit (string-append "v" version))))
6861 (file-name (git-file-name name version))
6862 (sha256
6863 (base32 "1fcd4m7m34g7b6higdxy58aw7dbjqh7wfzn82zv72vzy4rayi1qc"))))
6864 (build-system pyproject-build-system)
6865 (arguments
6866 (list #:tests? #f)) ;they need local installation of IDL
6867 (native-inputs
6868 (list python-setuptools))
6869 (propagated-inputs
6870 (list python-jinja2
6871 python-scipy))
6872 (home-page "https://github.com/wtbarnes/hissw")
6873 (synopsis "Seamlessly integrate SSWIDL code into Python workflow")
6874 (description
6875 "@code{hissw} (hiss (like a snake) + @url{http://www.lmsal.com/solarsoft/,
6876@acronym{SSW, SolarSoftware }}) is a (VERY) lightweight (~1 file) Python
6877package that helps one to write IDL scripts (either inline or in a separate
6878file) which use your installed SSW packages and return the results to local
6879Python namespace. @code{hissw} uses @code{Jinja2} templates to generate SSW
6880startup scripts and then runs IDL code using @code{subprocess}, i.e. the
6881shell. Jinja2 syntax may be used to inject arguments from Python into IDL.
6882The results are then saved to a file and then loaded back in using the amazing
6883@code{readsav()} function in
6884@url{https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.io.readsav.html,
6885scipy.io}.")
6886 (license license:expat)))
6887
6888(define-public python-holodeck
6889 (package
6890 (name "python-holodeck")
6891 (version "1.6")
6892 (source
6893 (origin
6894 (method git-fetch)
6895 (uri (git-reference
6896 (url "https://github.com/nanograv/holodeck")
6897 (commit (string-append "v" version))))
6898 (file-name (git-file-name name version))
6899 (sha256
6900 (base32 "0yf7fqfpcbpy1j6ikg6x9f14r978v7pb1yrrbgvqnqvbvqckhish"))
6901 (patches
6902 ;; Taken from pull request 122
6903 (search-patches "python-holodeck-cython-3-compat.patch"))))
6904 (build-system pyproject-build-system)
6905 (arguments
6906 (list
6907 ;; tests: 70 passed, 1 deselected, 15 warnings
6908 ;; XXX: Tests may take up to 3375.23s (0:56:15)
6909 #:test-flags
6910 #~(list (string-append "--deselect=holodeck/discrete/tests/"
6911 "test_evolution.py::"
6912 "Test_Composite_Hardening::test_basics_circ"))))
6913 (native-inputs
6914 (list python-cython
6915 python-pytest
6916 python-setuptools))
6917 (propagated-inputs
6918 (list python-astropy
6919 python-cosmopy
6920 python-emcee
6921 python-george
6922 python-h5py
6923 python-hasasia
6924 python-healpy
6925 python-ipywidgets
6926 python-kalepy
6927 python-matplotlib
6928 python-numpy
6929 python-psutil
6930 python-schwimmbad
6931 python-scipy
6932 python-sympy
6933 python-tqdm))
6934 (home-page "https://github.com/byu-pccl/holodeck")
6935 (synopsis "MBH Binary Population Synthesis for Gravitational Wave Calculations")
6936 (description
6937 "This package provides a comprehensive framework for @acronym{Massive
6938Black Hole,MBH} binary population synthesis. The framework includes modules
6939to perform population synthesis using a variety of methodologies from
6940semi-analytic models, to cosmological hydrodynamic simulations, and even
6941observationally-derived galaxy merger catalogs.")
6942 (license license:expat)))
6943
6944(define-public python-hvpy
6945 (package
6946 (name "python-hvpy")
6947 (version "1.1.0")
6948 (source
6949 (origin
6950 (method url-fetch)
6951 (uri (pypi-uri "hvpy" version))
6952 (sha256
6953 (base32 "0bly1bgp0axxhzzf5imqsgmms41z8cxbjahxsibvb55dk94gwig6"))))
6954 (build-system pyproject-build-system)
6955 (arguments
6956 (list #:tests? #f)) ; Requires HTTP(S) access to api.beta.helioviewer.org
6957 (native-inputs
6958 (list python-pytest python-pytest-astropy python-setuptools))
6959 (propagated-inputs
6960 (list python-pydantic
6961 python-pydantic-settings
6962 python-requests))
6963 (home-page "https://helioviewer.org/")
6964 (synopsis "Helioviewer Python API Wrapper")
6965 (description "@code{hvpy} is a Python API wrapper around the formal
6966@url{Helioviewer API, https://api.helioviewer.org/docs/v2/}.")
6967 (license license:bsd-2)))
6968
6969(define-public python-irispy-lmsal
6970 (package
6971 (name "python-irispy-lmsal")
6972 (version "0.8.1")
6973 (source
6974 (origin
6975 (method git-fetch)
6976 (uri (git-reference
6977 (url "https://github.com/LM-SAL/irispy")
6978 (commit (string-append "v" version))))
6979 (file-name (git-file-name name version))
6980 (sha256
6981 (base32 "02n1mh5hz815hn2d6891h8i8vlnc7fq1g5jc790pm8sf4209xrz0"))))
6982 (build-system pyproject-build-system)
6983 (arguments
6984 (list
6985 ;; tests: 223 passed, 1 skipped, 13 deselected
6986 #:test-flags
6987 ;; Skip one test reqruiting optional python-rsliding.
6988 #~(list (string-append "--deselect=irispy/utils/tests/"
6989 "test_cosmic_rays.py"
6990 "::test_remove_cosmic_rays_rsliding"))
6991 #:phases
6992 #~(modify-phases %standard-phases
6993 (add-before 'sanity-check 'set-home
6994 (lambda _
6995 (setenv "HOME" "/tmp"))))))
6996 (native-inputs
6997 (list ffmpeg
6998 python-pooch
6999 python-pytest-astropy
7000 python-pytest-mpl
7001 python-setuptools
7002 python-setuptools-scm))
7003 (propagated-inputs
7004 (list python-astropy
7005 python-dkist
7006 python-mpl-animators
7007 python-ndcube
7008 python-pandas
7009 python-scipy
7010 python-sunpy
7011 python-sunraster
7012 ;; [optional]
7013 python-astroscrappy
7014 ;; python-rsliding ;not packaged yet in Guix
7015 python-fiasco))
7016 (home-page "https://iris.lmsal.com/")
7017 (synopsis "Tools to read and analyze data from the IRIS solar-observing satellite")
7018 (description
7019 "This package provides tools to read and analyze data from the
7020@acronym{IRIS, Interface Region Imaging Spectrograph} solar-observing
7021satellite.")
7022 (license license:bsd-3)))
7023
7024(define-public python-jplephem
7025 (package
7026 (name "python-jplephem")
7027 (version "2.24")
7028 (source
7029 (origin
7030 (method git-fetch)
7031 (uri (git-reference
7032 (url "https://github.com/brandon-rhodes/python-jplephem")
7033 (commit version)))
7034 (file-name (git-file-name name version))
7035 (sha256
7036 (base32 "1z4nhf5fq0hsyxfkbbxdyi2z2ip79qj3bnwn015rysmh6xiqa5w6"))))
7037 (build-system pyproject-build-system)
7038 (arguments
7039 (list
7040 ;; tests: 51 run, 14 skipped
7041 #:phases
7042 #~(modify-phases %standard-phases
7043 (add-after 'unpack 'disable-failing-tests
7044 ;; See:
7045 ;; <https://github.com/brandon-rhodes/python-jplephem/issues/65>.
7046 (lambda _
7047 (substitute* "ci/test.py"
7048 (("def test_excerpt_command")
7049 "def __off_test_excerpt_command"))))
7050 (replace 'check
7051 (lambda* (#:key tests? #:allow-other-keys)
7052 (when tests?
7053 (with-directory-excursion "ci"
7054 (invoke "python" "-m" "unittest" "test"))))))))
7055 (native-inputs
7056 (list python-setuptools))
7057 (propagated-inputs
7058 (list python-numpy))
7059 (home-page "https://github.com/brandon-rhodes/python-jplephem")
7060 (synopsis "Python version of NASA DE4xx ephemerides")
7061 (description
7062 "@code{skyfield} computes positions for the stars, planets, and
7063satellites in orbit around the Earth. Its results should agree with the
7064positions generated by the United States Naval Observatory and their
7065Astronomical Almanac to within 0.0005 arcseconds (half a @emph{mas} or
7066milliarcsecond).")
7067 (license license:expat)))
7068
7069(define-public python-jwst
7070 (package
7071 (name "python-jwst")
7072 (version "3.0.0")
7073 (source
7074 (origin
7075 (method git-fetch)
7076 (uri (git-reference
7077 (url "https://github.com/spacetelescope/jwst")
7078 (commit version)))
7079 (file-name (git-file-name name version))
7080 (sha256
7081 (base32 "05n44jmw4ddgsjha5x0hazsi7yqlm0xqr81yky49q34i1z2q5k9c"))
7082 (modules '((guix build utils)))
7083 (snippet
7084 #~(begin
7085 ;; Replace reference to external configobj.
7086 (substitute* (find-files "." "\\.py$")
7087 (("from astropy.extern import configobj")
7088 "import configobj")
7089 (("from astropy.extern.configobj import validate")
7090 "import validate")
7091 (("from astropy.extern.configobj.configobj import ")
7092 "from configobj import ")
7093 (("from astropy.extern.configobj.validate import ")
7094 "from validate import "))))))
7095 (build-system pyproject-build-system)
7096 (arguments
7097 (list
7098 ;; XXX: Tests require access to https://jwst-crds-pub.stsci.edu server
7099 ;; for getting data sets.
7100 #:tests? #f))
7101 (native-inputs
7102 (list python-ci-watson
7103 python-pysiaf
7104 python-pytest
7105 python-pytest-doctestplus
7106 python-requests-mock
7107 python-setuptools
7108 python-setuptools-scm))
7109 (propagated-inputs
7110 (list python-asdf
7111 python-astropy
7112 python-bayesicfitting
7113 python-crds-minimal
7114 python-drizzle
7115 python-gwcs
7116 python-jsonschema
7117 python-numpy
7118 python-packaging
7119 python-photutils
7120 python-pyparsing
7121 python-requests
7122 python-scikit-image
7123 python-scipy
7124 python-spherical-geometry
7125 python-stcal
7126 python-stdatamodels
7127 python-stpipe
7128 python-stsci-imagestats
7129 python-synphot
7130 python-tweakwcs
7131 python-wiimatch
7132 ;; [optional]
7133 python-jplephem
7134 python-pysiaf))
7135 (home-page "https://jwst-pipeline.readthedocs.io/en/latest/")
7136 (synopsis "Science observations from the James Webb Space Telescope")
7137 (description
7138 "This package provides an access to the JWST Science Calibration Pipeline
7139processes data from all JWST instruments and observing modes by applying
7140various science corrections sequentially, producing both fully-calibrated
7141individual exposures and high-level data products (mosaics, extracted spectra,
7142etc.).")
7143 (license license:bsd-3)))
7144
7145(define-public python-jwst-backgrounds
7146 (package
7147 (name "python-jwst-backgrounds")
7148 (version "1.3.0")
7149 (source
7150 (origin
7151 (method url-fetch)
7152 (uri (pypi-uri "jwst_backgrounds" version))
7153 (sha256
7154 (base32 "14m1a6z884vg2n5ndwwhpnzpb5h28hh58a53dfjwwbjakwmixb0p"))))
7155 (build-system pyproject-build-system)
7156 (arguments
7157 (list #:tests? #f)) ; no tests in PyPI tarball, tests require networking
7158 (native-inputs
7159 (list python-setuptools))
7160 (propagated-inputs
7161 (list python-healpy
7162 python-matplotlib
7163 python-numpy
7164 python-scipy))
7165 (home-page "https://github.com/spacetelescope/jwst_backgrounds")
7166 (synopsis "Retrieve and plot JWST background information")
7167 (description
7168 "This package provides a a simple program to predict the levels of
7169background emission in JWST observations, for use in proposal planning.
7170
7171It accesses a precompiled background cache prepared by Space Telescope Science
7172Institute. The background cache is hosted by the Mikulski Archive for Space
7173Telescopes (MAST), so you need internet access to run the tool with the remote
7174cache. It is possible to download the full background cache to your local
7175machine.")
7176 (license license:bsd-3)))
7177
7178(define-public python-jwst-reffiles
7179 (package
7180 (name "python-jwst-reffiles")
7181 (version "1.0.1")
7182 (source
7183 (origin
7184 (method url-fetch)
7185 (uri (pypi-uri "jwst_reffiles" version))
7186 (sha256
7187 (base32 "1dlw955cw49qczdmimglmlcbal8vd3wbv5j48ckllvjgd59pwr3s"))))
7188 (build-system pyproject-build-system)
7189 (arguments
7190 (list
7191 ;; One test fails with error: FileNotFoundError: [Errno 2] No such file
7192 ;; or directory.
7193 #:test-flags #~(list "-k" "not test_calib_prep_steps")))
7194 (native-inputs
7195 (list python-pytest))
7196 (propagated-inputs
7197 (list python-astropy
7198 python-jwst
7199 python-matplotlib
7200 python-numpy
7201 python-scipy))
7202 (home-page "https://github.com/spacetelescope/jwst_reffiles")
7203 (synopsis "Tool for JWST's CRDS-formatted reference files creation")
7204 (description
7205 "This package provides a tool to create @acronym{Calibration References
7206Data System,CRDS}-formatted reference files for @acronym{James Webb Space
7207Telescope,JWST} from a set of input dark current files and a set of flat field
7208files.")
7209 (license license:bsd-3)))
7210
7211(define-public python-kanon
7212 (package
7213 (name "python-kanon")
7214 ;; 0.6.6 was released in 2022 which does not support Astropy 7+ and
7215 ;; NumPy2, try to use the latest commit providing some compatibilities,
7216 ;; see: <https://github.com/ALFA-project-erc/kanon/issues/149>,
7217 ;; <https://github.com/ALFA-project-erc/kanon/issues/156>.
7218 (properties '((commit . "16aca8d7027937044b0b34942968cb2fee630cad")
7219 (revision . "0")))
7220 (version (git-version "0.6.6"
7221 (assoc-ref properties 'revision)
7222 (assoc-ref properties 'commit)))
7223 (source
7224 (origin
7225 (method git-fetch)
7226 (uri (git-reference
7227 (url "https://github.com/ALFA-project-erc/kanon")
7228 (commit (assoc-ref properties 'commit))))
7229 (file-name (git-file-name name version))
7230 (sha256
7231 (base32 "0d6dvlllpga0d6l5bm3hmwsx4z5qay0dd0h7xn209kgn0369rryc"))))
7232 (build-system pyproject-build-system)
7233 (arguments
7234 (list
7235 ;; tests: 151 passed, 11 deselected, 220 warnings
7236 #:test-flags
7237 #~(list "--ignore=examples/"
7238 "--ignore=kanon/tables/__init__.py"
7239 "--ignore=kanon/tables/htable.py"
7240 #$@(map (lambda (test) (string-append "--deselect=kanon/"
7241 test))
7242 ;; XXX: Errors in tests is indication of NumPy2 issues,
7243 ;; upstream is not responsive, try to fix them in the
7244 ;; package.
7245 (list
7246 ;; ValueError: Unable to avoid copy while creating an
7247 ;; array as requested.
7248 "tables/tests/test_hcolumn.py::TestHColumn::test_init"
7249 "tables/tests/test_hcolumn.py::TestHColumn::test_astype"
7250 "tables/tests/test_hcolumn.py::TestHColumn::test_truncable"
7251 ;; ValueError: First and last rows must not be masked
7252 "tables/tests/test_htable.py::test_fill"
7253 ;; Network access is required
7254 "tables/tests/test_htable_reader.py::test_get_number_of_cells"
7255 ;; ValueError: The truth value of an array with more
7256 ;; than one element is ambiguous. Use a.any() or
7257 ;; a.all()
7258 "tests/test_based_htable.py::test_read"
7259 ;; assert False
7260 "tests/test_based_htable.py::test_quantity"
7261 ;; AttributeError: 'int' object has no attribute
7262 ;; 'truncate'
7263 "units/tests/test_quantity.py::TestQuantity::test_attribute_forwarding"
7264 ;; AttributeError: 'numpy.ndarray' object has no
7265 ;; attribute 'equals'
7266 "units/tests/test_quantity.py::TestQuantity::test_shifting"
7267 "units/tests/test_quantity.py::TestQuantity::test_init_basedquantity")))
7268 #:phases
7269 #~(modify-phases %standard-phases
7270 (add-after 'unpack 'fix-astropy-7-compatibility
7271 (lambda _
7272 (substitute* "kanon/units/radices.py"
7273 (("from astropy\\.units.core import Unit, .*")
7274 (string-append
7275 "from astropy.units.core import Unit, UnitBase\n"
7276 "from astropy.units.errors import UnitTypeError\n")))))
7277 (add-before 'check 'prepare-test-environment
7278 (lambda _
7279 (setenv "HOME" "/tmp"))))))
7280 (native-inputs
7281 (list git-minimal/pinned
7282 nss-certs-for-test
7283 python-poetry-core
7284 python-poetry-dynamic-versioning
7285 python-pytest
7286 python-pytest-astropy
7287 python-requests-mock))
7288 (propagated-inputs
7289 (list python-astropy
7290 python-matplotlib
7291 python-numpy
7292 python-pandas-2
7293 python-requests
7294 python-scipy
7295 ;; [optional]
7296 python-ipykernel
7297 python-papermill))
7298 (home-page "https://dishas.obspm.fr")
7299 (synopsis "History of astronomy")
7300 (description "This package provides a history of astronomy library.
7301Current Features:
7302@itemize
7303@item define standard positional numeral systems with standard arithmetics
7304(BasedReal)
7305@item set your own precision contexts and algorithms on arithmetical
7306operations (PrecisionContext)
7307@item keep track of all operations
7308@item build or import ancient astronomical tables
7309@item perform arithmetical and statistical operations
7310@item support for BasedReal values
7311@item define new calendar types
7312@item date conversions
7313@item collection of mathematical models used for all kinds of geocentric
7314astronomical tables
7315@end itemize")
7316 (license license:bsd-3)))
7317
7318(define-public python-lenstronomy
7319 (package
7320 (name "python-lenstronomy")
7321 (version "1.13.5")
7322 (source
7323 (origin
7324 (method git-fetch)
7325 (uri (git-reference
7326 (url "https://github.com/lenstronomy/lenstronomy")
7327 (commit (string-append "v" version))))
7328 (file-name (git-file-name name version))
7329 (sha256
7330 (base32 "17kb3la02rdbkx8n1vdgr9b7yizahcx2hli56flsv4pnvnp6q6kx"))))
7331 (build-system pyproject-build-system)
7332 (arguments
7333 (list
7334 ;; tests: 1499 passed, 42423 warnings
7335 #:test-flags
7336 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count)))
7337 ;; TypeError: SparseSolverBase.__init__() got an unexpected
7338 ;; keyword argument 'num_iter_lens'
7339 "--ignore=test/test_ImSim/test_image_model_pixelbased.py"
7340 #$@(map (lambda (ls) (string-append "--deselect=test/"
7341 (string-join ls "::")))
7342 ;; TypeError: SLIT_Starlets.function_2d() got an
7343 ;; unexpected keyword argument 'n_pix_x'
7344 '(("test_Sampling/test_likelihood.py"
7345 "TestLikelihoodModule"
7346 "test_pixelbased_modelling")
7347 ;; Arrays are not almost equal to <...> decimals <...>.
7348 ("test_Sampling/test_Likelihoods/test_position_likelihood.py"
7349 "TestPositionLikelihood"
7350 "test_multiplane_position_likelihood")
7351 ("test_Workflow/test_tracer_model_fit.py"
7352 "TestTracerModelFit" "test_run_fit")
7353 ;; AttributeError: 'FileFinder' object has no
7354 ;; attribute 'find_module'. See:
7355 ;; <https://github.com/lenstronomy/lenstronomy/issues/845>.
7356 ("test_Util/test_package_util.py"
7357 "test_short_and_laconic")
7358 ;; TypeError: FLRW.angular_diameter_distance() got some
7359 ;; positional-only arguments passed as keyword
7360 ;; arguments: 'z'
7361 ("test_Cosmo/test_cosmo_interp.py" "TestCosmoInterp"
7362 "test_angular_diameter_distance")
7363 ("test_Cosmo/test_cosmo_interp.py" "TestCosmoInterp"
7364 "test_angular_diameter_distance_array")
7365 ("test_Cosmo/test_lens_cosmo.py" "TestLensCosmo"
7366 "test_beta_double_source_plane")
7367 ("test_Cosmo/test_lens_cosmo.py" "TestLensCosmo"
7368 "test_theta_E_power_law_scaling")
7369 ("test_LensModel/test_Solver/test_lens_equation_solver.py"
7370 "TestLensEquationSolver" "test_lens_equation_scaling")
7371 ("test_LensModel/test_lens_model.py" "TestLensModel"
7372 "test_change_source_redshift")
7373 ("test_Sampling/test_likelihood.py"
7374 "TestLikelihoodModule"
7375 "test_multi_source_redshift_likelihood"))))
7376 #:phases
7377 #~(modify-phases %standard-phases
7378 (add-before 'check 'pre-check
7379 (lambda _
7380 ;; Tests try to search for JSON in "path = os.getcwd()" and fail
7381 ;; with error:
7382 ;;
7383 ;; FileNotFoundError: [Errno 2] No such file or directory:
7384 ;; '/tmp/<...>/source/coolest_template.json'
7385 (for-each (lambda (file) (copy-file file (basename file)))
7386 (find-files "test/test_Util/test_COOLEST"
7387 "(\\.json|\\.fits)$")))))))
7388 (native-inputs
7389 (list python-cobaya
7390 python-colossus
7391 python-coolest
7392 python-emcee
7393 ;; python-nestcheck ;unmaintained, incompatible with NumPy 2.4.6
7394 ;; python-pymultinest ;depends on MultiNest
7395 python-pytest
7396 ;; python-starred-astro ;depends on python-jax
7397 python-nautilus-sampler
7398 python-dynesty
7399 python-pytest-xdist
7400 python-setuptools
7401 python-slitronomy
7402 python-zeus-mcmc))
7403 (propagated-inputs
7404 (list python-astropy
7405 python-configparser
7406 python-corner
7407 python-h5py
7408 python-matplotlib
7409 python-mpmath
7410 python-multiprocess
7411 python-numba
7412 python-numpy
7413 python-pyxdg
7414 python-pyyaml
7415 python-schwimmbad
7416 python-scikit-image
7417 python-scikit-learn
7418 python-scipy))
7419 (home-page "https://github.com/lenstronomy/lenstronomy")
7420 (synopsis "Multi-purpose lens modeling software")
7421 (description
7422 "@code{lenstronomy} is a multi-purpose software package to model strong
7423gravitational lenses. @code{lenstronomy} finds application for time-delay
7424cosmography and measuring the expansion rate of the Universe, for quantifying
7425lensing substructure to infer dark matter properties, morphological
7426quantification of galaxies, quasar-host galaxy decomposition and much more.")
7427 (license license:bsd-3)))
7428
7429;; A bare minimal package, mainly to use in tests and reduce closure
7430;; size. Tests are left out in the main package to slim down native-inputs.
7431(define-public python-lenstronomy-minimal
7432 (package/inherit python-lenstronomy
7433 (name "python-lenstronomy-minimal")
7434 (arguments
7435 (list #:tests? #f))
7436 (native-inputs
7437 (list python-setuptools))))
7438
7439(define-public python-lephare
7440 (package
7441 (name "python-lephare")
7442 (version "0.3.3")
7443 (source
7444 (origin
7445 (method git-fetch)
7446 (uri (git-reference
7447 (url "https://github.com/lephare-photoz/lephare")
7448 (commit (string-append "v" version))))
7449 (file-name (git-file-name name version))
7450 (sha256
7451 (base32 "0z2q0ccxws02hz94di9zvps0g4ixa0gksg2b9jwa0l7qifg95x9j"))))
7452 (build-system pyproject-build-system)
7453 (arguments
7454 (list
7455 #:test-flags
7456 ;; Network access is required to reach <http://svo2.cab.inta-csic.es>.
7457 #~(list (string-append "--deselect=tests/lephare/test_data_retrieval.py"
7458 "::test_get_auxiliary_data")
7459 "--deselect=tests/lephare/test_filter.py::test_filtersvc")
7460 #:phases
7461 #~(modify-phases %standard-phases
7462 (add-before 'build 'symlink-pybind11
7463 (lambda _
7464 (rmdir "extern/pybind11")
7465 (symlink
7466 #+(package-source (this-package-native-input "pybind11"))
7467 (string-append (getcwd) "/extern/pybind11"))))
7468 (add-before 'sanity-check 'set-HOME
7469 (lambda _ (setenv "HOME" "/tmp"))))))
7470 (native-inputs
7471 (list cmake-minimal
7472 pybind11
7473 python-pytest
7474 python-setuptools
7475 python-setuptools-scm))
7476 (propagated-inputs
7477 (list python-astropy
7478 python-matplotlib
7479 python-numpy
7480 python-platformdirs
7481 python-pooch
7482 python-requests
7483 python-scipy
7484 python-wurlitzer))
7485 (home-page "https://lephare.readthedocs.io/en/latest/")
7486 (synopsis "Photometric redshift estimator")
7487 (description
7488 "LePHARE is a code for estimating galaxy redshifts and physical parameters
7489using template fitting.")
7490 (license license:expat)))
7491
7492(define-public python-libstempo
7493 (package
7494 (name "python-libstempo")
7495 (version "2.5.1")
7496 (source
7497 (origin
7498 (method url-fetch)
7499 (uri (pypi-uri "libstempo" version))
7500 (sha256
7501 (base32 "0408g761w9i0kg69b72y4lnpz5sa8bzd0zayi73q6wkry8lh7ymq"))))
7502 (build-system pyproject-build-system)
7503 (arguments
7504 (list
7505 #:phases
7506 #~(modify-phases %standard-phases
7507 (add-before 'build 'set-tempo2-search-paths
7508 (lambda _
7509 (let* ((tempo2 #$(this-package-input "tempo2"))
7510 (tempo2-runtime (string-append tempo2 "/share/runtime")))
7511 (setenv "TEMPO2_PREFIX" tempo2)
7512 (setenv "TEMPO2" tempo2-runtime)))))))
7513 (native-inputs
7514 (list python-cython
7515 python-numpy
7516 python-pytest
7517 python-setuptools
7518 python-setuptools-scm))
7519 (inputs
7520 (list tempo2))
7521 (propagated-inputs
7522 (list python-astropy
7523 python-ephem
7524 python-matplotlib
7525 python-numpy
7526 python-scipy))
7527 (home-page "https://github.com/vallis/libstempo")
7528 (synopsis "Python wrapper for tempo2")
7529 (description
7530 "This package provides a Python wrapper for tempo2 - a high precision
7531pulsar timing tool.")
7532 (license license:expat)))
7533
7534(define-public python-linetools
7535 (package
7536 (name "python-linetools")
7537 (version "0.3.2")
7538 (source
7539 (origin
7540 (method url-fetch)
7541 (uri (pypi-uri "linetools" version))
7542 (sha256
7543 (base32 "1nljcaz0r60wvsy5dwb040wll2dd764dvib5xzkpc59cbw5lz85h"))))
7544 (build-system pyproject-build-system)
7545 (arguments
7546 (list
7547 #:test-flags
7548 ;; AttributeError: `np.string_` was removed in the NumPy 2.0
7549 ;; release. Use `np.bytes_` instead.
7550 #~(list "--deselect=linetools/tests/test_init_absline.py::test_dicts"
7551 "--deselect=linetools/tests/test_init_emissline.py::test_dicts")))
7552 (native-inputs
7553 (list python-pytest
7554 python-pytest-astropy
7555 python-setuptools
7556 python-setuptools-scm))
7557 (propagated-inputs
7558 (list python-astropy
7559 python-h5py
7560 python-ipython
7561 python-matplotlib
7562 python-numpy
7563 python-pyyaml
7564 python-qtpy
7565 python-scipy))
7566 (home-page "http://linetools.readthedocs.org/")
7567 (synopsis "Quasar and galaxy spectra 1-D analysis tool")
7568 (description
7569 "This package implements a functionality for analysing absorption and
7570emission lines in 1-D spectra, especially galaxy and quasar spectra.")
7571 (license license:bsd-3)))
7572
7573(define-public python-lofar-h5plot
7574 (package
7575 (name "python-lofar-h5plot")
7576 (version "2.9.4")
7577 (source
7578 (origin
7579 (method git-fetch)
7580 (uri (git-reference
7581 (url "https://github.com/tikk3r/lofar-h5plot")
7582 (commit (string-append "v" version))))
7583 (file-name (git-file-name name version))
7584 (sha256
7585 (base32 "1mp018qcdcq3vvgv7p2lf8dqb4mrpf6yc5hb20gfl500bzpg9v9d"))))
7586 (build-system pyproject-build-system)
7587 (arguments
7588 (list #:tests? #f)) ; no tests provided
7589 (native-inputs
7590 (list python-cython
7591 python-setuptools))
7592 (propagated-inputs
7593 (list python-losoto
7594 python-matplotlib
7595 python-numpy
7596 python-pyqt
7597 python-pyqt5-sip))
7598 (home-page "https://github.com/tikk3r/lofar-h5plot")
7599 (synopsis "GUI for plotting H5Parms produced during LOFAR calibration")
7600 (description
7601 "H5plot is a small GUI to view the solutions in an H5parm interactively.
7602It is a spiritual successor to @code{ParmDBplot} for quickly reviewing gain
7603solutions generated by NDPPP.")
7604 (license license:gpl3)))
7605
7606(define-public python-lofar-parameterset
7607 (package
7608 (name "python-lofar-parameterset")
7609 (version "1.1")
7610 (source
7611 (origin
7612 (method url-fetch)
7613 (uri (pypi-uri "lofar_parameterset" version))
7614 (sha256
7615 (base32 "059k9kvv0rfg1npc75mrr8qa3k8x7h0572jvfzbm5w66qx5jy0nh"))))
7616 (build-system pyproject-build-system)
7617 (native-inputs
7618 (list python-pytest
7619 python-setuptools
7620 python-setuptools-scm))
7621 (home-page "https://git.astron.nl/lofar2.0/lofar_pyparameterset")
7622 (synopsis "Minimal Python implementation of the LOFAR ParameterSet")
7623 (description
7624 "This package contains a pure-python drop-in replacement for the Python
7625wrapper around the original LOFAR ParameterSet that is written in C++. It
7626supports only the basic features of the original.")
7627 (license license:gpl3+)))
7628
7629(define-public python-losoto
7630 (package
7631 (name "python-losoto")
7632 (version "2.7.1")
7633 (source
7634 (origin
7635 (method git-fetch)
7636 (uri (git-reference
7637 (url "https://github.com/revoltek/losoto")
7638 (commit version)))
7639 (file-name (git-file-name name version))
7640 (sha256
7641 (base32 "09z1zfi9aisj289jniqyy5ls7x4zy0pjry3zaagng1b82lfj49qc"))))
7642 (build-system pyproject-build-system)
7643 (arguments
7644 (list
7645 ;; tests: 19 failed, 23 passed, 53 warnings
7646 ;; XXX: See: <https://github.com/revoltek/losoto/issues/186>.
7647 #:tests? #f
7648 #:phases
7649 #~(modify-phases %standard-phases
7650 (add-after 'unpack 'relax-requirements
7651 (lambda _
7652 (substitute* "pyproject.toml"
7653 ;; XXX: See: <https://github.com/revoltek/losoto/issues/187>.
7654 (("progressbar") "progressbar2")))))))
7655 (native-inputs
7656 (list python-pytest
7657 python-setuptools
7658 python-setuptools-scm))
7659 (propagated-inputs
7660 (list python-casacore
7661 python-lofar-parameterset
7662 python-matplotlib
7663 python-numpy
7664 python-progressbar2
7665 python-scipy
7666 python-tables))
7667 (home-page "https://github.com/revoltek/losoto")
7668 (synopsis "LOFAR Solution Tool")
7669 (description
7670 "This package provides a @acronym{Low-Frequency Array,
7671@url{http://www.lofar.org/, LOFAR}} a large radio telescope Solution Tool.")
7672 (license license:gpl3)))
7673
7674(define-public python-lsstdesc-coord
7675 (package
7676 (name "python-lsstdesc-coord")
7677 (version "1.3.1")
7678 (source
7679 (origin
7680 (method git-fetch)
7681 (uri (git-reference
7682 (url "https://github.com/LSSTDESC/Coord")
7683 (commit (string-append "v" version))))
7684 (file-name (git-file-name name version))
7685 (sha256
7686 (base32 "1r3igmdj4yigpayk3j609030jkx5ba9x0l4mryn0aj9jh6x4pmkh"))))
7687 (build-system pyproject-build-system)
7688 (arguments
7689 (list
7690 #:phases
7691 #~(modify-phases %standard-phases
7692 (add-after 'unpack 'relax-requirements
7693 (lambda _
7694 ;; See: <https://github.com/LSSTDESC/Coord/issues/21>.
7695 (substitute* "requirements.txt"
7696 (("future") "")))))))
7697 (native-inputs
7698 (list python-astropy-minimal
7699 python-pytest
7700 python-setuptools))
7701 (propagated-inputs
7702 (list python-numpy))
7703 (home-page "https://github.com/LSSTDESC/Coord")
7704 (synopsis "Angles and celestial coordinates handling in Python")
7705 (description
7706 "This package provides a similar in functionality to the
7707@code{astropy.coordinates} module, but with more of an emphasis on efficiency.
7708Some functions are more than 100 times faster than the corresponding
7709functionality in astropy. On the other hand, the API is somewhat more
7710restrictive than the API used by astropy, so the appropriate module to use
7711will depend on your needs.")
7712 (license license:expat)))
7713
7714(define-public python-madrigalweb
7715 (package
7716 (name "python-madrigalweb")
7717 (version "3.3.8")
7718 (source
7719 (origin
7720 (method url-fetch)
7721 (uri (pypi-uri "madrigalweb" version))
7722 (sha256
7723 (base32 "0pcvm82d1bw93kzr9rl2mkk8mgcmdyb8a21yvjjq0jcis0hwdd9y"))))
7724 (build-system pyproject-build-system)
7725 (arguments
7726 (list #:tests? #f)) ;network access is required
7727 (native-inputs
7728 (list python-setuptools))
7729 (home-page "https://cedar.openmadrigal.org")
7730 (synopsis "Python Madrigal Remote API")
7731 (description
7732 "@code{madrigalWeb} is a pure Python module to access data from any
7733@url{https://cedar.openmadrigal.org/, Madrigal} database.
7734
7735Madrigal is an upper atmospheric science database used by groups throughout
7736the world. Madrigal is a robust, World Wide Web based system capable of
7737managing and serving archival and real-time data, in a variety of formats,
7738from a wide range of upper atmospheric science instruments. Data at each
7739Madrigal site is locally controlled and can be updated at any time, but shared
7740metadata between Madrigal sites allow searching of all Madrigal sites at once
7741from any Madrigal site.")
7742 (license license:expat)))
7743
7744(define-public python-mapsims
7745 (package
7746 (name "python-mapsims")
7747 (version "2.7.0")
7748 (source
7749 (origin
7750 (method git-fetch)
7751 (uri (git-reference
7752 (url "https://github.com/galsci/mapsims")
7753 (commit version)))
7754 (file-name (git-file-name name version))
7755 (sha256
7756 (base32 "0w3vslss6aal1ll91pvg23r9f6l63jhbkvjz2756hm7r4b468h5w"))))
7757 (build-system pyproject-build-system)
7758 (arguments
7759 (list
7760 ;; tests: 12 passed, 2 skipped, 8 deselected, 2 warnings
7761 #:test-flags
7762 ;; Tests requiring additional FITS files.
7763 ;; <https://portal.nersc.gov/project/cmb>
7764 ;; <https://portal.nersc.gov/project/sobs>
7765 #~(list "-k" (string-join
7766 (list "not test_noise_simulator[ST0]"
7767 "test_noise_simulator[ST3]"
7768 "test_homogeneous_noise"
7769 "test_from_classes_car_healpix"
7770 "test_from_config_v02"
7771 "test_from_classes"
7772 "test_s4sim_202222_ame_high")
7773 " and not "))))
7774 (native-inputs
7775 (list nss-certs-for-test
7776 python-flit-core
7777 python-nbformat
7778 python-nbval
7779 python-pytest
7780 python-pytest-astropy))
7781 (propagated-inputs
7782 (list python-astropy
7783 python-healpy
7784 python-numpy
7785 python-pixell
7786 python-pysm3
7787 python-pyyaml
7788 python-so-noise-models
7789 python-toml))
7790 (home-page "https://github.com/galsci/mapsims")
7791 (synopsis "Map based simulations software for CMB Experiments")
7792 (description
7793 "This package implements a functionality to produce map based simulations
7794for the @url{https://simonsobservatory.org/, Simons Observatory} or other CMB
7795experiments. It creates simulated maps in HEALPix and CAR pixelization based
7796on:
7797@itemize
7798@item foreground models included in PySM
7799@item custom foregrounds models from the so_pysm_models package
7800@item precomputed Cosmic Microwave Background simulations
7801@item noise simulations based on expected performance and simulated hitmaps
7802@item effect of gaussian beam convolution
7803@end itemize")
7804 (license license:bsd-2)))
7805
7806(define-public python-mocpy
7807 (package
7808 (name "python-mocpy")
7809 (version "0.20.0")
7810 (source
7811 (origin
7812 (method url-fetch)
7813 (uri (pypi-uri "mocpy" version))
7814 (sha256
7815 (base32 "0xzl25widay8zzylnwawdjp5csmcb2rch7qmr8sidygf52g534x5"))))
7816 (build-system pyproject-build-system)
7817 (arguments
7818 (list
7819 #:imported-modules (append %cargo-build-system-modules
7820 %pyproject-build-system-modules)
7821 #:modules '(((guix build cargo-build-system) #:prefix cargo:)
7822 (guix build pyproject-build-system)
7823 (guix build utils))
7824 ;; ;; TODO: Package tests deps.
7825 #:tests? #f
7826 #:phases
7827 #~(modify-phases %standard-phases
7828 (add-after 'unpack 'prepare-cargo-build-system
7829 (lambda args
7830 (for-each (lambda (phase)
7831 (format #t "Running cargo phase: ~a~%" phase)
7832 (apply (assoc-ref cargo:%standard-phases phase)
7833 #:cargo-target #$(cargo-triplet)
7834 args))
7835 '(prepare-rust-crates
7836 unpack-rust-crates
7837 configure
7838 check-for-pregenerated-files
7839 patch-cargo-checksums))))
7840 (add-before 'check 'pre-check
7841 (lambda _
7842 (setenv "HOME" "/tmp")
7843 (delete-file-recursively "python/mocpy"))))))
7844 (native-inputs
7845 (list maturin
7846 rust
7847 (list rust "cargo")))
7848 (inputs (cargo-inputs 'python-mocpy))
7849 (propagated-inputs
7850 (list python-astropy
7851 python-numpy
7852 ;; [optional]
7853 python-requests
7854 python-regions
7855 python-matplotlib
7856 ;; python-cdshealpix ;not packaged yet in Guix
7857 python-networkx))
7858 (home-page "https://cds-astro.github.io/mocpy/")
7859 (synopsis "Multi-Order Coverage maps")
7860 (description
7861 "MOCPy is a Python library allowing easy creation and manipulation of
7862MOCs (Multi-Order Coverage maps). MOC is an IVOA standard enabling
7863description of arbitrary sky, time, (or frequency) coverages.")
7864 (license license:bsd-3)))
7865
7866(define-public python-mpl-animators
7867 (package
7868 (name "python-mpl-animators")
7869 (version "1.2.4")
7870 (source
7871 (origin
7872 (method url-fetch)
7873 (uri (pypi-uri "mpl_animators" version))
7874 (sha256
7875 (base32 "1lwh16f5dilnxjnchw2l2pz7iz3dby7ij6z0l7v3fm6aqhk6fwrg"))))
7876 (build-system pyproject-build-system)
7877 (arguments
7878 (list
7879 #:phases
7880 #~(modify-phases %standard-phases
7881 (add-before 'check 'set-home
7882 (lambda _
7883 ;; Relax matplotlib warning: ... because the default path
7884 ;; (/homeless-shelter/.config/matplotlib) is not a writable
7885 ;; directory ...
7886 (setenv "HOME" "/tmp"))))))
7887 (native-inputs
7888 (list python-pytest
7889 python-pytest-doctestplus
7890 python-pytest-mpl
7891 python-setuptools
7892 python-setuptools-scm))
7893 (propagated-inputs
7894 (list python-astropy
7895 python-matplotlib
7896 python-numpy))
7897 (home-page "https://sunpy.org")
7898 (synopsis "Interactive animations with matplotlib")
7899 (description
7900 "The @code{mpl_animators} package provides a set of classes which allow
7901the easy construction of interactive matplotlib widget based animations.")
7902 (license license:bsd-3)))
7903
7904(define-public python-naima
7905 (package
7906 (name "python-naima")
7907 (version "0.10.3")
7908 (source
7909 (origin
7910 (method url-fetch)
7911 (uri (pypi-uri "naima" version))
7912 (sha256
7913 (base32 "16z3qzdd31is2dxkp4jgazcykrhx3m2i3qrs7dl9rbhlj5nxx1iy"))))
7914 (build-system pyproject-build-system)
7915 (arguments
7916 (list
7917 ;; tests: 210 passed, 2 skipped, 3 deselected, 1 xpassed, 940 warnings
7918 #:test-flags
7919 #~(list
7920 ;; Not equal to tolerance <...>.
7921 "--deselect=tests/test_models.py::test_anisotropic_inverse_compton_lum"
7922 "--deselect=tests/test_models.py::test_synchrotron_lum"
7923 "--deselect=tests/test_models.py::test_inverse_compton_lum")))
7924 (native-inputs
7925 (list python-hatch-vcs
7926 python-hatchling
7927 python-pytest))
7928 (propagated-inputs
7929 (list python-astropy
7930 python-corner
7931 python-emcee
7932 python-h5py
7933 python-matplotlib
7934 python-numpy
7935 python-pyyaml
7936 python-scipy))
7937 (home-page "http://github.com/zblz/naima")
7938 (synopsis "Derivation of non-thermal particle distributions through MCMC spectral fitting")
7939 (description
7940 "This package implement functionality for computation of non-thermal
7941radiation from relativistic particle populations. It includes tools to
7942perform MCMC fitting of radiative models to X-ray, GeV, and TeV spectra using
7943@code{emcee}, an affine-invariant ensemble sampler for Markov Chain Monte
7944Carlo.")
7945 (license license:bsd-3)))
7946
7947(define-public python-ndcube
7948 (package
7949 (name "python-ndcube")
7950 (version "2.4.1")
7951 (source
7952 (origin
7953 (method url-fetch)
7954 (uri (pypi-uri "ndcube" version))
7955 (sha256
7956 (base32 "0nqsscpfdrvdiil0nb7zd5wp6p2r93pq5y07c9izyry8bjqjmzba"))))
7957 (build-system pyproject-build-system)
7958 (arguments
7959 (list
7960 ;; tests: 554 passed, 9 skipped, 27 deselected, 10 xfailed, 2 warnings
7961 #:phases
7962 #~(modify-phases %standard-phases
7963 (add-after 'unpack 'fix-reproject-compatibility
7964 (lambda _
7965 (substitute* "ndcube/ndcube.py"
7966 ;; It will be a part of 2.4.2, see
7967 ;; <https://github.com/sunpy/ndcube/milestone/45>.
7968 (("from reproject.wcs_utils") "from reproject._wcs_utils"))))
7969 (add-before 'sanity-check 'set-home-env
7970 (lambda _
7971 ;; Tests require HOME to be set.
7972 ;; Permission denied: '/homeless-shelter'
7973 (setenv "HOME" "/tmp"))))))
7974 (native-inputs
7975 (list nss-certs-for-test
7976 python-dask
7977 python-pytest
7978 python-pytest-astropy
7979 python-pytest-mpl
7980 ;; python-pytest-memray ;not packaged yet in Guix
7981 python-setuptools
7982 python-setuptools-scm
7983 python-specutils
7984 python-sunpy-minimal))
7985 (propagated-inputs
7986 (list python-astropy
7987 python-gwcs
7988 python-numpy
7989 python-scipy
7990 ;; [optional]
7991 python-matplotlib
7992 python-mpl-animators
7993 python-reproject))
7994 (home-page "https://docs.sunpy.org/projects/ndcube/")
7995 (synopsis "Multi-dimensional contiguous and non-contiguous coordinate aware arrays")
7996 (description
7997 "@code{ndcube} is a package for manipulating, inspecting and visualizing
7998multi-dimensional contiguous and non-contiguous coordinate-aware data arrays.
7999
8000It combines data, uncertainties, units, metadata, masking, and coordinate
8001transformations into classes with unified slicing and generic coordinate
8002transformations and plotting/animation capabilities. It is designed to handle
8003data of any number of dimensions and axis types (e.g. spatial, temporal,
8004spectral, etc.) whose relationship between the array elements and the real
8005world can be described by @acronym{WCS, World Coordinate System}
8006translations.")
8007 (license license:bsd-2)))
8008
8009;; A bare minimal package, mainly to use in tests and reduce closure
8010;; size. Tests are left out in the main package to slim down native-inputs.
8011(define-public python-ndcube-minimal
8012 (package/inherit python-ndcube
8013 (name "python-ndcube-minimal")
8014 (arguments
8015 (list #:tests? #f))
8016 (native-inputs
8017 (list python-setuptools
8018 python-setuptools-scm))
8019 (propagated-inputs
8020 (list python-astropy
8021 python-gwcs
8022 python-numpy
8023 python-scipy))))
8024
8025(define-public python-ogadf-schema
8026 (package
8027 (name "python-ogadf-schema")
8028 (version "0.2.4.post1")
8029 (source
8030 (origin
8031 (method url-fetch)
8032 (uri (pypi-uri "ogadf_schema" version))
8033 (sha256
8034 (base32 "02v5r5vnr40ggp2mccxnx600gkl3mvv77zslpf9dj96jcd8pk117"))))
8035 (build-system pyproject-build-system)
8036 (arguments
8037 (list #:tests? #f)) ;no tests
8038 (native-inputs
8039 (list python-poetry-core
8040 python-setuptools))
8041 (propagated-inputs
8042 (list python-fits-schema-0.5.6))
8043 (home-page "https://github.com/open-gamma-ray-astro/ogadf-schema")
8044 (synopsis
8045 "Definition of the open gamma ray astronomy data formats using fits-schema")
8046 (description
8047 "This package provides schema definitions for the Data Formats For Gamma-Ray
8048Astronomy.")
8049 (license license:expat)))
8050
8051(define-public python-openspace-api
8052 (package
8053 (name "python-openspace-api")
8054 (version "0.9.1")
8055 (source
8056 (origin
8057 (method url-fetch)
8058 (uri (pypi-uri "openspace_api" version))
8059 (sha256
8060 (base32 "02iqkgv3n3xzxkj94pwklll1vba6lnphmlbvbvkbgzkqk34r63ic"))))
8061 (build-system pyproject-build-system)
8062 (arguments
8063 (list #:tests? #f)) ;no tests
8064 (native-inputs
8065 (list python-setuptools))
8066 (home-page "https://openspaceproject.com")
8067 (synopsis "Python library to interface with OpenSpace using sockets")
8068 (description
8069 "Python library to interface with
8070@url{https://github.com/OpenSpace/OpenSpace, OpenSpace} using TCP sockets.")
8071 (license license:expat)))
8072
8073(define-public python-orbitalpy
8074 (package
8075 (name "python-orbitalpy")
8076 ;; 0.7.0 was placed in 2015, project does not tag new releases any
8077 ;; longer. It's not the latest commit, which needs SciPy 1.13+.
8078 (properties '((commit . "d6d3fa4f0b372a1d0ed64c52765c22b74fbefca6")
8079 (revision . "0")))
8080 (version (git-version "0.7.0"
8081 (assoc-ref properties 'revision)
8082 (assoc-ref properties 'commit)))
8083 (source
8084 (origin
8085 (method git-fetch)
8086 (uri (git-reference
8087 (url "https://github.com/RazerM/orbital")
8088 (commit (assoc-ref properties 'commit))))
8089 (file-name (git-file-name name version))
8090 (sha256
8091 (base32 "1dpahlqy7xmdqbzs9hbz1x5sm8sv7g2krccaj3r4ykfarv8lbah7"))))
8092 (build-system pyproject-build-system)
8093 (native-inputs
8094 (list python-pytest
8095 python-setuptools))
8096 (propagated-inputs
8097 (list python-astropy
8098 python-matplotlib
8099 python-numpy
8100 python-represent
8101 python-scipy
8102 python-sgp4))
8103 (home-page "https://github.com/RazerM/orbital")
8104 (synopsis "High level orbital mechanics")
8105 (description
8106 "Orbital is a high level orbital mechanics package for Python.")
8107 (license license:expat)))
8108
8109(define-public python-p-winds
8110 (package
8111 (name "python-p-winds")
8112 (version "1.4.7")
8113 (source
8114 (origin
8115 (method git-fetch)
8116 (uri (git-reference
8117 (url "https://github.com/ladsantos/p-winds")
8118 (commit (string-append "v" version))))
8119 (file-name (git-file-name name version))
8120 (sha256
8121 (base32 "0z94nvx47v50c7nq20kny49cr2w2xszvijy9bfxp2dbgq49ip244"))))
8122 (build-system pyproject-build-system)
8123 (arguments
8124 (list #:tests? #f)) ;network access is required to fetch test data
8125 (native-inputs
8126 (list python-setuptools))
8127 (propagated-inputs
8128 (list python-astropy
8129 python-flatstar
8130 python-numpy
8131 python-scipy))
8132 (home-page "https://github.com/ladsantos/p-winds")
8133 (synopsis "Parker wind models for planetary atmospheres")
8134 (description
8135 "Python implementation of Parker wind models for planetary atmospheres.
8136@code{p-winds} produces simplified, 1-D models of the upper atmosphere of a
8137planet, and perform radiative transfer to calculate observable spectral
8138signatures.
8139
8140The scalable implementation of 1D models allows for atmospheric retrievals to
8141calculate atmospheric escape rates and temperatures. In addition, the modular
8142implementation allows for a smooth plugging-in of more complex descriptions to
8143forward model their corresponding spectral signatures (e.g., self-consistent
8144or 3D models).")
8145 (license license:expat)))
8146
8147(define-public python-petrofit
8148 (package
8149 (name "python-petrofit")
8150 (version "0.6.0")
8151 (source
8152 (origin
8153 (method git-fetch)
8154 (uri (git-reference
8155 (url "https://github.com/PetroFit/petrofit")
8156 (commit (string-append "v" version))))
8157 (file-name (git-file-name name version))
8158 (sha256
8159 (base32 "07dri6r6ws82nn379gqvg899g576n8skhgp5fjg3qq38rp8dgl0k"))))
8160 (build-system pyproject-build-system)
8161 (arguments
8162 (list
8163 ;; tests: 28 passed, 2033 warnings
8164 #:test-flags
8165 ;; XXX: Project has no recent changes, 3 tests fail with error:
8166 ;; TypeError: only 0-dimensional arrays can be converted to Python
8167 ;; scalars.
8168 #~(list (string-append "--deselect=petrofit/tests/test_segmentation.py"
8169 "::test_source_photometry")
8170 (string-append "--deselect=petrofit/tests/test_photometry.py"
8171 "::test_radial_photometry")
8172 "--deselect=petrofit/tests/test_petrosian.py::test_grid_gen")
8173 #:phases
8174 #~(modify-phases %standard-phases
8175 (add-after 'unpack 'relax-requirements
8176 (lambda _
8177 ;; XXX: I'm not sure we need to propagate Jupyter requirements.
8178 (substitute* "pyproject.toml"
8179 (("'ipywidgets',") "")
8180 (("'jupyter',") "")
8181 (("'notebook',") "")))))))
8182 (native-inputs
8183 (list python-cython
8184 python-hatch-vcs
8185 python-hatchling
8186 python-pytest
8187 python-pytest-astropy-header
8188 python-pytest-randomly
8189 python-setuptools-scm))
8190 (propagated-inputs
8191 (list python-astropy
8192 python-extension-helpers
8193 python-matplotlib
8194 python-notebook
8195 python-numpy
8196 python-photutils
8197 python-pyyaml
8198 python-regions
8199 python-scikit-image
8200 python-scikit-learn
8201 python-scipy))
8202 (home-page "https://github.com/PetroFit/petrofit")
8203 (synopsis "Petrosian properties and fitting galaxy light profiles calculation")
8204 (description
8205 "PetroFit is a package for calculating Petrosian properties,
8206such as radii and concentration indices, as well as fitting galaxy light
8207profiles. In particular, PetroFit includes tools for performing accurate
8208photometry, segmentations, Petrosian profiling, and Sérsic fitting.")
8209 (license license:bsd-3)))
8210
8211(define-public python-photutils
8212 (package
8213 (name "python-photutils")
8214 (version "3.0.0")
8215 (source
8216 (origin
8217 (method git-fetch)
8218 (uri (git-reference
8219 (url "https://github.com/astropy/photutils")
8220 (commit version)))
8221 (file-name (git-file-name name version))
8222 (sha256
8223 (base32 "1azwm65lb84r19c0ippq6mdp6vhrk02fs6j5fkmz6sqhj3g85ycd"))))
8224 (build-system pyproject-build-system)
8225 (arguments
8226 (list
8227 ;; tests: 3361 passed, 23 skipped
8228 #:test-flags
8229 #~(list "--pyargs" "photutils"
8230 "--numprocesses" (number->string (min 8 (parallel-job-count))))
8231 #:phases
8232 #~(modify-phases %standard-phases
8233 (add-after 'unpack 'add-missing-import
8234 ;; See: <https://github.com/astropy/photutils/pull/2260>
8235 (lambda _
8236 (substitute* "photutils/isophote/ellipse_model.pyx"
8237 ((" double sqrt\\(double x\\)" all)
8238 (string-append all "\n\nfrom cpython cimport bool")))))
8239 (add-before 'check 'remove-local-source
8240 (lambda _
8241 (delete-file-recursively "photutils"))))))
8242 (native-inputs
8243 (list python-cython
8244 python-extension-helpers
8245 python-pytest-astropy
8246 python-pytest-xdist
8247 python-setuptools
8248 python-setuptools-scm))
8249 (propagated-inputs
8250 (list python-astropy
8251 python-bottleneck
8252 python-gwcs
8253 python-matplotlib
8254 python-numpy
8255 python-rasterio
8256 python-regions
8257 python-scikit-image
8258 python-scipy
8259 python-shapely
8260 python-tqdm))
8261 (home-page "https://github.com/astropy/photutils")
8262 (synopsis "Source detection and photometry")
8263 (description
8264 "Photutils is an Astropy package for detection and photometry of
8265astronomical sources.")
8266 (license license:bsd-3)))
8267
8268(define-public python-pint-pulsar
8269 (package
8270 (name "python-pint-pulsar")
8271 (version "1.1.6")
8272 (source
8273 (origin
8274 (method git-fetch)
8275 (uri (git-reference
8276 (url "https://github.com/nanograv/PINT")
8277 (commit version)))
8278 (file-name (git-file-name name version))
8279 (sha256
8280 (base32 "16lmibf2sim9qcqq908x88jsfjq2vm47j119css863b9nx8xsxas"))))
8281 (build-system pyproject-build-system)
8282 (arguments
8283 (list
8284 ;; tests: 790 passed, 17 skipped, 13 deselected, 11 xfailed, 1 xpassed,
8285 ;; 710 warnings
8286 #:test-flags
8287 #~(list "-k" (string-join
8288 ;; Tests failing with assertion on not correct precision
8289 ;; or missing data files.
8290 (list "not test_IERS_B_builtin_agree_with_IERS_Auto_dX"
8291 "test_astropy_observatory"
8292 "test_astropy_observatory"
8293 "test_copy_fitter_object"
8294 "test_copy_residuals"
8295 "test_copy_toa_object"
8296 "test_copy_wideband_fitter_object"
8297 "test_ssb_cache_adjust"
8298 "test_ssb_cache_clkcorr"
8299 "test_ssb_cache_merge"
8300 "test_time_construction_jds_exact[tdb]")
8301 " and not ")
8302 ;; XXX: The most of the tests require additional data, select
8303 ;; files where they may run without it and check how to enable
8304 ;; more.
8305 "tests/test_Galactic.py"
8306 "tests/test_all_component_and_model_builder.py"
8307 "tests/test_astrometry.py"
8308 "tests/test_astropy_observatory.py"
8309 "tests/test_astropy_times.py"
8310 "tests/test_astropy_version.py"
8311 "tests/test_binary_generic.py"
8312 "tests/test_binconvert.py"
8313 "tests/test_compare.py"
8314 "tests/test_compare_model.py"
8315 "tests/test_compare_model_ecl_vs_icrs.py"
8316 "tests/test_convert_parfile.py"
8317 "tests/test_copy.py"
8318 "tests/test_covariance_matrix.py"
8319 "tests/test_datafiles.py"
8320 "tests/test_derived_quantities.py"
8321 "tests/test_derivedparams.py"
8322 "tests/test_dmxrange_add_sub.py"
8323 "tests/test_erfautils.py"
8324 "tests/test_eventstats.py"
8325 "tests/test_funcpar.py"
8326 "tests/test_leapsec.py"
8327 "tests/test_model_manual.py"
8328 "tests/test_numpy.py"
8329 "tests/test_observatory_envar.py"
8330 "tests/test_observatory_metadata.py"
8331 "tests/test_parfile.py"
8332 "tests/test_parunits.py"
8333 "tests/test_pb.py"
8334 "tests/test_phase.py"
8335 "tests/test_pickle.py"
8336 "tests/test_plk_widget.py"
8337 "tests/test_plot_utils.py"
8338 "tests/test_plrednoise.py"
8339 "tests/test_pmtransform_units.py"
8340 "tests/test_precision.py"
8341 "tests/test_prefix_param_inheritance.py"
8342 "tests/test_priors.py"
8343 "tests/test_process_parfile.py"
8344 "tests/test_pulsar_mjd.py"
8345 "tests/test_pulsar_position.py"
8346 "tests/test_reduced_precision.py"
8347 "tests/test_satobs.py"
8348 "tests/test_t2binary2pint.py"
8349 "tests/test_tcb2tdb.py"
8350 "tests/test_templates.py"
8351 "tests/test_variety_parfiles.py"
8352 "tests/test_version.py")))
8353 (native-inputs
8354 (list python-pytest
8355 python-setuptools
8356 python-versioneer))
8357 (propagated-inputs
8358 (list python-astropy
8359 python-corner
8360 python-emcee
8361 python-jplephem
8362 python-loguru
8363 python-matplotlib
8364 python-nestle
8365 python-numdifftools
8366 python-numpy
8367 python-pyerfa
8368 python-scipy
8369 python-uncertainties))
8370 (home-page "https://github.com/nanograv/PINT")
8371 (synopsis "Software for high-precision pulsar timing")
8372 (description
8373 "PINT is not TEMPO3 - package providing a Pulsar Timing, written in
8374Python from scratch.
8375Features:
8376@itemize
8377@item a robust system to produce high-precision timing results that is
8378completely independent of TEMPO and Tempo2
8379@item a system that is easy to extend and modify due to a good design
8380and the use of a modern programming language, techniques, and libraries
8381@end itemize")
8382 (license license:bsd-3)))
8383
8384(define-public python-pixell
8385 (package
8386 (name "python-pixell")
8387 (version "0.32.4")
8388 (source
8389 (origin
8390 (method git-fetch)
8391 (uri (git-reference
8392 (url "https://github.com/simonsobs/pixell")
8393 (commit (string-append "v" version))))
8394 (file-name (git-file-name name version))
8395 (sha256
8396 (base32 "18f56mdqx80cfbsknm5x63b1s24bnkfj9kffwn1aslshi8j1llh4"))))
8397 (build-system pyproject-build-system)
8398 (arguments
8399 (list
8400 #:phases
8401 #~(modify-phases %standard-phases
8402 (add-before 'check 'remove-time-based-tests
8403 (lambda _
8404 (substitute* "tests/test_pixell.py"
8405 (("assert time_eval") "#")))))))
8406 (native-inputs
8407 (list gfortran
8408 perl ; fortran/Makefile
8409 python-h5py
8410 python-meson
8411 python-pytest
8412 python-pyyaml))
8413 (propagated-inputs
8414 (list python-astropy
8415 python-dateutil
8416 python-ducc0
8417 python-ephem
8418 python-healpy
8419 python-matplotlib
8420 python-numba
8421 python-numpy
8422 python-pillow
8423 python-scipy))
8424 (home-page "https://pixell.readthedocs.io/")
8425 (synopsis "Tectangular pixel map manipulation and harmonic analysis")
8426 (description
8427 "pixell is a library for loading, manipulating and analyzing maps stored
8428in rectangular pixelization. It is mainly intended for use with maps of the
8429sky (e.g. CMB intensity and polarization maps, stacks of 21 cm intensity maps,
8430binned galaxy positions or shear) in cylindrical projection, but its core
8431functionality is more general.")
8432 (license license:bsd-3)))
8433
8434(define-public python-plasmapy
8435 (package
8436 (name "python-plasmapy")
8437 (version "2026.2.0")
8438 (source
8439 (origin
8440 (method git-fetch)
8441 (uri (git-reference
8442 (url "https://github.com/PlasmaPy/plasmapy")
8443 (commit (string-append "v" version))))
8444 (file-name (git-file-name name version))
8445 (sha256
8446 (base32 "1zvsdmn2q4iqpm236sl2m4hrpfb9j7y69wv0jnxs0f2vm10pf4c8"))))
8447 (build-system pyproject-build-system)
8448 (arguments
8449 (list
8450 ;; tests: 4320 passed, 30 skipped, 5 xfailed, 1 xpassed, 16 warnings
8451 #:test-flags
8452 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count)))
8453 "-k"
8454 (string-join
8455 ;; Tests require network access to get data files from
8456 ;; <https://github.com/PlasmaPy/PlasmaPy-data>.
8457 (list "not test_stopping_power_errors"
8458 "test_stopping_power_interpolation"
8459 "test_stopping_power_no_interpolation"
8460 "test_NIST_particle_stopping"
8461 ;; XXX: Not equal to tolerance <...>.
8462 "test_relativistic_body"
8463 "test_vals_stix_figs[kwargs1-expected1]"
8464 "test_known1")
8465 " and not "))
8466 #:phases
8467 #~(modify-phases %standard-phases
8468 (add-after 'unpack 'fix-pytest-config
8469 (lambda _
8470 (substitute* "pyproject.toml"
8471 ;; Make sure we have control over number of parallel tests.
8472 ((".*--numprocesses=.*") ""))))
8473 (add-before 'check 'set-HOME
8474 (lambda _
8475 (setenv "HOME" "/tmp"))))))
8476 (native-inputs
8477 (list nss-certs-for-test
8478 python-pytest
8479 python-pytest-xdist
8480 python-setuptools
8481 python-setuptools-scm))
8482 (propagated-inputs
8483 (list python-astropy
8484 python-h5py
8485 python-lmfit
8486 python-matplotlib
8487 python-mpmath
8488 python-numpy
8489 python-packaging
8490 python-pandas
8491 python-requests
8492 python-scipy
8493 python-tqdm
8494 python-wrapt
8495 python-xarray))
8496 (home-page "https://docs.plasmapy.org/")
8497 (synopsis "Python package for plasma research and education")
8498 (description
8499 "PlasmaPy is Python package for plasma research and education. PlasmaPy
8500intends to be for plasma science what Astropy is for astronomy — a collection
8501of functionality commonly needed by plasma scientists and researchers
8502globally, running within and leveraging the open source scientific Python
8503ecosystem.")
8504 (license license:bsd-3)))
8505
8506(define-public python-poppy
8507 (package
8508 (name "python-poppy")
8509 (version "1.1.2")
8510 (source
8511 (origin
8512 (method url-fetch)
8513 (uri (pypi-uri "poppy" version))
8514 (sha256
8515 (base32 "0mvnd9rlglb1cqhaavd2lyxnvi4xmc133x50rzzlh00xn0gyxgfq"))))
8516 (build-system pyproject-build-system)
8517 (arguments
8518 (list
8519 #:test-flags
8520 #~(list "--numprocesses" (number->string (parallel-job-count))
8521 "--ignore=docs/exts/numfig.py")))
8522 (native-inputs
8523 (list python-docutils
8524 python-pytest
8525 python-pytest-astropy
8526 python-pytest-xdist
8527 python-setuptools-scm
8528 python-wheel))
8529 (propagated-inputs
8530 ;; XXX: With python-synphot (marked as optional) package added to the list
8531 ;; it tries to download from remote host during tests and fails. Overall
8532 ;; tests take up to 5-8min to pass.
8533 (list python-astropy
8534 python-matplotlib
8535 python-numexpr
8536 python-numpy
8537 python-scipy))
8538 (home-page "https://poppy-optics.readthedocs.io/")
8539 (synopsis "Physical Optics Propagation in Python")
8540 (description
8541 "@acronym{POPPY, Physical Optics Propagation in Python} is a Python package that
8542simulates physical optical propagation including diffraction. It implements a
8543flexible framework for modeling Fraunhofer and Fresnel diffraction and point
8544spread function formation, particularly in the context of astronomical
8545telescopes.
8546
8547POPPY was developed as part of a simulation package for the James Webb Space
8548Telescope, but is more broadly applicable to many kinds of imaging simulations.
8549It is not, however, a substitute for high fidelity optical design software such
8550as Zemax or Code V, but rather is intended as a lightweight alternative for
8551cases for which diffractive rather than geometric optics is the topic of
8552interest, and which require portability between platforms or ease of scripting.")
8553 (license license:bsd-3)))
8554
8555(define-public python-pvextractor
8556 (package
8557 (name "python-pvextractor")
8558 (version "0.4")
8559 (source
8560 (origin
8561 (method url-fetch)
8562 (uri (pypi-uri "pvextractor" version))
8563 (sha256
8564 (base32 "1kl33vg5rxmdwlk36pn8zqa7k7f43fb7w417fym6ygp86mci2spd"))))
8565 (build-system pyproject-build-system)
8566 (arguments
8567 (list
8568 #:test-flags #~(list "--pyargs" "pvextractor")
8569 #:phases
8570 #~(modify-phases %standard-phases
8571 ;; See <https://github.com/radio-astro-tools/pvextractor/issues/124>.
8572 (add-after 'unpack 'patch-regexp
8573 (lambda _
8574 (substitute* "pvextractor/pvregions.py"
8575 (("coordre = re.compile.*")
8576 "coordre = re.compile(\"^[a-z]*\\\\((.*)\\\\)\")\n"))))
8577 (add-before 'check 'prepare-x
8578 (lambda _
8579 (system "Xvfb &")
8580 (setenv "DISPLAY" ":0")
8581 (setenv "HOME" "/tmp"))))))
8582 (propagated-inputs
8583 (list python-astropy
8584 python-matplotlib
8585 python-numpy
8586 python-pyqt-6
8587 python-qtpy
8588 python-scipy
8589 python-spectral-cube))
8590 (native-inputs
8591 (list python-pytest-astropy
8592 python-setuptools-scm
8593 xorg-server-for-tests))
8594 (home-page "http://pvextractor.readthedocs.io")
8595 (synopsis "Position-Velocity diagram extractor")
8596 (description
8597 "The concept of the pvextractor package is simple - given a path defined
8598in sky coordinates, and a spectral cube, extract a slice of the cube along
8599that path, and along the spectral axis, producing a position-velocity or
8600position-frequency slice.")
8601 (license license:bsd-3)))
8602
8603(define-public python-pvextractor-bootstrap
8604 (hidden-package
8605 (package
8606 (inherit python-pvextractor)
8607 (arguments
8608 (list #:tests? #f
8609 #:phases #~(modify-phases %standard-phases
8610 (delete 'sanity-check))))
8611 (propagated-inputs '())
8612 (native-inputs
8613 (list python-setuptools
8614 python-wheel)))))
8615
8616(define-public python-pyastronomy
8617 (package
8618 (name "python-pyastronomy")
8619 (version "0.25.0")
8620 (source
8621 (origin
8622 (method git-fetch)
8623 (uri (git-reference
8624 (url "https://github.com/sczesla/PyAstronomy")
8625 (commit (string-append
8626 "v_" (string-replace-substring version "." "-")))))
8627 (file-name (git-file-name name version))
8628 (sha256
8629 (base32 "1kf7mi22m1pm7h41kbc9wpj6xv650zm3bj3qbh8as9a55pvkwpcv"))))
8630 (build-system pyproject-build-system)
8631 (arguments
8632 ;; See: <https://github.com/sczesla/PyAstronomy/issues/64>.
8633 (list #:tests? #f))
8634 (native-inputs
8635 (list python-ipython-minimal
8636 python-nbconvert
8637 python-pytest
8638 python-setuptools))
8639 (propagated-inputs
8640 (list python-bidict
8641 python-numpy
8642 python-quantities
8643 python-scipy
8644 python-six)) ;hard dependency
8645 (home-page "https://pyastronomy.readthedocs.io/en/latest/")
8646 (synopsis "Collection of astronomy related tools for Python")
8647 (description
8648 "This package provides a collection of astronomy related tools for
8649Python.
8650
8651The following subpackages are available:
8652@itemize
8653@item funcFit: A convenient fitting package providing support for minimization
8654and MCMC sampling.
8655@item modelSuite: A Set of astrophysical models (e.g., transit light-curve
8656modeling), which can be used stand-alone or with funcFit.
8657@item AstroLib: A set of useful routines including a number of ports from
8658IDL's astrolib.
8659@item Constants: The package provides a number of often-needed constants.
8660@item Timing: Provides algorithms for timing analysis such as the Lomb-Scargle
8661and the Generalized Lomb-Scargle periodogram
8662@item pyaGUI: A collection of GUI tools for interactive work.
8663@end itemize ")
8664 (license license:expat)))
8665
8666(define-public python-pyavm
8667 (package
8668 (name "python-pyavm")
8669 (version "0.9.9")
8670 (source
8671 (origin
8672 (method git-fetch)
8673 (uri (git-reference
8674 (url "https://github.com/astrofrog/pyavm")
8675 (commit (string-append "v" version))))
8676 (file-name (git-file-name name version))
8677 (sha256
8678 (base32 "1xh8f4w8qiynnm4gssnwwwcml7i5v371fd7kp7a6cv9xp4rns1v6"))))
8679 (build-system pyproject-build-system)
8680 (native-inputs
8681 (list python-astropy-minimal
8682 python-hatch-vcs
8683 python-hatchling
8684 python-numpy
8685 python-pillow
8686 python-pytest))
8687 (home-page "https://astrofrog.github.io/pyavm/")
8688 (synopsis "Simple pure-python AVM meta-data handling")
8689 (description
8690 "PyAVM is a module to represent, read, and write metadata following the
8691@acronym{AVM, Astronomy Visualization Metadata} standard provided by
8692@url{https://www.virtualastronomy.org/avm_metadata.php, vamp} project.")
8693 (license license:expat)))
8694
8695(define-public python-pycpl
8696 (package
8697 (name "python-pycpl")
8698 (version "1.0.4")
8699 (source
8700 (origin
8701 (method url-fetch)
8702 (uri (string-append
8703 "https://ftp.eso.org/pub/dfs/pipelines/libraries/pycpl/pycpl-"
8704 version ".tar.gz"))
8705 (sha256
8706 (base32 "1i598snc9dkmdgk8f5dky1a7qz5lzh5q9kkvwi5yqnqd19sx7rc5"))))
8707 (build-system pyproject-build-system)
8708 (native-inputs
8709 (list cmake-minimal
8710 pkg-config
8711 pybind11
8712 python-pandas
8713 python-pytest
8714 python-scipy
8715 python-setuptools))
8716 (inputs
8717 (list cext
8718 cpl))
8719 (propagated-inputs
8720 (list python-astropy))
8721 (home-page "https://www.eso.org/sci/software/pycpl/")
8722 (synopsis "Python bindings for ESO's CPL")
8723 (description
8724 "PyCPL provides Python3 language bindings for the complete programming
8725API of the @acronym{European Southern Observatory, ESO} @acronym{Common
8726Pipeline Library, CPL} toolkit, including the CPL plugin interface.")
8727 (properties '((upstream-name . "pycpl")))
8728 (license license:bsd-3)))
8729
8730(define-public python-pydl
8731 (package
8732 (name "python-pydl")
8733 (version "1.0.1")
8734 (source
8735 (origin
8736 (method url-fetch)
8737 (uri (pypi-uri "pydl" version))
8738 (sha256
8739 (base32 "0z08c05qf0ix4h348n0hhxixn1wipdm55g9z6qys24z41ywf69jh"))))
8740 (build-system pyproject-build-system)
8741 (native-inputs
8742 (list python-pytest-astropy
8743 python-pytest-mock
8744 python-setuptools
8745 python-setuptools-scm))
8746 (propagated-inputs
8747 (list python-astropy
8748 python-scipy))
8749 (home-page "https://github.com/weaverba137/pydl")
8750 (synopsis "IDL astronomy routines converted to Python")
8751 (description
8752 "This package consists of Python replacements for functions that are part
8753of the @url{https://www.nv5geospatialsoftware.com/Products/IDL, IDL} built-in
8754library or part of astronomical IDL libraries. The emphasis is on reproducing
8755results of the astronomical library functions. Only the bare minimum of IDL
8756built-in functions are implemented to support this.")
8757 (license license:bsd-3)))
8758
8759(define-public python-pydrad
8760 (package
8761 (name "python-pydrad")
8762 ;; Not released yet, recommended installation method via git clone.
8763 (properties '((commit . "bf0d711206f877961e6c8a6f07ac99caafe7e863")
8764 (revision . "0")))
8765 (version (git-version "0.1.0"
8766 (assoc-ref properties 'revision)
8767 (assoc-ref properties 'commit)))
8768 (source
8769 (origin
8770 (method git-fetch)
8771 (uri (git-reference
8772 (url "https://github.com/rice-solar-physics/pydrad")
8773 (commit (assoc-ref properties 'commit))))
8774 (file-name (git-file-name name version))
8775 (sha256
8776 (base32 "0djc74c66rrh6364gqr7rkprwnyrriyf6z07hzd3qq7d4ywlin61"))))
8777 (build-system pyproject-build-system)
8778 (arguments
8779 (list
8780 #:tests? #f ;tests require network access
8781 #:phases
8782 #~(modify-phases %standard-phases
8783 (add-after 'unpack 'patch-manifest.in
8784 ;; See: <https://codeberg.org/guix/guix/issues/4393>.
8785 (lambda* (#:key name source inputs #:allow-other-keys)
8786 (let ((port (open-file "MANIFEST.in" "w")))
8787 (for-each
8788 (lambda (file)
8789 (display "include " port)
8790 (display file port)
8791 (display "\n" port))
8792 (find-files "."))
8793 (close port)))))))
8794 (native-inputs
8795 (list python-setuptools
8796 python-setuptools-scm))
8797 (propagated-inputs
8798 (list python-asdf-astropy
8799 python-astropy
8800 python-gitpython
8801 python-h5py
8802 python-jinja2
8803 python-matplotlib
8804 python-plasmapy
8805 python-scipy))
8806 (home-page "https://pydrad.readthedocs.io/")
8807 (synopsis "Python tools for setting up HYDRAD runs and parsing output")
8808 (description
8809 "This package provides some Python tools to configure and parse output
8810from the HYDrodynamics and RADiation (HYDRAD) code for field-aligned coronal
8811loop physics.")
8812 (license license:expat)))
8813
8814(define-public python-pyerfa
8815 (package
8816 (name "python-pyerfa")
8817 (version "2.0.1.5")
8818 (source
8819 (origin
8820 (method url-fetch)
8821 (uri (pypi-uri "pyerfa" version))
8822 (sha256
8823 (base32 "1h7nw61wqx9qsznnl8qandixr6c1n3f65hyqwzanav44wi7v5mhp"))
8824 (modules '((guix build utils)))
8825 (snippet
8826 #~(begin
8827 ;; Remove bundled submodule library.
8828 (delete-file-recursively "liberfa")))))
8829 (build-system pyproject-build-system)
8830 (arguments
8831 (list
8832 ;; Disable only one failing test:
8833 ;; AttributeError: __warningregistry__
8834 ;; See https://github.com/liberfa/pyerfa/issues/126
8835 #:test-flags #~(list "-k" "not test_errwarn_reporting")
8836 #:phases
8837 #~(modify-phases %standard-phases
8838 (add-before 'build 'use-system-liberfa
8839 (lambda _
8840 (setenv "PYERFA_USE_SYSTEM_LIBERFA" "1")))
8841 (add-before 'check 'build-extensions
8842 (lambda _
8843 (invoke "python" "setup.py" "build_ext" "--inplace"))))))
8844 (native-inputs
8845 (list python-pytest-doctestplus
8846 python-pytest
8847 python-setuptools
8848 python-setuptools-scm))
8849 (inputs
8850 (list erfa))
8851 (propagated-inputs
8852 (list python-numpy))
8853 (home-page "https://github.com/liberfa/pyerfa")
8854 (synopsis "Python bindings for ERFA")
8855 (description
8856 "PyERFA is the Python wrapper for the ERFA library (Essential
8857Routines for Fundamental Astronomy), a C library containing key algorithms for
8858astronomy, which is based on the SOFA library published by the International
8859Astronomical Union (IAU). All C routines are wrapped as Numpy universal
8860functions, so that they can be called with scalar or array inputs.")
8861 (license license:bsd-3)))
8862
8863(define-public python-pyesorex
8864 (package
8865 (name "python-pyesorex")
8866 (version "1.0.4")
8867 (source
8868 (origin
8869 (method url-fetch)
8870 (uri (string-append
8871 "https://ftp.eso.org/pub/dfs/pipelines/libraries/pyesorex/pyesorex-"
8872 version ".tar.gz"))
8873 (sha256
8874 (base32 "15whkb4d8aa2ypz2awsg7y7m8vfrxy4djg090167zs1zmi5snnmp"))))
8875 (build-system pyproject-build-system)
8876 (native-inputs
8877 (list python-pytest
8878 python-setuptools))
8879 (propagated-inputs
8880 (list python-pycpl))
8881 (native-search-paths
8882 (list (search-path-specification
8883 (variable "PYESOREX_PLUGIN_DIR")
8884 (files '("lib/esopipes-plugins")))))
8885 (home-page "https://www.eso.org/sci/software/pycpl/pycpl-site/")
8886 (synopsis "Alternative Python CLI for ESO's Rex")
8887 (description
8888 "PyEsoRex is a command line tool which can serve as a drop-in replacement
8889of EsoRex, which can execute both, existing pipeline recipes implemented using
8890the @acronym{Common Pipeline Library, CPL} C API, and recipes implemented
8891using the PyCPL Python API.")
8892 (properties '((upstream-name . "pyesorex")))
8893 (license license:bsd-3)))
8894
8895(define-public python-pyhalo
8896 (package
8897 (name "python-pyhalo")
8898 ;; 1.4.7 only works with a specific lenstronomy-fork
8899 (version "1.4.6")
8900 (source
8901 (origin
8902 (method url-fetch)
8903 ;; 1.4.6 is not tagged so cannot use git-fetch; 1.4.7 is though.
8904 (uri (pypi-uri "pyhalo" version))
8905 (sha256
8906 (base32 "0gwlcsgd4pd9smy8wx1bqk77bmd475plmqshj7r7czm8vh0w9lqr"))))
8907 (build-system pyproject-build-system)
8908 (arguments
8909 (list
8910 ;; tests: 219 passed, 22679 warnings
8911 #:phases
8912 #~(modify-phases %standard-phases
8913 (add-after 'unpack 'fix-setupup.py
8914 ;; XXX: ModuleNotFoundError: No module named 'pyHalo.cli'.
8915 (lambda _
8916 (substitute* "setup.py"
8917 ((".pyHalo=pyHalo.cli:main.*") ""))))
8918 (add-after 'unpack 'fix-trapz
8919 (lambda _
8920 (substitute*
8921 (list "pyHalo/Halos/HaloModels/TNFW.py"
8922 "pyHalo/Halos/tidal_truncation.py")
8923 ;; prevent TypeError: only 0-dimensional arrays can be converted
8924 ;; to Python scalars
8925 (("float\\(") "np.ndarray.item("))
8926 (substitute*
8927 (find-files "." "\\.py$")
8928 ;; trapz is removed in NumPy 2.4.6, and is now called trapezoid.
8929 (("np.trapz\\(") "np.trapezoid("))))
8930 (add-before 'check 'pre-check
8931 (lambda _
8932 ;; RuntimeError: cannot cache function 'rotate': no locator
8933 ;; available for file '<...>/lenstronomy/Util/util.py'.
8934 (setenv "NUMBA_CACHE_DIR" "/tmp")
8935 ;; PermissionError: [Errno 13] Permission denied:
8936 ;; '/homeless-shelter'
8937 (setenv "HOME" "/tmp"))))))
8938 (native-inputs
8939 (list python-pytest
8940 python-setuptools))
8941 (propagated-inputs
8942 (list python-astropy
8943 python-click
8944 python-colossus
8945 python-h5py
8946 python-lenstronomy
8947 python-mcfit
8948 python-numpy
8949 python-scipy))
8950 (home-page "https://github.com/dangilman/pyHalo")
8951 (synopsis "Render populations of dark matter halos")
8952 (description
8953 "pyHalo renders full mass distributions for substructure lensing
8954simulations with gravitational lensing software package lenstronomy. The main
8955purpose of the code is to quickly render full populations of dark matter
8956subhalos and line of sight halos for gravitational lensing simulations. It
8957also transltes halo properties (mass, concentration, redshift, etc) into
8958angular units for lensing computations with lenstronomy.")
8959 (license license:expat)))
8960
8961(define-public python-pyhdrl
8962 (package
8963 (name "python-pyhdrl")
8964 (version "1.0.0")
8965 (source
8966 (origin
8967 (method url-fetch)
8968 (uri (string-append
8969 "https://ftp.eso.org/pub/dfs/pipelines/libraries/pyhdrl/pyhdrl-"
8970 version ".tar.gz"))
8971 (sha256
8972 (base32 "0if3fnaip89sf49riy5sk2hlh4asz0k4wlvvilr132s238wg9wx0"))))
8973 (build-system pyproject-build-system)
8974 (native-inputs
8975 (list cmake-minimal
8976 pkg-config
8977 pybind11
8978 python-pytest
8979 python-setuptools))
8980 (inputs
8981 (list cext
8982 cpl
8983 hdrl))
8984 (propagated-inputs
8985 (list python-pycpl))
8986 (home-page "https://www.eso.org/sci/software/pyhdrl/")
8987 (synopsis "Python bindings for the ESO HDRL C libraries")
8988 (description
8989 "PyHDRL provides a Python 3 API (language bindings) for the ESO High
8990Level Data Reduction Library (HDRL) using pybind11. It allows for using the
8991ESO High Level Data Reduction Library in Python scripts, or directly in an
8992interactive Python session, and thus allows for using HDRL algorithms in
8993recipes implemented in Python as part of an instrument pipeline package.")
8994 (license license:gpl3+)))
8995
8996(define-public python-pyindi-client
8997 (package
8998 (name "python-pyindi-client")
8999 (version "2.2.0")
9000 (source
9001 (origin
9002 (method url-fetch)
9003 (uri (pypi-uri "pyindi_client" version))
9004 (sha256
9005 (base32 "06jpgxxnh4c2s1jnqlpbxrjsqsaknqpxiq7c1cwalxr1qpf4w8ig"))))
9006 (build-system pyproject-build-system)
9007 (arguments
9008 (list
9009 #:phases
9010 #~(modify-phases %standard-phases
9011 (add-after 'unpack 'fix-include-path
9012 (lambda* (#:key inputs #:allow-other-keys)
9013 (substitute* (list "setup.py" "setup.cfg")
9014 (("/usr/include/libindi")
9015 (search-input-directory inputs "include/libindi")))))
9016 (add-before 'check 'pre-check
9017 (lambda _
9018 (system (string-append "indiserver"
9019 " indi_simulator_ccd"
9020 " indi_simulator_focus"
9021 " indi_simulator_gps"
9022 " indi_simulator_guide"
9023 " indi_simulator_wheel"
9024 " indi_simulator_telescope &")))))))
9025 (native-inputs
9026 (list python-pytest
9027 python-setuptools
9028 swig))
9029 (inputs
9030 (list cfitsio
9031 indi
9032 libnova))
9033 (propagated-inputs
9034 (list python-bottle
9035 python-dbus
9036 python-requests))
9037 (home-page "https://github.com/indilib/pyindi-client")
9038 (synopsis "Third party Python API for INDI client")
9039 (description
9040 "This package provides an INDI Client Python API, auto-generated from the
9041official C++ API using SWIG.")
9042 (license license:gpl3+)))
9043
9044(define-public python-pyirf
9045 (package
9046 (name "python-pyirf")
9047 (version "0.14.0")
9048 (source
9049 (origin
9050 (method git-fetch)
9051 (uri (git-reference
9052 (url "https://github.com/cta-observatory/pyirf")
9053 (commit (string-append "v" version))))
9054 (file-name (git-file-name name version))
9055 (sha256
9056 (base32 "01fk3rywhslvqsmr6vjdlicak1s5n39i139i6958wbk573vd8m3q"))))
9057 (build-system pyproject-build-system)
9058 (arguments
9059 (list
9060 #:test-flags
9061 #~(list
9062 ;; Network access is required to run "python download_irfs.py".
9063 "-k" (string-append "not test_EnergyDispersionEstimator"
9064 " and not test_EffectiveAreaEstimator_prod5"))))
9065 (native-inputs
9066 (list python-ogadf-schema
9067 python-pytest
9068 python-setuptools
9069 python-setuptools-scm))
9070 (propagated-inputs
9071 (list python-astropy
9072 python-numpy
9073 python-packaging
9074 python-scipy
9075 python-tqdm
9076 ;; [optional]
9077 python-gammapy))
9078 (home-page "https://github.com/cta-observatory/pyirf")
9079 (synopsis "Python IRF builder")
9080 (description
9081 "This package provides a python library to calculate @acronym{IACT,
9082Imaging Atmospheric Cherenkov Telescopes} @acronym{IRF, Instrument Response
9083Function} and Sensitivities.")
9084 (license license:expat)))
9085
9086(define-public python-pyiri
9087 (package
9088 (name "python-pyiri")
9089 (version "0.1.7")
9090 (source
9091 (origin
9092 (method git-fetch)
9093 (uri (git-reference
9094 (url "https://github.com/victoriyaforsythe/PyIRI")
9095 (commit (string-append "v" version))))
9096 (file-name (git-file-name name version))
9097 (sha256
9098 (base32 "10fwj2h0vn1b8525qhfw607rsjq4q4fcpn2ya1v0iy3rzv6fvbxi"))))
9099 (build-system pyproject-build-system)
9100 (native-inputs
9101 (list python-pytest
9102 python-setuptools))
9103 (propagated-inputs
9104 (list python-fortranformat
9105 python-matplotlib
9106 python-netcdf4
9107 python-numpy
9108 python-opt-einsum
9109 python-pandas
9110 python-scipy))
9111 (home-page "https://github.com/victoriyaforsythe/PyIRI")
9112 (synopsis "Python implementation of International Reference Ionosphere")
9113 (description
9114 "PyIRI is a Python implementation of the @acronym{International Reference
9115Ionosphere, IRI} model. It provides fast, global, and altitude‑dependent
9116evaluation of ionospheric parameters using a new spherical harmonics (SH)
9117architecture. The model supports multiple coordinate systems and efficiently
9118evaluates all grid points and time frames simultaneously.")
9119 (license license:expat)))
9120
9121(define-public python-pymcfost
9122 (package
9123 (name "python-pymcfost")
9124 (version "0.1.1")
9125 (source
9126 (origin
9127 (method url-fetch)
9128 (uri (pypi-uri "pymcfost" version))
9129 (sha256
9130 (base32 "0nr3s4pvdi4ihvq4jmaqpb09skb71y8xw7yvkxzlh1yb7gpd5zzh"))))
9131 (build-system pyproject-build-system)
9132 (arguments
9133 (list
9134 #:test-flags
9135 ;; No parameter files found in <...>.
9136 #~(list "--deselect=tests/test_plot.py::test_compare_data_th_plot_T")
9137 #:phases
9138 #~(modify-phases %standard-phases
9139 (add-after 'unpack 'relax-requirements
9140 (lambda _
9141 (substitute* "pyproject.toml"
9142 ;; progressbar is not maintained, use alternative fork.
9143 (("progressbar") "progressbar2")))))))
9144 (native-inputs
9145 (list python-pytest
9146 python-setuptools
9147 python-setuptools-scm))
9148 (propagated-inputs
9149 (list python-astropy
9150 python-cmasher
9151 python-matplotlib
9152 python-numpy
9153 python-progressbar2
9154 python-scipy))
9155 (home-page "https://github.com/cpinte/pymcfost")
9156 (synopsis "Interface to the 3D radiative transfer code MCFOST")
9157 (description
9158 "Pymcfost is a Python interface to the 3D radiative transfer code
9159MCFOST. The goal is to provide a simple and light interface to explore and
9160plot a single (or a few) model(s).")
9161 (license license:expat)))
9162
9163(define-public python-pynbody
9164 (package
9165 (name "python-pynbody")
9166 (version "2.5.0")
9167 (source
9168 (origin
9169 (method git-fetch)
9170 (uri (git-reference
9171 (url "https://github.com/pynbody/pynbody")
9172 (commit (string-append "v" version))))
9173 (file-name (git-file-name name version))
9174 (sha256
9175 (base32 "00shhb22m456j5sq25d3ka9ig1k0ybw869wa3933cm6askbmdag0"))
9176 (modules '((guix build utils)))
9177 (snippet
9178 ;; Symlink goes to not existing directory.
9179 #~(for-each delete-file '("docs/testdata"
9180 "docs/tutorials/example_code/testdata")))))
9181 (build-system pyproject-build-system)
9182 (arguments
9183 (list
9184 ;; tests: 92 passed, 6 skipped, 10 deselected
9185 #:test-flags
9186 ;; XXX: testdata is distributed via Zenodo
9187 ;; <https://zenodo.org/records/17084976> with total size more than 2GiB,
9188 ;; refer to the helper script obtaining it
9189 ;; <pynbody/test_utils/__init__.py>.
9190 #~(list #$@(map (lambda (file) (string-append "--ignore=tests/" file))
9191 (list "adaptahop_test.py"
9192 "ahf_halos_test.py"
9193 "array_test.py"
9194 "bridge_test.py"
9195 "copy_on_access_test.py"
9196 "family_test.py"
9197 "gadget_test.py"
9198 "gadgethdf_test.py"
9199 "gizmo_test.py"
9200 "grafic_test.py"
9201 "gravity_test.py"
9202 "halos_test.py"
9203 "halotools_test.py"
9204 "hbtplus_test.py"
9205 "hmf_test.py"
9206 "hop_test.py"
9207 "ionfrac_test.py"
9208 "kdtree_test.py"
9209 "luminosity_test.py"
9210 "morphology_test.py"
9211 "nchilada_test.py"
9212 "partial_tipsy_test.py"
9213 "pkdgravhdf_test.py"
9214 "plot_stars_test.py"
9215 "profile_test.py"
9216 "ramses_new_ptcl_format_test.py"
9217 "ramses_test.py"
9218 "rockstar_test.py"
9219 "schmidtlaw_test.py"
9220 "snapshot_test.py"
9221 "sph_image_test.py"
9222 "subfind_test.py"
9223 "subfindhdf_gadget4_test.py"
9224 "subfindhdf_test.py"
9225 "swift_test.py"
9226 "tipsy_test.py"
9227 "velociraptor_test.py"))
9228 "--deselect=tests/shape_test.py::test_2D_shape"
9229 "--deselect=tests/shape_test.py::test_3D_shape"
9230 "--deselect=tests/shape_test.py::test_halo_shape_wrapper"
9231 "--deselect=tests/test_profile.py::test_unique_hash_generation"
9232 "--deselect=tests/test_profile.py::test_write_profile"
9233 ;; DeprecationWarning: backend2gui is deprecated since IPython
9234 ;; 8.24, backends are managed in matplotlib and can be
9235 ;; externally registered.
9236 "--deselect=tests/plot_hist2d_test.py::test_hist2d"
9237 "--deselect=tests/plot_hist2d_test.py::test_hist2d_massweight"
9238 "--deselect=tests/schmidtlaw_test.py::test_full_disc"
9239 "--deselect=tests/schmidtlaw_test.py::test_truncated_disc")
9240 #:phases
9241 #~(modify-phases %standard-phases
9242 (add-before 'check 'pre-check
9243 (lambda _
9244 (mkdir-p "testdata/empty_folder_0001")
9245 (setenv "HOME" "/tmp"))))))
9246 (native-inputs
9247 (list python-cython
9248 python-ipython-minimal
9249 python-pandas
9250 python-pytest
9251 python-setuptools))
9252 (propagated-inputs
9253 (list python-certifi
9254 python-h5py
9255 python-matplotlib
9256 python-numpy
9257 python-osfclient
9258 python-scipy))
9259 (home-page "https://pynbody.readthedocs.io/latest/")
9260 (synopsis "Light-weight astronomical N-body/SPH analysis for Python")
9261 (description
9262 "@code{Pynbody} is an analysis framework for N-body and hydrodynamic
9263astrophysical simulations supporting PKDGRAV/Gasoline, Gadget, Gadget4/Arepo,
9264N-Chilada and RAMSES AMR outputs.")
9265 (license license:gpl3+)))
9266
9267(define-public python-pypeit
9268 (package
9269 (name "python-pypeit")
9270 (version "2.0.1")
9271 (source
9272 (origin
9273 (method git-fetch)
9274 (uri (git-reference
9275 (url "https://github.com/pypeit/PypeIt")
9276 (commit version)))
9277 (file-name (git-file-name name version))
9278 (sha256
9279 (base32 "14szspwxmf7mks6lr4n7l0nlfcipf9w2fzg4643c64x6lhy36qpf"))))
9280 (build-system pyproject-build-system)
9281 (arguments
9282 (list
9283 ;; TODO: Astropy removed 'coordinates/data/sites.json' from the package
9284 ;; which forces to download site data during sanity-check, and check
9285 ;; phases, see: <https://github.com/astropy/astropy/pull/18649>,
9286 ;; <https://codeberg.org/guix/guix/issues/6371#issuecomment-10784417>.
9287 #:tests? #f
9288 #:phases
9289 #~(modify-phases %standard-phases
9290 (delete 'sanity-check)
9291 ;; XXX: See: <https://github.com/pypeit/PypeIt/issues/1786>.
9292 (add-after 'unpack 'remove-missing-scripts-entry-points
9293 (lambda _
9294 (substitute* "pyproject.toml"
9295 ((".*pypeit_install_ql_calibs.*") "")
9296 ((".*pypeit_ql_multislit.*") ""))))
9297 (add-after 'unpack 'relax-requirements
9298 (lambda _
9299 (substitute* "pyproject.toml"
9300 ;; numpy>=2.4.1
9301 ((">=2.4.1") ">=2.3.1"))))
9302 (add-after 'install 'include-package-data
9303 ;; XXX: PyPI archive provides pypeit/data but during build from
9304 ;; Git it's ignored for some reason, add it manually.
9305 (lambda* (#:key inputs outputs #:allow-other-keys)
9306 (copy-recursively "pypeit/data"
9307 (string-append (site-packages inputs outputs)
9308 "/pypeit/data"))))
9309 (add-before 'check 'pre-check
9310 (lambda _
9311 (system "Xvfb &")
9312 (setenv "DISPLAY" ":0")
9313 (setenv "HOME" "/tmp")
9314 (setenv "MPLBACKEND" "agg"))))))
9315 (native-inputs
9316 (list python-cython
9317 python-specutils))
9318 (propagated-inputs
9319 (list python-astropy
9320 python-bottleneck
9321 python-configobj
9322 python-fast-histogram
9323 python-ginga
9324 python-ipython
9325 python-matplotlib
9326 python-numpy
9327 python-packaging
9328 python-pyerfa
9329 python-pygithub
9330 python-pyqt-6
9331 python-pyyaml
9332 python-qtpy
9333 python-scikit-learn
9334 python-scipy
9335 ;; [optional]
9336 python-scikit-image
9337 python-specutils))
9338 (home-page "https://github.com/pypeit/PypeIt")
9339 (synopsis "Spectroscopic Data Reduction Pipeline")
9340 (description
9341 "PypeIt is a Python package for semi-automated reduction of astronomical
9342spectroscopic data. Its algorithms build on decades-long development of
9343previous data reduction pipelines by the developers.
9344
9345It is designed to be used by both advanced spectroscopists with prior data
9346reduction expertise and astronomers with no prior experience of data
9347reduction. It is highly configurable and designed to be applied to any
9348standard slit-imaging spectrograph, including long-slit, multi-slit, as well
9349as cross-dispersed echelle spectra.")
9350 (license license:bsd-3)))
9351
9352;; A bare minimal package, mainly to use in tests and reduce closure
9353;; size. Tests are left out in the main package to slim down native-inputs.
9354(define-public python-pypeit-minimal
9355 (package/inherit python-pypeit
9356 (name "python-pypeit-minimal")
9357 (arguments
9358 (substitute-keyword-arguments
9359 (package-arguments python-pypeit)
9360 ((#:tests? _ #t) #f)))
9361 (native-inputs
9362 (list python-setuptools
9363 python-setuptools-scm))))
9364
9365(define-public python-pyregion
9366 (package
9367 (name "python-pyregion")
9368 (version "2.3.0")
9369 (source
9370 (origin
9371 (method url-fetch)
9372 (uri (pypi-uri "pyregion" version))
9373 (sha256
9374 (base32 "09a98v3zk1vdjns1q64al58mapr4cns3nlnyi6b26wqi888qfjg8"))))
9375 (build-system pyproject-build-system)
9376 (arguments
9377 (list
9378 #:phases
9379 #~(modify-phases %standard-phases
9380 (replace 'check
9381 (lambda* (#:key tests? test-flags #:allow-other-keys)
9382 (with-directory-excursion #$output
9383 (apply invoke "pytest" "-vv" test-flags))))
9384 (add-before 'check 'post-check
9385 (lambda _
9386 (for-each delete-file-recursively
9387 (find-files #$output "__pycache__" #:directories? #t)))))))
9388 (native-inputs
9389 (list python-cython
9390 python-extension-helpers
9391 python-pytest
9392 python-pytest-astropy
9393 python-setuptools
9394 python-setuptools-scm))
9395 (propagated-inputs
9396 (list python-astropy
9397 python-numpy
9398 python-pyparsing))
9399 (home-page "https://github.com/astropy/pyregion")
9400 (synopsis "Python parser for ds9 region files")
9401 (description
9402 "@code{pyregion} is a python module to parse ds9 region files. It also
9403supports ciao region files.
9404Features:
9405@itemize
9406@item ds9 and ciao region files.
9407@item (physical, WCS) coordinate conversion to the image coordinate.
9408@item convert regions to matplotlib patches.
9409@item convert regions to spatial filter (i.e., generate mask images)
9410@end itemize")
9411 (license license:expat)))
9412
9413(define-public python-pysat
9414 (package
9415 (name "python-pysat")
9416 (version "3.2.2")
9417 (source
9418 (origin
9419 (method git-fetch)
9420 (uri (git-reference
9421 (url "https://github.com/pysat/pysat")
9422 (commit (string-append "v" version))))
9423 (file-name (git-file-name name version))
9424 (sha256
9425 (base32 "0gm71zafigwc94s37wqyl86yjabpq6wx9izwxag74wg1ynhqyvf0"))))
9426 (build-system pyproject-build-system)
9427 (arguments
9428 (list
9429 ;; tests: 494 passed, 2 skipped, 41 warnings
9430 #:test-flags
9431 #~(list "--durations=10" ; report 10 slowest tests
9432 "--numprocesses" (number->string (min 8 (parallel-job-count)))
9433 ;; XXX: Dropping a big portion of test suite due to potential
9434 ;; abandonware of the project, see:
9435 ;; <https://github.com/pysat/pysat/issues/1232>.
9436 ;;
9437 ;; Most of the tests fail with errpr: pandas.errors.ParserError:
9438 ;; Error tokenizing data. C error: <...>.
9439 "--ignore=pysat/tests/test_constellation.py"
9440 "--ignore=pysat/tests/test_files.py"
9441 "--ignore=pysat/tests/test_instrument.py"
9442 "--ignore=pysat/tests/test_instrument_custom.py"
9443 "--ignore=pysat/tests/test_instrument_index.py"
9444 "--ignore=pysat/tests/test_instrument_padding.py"
9445 "--ignore=pysat/tests/test_instruments.py"
9446 "--ignore=pysat/tests/test_meta.py"
9447 "--ignore=pysat/tests/test_meta_labels.py"
9448 "--ignore=pysat/tests/test_methods_general.py"
9449 "--ignore=pysat/tests/test_methods_testing.py"
9450 "--ignore=pysat/tests/test_orbits.py"
9451 "--ignore=pysat/tests/test_registry.py"
9452 "--ignore=pysat/tests/test_utils.py"
9453 "--ignore=pysat/tests/test_utils_coords.py"
9454 "--ignore=pysat/tests/test_utils_files.py"
9455 "--ignore=pysat/tests/test_utils_io.py")
9456 #:phases
9457 #~(modify-phases %standard-phases
9458 (add-before 'build 'set-home-env
9459 (lambda _
9460 ;; No such file or directory: '/homeless-shelter/.pysat'
9461 (setenv "HOME" "/tmp")))
9462 (add-before 'check 'pre-check
9463 (lambda _
9464 (mkdir "pysatData")
9465 (invoke "python" "-c"
9466 "import pysat; pysat.params['data_dirs'] = 'pysatData'"))))))
9467 (native-inputs
9468 (list python-pytest
9469 python-pytest-xdist
9470 python-setuptools))
9471 (propagated-inputs
9472 (list python-dask
9473 python-netcdf4
9474 python-numpy
9475 python-pandas
9476 python-portalocker
9477 python-scipy
9478 python-toolz
9479 python-xarray))
9480 (home-page "https://github.com/pysat/pysat")
9481 (synopsis "Supports science analysis across disparate data platforms")
9482 (description
9483 "The Python Satellite Data Analysis Toolkit (pysat) provides a simple and
9484flexible interface for robust data analysis from beginning to end - including
9485downloading, loading, cleaning, managing, processing, and analyzing
9486data. Pysat's plug-in design allows analysis support for any data, including
9487user provided data sets.")
9488 (license license:bsd-3)))
9489
9490(define-public python-pysatmadrigal
9491 ;; XXX: Project is unmaintained and potentially not compatible with NumPy 2
9492 ;; and Pandas 3.
9493 (package
9494 (name "python-pysatmadrigal")
9495 (version "0.2.0")
9496 (source
9497 (origin
9498 (method git-fetch)
9499 (uri (git-reference
9500 (url "https://github.com/pysat/pysatMadrigal")
9501 (commit (string-append "v" version))))
9502 (file-name (git-file-name name version))
9503 (sha256
9504 (base32 "1x1sbx9xv9h1p85cryn2b9kbnxy0kb9xzfgxcvfrpfxa5ji4qwcp"))))
9505 (build-system pyproject-build-system)
9506 (arguments
9507 (list
9508 ;; tests: 126 passed, 271 skipped, 59 deselected, 1304 warnings
9509 #:test-flags
9510 #~(list "--ignore=pysatMadrigal/tests/test_methods_general.py"
9511 "--ignore=pysatMadrigal/tests/test_methods_dmsp.py"
9512 ;; ValueError: unable to open url http://cedar.openmadrigal.org
9513 "-k" "not test_download and not test_remote_file_list")
9514 #:phases
9515 #~(modify-phases %standard-phases
9516 (add-before 'sanity-check 'set-HOME
9517 (lambda _
9518 (setenv "HOME" "/tmp")))
9519 (add-before 'check 'pre-check
9520 (lambda _
9521 (mkdir "pysatData")
9522 (invoke "python" "-c"
9523 "import pysat; pysat.params['data_dirs'] = 'pysatData'"))))))
9524 (native-inputs
9525 (list python-pytest
9526 python-setuptools))
9527 (propagated-inputs
9528 (list python-h5py
9529 python-madrigalweb
9530 python-numpy
9531 python-packaging
9532 python-pandas
9533 python-pysat
9534 python-xarray))
9535 (home-page "https://github.com/pysat/pysatMadrigal")
9536 (synopsis "Madrigal instrument support for the pysat ecosystem")
9537 (description
9538 "This package provides functions to import data from the
9539@url{https://cedar.openmadrigal.org/, Madrigal} database (upper atmospheric
9540science database) into pysat.")
9541 (license license:bsd-3)))
9542
9543(define-public python-pysatspaceweather
9544 (package
9545 (name "python-pysatspaceweather")
9546 (version "0.2.2")
9547 (source
9548 (origin
9549 (method git-fetch)
9550 (uri (git-reference
9551 (url "https://github.com/pysat/pysatSpaceWeather")
9552 (commit (string-append "v" version))))
9553 (file-name (git-file-name name version))
9554 (sha256
9555 (base32 "0gd6vzy2ikgkrff94qg52pysf1vp7h1p12p8in9j6f6n3cs1b0z2"))))
9556 (build-system pyproject-build-system)
9557 (arguments
9558 (list
9559 ;; tests: 304 passed, 561 skipped, 61 deselected, 2503 warnings
9560 #:test-flags
9561 #~(list "-m" "not remote_data"
9562 "--ignore=pysatSpaceWeather/tests/test_methods_kp.py"
9563 ;; Network access is required.
9564 "-k" (string-join
9565 (list "not test_download"
9566 "test_historic_ace_no_data"
9567 "test_historic_download_past_limit"
9568 "test_missing_kp_file"
9569 "test_missing_prelim_file"
9570 "test_realtime_ace_bad_day"
9571 ;; KeyError: 'f107'
9572 "test_45day_forecast_data_length")
9573 " and not "))
9574 #:phases
9575 #~(modify-phases %standard-phases
9576 (add-before 'sanity-check 'set-HOME
9577 (lambda _
9578 (setenv "HOME" "/tmp")))
9579 (add-before 'check 'pre-check
9580 (lambda _
9581 (mkdir "pysatData")
9582 (invoke "python" "-c"
9583 "import pysat; pysat.params['data_dirs'] = 'pysatData'"))))))
9584 (native-inputs
9585 (list python-pytest
9586 python-setuptools))
9587 (propagated-inputs
9588 (list python-netcdf4
9589 python-numpy
9590 python-packaging
9591 python-pandas
9592 python-pysat
9593 python-requests
9594 python-xarray))
9595 (home-page "https://github.com/pysat/pysatSpaceWeather")
9596 (synopsis "Pysat support for Space Weather Indices")
9597 (description
9598 "This package provides pysatSpaceWeather - a Python module, which
9599contains routines to load common historic, real-time, and forecasted space
9600weather indices as pysat.Instrument objects.")
9601 (license license:bsd-3)))
9602
9603(define-public python-pysiaf
9604 (package
9605 (name "python-pysiaf")
9606 (version "0.28.0")
9607 (source
9608 (origin
9609 (method git-fetch)
9610 (uri (git-reference
9611 (url "https://github.com/spacetelescope/pysiaf")
9612 (commit (string-append "v" version))))
9613 (file-name (git-file-name name version))
9614 (sha256
9615 (base32 "14zacxpc9qjzhs0ncaiyrw04rriy4bb26yp5ca8wbhlkhphpaw9i"))))
9616 (build-system pyproject-build-system)
9617 (arguments
9618 (list
9619 ;; tests: 43 passed, 2 deselected
9620 #:test-flags
9621 ;; Disable 2 failing tests, see
9622 ;; <https://github.com/spacetelescope/pysiaf/issues/338>
9623 #~(list "-k" (string-append "not test_write_jwst_siaf_xlsx"
9624 " and not test_write_jwst_siaf_xml" ))))
9625 (native-inputs
9626 (list python-pytest
9627 python-setuptools
9628 python-setuptools-scm))
9629 (propagated-inputs
9630 (list python-astropy
9631 python-lxml
9632 python-matplotlib
9633 python-numpy
9634 python-openpyxl
9635 python-requests
9636 python-scipy))
9637 (home-page "https://pysiaf.readthedocs.io/")
9638 (synopsis "Handling SIAF for space telescopes")
9639 (description
9640 "@code{pysiaf} is a Python package to access, interpret, maintain, and
9641generate @acronym{Handling of Science Instrument Aperture Files, SIAF}, in
9642particular for @acronym{JWST, James Webb Space Telescope}. Tools for applying
9643the frame transformations, plotting, comparison, and validation are
9644provided.")
9645 (license license:bsd-3)))
9646
9647(define-public python-pysiril
9648 (package
9649 (name "python-pysiril")
9650 (version "0.0.17")
9651 (source
9652 (origin
9653 (method git-fetch) ; not published on PyPI
9654 (uri (git-reference
9655 (url "https://gitlab.com/free-astro/pysiril")
9656 (commit (string-append
9657 "V" (string-replace-substring version "." "_")))))
9658 (file-name (git-file-name name version))
9659 (sha256
9660 (base32 "0w8zc6gm8a18l4rvjv22a0l6m2c45bzj1f2m6sbshaq9z30bm0vv"))))
9661 (build-system pyproject-build-system)
9662 (arguments
9663 (list #:tests? #f)) ; no tests
9664 (native-inputs
9665 (list python-setuptools))
9666 (home-page "https://siril.org/tutorials/pysiril/")
9667 (synopsis "Python interface to SiriL")
9668 (description
9669 "This package provides an extending scripting capabilities, present
9670natively in Siril.")
9671 (license license:gpl3)))
9672
9673(define-public python-pysm3
9674 (package
9675 (name "python-pysm3")
9676 (version "3.4.6")
9677 (source
9678 (origin
9679 (method git-fetch)
9680 (uri (git-reference
9681 (url "https://github.com/galsci/pysm")
9682 (commit version)))
9683 (file-name (git-file-name name version))
9684 (sha256
9685 (base32 "120fyg7zs2jn260q5mzr0jkjiv7vbb9mq79lwhrjarwij3l23fa8"))))
9686 (build-system pyproject-build-system)
9687 (arguments
9688 (list
9689 ;; tests: 75 passed, 2 skipped, 100 deselected
9690 #:test-flags
9691 ;; XXX: Tests requiring additional FITS files, check if they may be
9692 ;; packages:
9693 ;; - <http://www.astropy.org/astropy-data>
9694 ;; - <https://github.com/healpy/healpy-data>
9695 ;; - <https://healpy.github.io/healpy-data>
9696 ;; - <https://portal.nersc.gov/project/cmb/pysm-data>
9697 #~(list "-k" (string-join
9698 (list "not test_bandpass_unit_conversion"
9699 "test_bandpass_unit_conversion_CMB2MJysr"
9700 "test_bandpass_unit_conversion_MJysr2KRJ"
9701 "test_cmb_lensed"
9702 "test_cmb_lensed_delens"
9703 "test_cmb_lensed_l01"
9704 "test_cmb_lensed_no_delens"
9705 "test_cmb_lensed_with_patch_object"
9706 "test_cmb_map"
9707 "test_cmb_map_bandpass"
9708 "test_co"
9709 "test_co_model"
9710 "test_d10_vs_d11"
9711 "test_dust_model"
9712 "test_dust_model_353"
9713 "test_gnilc_857"
9714 "test_healpix_output_nside"
9715 "test_highfreq_dust_model"
9716 "test_model"
9717 "test_model_d12"
9718 "test_no_quadrupole"
9719 "test_presmoothed"
9720 "test_print_quadrupole_amplitudes"
9721 "test_quadrupole_corrected_freqs"
9722 "test_read_map_mpi_pixel_indices"
9723 "test_read_map_mpi_uniform_distribution"
9724 "test_read_map_unit"
9725 "test_read_map_unit_dimensionless"
9726 "test_s6_vs_s5"
9727 "test_sky_max_nside"
9728 "test_sky_max_nside_highres"
9729 "test_smoothing_healpix"
9730 "test_smoothing_healpix_beamwindow"
9731 "test_synch_44"
9732 "test_synch_model_noscaling"
9733 "test_synch_model_s7_44"
9734 "test_synch_model_s7_noscaling"
9735 "test_synchrotron_model"
9736 ;; RuntimeError: This function has been removed. Use
9737 ;; reproject.healpix2map(...method='harm').
9738 "test_car_nosmoothing")
9739 " and not ")
9740 "tests")
9741 #:phases
9742 #~(modify-phases %standard-phases
9743 (add-after 'unpack 'relax-requirements
9744 (lambda _
9745 (substitute* "pyproject.toml"
9746 ;; scipy >= 1.10, < 1.15
9747 ((" >= 1.10, < 1.15") ">=1.10")))))))
9748 (native-inputs
9749 (list nss-certs-for-test
9750 python-hatch-vcs
9751 python-hatchling
9752 python-nbval
9753 python-netcdf4
9754 python-pixell
9755 python-psutil
9756 python-pytest
9757 python-pytest-astropy
9758 python-setuptools-scm
9759 python-xarray))
9760 (propagated-inputs
9761 (list python-astropy
9762 python-h5py
9763 python-healpy
9764 python-numba
9765 python-numpy
9766 python-scipy
9767 python-toml))
9768 (home-page "https://pysm3.readthedocs.io/")
9769 (synopsis "Sky emission simulations for Cosmic Microwave Background experiments")
9770 (description
9771 "PySM generates full-sky simulations of Galactic emissions in intensity
9772and polarization relevant to @acronym{Cosmic Microwave Background, CMB}
9773experiments. It is a large refactor of
9774@url{https://github.com/bthorne93/PySM_public, PySM 2} focused on reducing
9775memory usage, improving performance and run in parallel with MPI.")
9776 (license license:bsd-3)))
9777
9778(define-public python-pyspedas
9779 (package
9780 (name "python-pyspedas")
9781 (version "2.1.4")
9782 (source
9783 (origin
9784 (method git-fetch)
9785 (uri (git-reference
9786 (url "https://github.com/spedas/pyspedas")
9787 (commit (string-append "v" version))))
9788 (file-name (git-file-name name version))
9789 (sha256
9790 (base32 "1ifgbrswn829dqqjrz61qr52xd04s90rnd9ixz7yvrwj0kf72hxv"))))
9791 (build-system pyproject-build-system)
9792 (arguments
9793 (list
9794 ;; XXX: Netowrk access is required and set up of geopack.
9795 #:tests? #f
9796 #:phases
9797 #~(modify-phases %standard-phases
9798 (add-before 'sanity-check 'set-HOME
9799 (lambda _
9800 (setenv "HOME" "/tmp"))))))
9801 (native-inputs
9802 (list python-setuptools))
9803 (propagated-inputs
9804 (list python-aioboto3
9805 python-astropy
9806 python-cdasws
9807 python-cdflib
9808 python-fsspec
9809 python-geopack
9810 python-hapiclient
9811 python-matplotlib
9812 python-netcdf4
9813 python-numpy
9814 python-pandas
9815 python-pywavelets
9816 python-requests
9817 python-s3fs
9818 python-scipy
9819 python-setuptools
9820 python-spacepy
9821 python-xarray))
9822 (home-page "https://spedas.org")
9823 (synopsis "Python Space Physics Environment Data Analysis Software")
9824 (description
9825 "The Python-based Space Physics Environment Data Analysis Software
9826(PySPEDAS) framework supports multi-mission, multi-instrument retrieval,
9827analysis, and visualization of heliophysics time series data.")
9828 (license license:expat)))
9829
9830(define-public python-pysynphot
9831 ;; XXX: 2.0.0 was released in 2021 there are a lot of changes since that
9832 ;; time and it failed to build with python-astropy 6.0.0, use the latest
9833 ;; upstream commit for now.
9834 (let ((commit "a5e76c398f5b03192fa54659f81e7e1a929d9f7c")
9835 (revision "1"))
9836 (package
9837 (name "python-pysynphot")
9838 (version (git-version "2.0.0" revision commit))
9839 (source
9840 (origin
9841 (method git-fetch)
9842 (uri (git-reference
9843 (url "https://github.com/spacetelescope/pysynphot")
9844 (commit commit)))
9845 (file-name (git-file-name name version))
9846 (sha256
9847 (base32 "1a1gr39jl0ivc9wviwlbn1hq542chd2psy23hjxpjrhq33ppa7bn"))))
9848 (build-system pyproject-build-system)
9849 (arguments
9850 (list
9851 ;; tests: 189 passed, 213 skipped, 3 xfailed
9852 #:phases
9853 #~(modify-phases %standard-phases
9854 ;; NumPy2 should work even though not officially supported.
9855 ;; See <https://github.com/spacetelescope/pysynphot/pull/164>
9856 (add-after 'unpack 'relax-dependencies
9857 (lambda _
9858 (substitute* "setup.py"
9859 (("'numpy<2'") "'numpy'"))))
9860 (add-before 'check 'set-env-data-path
9861 (lambda _
9862 (setenv "PYSYN_CDBS" (string-append #$output "/crds")))))))
9863 (native-inputs
9864 (list python-pytest
9865 python-pytest-remotedata
9866 python-setuptools
9867 python-setuptools-scm))
9868 (propagated-inputs
9869 (list python-astropy
9870 python-beautifulsoup4
9871 python-numpy
9872 python-pytest-astropy-header
9873 python-six))
9874 (home-page "https://github.com/spacetelescope/pysynphot")
9875 (synopsis "Python Synthetic Photometry Utilities")
9876 (description
9877 "Astrolib PySynphot (hereafter referred to only as pysynphot) is an
9878object-oriented replacement for STSDAS SYNPHOT synthetic photometry package in
9879IRAF. @code{pysynphot} simulates photometric data and spectra as they are
9880observed with the Hubble Space Telescope (HST). Passbands for standard
9881photometric systems are available, and users can incorporate their own filters,
9882spectra, and data.")
9883 (license license:bsd-3))))
9884
9885(define-public python-pyvo
9886 (package
9887 (name "python-pyvo")
9888 (version "1.9.1")
9889 (source
9890 (origin
9891 (method git-fetch)
9892 (uri (git-reference
9893 (url "https://github.com/astropy/pyvo")
9894 (commit (string-append "v" version))))
9895 (file-name (git-file-name name version))
9896 (sha256
9897 (base32 "0x9qwcvhap7bw86j1y3hfsdyw3kvsax8sglj6wgb4p3mgzkr82cv"))))
9898 (build-system pyproject-build-system)
9899 (arguments
9900 (list
9901 ;; tests: 483 passed, 59 skipped, 1 xfailed
9902 #:test-flags
9903 #~(list "--pyargs" "pyvo")
9904 #:phases
9905 #~(modify-phases %standard-phases
9906 (add-before 'check 'set-HOME
9907 (lambda _
9908 (setenv "HOME" "/tmp"))))))
9909 (native-inputs
9910 (list nss-certs-for-test
9911 python-pytest-astropy
9912 python-pytest-doctestplus
9913 python-pytest-timeout
9914 python-requests-mock
9915 python-setuptools
9916 python-setuptools-scm))
9917 (propagated-inputs
9918 (list python-astropy
9919 python-requests
9920 ;; [optioal]
9921 python-defusedxml
9922 python-pillow))
9923 (home-page "https://github.com/astropy/pyvo")
9924 (synopsis "Access Virtual Observatory data and services")
9925 (description
9926 "PyVO is a package providing access to remote data and services of the
9927Virtual observatory (VO) using Python.")
9928 (license license:bsd-3)))
9929
9930(define-public python-pyxsim
9931 (package
9932 (name "python-pyxsim")
9933 (version "4.5.0")
9934 (source
9935 (origin
9936 (method url-fetch)
9937 (uri (pypi-uri "pyxsim" version))
9938 (sha256
9939 (base32 "1y6m8g1n9cky12avmpaqxqym8n5kwrs3m6r7wzcms9779r3sfla5"))))
9940 (build-system pyproject-build-system)
9941 (arguments
9942 (list
9943 ;; XXX: Tests require additional data, check if it may be packaged
9944 ;; separately, see tests/ci_install.sh.
9945 ;; - http://yt-project.org/data
9946 ;; - enzo_tiny_cosmology 419MiB
9947 ;; - GasSloshingLowRes 1GiB
9948 ;; - FIRE_M12i_ref11 209MiB
9949 ;; - http://hea-www.cfa.harvard.edu/~jzuhone/
9950 ;; - pyxsim22.tar.gz 12MiB
9951 #:tests? #f))
9952 (native-inputs
9953 (list python-cython
9954 python-setuptools
9955 python-setuptools-scm))
9956 (propagated-inputs
9957 (list python-astropy
9958 python-h5py
9959 python-numpy
9960 python-scipy
9961 python-soxs
9962 python-tqdm
9963 python-unyt
9964 python-yt))
9965 (home-page "https://hea-www.cfa.harvard.edu/~jzuhone/pyxsim/")
9966 (synopsis "Simulating X-ray observations from astrophysical sources")
9967 (description
9968 "This package implements functionality for simulating X-ray emission from
9969astrophysical sources.
9970
9971X-rays probe the high-energy universe, from hot galaxy clusters to compact
9972objects such as neutron stars and black holes and many interesting sources in
9973between. pyXSIM makes it possible to generate synthetic X-ray observations of
9974these sources from a wide variety of models, whether from grid-based
9975simulation codes such as FLASH, Enzo, and Athena, to particle-based codes such
9976as Gadget and AREPO, and even from datasets that have been created 'by hand',
9977such as from NumPy arrays. pyXSIM also provides facilities for manipulating
9978the synthetic observations it produces in various ways, as well as ways to
9979export the simulated X-ray events to other software packages to simulate the
9980end products of specific X-ray observatories.")
9981 (license license:bsd-3)))
9982
9983(define-public python-raccoon
9984 (package
9985 (name "python-raccoon")
9986 (version "1.0.0")
9987 (source
9988 (origin
9989 ;; PyPi tarball lacks tests.
9990 (method git-fetch)
9991 (uri (git-reference
9992 (url "https://github.com/ajshajib/raccoon")
9993 (commit (string-append "v" version))))
9994 (file-name (git-file-name name version))
9995 (sha256
9996 (base32 "1hn8g7zxga47yhk4y9nrbnz0n7apflczlaszr79h4lg6b4v4h9f4"))))
9997 (build-system pyproject-build-system)
9998 (arguments
9999 (list
10000 #:test-flags
10001 #~(list "-k" (string-join
10002 ;; Three tests fail with error: AttributeError: module
10003 ;; 'numpy' has no attribute 'trapezoid'.
10004 (list "not test_clean_cube"
10005 "test_clean_cube_with_min_n_amplitude_and_min_n_f"
10006 "test_clean_cube_with_wiggle_detection_thresholds")
10007 " and not "))))
10008 (native-inputs
10009 (list python-pytest
10010 python-setuptools))
10011 (propagated-inputs
10012 (list python-astropy
10013 python-matplotlib
10014 python-numpy
10015 python-scipy
10016 python-statsmodels
10017 python-tqdm))
10018 (home-page "https://github.com/ajshajib/raccoon")
10019 (synopsis "Clean modulation due to resampling noise in the JWST/NIRSpec IFS spectra")
10020 (description
10021 "Package Raccoon cleans the \"wiggles\" (i.e., low-frequency sinusoidal
10022artifacts) in the JWST-NIRSpec IFS (integral field spectroscopy) data. These
10023wiggles are caused by resampling noise or aliasing artifacts.")
10024 (license license:bsd-3)))
10025
10026(define-public python-rad
10027 (package
10028 (name "python-rad")
10029 (version "1.1.0")
10030 (source
10031 (origin
10032 (method url-fetch)
10033 (uri (pypi-uri "rad" version))
10034 (sha256
10035 (base32 "0hpcbw4a2ahk6pzwa1mjrjy7wdn2p9nqqks08mn2gp1nddprqpsg"))))
10036 (build-system pyproject-build-system)
10037 (arguments
10038 (list
10039 ;; tests: 5390 passed, 161 skipped, 27 xfailed
10040 #:test-flags
10041 ;; Tests try to detec version by Git tag.
10042 #~(list "--ignore=tests/test_versioning.py")))
10043 (native-inputs
10044 (list python-pytest
10045 python-crds-minimal
10046 python-pytest-asdf-plugin
10047 python-pytest-doctestplus
10048 python-setuptools
10049 python-setuptools-scm))
10050 (propagated-inputs
10051 (list python-asdf
10052 python-asdf-astropy
10053 python-asdf-standard
10054 python-deepdiff
10055 python-pyyaml
10056 python-semantic-version))
10057 (home-page "https://github.com/spacetelescope/rad")
10058 (synopsis "Roman Attribute Dictionary")
10059 (description
10060 "@acronym{RAD, The Roman Attribute Dictionary} is package which defines
10061schemas for the Nancy Grace Roman Space Telescope shared attributes for
10062processing and archive. These schemas are schemas for the ASDF file file
10063format, which are used by ASDF to serialize and deserialize data for the Nancy
10064Grace Roman Space Telescope.")
10065 (license license:bsd-3)))
10066
10067(define-public python-radio-beam
10068 (package
10069 (name "python-radio-beam")
10070 (version "0.3.9")
10071 (source
10072 (origin
10073 (method url-fetch)
10074 (uri (pypi-uri "radio_beam" version))
10075 (sha256
10076 (base32 "0i76hj6wyijbpxx7n1sm12f0qqw15srk6ikq2cr589lvrixylpwv"))))
10077 (build-system pyproject-build-system)
10078 (native-inputs
10079 (list python-pytest-astropy python-setuptools python-setuptools-scm))
10080 (propagated-inputs
10081 (list python-astropy
10082 python-matplotlib
10083 python-numpy
10084 python-scipy))
10085 (home-page "https://radio-beam.readthedocs.io/en/latest/")
10086 (synopsis "Operations for radio astronomy beams with Astropy")
10087 (description
10088 "Radio Beam is a simple toolkit for reading beam information from FITS
10089headers and manipulating beams.
10090Some example applications include:
10091@itemize
10092@item Convolution and deconvolution
10093@item Unit conversion (Jy to/from K)
10094@item Handle sets of beams for spectral cubes with varying resolution between
10095channels
10096@item Find the smallest common beam from a set of beams
10097@item Add the beam shape to a matplotlib plot
10098@end itemize")
10099 (license license:bsd-3)))
10100
10101(define-public python-radiospectra
10102 (package
10103 (name "python-radiospectra")
10104 (version "0.7.0")
10105 (source
10106 (origin
10107 (method git-fetch)
10108 (uri (git-reference
10109 (url "https://github.com/sunpy/radiospectra")
10110 (commit (string-append "v" version))))
10111 (file-name (git-file-name name version))
10112 (sha256
10113 (base32 "0bv9j9p0sarg8cqlfmj838m33mms0f7jmf483lnxx7i331j152b8"))))
10114 (build-system pyproject-build-system)
10115 (arguments
10116 (list
10117 #:test-flags
10118 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count))))
10119 #:phases
10120 #~(modify-phases %standard-phases
10121 (add-after 'unpack 'fix-pytest-config
10122 (lambda _
10123 (substitute* "pytest.ini"
10124 ;; ModuleNotFoundError: No module named 'pyparsing.warnings'
10125 ((".*pyparsing.warnings.*") ""))))
10126 (add-before 'check 'set-HOME
10127 (lambda _
10128 (setenv "HOME" "/tmp"))))))
10129 (native-inputs
10130 (list python-pytest
10131 python-pytest-astropy
10132 python-pytest-doctestplus
10133 python-pytest-xdist
10134 python-setuptools
10135 python-setuptools-scm
10136 python-sunpy-soar))
10137 (propagated-inputs
10138 (list python-cdflib
10139 python-matplotlib
10140 python-numpy
10141 python-scipy
10142 python-sunpy))
10143 (home-page "https://docs.sunpy.org/projects/radiospectra")
10144 (synopsis "Support for radio spectra on solar physics")
10145 (description
10146 "@code{radiospectra} provides support for some type of radio spectra in
10147solar physics.")
10148 (license license:bsd-2)))
10149
10150(define-public python-regions
10151 (package
10152 (name "python-regions")
10153 (version "0.11")
10154 (source
10155 (origin
10156 (method url-fetch)
10157 (uri (pypi-uri "regions" version))
10158 (sha256
10159 (base32 "0dmfvk33ywlmxr3f6p9vhr7aq4mf57l1y7ls12d6ds9dibbxl2h0"))))
10160 (build-system pyproject-build-system)
10161 (arguments
10162 (list
10163 ;; tests: 1112 passed, 8 skipped, 13 xfailed
10164 #:test-flags
10165 #~(list "--numprocesses" (number->string (parallel-job-count)))
10166 #:phases
10167 #~(modify-phases %standard-phases
10168 (replace 'check
10169 (lambda* (#:key tests? test-flags #:allow-other-keys)
10170 (with-directory-excursion #$output
10171 (apply invoke "pytest" "-vv" test-flags)))))))
10172 (native-inputs
10173 (list python-cython
10174 python-extension-helpers
10175 python-pytest-arraydiff
10176 python-pytest-astropy
10177 python-pytest-xdist
10178 python-setuptools
10179 python-setuptools-scm))
10180 (propagated-inputs
10181 (list python-astropy
10182 python-numpy
10183 ;; [optional]
10184 python-matplotlib
10185 python-shapely))
10186 (home-page "https://github.com/astropy/regions")
10187 (synopsis "Package for region handling")
10188 (description "Regions is an Astropy package for region handling.")
10189 (license license:bsd-3)))
10190
10191(define-public python-regularizepsf
10192 (package
10193 (name "python-regularizepsf")
10194 (version "1.2.1")
10195 (source
10196 (origin
10197 (method git-fetch)
10198 (uri (git-reference
10199 (url "https://github.com/punch-mission/regularizepsf")
10200 (commit version)))
10201 (file-name (git-file-name name version))
10202 (sha256
10203 (base32 "05gq4yjcl48jbv22xdhq0fr7yr7884zpkqmbbnd4lzb2dkkbkv7f"))))
10204 (build-system pyproject-build-system)
10205 (arguments
10206 (list
10207 ;; tests: 59 passed, 2 deselected, 26 warnings
10208 #:test-flags
10209 ;; ValueError: RICE_1 compression doesn't support 64 integers, but data
10210 ;; cannot be converted to 32 bits without overflow.
10211 #~(list (string-append "--deselect=tests/test_psf.py"
10212 "::test_arraypsf_saves_and_loads[fits]")
10213 (string-append "--deselect=tests/test_transform.py"
10214 "::test_transform_saves_and_loads[fits]"))))
10215 (native-inputs
10216 (list python-pytest
10217 python-pytest-mpl
10218 python-setuptools
10219 python-setuptools-scm))
10220 (propagated-inputs
10221 (list python-astropy
10222 python-h5py
10223 python-matplotlib
10224 python-numpy
10225 python-scikit-image
10226 python-scipy
10227 python-sep))
10228 (home-page "https://github.com/punch-mission/regularizepsf")
10229 (synopsis "Point spread function modeling and regularization")
10230 (description
10231 "This package implements functionality of @acronym{Point Spread Function,
10232PSF} describing how the optical system spreads light from sources.")
10233 (license license:expat)))
10234
10235(define-public python-reproject
10236 (package
10237 (name "python-reproject")
10238 (version "0.21.0")
10239 (source
10240 (origin
10241 (method git-fetch)
10242 (uri (git-reference
10243 (url "https://github.com/astropy/reproject")
10244 (commit (string-append "v" version))))
10245 (file-name (git-file-name name version))
10246 (sha256
10247 (base32 "09baxyglv327cvsjy7mp9xp4dkm6w78v8gb9afvixqqvj259bq92"))))
10248 (build-system pyproject-build-system)
10249 (arguments
10250 (list
10251 ;; tests: 2293 passed, 573 skipped
10252 #:test-flags
10253 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count)))
10254 "--pyargs" "reproject"
10255 ;; Failed to download
10256 ;; <https://datacenter.iers.org/data/9/finals2000A.all>.
10257 "-k" (string-append "not test_solar_wcs"
10258 " and not test_negative_lon_cdelt"))
10259 #:phases
10260 #~(modify-phases %standard-phases
10261 (add-before 'check 'pre-check
10262 (lambda _
10263 (delete-file-recursively "reproject")
10264 (setenv "HOME" "/tmp"))))))
10265 (native-inputs
10266 (list python-asdf
10267 python-cython
10268 python-extension-helpers
10269 python-gwcs
10270 python-pytest-astropy
10271 python-pytest-xdist
10272 python-pyvo
10273 python-setuptools-scm
10274 python-shapely
10275 python-sunpy-minimal
10276 python-tqdm))
10277 (propagated-inputs
10278 (list python-astropy
10279 python-astropy-healpix
10280 python-dask
10281 python-dask-image
10282 python-fsspec
10283 python-numpy
10284 python-pillow
10285 python-pyavm
10286 python-scipy
10287 python-zarr
10288 ;; [optional]
10289 python-shapely))
10290 (home-page "https://reproject.readthedocs.io")
10291 (synopsis "Astronomical image reprojection in Python")
10292 (description
10293 "This package provides a functionality to reproject astronomical images
10294using various techniques via a uniform interface, where reprojection is the
10295re-gridding of images from one world coordinate system to another e.g.
10296changing the pixel resolution, orientation, coordinate system.")
10297 (license license:bsd-3)))
10298
10299(define-public python-roman-datamodels
10300 (package
10301 (name "python-roman-datamodels")
10302 (version "1.1.0")
10303 (source
10304 (origin
10305 (method git-fetch)
10306 (uri (git-reference
10307 (url "https://github.com/spacetelescope/roman_datamodels")
10308 (commit version)))
10309 (file-name (git-file-name name version))
10310 (sha256
10311 (base32 "193p8w2ip528f33k980firjv0pa8sdyl9wz3mj16hcklspy3vxhq"))))
10312 (build-system pyproject-build-system)
10313 (arguments
10314 (list
10315 ;; tests: 5654 passed, 1 skipped
10316 #:test-flags
10317 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count))))
10318 #:phases
10319 #~(modify-phases %standard-phases
10320 (add-after 'unpack 'set-env
10321 (lambda _
10322 (setenv "HOME" "/tmp"))))))
10323 (native-inputs
10324 (list python-pandas
10325 python-pytest
10326 python-pytest-doctestplus
10327 python-pytest-xdist
10328 python-setuptools
10329 python-setuptools-scm))
10330 (propagated-inputs
10331 (list python-asdf
10332 python-asdf-astropy
10333 python-asdf-standard
10334 python-astropy
10335 python-gwcs
10336 python-lz4
10337 python-numpy
10338 python-pyarrow
10339 python-rad
10340 python-semantic-version))
10341 (home-page "https://github.com/spacetelescope/roman_datamodels")
10342 (synopsis "Roman Datamodels Support")
10343 (description
10344 "This package provides a Python package of Roman Datamodels for the
10345calibration pipelines started with the @acronym{JWST, James Webb Space
10346Telescope} calibration pipelines. The goal for the JWST pipelines was motivated
10347primarily by the need to support FITS data files, specifically with isolating
10348the details of where metadata and data were located in the FITS file from the
10349representation of the same items within the Python code. That is not a concern
10350for Roman since FITS format data files will not be used by the Roman calibration
10351pipelines.")
10352 (license license:bsd-3)))
10353
10354(define-public python-roman-technical-information
10355 (package
10356 (name "python-roman-technical-information")
10357 (version "1.5.0")
10358 (source
10359 (origin
10360 (method url-fetch)
10361 (uri (pypi-uri "roman_technical_information" version))
10362 (sha256
10363 (base32 "1zlddw389zw9198yvymir1yf9prlk77minb5y8fcgmjkflz5vvj9"))))
10364 (build-system pyproject-build-system)
10365 (arguments (list #:tests? #f)) ;no tests
10366 (native-inputs
10367 (list python-setuptools))
10368 (propagated-inputs
10369 (list python-astropy
10370 python-pyyaml))
10371 (home-page "https://github.com/RomanSpaceTelescope/roman-technical-information")
10372 (synopsis "Roman Space Telescope technical information")
10373 (description
10374 "This package provides technical information related to the Nancy Grace
10375Roman Space Telescope (Roman), its Wide Field Instrument (WFI), and its
10376Coronagraph technology demonstration (Coronagraph).")
10377 (license license:cc0)))
10378
10379(define-public python-romancal
10380 (package
10381 (name "python-romancal")
10382 (version "1.1.0")
10383 (source
10384 (origin
10385 (method git-fetch)
10386 (uri (git-reference
10387 (url "https://github.com/spacetelescope/romancal")
10388 (commit version)))
10389 (file-name (git-file-name name version))
10390 (sha256
10391 (base32 "0dn8knpfsdbqlswyb5636wzziwrqak6ib1nkws96q27n5lak7z9n"))))
10392 (build-system pyproject-build-system)
10393 (arguments
10394 (list
10395 ;; tests: 441 passed, 313 skipped, 18 deselected, 2 xpassed, 11 warnings
10396 #:test-flags
10397 #~(list "--color=no"
10398 ;; Tests requiring calibration data.
10399 #$@(map (lambda (file) (string-append "--ignore=" file))
10400 (list "romancal/tweakreg/tests/test_tweakreg.py"
10401 "romancal/assign_wcs/tests/test_wcs.py"
10402 "romancal/dark_current/tests/test_dark.py"
10403 "romancal/dq_init/tests/test_dq_init.py"
10404 "romancal/flatfield/tests/test_flatfield.py"
10405 "romancal/flux/tests/test_flux_step.py"
10406 "romancal/linearity/tests/test_linearity.py"
10407 "romancal/multiband_catalog/tests/test_multiband_catalog.py"
10408 "romancal/photom/tests/test_photom.py"
10409 "romancal/pipeline/tests/test_exposure_pipeline.py"
10410 "romancal/ramp_fitting/tests/test_ramp_fit_cas22.py"
10411 "romancal/ramp_fitting/tests/test_ramp_fit_likelihood.py"
10412 "romancal/refpix/tests/test_step.py"
10413 "romancal/resample/tests/test_resample.py"
10414 "romancal/saturation/tests/test_saturation.py"
10415 "romancal/skycell/tests/test_skycell.py"
10416 "romancal/skycell/tests/test_skycell_match.py"
10417 "romancal/skymatch/tests/test_skymatch.py"
10418 "romancal/source_catalog/tests/test_psf.py"
10419 "romancal/source_catalog/tests/test_source_catalog.py"
10420 "romancal/stpipe/tests/test_core.py"))
10421 ;; SystemExit: -1
10422 "-k" (string-join
10423 (list "not test_dark_decay"
10424 "test_inject_sources"
10425 "test_grid_injection"
10426 "test_wfi18_transient"
10427 "test_wfi18_transient_flat_data"
10428 "test_wfi18_transient_wrong_detector"
10429 "test_wfi18_transient_too_few_resultants"
10430 "test_wfi18_transient_fit_failure"
10431 "test_wfi18_transient_save_results")
10432 " and not "))
10433 #:phases
10434 #~(modify-phases %standard-phases
10435 (add-after 'unpack 'relax-requirements
10436 (lambda _
10437 (substitute* "pyproject.toml"
10438 (("romanisim>=0.14,<0.15") "romanisim")))))))
10439 (native-inputs
10440 (list nss-certs-for-test
10441 python-ci-watson
10442 python-deepdiff
10443 python-pytest
10444 python-pytest-astropy
10445 python-setuptools
10446 python-setuptools-scm
10447 python-stpreview))
10448 (propagated-inputs
10449 (list python-asdf
10450 python-asdf-astropy
10451 python-astropy
10452 python-crds
10453 python-drizzle
10454 python-gwcs
10455 python-jsonschema
10456 python-numpy
10457 python-pandas
10458 python-photutils
10459 python-pyarrow
10460 python-requests
10461 python-roman-datamodels
10462 python-romanisim
10463 python-scipy
10464 python-spherical-geometry
10465 python-stcal
10466 python-stpipe
10467 python-stsci-imagestats
10468 python-tweakwcs
10469 ;; [optional]
10470 python-pysiaf
10471 ;; python-roman-photoz ;not packed yet in Guix
10472 python-stpreview))
10473 (home-page "https://github.com/spacetelescope/romancal")
10474 (synopsis "Nancy Grace Roman Space Telescope observations processing library")
10475 (description
10476 "This package implements a functionality for calibration of science
10477observations from the Nancy Grace Roman Space Telescope.")
10478 (license license:bsd-3)))
10479
10480(define-public python-romanisim
10481 (package
10482 (name "python-romanisim")
10483 (version "0.15.0")
10484 (source
10485 (origin
10486 (method git-fetch)
10487 (uri (git-reference
10488 (url "https://github.com/spacetelescope/romanisim")
10489 (commit (string-append "v" version))))
10490 (file-name (git-file-name name version))
10491 (sha256
10492 (base32 "16zksyi0qgybx1v7fxa175f7k1xqwsqsdshi7izl9mh0gjqhgpfv"))))
10493 (build-system pyproject-build-system)
10494 (arguments
10495 (list
10496 ;; tests: 113 passed, 2 skipped, 8 deselected, 4 warnings
10497 #:test-flags
10498 #~(list "--pyargs" "romanisim"
10499 ;; TODO: python-stpsf needs to be packaged with test data:
10500 ;; OSError: Couldn't read the version number from
10501 ;; /tmp/data/stpsf-data/version.txt. (Do you need to update the
10502 ;; STPSF data? See
10503 ;; https://stpsf.readthedocs.io/en/stable/installation.html#data-install
10504 ;; for a link to the latest version.)
10505 "--ignore-glob=*/tests/test_psf.py"
10506 "--ignore-glob=*/tests/test_image.py"
10507 ;; Network access is required.
10508 "-k" (string-join
10509 (list "not test_exptime_array"
10510 "test_inverse_then_linearity"
10511 "test_make_dummy_catalog"
10512 "test_make_gaia_stars"
10513 "test_scaling"
10514 "test_simulate_cps"
10515 "test_simulate_vs_cps"
10516 "test_wcs_crds_match")
10517 " and not "))
10518 #:phases
10519 #~(modify-phases %standard-phases
10520 (add-after 'unpack 'patch-manifest.in
10521 ;; See: <https://codeberg.org/guix/guix/issues/4393>.
10522 (lambda* (#:key name source inputs #:allow-other-keys)
10523 (let ((port (open-file "MANIFEST.in" "w")))
10524 (for-each
10525 (lambda (file)
10526 (display "include " port)
10527 (display file port)
10528 (display "\n" port))
10529 (find-files "."))
10530 (close port))))
10531 (add-before 'check 'pre-check
10532 (lambda _
10533 (setenv "HOME" "/tmp"))))))
10534 (native-inputs
10535 (list python-cython
10536 python-ci-watson
10537 python-pytest
10538 python-pytest-doctestplus
10539 python-pytest-openfiles
10540 python-setuptools
10541 python-setuptools-scm
10542 python-stpsf))
10543 (propagated-inputs
10544 (list python-asdf
10545 python-astropy
10546 python-astropy-healpix
10547 python-astroquery
10548 python-crds
10549 python-defusedxml
10550 python-galsim
10551 python-gwcs
10552 python-numpy
10553 python-photutils
10554 python-roman-datamodels
10555 python-roman-technical-information))
10556 (home-page "https://github.com/spacetelescope/romanisim")
10557 (synopsis "Nancy Grace Roman Space Telescope WFI Simulator")
10558 (description
10559 "@code{romanisim} is a Galsim-based simulator of imaging data from the
10560@acronym{WFI,Wide Field Instrument} on the @url{https://roman.gsfc.nasa.gov/,
10561Nancy Grace Roman Space Telescope} (pronounced roman-eye-sim, stylized Roman
10562I-Sim). It uses Galsim to render astronomical scenes, WebbPSF to model the
10563point spread function, and CRDS to access the calibration information needed
10564to produce realistic WFI images.")
10565 ;; LICENSE.rst Association of Universities for Research in Astronomy (AURA)
10566 (license license:bsd-3)))
10567
10568(define-public python-sbpy
10569 (package
10570 (name "python-sbpy")
10571 (version "0.6.0")
10572 (source
10573 (origin
10574 (method url-fetch)
10575 (uri (pypi-uri "sbpy" version))
10576 (sha256
10577 (base32 "1dvc9ihzziyw69a0h1f3wr7jzzp4v8zm9x71fasw4sx2i0vab21v"))))
10578 (build-system pyproject-build-system)
10579 (arguments
10580 (list
10581 ;; tests: 590 passed, 108 skipped, 287 warnings
10582 #:test-flags
10583 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count)))
10584 ;; Unit conversions between flux density and Vega-based
10585 ;; magnitudes use the `astropy.units equivalency system
10586 ;; <https://docs.astropy.org/en/stable/units/equivalencies.html#unit-equivalencies>`_.
10587 ;; sbpy's :func:`~sbpy.units.spectral_density_vega` provides the
10588 ;; equivalencies, which astropy would use to convert the units.
10589 ;; The function requires a wavelength, frequency, or bandpass:
10590 "--deselect=docs/sbpy/units.rst::units.rst")
10591 #:phases
10592 #~(modify-phases %standard-phases
10593 (add-before 'check 'pre-check
10594 (lambda _
10595 (setenv "HOME" "/tmp"))))))
10596 (native-inputs
10597 (list python-pytest
10598 python-pytest-astropy
10599 python-pytest-doctestplus
10600 python-pytest-remotedata
10601 python-pytest-xdist
10602 python-setuptools
10603 python-setuptools-scm))
10604 (propagated-inputs
10605 (list python-astropy
10606 python-numpy
10607 ;; [optional]
10608 python-ads
10609 python-astroquery
10610 python-ginga
10611 python-photutils
10612 ;; python-pyoorb ;not packed yet in Guix
10613 python-pyyaml
10614 python-scipy
10615 python-synphot))
10616 (home-page "https://sbpy.org")
10617 (synopsis "Python module for small-body planetary astronomy")
10618 (description
10619 "@code{sbpy} is a package for small-body planetary astronomy. It is
10620meant to supplement functionality provided by @code{astropy} with functions
10621and methods that are frequently used in the context of planetary astronomy
10622with a clear focus on asteroids and comets.
10623Features:
10624@itemize
10625@item observation planning tools tailored to moving objects
10626@item photometry models for resolved and unresolved observations
10627@item wrappers and tools for astrometry and orbit fitting
10628@item spectroscopy analysis tools and models for reflected solar light and
10629emission from gas
10630@item cometary gas and dust coma simulation and analysis tools
10631@item asteroid thermal models for flux estimation and size/albedo estimation
10632@item image enhancement tools for comet comae and PSF subtraction tools
10633@item lightcurve and shape analysis tools
10634@item access tools for various databases for orbital and physical data, as
10635well as ephemerides services
10636@end itemize")
10637 (license license:bsd-3)))
10638
10639(define-public python-sep
10640 (package/inherit libsep
10641 (name "python-sep")
10642 (build-system pyproject-build-system)
10643 (arguments
10644 (list
10645 #:test-flags #~(list "test.py")))
10646 (native-inputs
10647 (list python-cython
10648 python-pytest
10649 python-setuptools
10650 python-setuptools-scm))
10651 (propagated-inputs
10652 (list python-numpy))
10653 (synopsis "Python library for Source Extraction and Photometry")))
10654
10655(define-public python-sgp4
10656 (package
10657 (name "python-sgp4")
10658 (version "2.27")
10659 (source
10660 (origin
10661 (method git-fetch)
10662 (uri (git-reference
10663 (url "https://github.com/brandon-rhodes/python-sgp4")
10664 (commit version)))
10665 (file-name (git-file-name name version))
10666 (sha256
10667 (base32 "0k55j7ki2w4bv04hr7ds9pv69hkcg8a0br4wf9mfzp2bpkjajk42"))))
10668 (build-system pyproject-build-system)
10669 (arguments
10670 (list #:test-backend #~'custom
10671 #:test-flags #~(list "-m" "sgp4.tests")))
10672 (native-inputs
10673 (list python-setuptools))
10674 (propagated-inputs
10675 (list python-numpy))
10676 (home-page "https://github.com/brandon-rhodes/python-sgp4")
10677 (synopsis "Track earth satellite TLE orbits using SGP4")
10678 (description
10679 "This package provides a Python implementation for computations of the
10680position and velocity of an earth-orbiting satellite, given the satellite’s
10681@acronym{TLE, Two-line element set} orbital elements from a source like
10682@url{CelesTrak, https://celestrak.org/}.
10683
10684It implements the most recent version of @acronym{SGP4, Simplified General
10685Perturbation models}, and is regularly run against the SGP4 test suite to make
10686sure that its satellite position predictions agree to within 0.1 mm with the
10687predictions of the standard distribution of the algorithm. This error is far
10688less than the 1–3 km/day by which satellites themselves deviate from the ideal
10689orbits described in TLE files.")
10690 (license license:expat)))
10691
10692(define-public python-sirilic
10693 (package
10694 (name "python-sirilic")
10695 (version "2.0.10")
10696 (source
10697 (origin
10698 (method git-fetch)
10699 (uri (git-reference
10700 (url "https://gitlab.com/free-astro/sirilic")
10701 (commit (string-append "V." version))))
10702 (file-name (git-file-name name version))
10703 (sha256
10704 (base32 "14agijhy85162rrnnxdvlfwpps1jl7ar0mkmvllzc208naxma61m"))))
10705 (build-system pyproject-build-system)
10706 (arguments
10707 (list
10708 #:tests? #f ;no tests
10709 #:phases
10710 #~(modify-phases %standard-phases
10711 (add-after 'install 'prepare-python-module-setuptools
10712 (lambda _
10713 (call-with-output-file "pyproject.toml"
10714 (lambda (port)
10715 (format port "[build-system]
10716requires = ['setuptools']
10717build-backend = 'setuptools.build_meta'
10718[project]
10719name = 'sirilic'
10720version = ~s
10721description = ~s
10722[tool.setuptools.packages.find]
10723include = ['sirilic*']
10724namespaces = true"
10725 #$version
10726 #$(package-description this-package)))))))))
10727 (native-inputs
10728 (list python-setuptools))
10729 (propagated-inputs
10730 (list python-requests
10731 python-wxpython))
10732 (home-page "https://gitlab.com/free-astro/sirilic")
10733 (synopsis "Acquisition files preparation software to process with SiriL")
10734 (description
10735 "This package provides a plugin for SiriL, see the installation guide on
10736the project's @url{https://gitlab.com/free-astro/sirilic/-/wikis/home, Wiki}.
10737
10738SiriLic (SiriL's Interactif Companion) is a software for preparing
10739acquisition files (raw, Biases, Flat and Dark) for processing with SiriL
10740software.
10741
10742Features:
10743@itemize
10744@item structuring the SiriL working directory into sub-folders
10745@item convert Raw, Biases , Dark or Flat files into SiriL sequence
10746@item automatically generate the SiriL script according to the files present
10747and the options
10748@item batch process multiple channel and sessions
10749@end itemize")
10750 (license license:gpl3)))
10751
10752(define-public python-skyfield
10753 (package
10754 (name "python-skyfield")
10755 (version "1.55")
10756 (source
10757 (origin
10758 (method git-fetch)
10759 (uri (git-reference
10760 (url "https://github.com/skyfielders/python-skyfield")
10761 (commit version)))
10762 (file-name (git-file-name name version))
10763 (sha256
10764 (base32 "1506xv93c6n2pynflbssn74d6cpdp4jadr22jx6zsi91mrk7kr4b"))))
10765 (build-system pyproject-build-system)
10766 (arguments
10767 (list
10768 ;; tests: 584 passed
10769 #:test-flags
10770 #~(list "-m" "assay" "--batch" "skyfield.tests")
10771 #:phases
10772 #~(modify-phases %standard-phases
10773 (replace 'check
10774 (lambda* (#:key tests? test-flags #:allow-other-keys)
10775 (when tests?
10776 (with-directory-excursion "ci"
10777 (apply invoke "python" test-flags))))))))
10778 (native-inputs
10779 (list nss-certs-for-test
10780 python-assay
10781 python-pandas-minimal
10782 python-pytz
10783 python-setuptools))
10784 (propagated-inputs
10785 (list python-certifi
10786 python-jplephem
10787 python-numpy
10788 python-sgp4))
10789 (home-page "https://rhodesmill.org/skyfield/")
10790 (synopsis "Astronomy for Python")
10791 (description
10792 "Skyfield computes positions for the stars, planets, and satellites in
10793orbit around the Earth.")
10794 (license license:expat)))
10795
10796(define-public python-slitronomy
10797 (package
10798 (name "python-slitronomy")
10799 (version "0.3.3")
10800 (source
10801 (origin
10802 (method url-fetch)
10803 (uri (pypi-uri "slitronomy" version))
10804 (sha256
10805 (base32 "0hpffl0icf63ski1f0j06a0wnaawh5gy24w5a3h4rzgkp8rrmhck"))))
10806 (build-system pyproject-build-system)
10807 (arguments
10808 ;; TODO: Tests depend on lenstronomy, not packaged yet.
10809 (list #:tests? #f))
10810 (native-inputs
10811 (list python-pytest python-setuptools))
10812 (propagated-inputs
10813 (list python-configparser
10814 python-numpy))
10815 (home-page "https://github.com/aymgal/SLITronomy")
10816 (synopsis "Sparse Linear Inversion Technique for lenstronomy")
10817 (description
10818 "This package provides an Updated and improved version of the
10819@acronym{Sparse Lens Inversion Technique, SLIT}, developed within the
10820framework of lens modelling software lenstronomy.")
10821 (license license:expat)))
10822
10823(define-public python-sncosmo
10824 (package
10825 (name "python-sncosmo")
10826 (version "2.13.0")
10827 (source
10828 (origin
10829 (method git-fetch)
10830 (uri (git-reference
10831 (url "https://github.com/sncosmo/sncosmo")
10832 (commit (string-append "v" version))))
10833 (file-name (git-file-name name version))
10834 (sha256
10835 (base32 "11a5ip576rfnjinsykwg4r6hcf1alfx1alin31fis3dbskivjfwd"))))
10836 (build-system pyproject-build-system)
10837 (arguments
10838 (list
10839 ;; tests: 84 passed, 4 skipped, 515 deselected
10840 #:test-flags
10841 ;; Network access is required.
10842 #~(list "-m" "not might_download"
10843 "--deselect=tests/test_models.py::test_G10"
10844 "--deselect=tests/test_models.py::test_C11")
10845 #:phases
10846 #~(modify-phases %standard-phases
10847 (add-before 'check 'pre-check
10848 (lambda _
10849 (setenv "HOME" "/tmp")
10850 (copy-recursively "sncosmo/tests" "tests")
10851 (delete-file-recursively "sncosmo" ))))))
10852 (native-inputs
10853 (list python-iminuit
10854 python-cython
10855 python-pytest
10856 python-pytest-xdist
10857 python-pytest-astropy
10858 python-setuptools))
10859 (propagated-inputs
10860 (list python-astropy
10861 python-extinction
10862 python-h5py
10863 python-looseversion
10864 python-numpy
10865 python-pyyaml
10866 python-scipy))
10867 (home-page "https://sncosmo.readthedocs.org")
10868 (synopsis "Package for supernova cosmology based on astropy")
10869 (description
10870 "SNCosmo is a Python library for supernova cosmology analysis. It aims
10871to make such analysis both as flexible and clear as possible.")
10872 (license license:bsd-3)))
10873
10874(define-public python-sndata
10875 (package
10876 (name "python-sndata")
10877 (version "1.3.0")
10878 (source
10879 (origin
10880 (method git-fetch) ; no tests data in the PyPI tarball
10881 (uri (git-reference
10882 (url "https://github.com/sncosmo/SNData")
10883 (commit (string-append "v" version))))
10884 (file-name (git-file-name name version))
10885 (sha256
10886 (base32 "1jci6ry2b8jylda4v7zhl857pifslpnslrbj2207nz4hw43nz3mp"))))
10887 (build-system pyproject-build-system)
10888 (arguments
10889 (list
10890 #:test-flags
10891 #~(list "-k" (string-join
10892 ;; Network access is required for these tests.
10893 (list "not test_duplicate_obj_id_strings"
10894 "test_obj_id_as_str"
10895 "test_coordinates_0_0"
10896 "test_bad_table_id_err"
10897 "test_cache_not_mutated"
10898 "test_comments_not_in_metadata"
10899 "test_get_zp"
10900 "test_id_joining"
10901 "test_ids_are_sorted"
10902 "test_jd_time_format"
10903 "test_join_id_string_error"
10904 "test_minimal_metadata_keys"
10905 "test_no_duplicate_aliases"
10906 "test_no_empty_data_tables"
10907 "test_no_empty_ids"
10908 "test_paper_tables_are_parsed"
10909 "test_sncosmo_registered_band_names"
10910 "test_standard_column_names"
10911 "test_unique_ids")
10912 " and not "))))
10913 (native-inputs
10914 (list nss-certs-for-test
10915 python-cython
10916 python-poetry-core
10917 python-pytest))
10918 (propagated-inputs
10919 (list python-astropy
10920 python-beautifulsoup4
10921 python-numpy
10922 python-pandas
10923 python-pytz
10924 python-pyyaml
10925 python-requests
10926 python-sncosmo
10927 python-tqdm))
10928 (home-page "https://sndata.readthedocs.io/en/latest/")
10929 (synopsis "Interface for data published by various supernova surveys")
10930 (description
10931 "SNData provides an access to data releases published by a variety of
10932supernova (SN) surveys. It is designed to support the development of scalable
10933analysis pipelines that translate with minimal effort between and across data
10934sets. A summary of accessible data is provided below. Access to additional
10935surveys is added upon request or as needed for individual research projects
10936undertaken by the developers.")
10937 (license license:gpl3+)))
10938
10939(define-public python-so-noise-models
10940 (let ((commit "fac881eb5ee012673d8994443caa3c6ad7fac2b6")
10941 (revision "0"))
10942 (package
10943 (name "python-so-noise-models")
10944 (version (git-version "0.0.0" revision commit))
10945 (source
10946 (origin
10947 (method git-fetch) ; no release on PyPI
10948 (uri (git-reference
10949 (url "https://github.com/simonsobs/so_noise_models")
10950 (commit commit)))
10951 (file-name (git-file-name name version))
10952 (sha256
10953 (base32 "02ridxr3a8dx2nwsv386fxin4qs5f7h6q5sk28n9jprgnmgzzsfa"))))
10954 (build-system pyproject-build-system)
10955 (arguments
10956 (list
10957 #:tests? #f)) ; no tests
10958 (native-inputs
10959 (list python-setuptools))
10960 (propagated-inputs
10961 (list python-matplotlib
10962 python-numpy))
10963 (home-page "https://github.com/simonsobs/so_noise_models")
10964 (synopsis "Simons Observatory N(ell) noise models")
10965 (description
10966 "This package provides N(ell) noise curve projection code for the
10967Simons Observatory. The intention is that the full history of noise models
10968will be provided to supplement published projections and simulations.")
10969 (license license:bsd-2))))
10970
10971(define-public python-soxs
10972 (package
10973 (name "python-soxs")
10974 (version "5.3.0")
10975 (source
10976 (origin
10977 (method url-fetch)
10978 (uri (pypi-uri "soxs" version))
10979 (sha256
10980 (base32 "05rxp5avbpd80rs4gnf974g5w3ac158f1z06d4ascd8rsbn60yib"))))
10981 (build-system pyproject-build-system)
10982 (arguments
10983 (list
10984 ;; XXX: Tests require additional data, check if it may be packed
10985 ;; separately, see tests/ci_install.sh.
10986 ;; - http://hea-www.cfa.harvard.edu/~jzuhone
10987 ;; - soxs_test_data_16.tar.gz 235MiB
10988 #:tests? #f))
10989 (native-inputs
10990 (list python-cython
10991 python-setuptools
10992 python-setuptools-scm))
10993 (propagated-inputs
10994 (list python-appdirs
10995 python-astropy
10996 python-h5py
10997 python-numpy
10998 python-pooch
10999 python-pyyaml
11000 python-regions
11001 python-scipy
11002 python-tqdm))
11003 (home-page "https://hea-www.cfa.harvard.edu/soxs/")
11004 (synopsis "Simulated Observations of X-ray Sources")
11005 (description
11006 "SOXS is a software suite which can create simulated X-ray observations
11007of astrophysical sources with almost any existing or planned X-ray
11008observatory. The goal of SOXS is to provide a comprehensive set of tools to
11009design source models and convolve them with simulated models of X-ray
11010instruments. This package was originally developed to support the
11011@url{https://www.lynxobservatory.org/,Lynx X-ray Observatory} mission concept,
11012but has evolved to support other missions as well.")
11013 ;; SOXS is licensed under the terms of the Modified BSD License (also
11014 ;; known as New or Revised BSD).
11015 (license license:bsd-3)))
11016
11017(define-public python-space-dolphin
11018 (package
11019 (name "python-space-dolphin")
11020 (version "1.4.0")
11021 (source
11022 (origin
11023 (method git-fetch)
11024 (uri (git-reference
11025 (url "https://github.com/ajshajib/dolphin")
11026 (commit (string-append "v" version))))
11027 (file-name (git-file-name name version))
11028 (sha256
11029 (base32 "126ks09wsv33g55m82vrqazfgy7ndbns0knhsqf9g7vg50jwq5wz"))))
11030 (build-system pyproject-build-system)
11031 (arguments
11032 (list
11033 ;; tests: 86 passed, 8 deselected, 37 warnings
11034 #:test-flags
11035 #~(list "--ignore=test/test_ai/test_modeler.py"
11036 "--ignore=test/test_ai/test_vision.py"
11037 "--ignore=test/test_pipeline.py"
11038 "--ignore=test/test_util/test_jax_util.py"
11039 #$@(map (lambda (ls) (string-append "--deselect=test/"
11040 (string-join ls "::")))
11041 ;; Depends on Jax.
11042 '(("test_processor/test_core.py" "TestProcessor"
11043 "test_swim")
11044 ;; TODO: Report upstram on failing tests.
11045 ;; TypeError: ModelBandPlot.source_plot() missing 2
11046 ;; required positional arguments: 'numPix' and
11047 ;; 'deltaPix_source'
11048 ("test_analysis/test_output.py" "TestOutput"
11049 "test_plot_model_overview")
11050 ;; TypeError: matplotlib.axes._axes.Axes.matshow() got
11051 ;; multiple values for keyword argument 'vmax'
11052 ("test_analysis/test_output.py" "TestOutput"
11053 "test_plot_model_decomposition")
11054 ;; TypeError: ModelBandPlot.source() got an unexpected
11055 ;; keyword argument 'delta_pix'
11056 ("test_analysis/test_output.py" "TestOutput"
11057 "test_get_magnification_extended_source")
11058 ;; AttributeError: 'LensEquationSolver' object has no
11059 ;; attribute 'find_bright_image'. Did you mean:
11060 ;; 'findBrightImage'?
11061 ("test_analysis/test_output.py" "TestOutput"
11062 "test_get_magnification_point_source")
11063 ;; Network access is required.
11064 ("test_processor/test_files.py" "TestFileSystem"
11065 "test_get_trained_model_file_path")
11066 ;; ModuleNotFoundError: No module named 'jax'
11067 ("test_processor/test_config.py" "TestModelConfig"
11068 "test_get_kwargs_likelihood"))))
11069 #:phases
11070 #~(modify-phases %standard-phases
11071 (add-before 'check 'pre-check
11072 (lambda _
11073 ;; RuntimeError: cannot cache function 'rotate': no locator
11074 ;; available for file '<...>/lenstronomy/Util/util.py'.
11075 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
11076 (native-inputs
11077 (list python-pytest
11078 python-setuptools))
11079 (propagated-inputs
11080 (list python-astropy
11081 python-corner
11082 python-emcee
11083 python-gdown
11084 python-h5py
11085 python-lenstronomy
11086 python-matplotlib
11087 python-numpy
11088 python-pyyaml
11089 python-ruamel.yaml
11090 python-schwimmbad
11091 python-scipy
11092 python-tqdm))
11093 (home-page "https://github.com/ajshajib/dolphin")
11094 (synopsis "Automated pipeline for lens modeling based on lenstronomy")
11095 (description
11096 "This package implements a functionality of AI-powered automated pipeline
11097for lens modeling, with lenstronomy as the modeling engine.
11098
11099Features:
11100@itemize
11101@item AI-automated forward modeling for large samples of galaxy-scale lenses
11102@item flexible: supports both fully automated and semi-automated (with user
11103tweaks) modes
11104@item multi-band lens modeling made simple
11105@item supports both galaxy–galaxy and galaxy–quasar systems
11106@item effortless syncing between local machines and @acronym{High-Performance
11107Computing Cluster, HPCC}
11108@end itemize")
11109 (license license:bsd-3)))
11110
11111(define-public python-spacepy
11112 (package
11113 (name "python-spacepy")
11114 (version "0.7.0")
11115 (source
11116 (origin
11117 (method git-fetch)
11118 (uri (git-reference
11119 (url "https://github.com/spacepy/spacepy")
11120 (commit (string-append "release-" version))))
11121 (file-name (git-file-name name version))
11122 (sha256
11123 (base32 "1i9657j4qll3f8z20n9md93yh35n0vjj32k522bdqxq5pda8dng0"))))
11124 (build-system pyproject-build-system)
11125 (arguments
11126 (list
11127 ;; tests:
11128 #:test-flags
11129 #~(list "--ignore=developer/"
11130 ;; Tests depend on https://cdf.gsfc.nasa.gov/.
11131 "--ignore=tests/test_all.py"
11132 "--ignore=tests/test_coordinates.py"
11133 "--ignore=tests/test_datamodel.py"
11134 "--ignore=tests/test_irbempy.py"
11135 "--ignore=tests/test_pycdf.py"
11136 "--ignore=tests/test_pycdf_istp.py"
11137 "--ignore=tests/test_time.py"
11138 ;; AssertionError: Lists differ: ['[sp[38 chars]cePy UNRELEASED
11139 ;; default test entry: value\n', [38 chars]]\n'] != ['[sp[38
11140 ;; chars]cePy 0.7.0 default test entry: value\n', '#tes[33
11141 ;; chars]]\n']
11142 (string-append "--deselect=tests/test_base.py::"
11143 "SpacepyConfigTests::"
11144 "testWriteDefaultsMultipleSections"))
11145 #:phases
11146 #~(modify-phases %standard-phases
11147 (add-before 'sanity-check 'set-HOME
11148 (lambda _
11149 (setenv "HOME" "/tmp")))
11150 (add-before 'check 'remove-local-source
11151 (lambda _
11152 (delete-file-recursively "spacepy"))))))
11153 (native-inputs
11154 (list gfortran
11155 python-pytest
11156 python-setuptools))
11157 (propagated-inputs
11158 (list python-astropy
11159 python-h5py
11160 python-matplotlib
11161 python-numpy
11162 python-dateutil
11163 python-scipy))
11164 (home-page "https://github.com/spacepy/spacepy")
11165 (synopsis "Tools for Space Science Applications")
11166 (description
11167 "SpacePy is a package for Python, targeted at the space sciences, that
11168aims to make basic data analysis, modeling and visualization easier. It
11169builds on the capabilities of NumPy and MatPlotLib packages.")
11170 (license license:psfl)))
11171
11172(define-public python-spacetrack
11173 (package
11174 (name "python-spacetrack")
11175 (version "2.0.0")
11176 (source
11177 (origin
11178 (method url-fetch)
11179 (uri (pypi-uri "spacetrack" version))
11180 (sha256
11181 (base32 "005jmv1gqg17n7a5yq8xijkx68sfa99n2496jjcprpjln58sppz7"))))
11182 (build-system pyproject-build-system)
11183 (arguments
11184 (list
11185 ;; tests: 78 passed, 1 deselected, 2 warnings
11186 #:test-flags
11187 #~(list "--asyncio-mode=auto"
11188 ;; Test tries accessing
11189 ;; <https://www.space-track.org/basicspacedata/modeldef/class/gp>.
11190 "--deselect=tests/test_aio.py::test_modeldef_not_used_trio")))
11191 (native-inputs
11192 (list nss-certs-for-test
11193 python-hatchling
11194 python-pytest
11195 python-pytest-httpx2
11196 python-pytest-asyncio))
11197 (propagated-inputs
11198 (list python-filelock
11199 python-dateutil
11200 python-httpx2
11201 python-logbook
11202 python-outcome
11203 python-platformdirs
11204 python-represent
11205 python-rush
11206 python-sniffio))
11207 (home-page "https://github.com/python-astrodynamics/spacetrack")
11208 (synopsis "Python client for space-track.org")
11209 (description
11210 "@code{spacetrack} is a python module for @url{https://www.space-track.org/,
11211Space-Track} which promotes space flight safety, protection of the space
11212environment and the peaceful use of space worldwide by sharing space
11213situational awareness services and information with international satellite
11214owners/operators, academia and other entities.")
11215 (license license:expat)))
11216
11217(define-public python-specreduce
11218 (package
11219 (name "python-specreduce")
11220 (version "1.9.0")
11221 (source
11222 (origin
11223 (method git-fetch)
11224 (uri (git-reference
11225 (url "https://github.com/astropy/specreduce")
11226 (commit (string-append "v" version))))
11227 (file-name (git-file-name name version))
11228 (sha256
11229 (base32 "14c625a7mg0sznavkmjx1cbxwdrc41fwjsvj4xvyyg7ibx7qikwa"))))
11230 (build-system pyproject-build-system)
11231 (arguments
11232 (list
11233 ;; tests: 129 passed, 25 skipped
11234 #:test-flags
11235 #~(list "--pyargs" "specreduce"
11236 ;; Network access is required to download test data from
11237 ;; <https://raw.githubusercontent.com/pypeit/pypeit
11238 ;; /release/pypeit/data//arc_lines/lists/HeI_lines.dat>.
11239 "--ignore=specreduce/tests/test_tilt_correction.py"
11240 "--ignore=specreduce/tests/test_tilt_solution.py")
11241 #:phases
11242 #~(modify-phases %standard-phases
11243 (add-before 'check 'set-home
11244 (lambda _
11245 ;; Relax matplotlib warning: ... because the default path
11246 ;; (/homeless-shelter/.config/matplotlib) is not a writable
11247 ;; directory ...
11248 (setenv "HOME" "/tmp"))))))
11249 (native-inputs
11250 (list nss-certs-for-test
11251 python-photutils
11252 python-pypeit-minimal
11253 python-pytest
11254 python-pytest-astropy
11255 python-pytest-mock
11256 python-setuptools
11257 python-setuptools-scm))
11258 (propagated-inputs
11259 (list python-astropy
11260 python-gwcs
11261 python-matplotlib
11262 python-numpy
11263 python-scipy
11264 python-specutils))
11265 (home-page "https://specreduce.readthedocs.io/")
11266 (synopsis "Spectroscopic Reductions")
11267 (description
11268 "This package implements functionality of spectroscopic reduction in
11269observations from Optical and @acronym{Near-infrared spectroscopy,NIR}
11270instruments.")
11271 (license (list license:bsd-3 ; licenses/LICENSE.rst, same as python-astropy
11272 license:expat)))) ; licenses/KOSMOS_LICENSE
11273
11274(define-public python-spectral-cube
11275 (package
11276 (name "python-spectral-cube")
11277 (version "0.6.7")
11278 (source
11279 (origin
11280 (method url-fetch)
11281 (uri (pypi-uri "spectral_cube" version))
11282 (sha256
11283 (base32 "1r3mwrnjw2yfjsd3bskl013c3yk0ad3ky1yhxlvyiz4phrahhb3f"))))
11284 (build-system pyproject-build-system)
11285 (arguments
11286 (list
11287 ;; tests: 1519 passed, 170 skipped, 17 xfailed, 6048 warnings
11288 #:test-flags
11289 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count)))
11290 ;; AttributeError: module 'numpy' has no attribute 'product'
11291 "--deselect=spectral_cube/tests/test_dask.py::test_dask_distributed"
11292 #$@(map (lambda (test) (string-append "--deselect="
11293 "spectral_cube/tests/"
11294 "test_casafuncs.py::"
11295 "test"))
11296 (list "test_casa_read_basic[False-False]"
11297 "test_casa_read_basic[False-True]"
11298 "test_casa_read_basic[True-False]"
11299 "test_casa_read_basic[True-True]"
11300 "test_casa_read_basic_nomask")))))
11301 (native-inputs
11302 (list python-pytest
11303 python-pytest-astropy
11304 python-pytest-xdist
11305 python-regions
11306 python-setuptools
11307 python-setuptools-scm))
11308 (propagated-inputs
11309 (list python-astropy
11310 python-casa-formats-io
11311 python-dask
11312 python-joblib
11313 python-numpy
11314 python-packaging
11315 python-radio-beam
11316 python-tqdm
11317 ;; [optional]
11318 python-scipy
11319 python-zarr))
11320 (home-page "https://spectral-cube.readthedocs.io/en/latest/")
11321 (synopsis "Library for reading and analyzing astrophysical spectral data cubes")
11322 (description
11323 "The spectral-cube package provides an easy way to read, manipulate,
11324analyze, and write data cubes with two positional dimensions and one spectral
11325dimension, optionally with Stokes parameters.
11326
11327It provides the following main features:
11328@itemize
11329@item A uniform interface to spectral cubes, robust to the wide range of conventions
11330of axis order, spatial projections, and spectral units that exist in the wild.
11331@item Easy extraction of cube sub-regions using physical coordinates.
11332@item Ability to easily create, combine, and apply masks to datasets.
11333@item Basic summary statistic methods like moments and array aggregates.
11334@item Designed to work with datasets too large to load into memory.
11335@end itemize")
11336 (license license:bsd-3)))
11337
11338(define-public python-specutils
11339 (package
11340 (name "python-specutils")
11341 (version "2.4.0")
11342 (source
11343 (origin
11344 (method url-fetch)
11345 (uri (pypi-uri "specutils" version))
11346 (sha256
11347 (base32 "132hsjka0k0gkv2ikrps0l2zsy2md71r7gq5sxsjvsdygiwarqnv"))))
11348 (build-system pyproject-build-system)
11349 (arguments
11350 (list
11351 ;; tests: 584 passed, 130 skipped, 1 deselected, 3 xfailed
11352 #:test-flags
11353 #~(list "--pyargs" "specutils"
11354 ;; Disabling test requiring access to download
11355 ;; <https://datacenter.iers.org/data/9/finals2000A.all>.
11356 ;; XXX: Check if test data may be packed as standalone package.
11357 "--deselect=tests/test_spectral_axis.py::test_create_spectral_axis")
11358 #:phases
11359 #~(modify-phases %standard-phases
11360 (add-before 'build 'set-home-env
11361 (lambda _
11362 ;; Tests require HOME to be set.
11363 ;; Permission denied: '/homeless-shelter'
11364 (setenv "HOME" "/tmp")))
11365 (add-before 'check 'remove-local-source
11366 (lambda _
11367 (delete-file-recursively "specutils"))))))
11368 (native-inputs
11369 (list python-matplotlib
11370 python-pytest-asdf-plugin
11371 python-pytest-astropy
11372 python-setuptools
11373 python-setuptools-scm
11374 python-spectral-cube))
11375 (propagated-inputs
11376 (list python-asdf
11377 python-asdf-astropy
11378 python-astropy
11379 python-gwcs
11380 python-ndcube-minimal
11381 python-numpy
11382 python-scipy))
11383 (home-page "https://specutils.readthedocs.io/")
11384 (synopsis "Package for spectroscopic astronomical data")
11385 (description
11386 "@code{specutils} is a Python package for representing, loading,
11387manipulating,and analyzing astronomical spectroscopic data. The generic data
11388containers and accompanying modules provide a toolbox that the astronomical
11389community can use to build more domain-specific packages. For more details
11390about the underlying principles, see
11391@url{https://github.com/astropy/astropy-APEs/blob/main/APE13.rst, APE13}.")
11392 (license license:bsd-3)))
11393
11394(define-public python-spherical-geometry
11395 (package
11396 (name "python-spherical-geometry")
11397 (version "1.4.0")
11398 (source
11399 (origin
11400 (method git-fetch)
11401 (uri (git-reference
11402 (url "https://github.com/spacetelescope/spherical_geometry")
11403 (commit version)))
11404 (file-name (git-file-name name version))
11405 (sha256
11406 (base32 "120wzvi6hf6n1qj0lpa1h2akdic4nk1nphgwglgib216az77xwfa"))
11407 (modules '((guix build utils)))
11408 (snippet
11409 #~(begin
11410 ;; Remove bundled library.
11411 (delete-file-recursively "libqd")))))
11412 (build-system pyproject-build-system)
11413 (arguments
11414 (list
11415 #:test-flags
11416 #~(list "--pyargs" "spherical_geometry")
11417 #:phases
11418 #~(modify-phases %standard-phases
11419 (add-after 'unpack 'preparations
11420 (lambda _
11421 ;; Use our own libraries in place of bundles.
11422 (setenv "USE_SYSTEM_QD" "1"))))))
11423 (native-inputs
11424 (list python-gwcs
11425 python-pytest
11426 python-pytest-astropy-header
11427 python-setuptools
11428 python-setuptools-scm))
11429 (inputs
11430 (list qd))
11431 (propagated-inputs
11432 (list python-astropy
11433 python-numpy))
11434 (home-page "https://github.com/spacetelescope/spherical_geometry")
11435 (synopsis "Python astronimical package for handling spherical polygons")
11436 (description
11437 "The @code{spherical_geometry} library is a Python package for handling
11438spherical polygons that represent arbitrary regions of the sky.")
11439 ;; LICENSE.rst Association of Universities for Research in Astronomy (AURA)
11440 ;; QD_LIBRARY_LICENSE.rst for bandeled QD source
11441 (license license:bsd-3)))
11442
11443(define-public python-spinifex
11444 (package
11445 (name "python-spinifex")
11446 (version "1.4.1")
11447 (source
11448 (origin
11449 (method git-fetch)
11450 (uri (git-reference
11451 (url "https://git.astron.nl/RD/spinifex")
11452 (commit (string-append "v" version))))
11453 (file-name (git-file-name name version))
11454 (sha256
11455 (base32 "0bvl0xvldifvrhznbhi51qjc0cax0bk0g24x13dsdyl1cydv95j2"))))
11456 (build-system pyproject-build-system)
11457 (arguments
11458 (list
11459 #:tests? #f ;14 failed, 35 passed, require network access
11460 #:phases
11461 #~(modify-phases %standard-phases
11462 (add-after 'unpack 'relax-requirements
11463 (lambda _
11464 (substitute* "pyproject.toml"
11465 ;; Backpoert of typing._eval_type for older Pythons.
11466 ((".*eval-type-backport.*") "")))))))
11467 (native-inputs
11468 (list python-hatch-vcs
11469 python-hatchling))
11470 (propagated-inputs
11471 (list python-astropy
11472 python-h5py
11473 python-nest-asyncio
11474 python-numpy
11475 python-ppigrf
11476 python-pydantic
11477 python-pyiri
11478 python-requests
11479 python-typing-extensions
11480 python-unlzw3
11481 ;; [optional]
11482 python-casacore))
11483 (home-page "https://git.astron.nl/RD/spinifex")
11484 (synopsis "Correcting ionospheric Faraday rotation")
11485 (description
11486 "This package provides a pure Python tooling for ionospheric analyses in
11487radio astronomy, e.g. getting total electron content and rotation measure.")
11488 (license license:asl2.0)))
11489
11490(define-public python-spisea
11491 (package
11492 (name "python-spisea")
11493 (version "2.5")
11494 (source
11495 (origin
11496 (method git-fetch)
11497 (uri (git-reference
11498 (url "https://github.com/MovingUniverseLab/SPISEA")
11499 (commit (string-append "v" version))))
11500 (file-name (git-file-name name version))
11501 (sha256
11502 (base32 "0pb6xf851vc9js7wb8hh9cf7xk7fmzn66f1rxd55zyhbpkcvphyw"))))
11503 (build-system pyproject-build-system)
11504 (arguments
11505 (list
11506 ;; XXX: Tests require additional data, see
11507 ;; <https://spisea.readthedocs.io/en/latest/getting_started.html>.
11508 ;; - https://archive.stsci.edu/hlsps/reference-atlases/
11509 ;; - hlsp_reference-atlases_hst_multi_everything_multi_v10_sed.tar 741MiB
11510 ;; - https://archive.stsci.edu/hlsps/reference-atlases/
11511 ;; - hlsp_reference-atlases_hst_multi_star-galaxy-models_multi_v3_synphot2.tar 84MiB
11512 #:tests? #f))
11513 (native-inputs
11514 (list python-cython
11515 python-extension-helpers
11516 python-setuptools
11517 python-setuptools-scm))
11518 (propagated-inputs
11519 (list python-astropy
11520 python-matplotlib
11521 python-numpy
11522 python-pysynphot
11523 python-scipy))
11524 (home-page "https://spisea.readthedocs.io/en/stable/index.html")
11525 (synopsis "Stellar Population Synthesis Modeling")
11526 (description
11527 "SPISEA is an python package that generates single-age,
11528single-metallicity populations (i.e. star clusters). It gives the user control
11529over many parameters:
11530
11531@itemize
11532@item cluster characteristics (age, metallicity, mass, distance)
11533@item total extinction, differential extinction, and extinction law
11534@item stellar evolution and atmosphere models
11535@item stellar multiplicity and Initial Mass Function
11536@item initial-Final Mass Relation
11537@item photometric filters
11538@end itemize")
11539 ;; Licensed under a 3-clause BSD style license - see LICENSE.rst
11540 ;; spisea/_astropy_init.py:
11541 (license (list license:gpl3+ license:bsd-3))))
11542
11543(define-public python-statmorph
11544 (package
11545 (name "python-statmorph")
11546 (version "0.7.2")
11547 (source
11548 (origin
11549 (method url-fetch)
11550 (uri (pypi-uri "statmorph" version))
11551 (sha256
11552 (base32 "1hab5yq0xjc3fzyd177bwsgainqzaxpdw423r73nzc5yqiqz9ji4"))))
11553 (build-system pyproject-build-system)
11554 (arguments
11555 (list
11556 ;; tests: 19 passed, 1 deselected
11557 #:test-flags
11558 ;; Test fails due to numerical uncertainties.
11559 ;; See: <https://github.com/vrodgom/statmorph/issues/17>.
11560 #~(list"--deselect=statmorph/tests/test_statmorph.py::test_full_gini_segmap")))
11561 (native-inputs
11562 (list python-pytest
11563 python-setuptools))
11564 (propagated-inputs
11565 (list python-astropy
11566 python-numpy
11567 python-photutils
11568 python-scikit-image
11569 python-scipy
11570 ;; [optional]
11571 python-matplotlib))
11572 (home-page "https://github.com/vrodgom/statmorph")
11573 (synopsis "Non-parametric morphological diagnostics of galaxy images")
11574 (description
11575 "The package @code{statmorph} implements functionality of calculating
11576non-parametric morphological diagnostics of galaxy images (e.g., Gini-M_{20}
11577and CAS statistics), as well as fitting 2D Sérsic profiles.")
11578 (license license:bsd-3)))
11579
11580(define-public python-stcal
11581 (package
11582 (name "python-stcal")
11583 (version "1.20.0")
11584 (source
11585 (origin
11586 (method git-fetch)
11587 (uri (git-reference
11588 (url "https://github.com/spacetelescope/stcal")
11589 (commit version)))
11590 (file-name (git-file-name name version))
11591 (sha256
11592 (base32 "1dwja6a48a26bj13xhh8yhbd0100xw1al4lzksds52lp2xzh0rzv"))))
11593 (build-system pyproject-build-system)
11594 (arguments
11595 (list
11596 ;; tests: 694 passed, 12 warnings
11597 #:test-flags
11598 #~(list "--pyargs" "stcal"
11599 "--numprocesses" (number->string (min 8 (parallel-job-count)))
11600 ;; Network access is required for the most of the tests to
11601 ;; download test data from
11602 ;; <s3://stpubdata/gaia/gaia_dr3/public/hats/gaia/>.
11603 "--ignore=tests/test_tweakreg.py"
11604 "tests")
11605 #:phases
11606 #~(modify-phases %standard-phases
11607 (add-after 'unpack 'relax-requirements
11608 (lambda _
11609 (substitute* "pyproject.toml"
11610 (("tweakwcs>=0.8.8,<0.9") "tweakwcs>=0.8.8,<=0.9.0")))))))
11611 (native-inputs
11612 (list python-cython
11613 python-psutil
11614 python-pytest
11615 python-pytest-xdist
11616 python-pytest-doctestplus
11617 python-setuptools
11618 python-setuptools-scm))
11619 (propagated-inputs
11620 (list python-asdf
11621 python-astropy
11622 python-astropy-healpix
11623 python-drizzle
11624 python-gwcs
11625 python-numpy
11626 python-pyarrow
11627 python-requests
11628 python-scikit-image
11629 python-scipy
11630 python-shapely
11631 python-spherical-geometry
11632 python-stsci-imagestats
11633 python-tweakwcs))
11634 (home-page "https://github.com/spacetelescope/stcal")
11635 (synopsis "STScI tools and algorithms used in calibration pipelines")
11636 (description "STScI tools and algorithms used in calibration pipelines.")
11637 (license license:bsd-3)))
11638
11639(define-public python-stdatamodels
11640 (package
11641 (name "python-stdatamodels")
11642 (version "6.0.0")
11643 (source
11644 (origin
11645 (method git-fetch)
11646 (uri (git-reference
11647 (url "https://github.com/spacetelescope/stdatamodels")
11648 (commit version)))
11649 (file-name (git-file-name name version))
11650 (sha256
11651 (base32 "1d4iml3v20aba5fcicnd1dw6s028bbqxx4isfpjvksq5mq52l53i"))))
11652 (build-system pyproject-build-system)
11653 (arguments
11654 (list
11655 ;; tests: 1966 passed, 4 xfailed
11656 #:test-flags
11657 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count)))
11658 ;; Disable tests requiring access to CRDS servers to download
11659 ;; ~500MiB of data.
11660 (string-append "--deselect=tests/jwst/datamodels/"
11661 "test_schema_against_crds.py"
11662 "::test_crds_selectors_vs_datamodel"))
11663 #:phases
11664 #~(modify-phases %standard-phases
11665 (add-after 'unpack 'patch-manifest.in
11666 ;; See: <https://codeberg.org/guix/guix/issues/4393>.
11667 (lambda* (#:key name source inputs #:allow-other-keys)
11668 (let ((port (open-file "MANIFEST.in" "w")))
11669 (for-each
11670 (lambda (file)
11671 (display "include " port)
11672 (display file port)
11673 (display "\n" port))
11674 (find-files "."))
11675 (close port))))
11676 (add-before 'check 'set-home
11677 (lambda _
11678 (setenv "HOME" "/tmp"))))))
11679 (native-inputs
11680 (list python-crds-minimal
11681 python-psutil
11682 python-pytest
11683 python-pytest-asdf-plugin
11684 python-pytest-doctestplus
11685 python-pytest-xdist
11686 python-scipy
11687 python-setuptools
11688 python-setuptools-scm))
11689 (propagated-inputs
11690 (list python-asdf
11691 python-asdf-astropy
11692 python-asdf-transform-schemas
11693 python-astropy
11694 python-gwcs
11695 python-numpy))
11696 (home-page "https://github.com/spacetelescope/stdatamodels")
11697 (synopsis "STScI DataModel classes used in calibration pipelines")
11698 (description
11699 "Provides @code{DataModel}, which is the base class for data models
11700implemented in the @acronym{JWST, James Webb Space Telescope} and
11701@acronym{Roman, Nancy Grace Roman Space Telescope} calibration software.")
11702 (license license:bsd-3)))
11703
11704;; A bare minimal package, mainly to use in tests and reduce closure
11705;; size. Tests are left out in the main package to slim down native-inputs.
11706(define-public python-stdatamodels-minimal
11707 (package/inherit python-stdatamodels
11708 (name "python-stdatamodels-minimal")
11709 (arguments
11710 (list #:tests? #f))
11711 (native-inputs
11712 (list python-setuptools
11713 python-setuptools-scm))))
11714
11715(define-public python-stpipe
11716 (package
11717 (name "python-stpipe")
11718 (version "1.1.0")
11719 (source
11720 (origin
11721 (method git-fetch)
11722 (uri (git-reference
11723 (url "https://github.com/spacetelescope/stpipe")
11724 (commit version)))
11725 (file-name (git-file-name name version))
11726 (sha256
11727 (base32 "019nk4kqwk3346mhagfcnlcrlplly4km1hhvjwzqm59whgq42h3b"))
11728 (modules '((guix build utils)))
11729 (snippet
11730 #~(begin
11731 ;; Replace reference to external configobj.
11732 (substitute* (find-files "." "\\.py$")
11733 (("from astropy.extern import configobj")
11734 "import configobj")
11735 (("from astropy.extern.configobj import validate")
11736 "import validate")
11737 (("from astropy.extern.configobj.configobj import ")
11738 "from configobj import ")
11739 (("from astropy.extern.configobj.validate import ")
11740 "from validate import "))))))
11741 (build-system pyproject-build-system)
11742 (arguments
11743 (list
11744 ;; tests: 285 passed, 25 deselected
11745 #:test-flags
11746 #~(list #$@(map (lambda (test)
11747 (string-append "--deselect=tests/test_step.py::"
11748 test))
11749 ;; FileNotFoundError: Unable to fetch schema from
11750 ;; non-file URL:
11751 ;; http://stsci.edu/schemas/stpipe/step_config-1.1.0
11752 (list "test_build_config_pipe_config_file"
11753 "test_build_config_pipe_kwarg"
11754 "test_build_config_step_config_file"
11755 "test_build_config_step_kwarg"
11756 "test_step_from_commandline_par_precedence"
11757 "test_step_list_args"))
11758 #$@(map (lambda (test)
11759 (string-append "--deselect=tests/"
11760 "test_asdf_parameters.py::"
11761 test))
11762 (list "test_asdf_from_call"
11763 "test_asdf_roundtrip_pipeline"
11764 "test_export_config[step_obj0-expected0]"
11765 "test_from_command_line"
11766 "test_from_command_line_override"
11767 "test_reftype"
11768 "test_saving_pars"
11769 "test_step_from_asdf"
11770 "test_step_from_asdf_api_override"
11771 "test_step_from_asdf_noname"))
11772 "--deselect=tests/test_config.py::test_step_config_from_asdf"
11773 "--deselect=tests/test_config.py::test_step_config_from_legacy_asdf"
11774 "--deselect=tests/test_config.py::test_step_config_to_asdf")))
11775 (native-inputs
11776 (list python-pytest
11777 python-pytest-doctestplus
11778 python-setuptools
11779 python-setuptools-scm
11780 python-stdatamodels))
11781 (propagated-inputs
11782 (list python-asdf
11783 python-astropy
11784 python-crds
11785 python-importlib-metadata
11786 python-pyyaml))
11787 (home-page "https://github.com/spacetelescope/stpipe")
11788 (synopsis "STScI framework for calibration pipeline software")
11789 (description
11790 "This package provides base classes and command-line tools for
11791implementing calibration pipeline software.")
11792 ;; LICENSE Association of Universities for Research in Astronomy (AURA)
11793 (license license:bsd-3)))
11794
11795(define-public python-stpreview
11796 (package
11797 (name "python-stpreview")
11798 (version "0.6.0")
11799 (source
11800 (origin
11801 (method url-fetch)
11802 (uri (pypi-uri "stpreview" version))
11803 (sha256
11804 (base32 "1z7zpqyg7rl2sf311idzwckdshm86mkbbpknvq90gkxmqdaqas9q"))))
11805 (build-system pyproject-build-system)
11806 (arguments
11807 (list #:tests? #f)) ;depends on [email protected]
11808 (native-inputs
11809 (list python-setuptools
11810 python-setuptools-scm))
11811 (propagated-inputs
11812 (list python-asdf
11813 python-astropy
11814 python-gwcs
11815 python-matplotlib
11816 python-numpy
11817 python-scikit-image))
11818 (home-page "https://github.com/spacetelescope/stpreview")
11819 (synopsis "Build downsampled previews of STScI")
11820 (description
11821 "This package provides build downsampled previews of Space Telescope products.")
11822 (license license:bsd-3)))
11823
11824(define-public python-stpsf
11825 (package
11826 (name "python-stpsf")
11827 (version "2.2.0")
11828 (source
11829 (origin
11830 (method url-fetch)
11831 (uri (pypi-uri "stpsf" version))
11832 (sha256
11833 (base32 "0vrrx7zjj4zpachj2zn92rgn7lfnzps32hyhkbxlmg043aq3a1pj"))))
11834 (build-system pyproject-build-system)
11835 (arguments
11836 (list
11837 ;; XXX: Tests and installation require 100MiB archive, upstream does
11838 ;; not provide any version to pin particular data file per release,
11839 ;; check if they can apply any tag.
11840 ;;
11841 ;; See: <https://stpsf.readthedocs.io/en/stable/installation.html>,
11842 ;; <https://github.com/spacetelescope/stpsf/issues/76>.
11843 #:tests? #f
11844 #:phases
11845 #~(modify-phases %standard-phases
11846 (add-after 'unpack 'relax-requirements
11847 (lambda _
11848 (substitute* "pyproject.toml"
11849 (("numpy>=1.21.6,<2.4.0") "numpy")))))))
11850 (native-inputs
11851 (list python-setuptools
11852 python-setuptools-scm))
11853 (propagated-inputs
11854 (list python-astropy
11855 python-astroquery
11856 python-matplotlib
11857 python-numpy
11858 python-photutils
11859 python-poppy
11860 python-pysiaf
11861 python-scipy
11862 python-synphot))
11863 (home-page "https://stpsf.readthedocs.io")
11864 (synopsis "Creates simulated point spread functions for Space Telescopes)")
11865 (description
11866 "STPSF produces simulated PSFs for the James Webb Space Telescope, NASA's
11867flagship infrared space telescope. STPSF can simulate images for any of the four
11868science instruments plus the fine guidance sensor, including both direct
11869imaging, coronagraphic, and spectroscopic modes.")
11870 (license license:bsd-3)))
11871
11872(define-public python-stregion
11873 (package
11874 (name "python-stregion")
11875 (version "1.1.12")
11876 (source
11877 (origin
11878 (method url-fetch)
11879 (uri (pypi-uri "stregion" version))
11880 (sha256
11881 (base32 "0clcv76x8pj61dvyh9pa6gp3kskc9g11i1fi559ax2qa2pgqhh1n"))))
11882 (build-system pyproject-build-system)
11883 (arguments
11884 ;; AttributeError: module 'astropy.io.fits' has no attribute 'CardList'
11885 ;; AttributeError: 'WCS' object has no attribute 'wcs_pix2sky'
11886 (list #:tests? #f)) ;depends on deprecated Astropy functions
11887 (native-inputs
11888 (list python-cython
11889 python-setuptools
11890 python-setuptools-scm))
11891 (propagated-inputs
11892 (list python-numpy
11893 python-pyparsing))
11894 (home-page "https://github.com/spacetelescope/stregion")
11895 (synopsis "Python parser for DS9 region files")
11896 (description
11897 "This package implements a functionality to parse
11898@url{https://github.com/SAOImageDS9/SAOImageDS9, DS9} region files.")
11899 (license license:expat)))
11900
11901(define-public python-stsci-image
11902 (package
11903 (name "python-stsci-image")
11904 (version "2.3.11")
11905 (source
11906 (origin
11907 (method url-fetch)
11908 (uri (pypi-uri "stsci_image" version))
11909 (sha256
11910 (base32 "0wvqvpq9hfmpjf0w6kbgk6rc3jmshdnxk8s8q61rkfwjl11vi90b"))))
11911 (build-system pyproject-build-system)
11912 (arguments
11913 (list
11914 #:phases
11915 #~(modify-phases %standard-phases
11916 (add-before 'check 'build-extensions
11917 (lambda _
11918 ;; Cython extensions have to be built before running the tests.
11919 (invoke "python" "setup.py" "build_ext" "--inplace"))))))
11920 (native-inputs
11921 (list python-pytest python-setuptools python-setuptools-scm))
11922 (propagated-inputs
11923 (list python-numpy
11924 python-scipy))
11925 (home-page "https://github.com/spacetelescope/stsci.image")
11926 (synopsis "Image array manipulation functions")
11927 (description
11928 "This package provides a Python module to various @acronym{STScI, Space
11929Telescope Science Institute} image array manipulation functions.")
11930 (license license:bsd-3)))
11931
11932(define-public python-stsci-imagestats
11933 (package
11934 (name "python-stsci-imagestats")
11935 (version "1.8.4")
11936 (source
11937 (origin
11938 (method url-fetch)
11939 (uri (pypi-uri "stsci_imagestats" version))
11940 (sha256
11941 (base32 "0gn0qqpv2qwl4c9sf8783xkwawk1xjhv3dk28gx82fp0bqalz4kg"))))
11942 (build-system pyproject-build-system)
11943 (arguments
11944 (list
11945 #:test-flags
11946 #~(list "--pyargs" "stsci.imagestats")))
11947 (native-inputs
11948 (list python-pytest
11949 python-setuptools
11950 python-setuptools-scm))
11951 (propagated-inputs
11952 (list python-numpy))
11953 (home-page "https://stsciimagestats.readthedocs.io/en/latest/")
11954 (synopsis "Compute sigma-clipped statistics on data arrays")
11955 (description
11956 "@code{stsci.imagestats} is a package designed to compute various
11957statistics on image data using sigma-clipping iterations. It is designed to
11958replicate core behaviour of the IRAF's
11959@url{http://stsdas.stsci.edu/cgi-bin/gethelp.cgi?imstatistics, imstatistics
11960task}.")
11961 (license license:bsd-3)))
11962
11963(define-public python-stsci-skypac
11964 (package
11965 (name "python-stsci-skypac")
11966 (version "1.0.12")
11967 (source
11968 (origin
11969 (method git-fetch)
11970 (uri (git-reference
11971 (url "https://github.com/spacetelescope/stsci.skypac")
11972 (commit version)))
11973 (file-name (git-file-name name version))
11974 (sha256
11975 (base32 "09gq2cw4xi1wh4hkzxjlmxilhgigirjpz7wqyl283zyp65i5ar31"))))
11976 (build-system pyproject-build-system)
11977 (arguments
11978 ;; TODO: I could not make doctest to find package by pyassing "--pyargs"
11979 ;; with "stsci.skypac", "stsci:skypac" or "stsci/skypac.
11980 (list #:tests? #f))
11981 (native-inputs
11982 (list ;; python-pytest
11983 ;; python-pytest-doctestplus
11984 python-setuptools
11985 python-setuptools-scm))
11986 (propagated-inputs
11987 (list python-astropy
11988 python-numpy
11989 python-spherical-geometry
11990 python-stsci-imagestats
11991 python-stsci-tools
11992 python-stwcs))
11993 (home-page "https://stsci-skypac.readthedocs.io/en/latest")
11994 (synopsis "Sky matching on image mosaic")
11995 (description
11996 "This package implements a functionality to match sky on image mosaic.")
11997 (license license:bsd-3)))
11998
11999(define-public python-stsci-stimage
12000 (package
12001 (name "python-stsci-stimage")
12002 (version "0.3.0")
12003 (source
12004 (origin
12005 (method url-fetch)
12006 (uri (pypi-uri "stsci_stimage" version))
12007 (sha256
12008 (base32 "10vhc2kfryis37k5jkg357z7lhlmyci4makzy50xgh08648ak7cd"))))
12009 (build-system pyproject-build-system)
12010 (arguments
12011 (list
12012 #:phases
12013 #~(modify-phases %standard-phases
12014 (add-before 'check 'build-extensions
12015 (lambda _
12016 (invoke "python" "setup.py" "build_ext" "--inplace"))))))
12017 (native-inputs
12018 (list python-pytest python-setuptools python-setuptools-scm))
12019 (propagated-inputs
12020 (list python-numpy))
12021 (home-page "https://stscistimage.readthedocs.io/en/latest/")
12022 (synopsis "STScI image processing")
12023 (description
12024 "This package provides an astronomical Python package with image
12025processing functions: @code{xyxymatch}, @code{geomap}.")
12026 (license license:bsd-3)))
12027
12028(define-public python-stsci-tools
12029 (package
12030 (name "python-stsci-tools")
12031 (version "4.3.0")
12032 (source
12033 (origin
12034 (method url-fetch)
12035 (uri (pypi-uri "stsci_tools" version))
12036 (sha256
12037 (base32 "1vmgznpww0b1v4x6kfdp75q45r0jr0mrpdq3q9jl17idmqsb4jjy"))))
12038 (build-system pyproject-build-system)
12039 ;; tests: 192 passed, 14 skipped
12040 (native-inputs
12041 (list python-pytest
12042 python-pytest-astropy-header
12043 python-pytest-doctestplus
12044 python-setuptools
12045 python-setuptools-scm))
12046 (propagated-inputs
12047 (list python-astropy
12048 python-numpy
12049 python-packaging))
12050 (home-page "https://stscitools.readthedocs.io/en/latest")
12051 (synopsis "Collection of STScI utility functions")
12052 (description
12053 "This package provides a collection of @acronym{Space Telescope Science
12054Institute, STScI} utility functions.")
12055 (license license:bsd-3)))
12056
12057(define-public python-stsynphot
12058 (package
12059 (name "python-stsynphot")
12060 (version "1.5.1")
12061 (source
12062 (origin
12063 (method git-fetch)
12064 (uri (git-reference
12065 (url "https://github.com/spacetelescope/stsynphot_refactor")
12066 (commit version)))
12067 (file-name (git-file-name name version))
12068 (sha256
12069 (base32 "15jxb2b1172xlh041bvs8316qmqbg26nxjgfyxvl8280zwyqiwvh"))))
12070 (build-system pyproject-build-system)
12071 (arguments
12072 (list
12073 ;; XXX: Tests fails on missing file, it might need to be downloaded,
12074 ;; disable them for now. astropy.utils.exceptions.AstropyUserWarning:
12075 ;; Failed to load Vega spectrum from
12076 ;; /grp/redcat/trds/calspec/alpha_lyr_stis_010.fits;
12077 ;;
12078 ;; Data is available by the lnks: <https://ssb.stsci.edu/trds/calspec/>,
12079 ;; <https://archive.stsci.edu/hlsp/reference-atlases>.
12080 #:tests? #f))
12081 (native-inputs
12082 (list python-setuptools
12083 python-setuptools-scm))
12084 (propagated-inputs
12085 (list python-astropy
12086 python-beautifulsoup4
12087 python-matplotlib
12088 python-numpy
12089 python-scipy
12090 python-synphot))
12091 (home-page "https://github.com/spacetelescope/stsynphot_refactor")
12092 (synopsis "Synthetic photometry using Astropy for HST and JWST")
12093 (description
12094 "This package provides a replacement for IRAF STSDAS SYNPHOT and ASTROLIB
12095PYSYNPHOT, utilizing Astropy covering instrument specific portions of the old
12096packages for HST.")
12097 (license license:bsd-3)))
12098
12099(define-public python-stwcs
12100 (package
12101 (name "python-stwcs")
12102 (version "1.7.7")
12103 (source
12104 (origin
12105 (method git-fetch)
12106 (uri (git-reference
12107 (url "https://github.com/spacetelescope/stwcs")
12108 (commit version)))
12109 (file-name (git-file-name name version))
12110 (sha256
12111 (base32 "0378c2xf5m7rgsg66nkanfa8xz5chf7rldfj0lld2akm1vs5hqgn"))))
12112 (build-system pyproject-build-system)
12113 (arguments
12114 (list
12115 ;; tests: 54 passed, 1 skipped, 5 deselected, 2 warnings
12116 #:test-flags
12117 #~(list #$@(map (lambda (ls) (string-append "--deselect=stwcs/tests/"
12118 (string-join ls "::")))
12119 ;; Network access is required to reach <mast.stsci.edu>.
12120 '(("test_altwcs.py" "TestAltWCS"
12121 "test_repeated_updatewcs_use_db")
12122 ("test_astrometrydb.py" "TestAstrometryDB"
12123 "test_new_obs")
12124 ("test_astrometrydb.py" "test_db_connection")
12125 ("test_astrometrydb.py" "test_db_timeout")
12126 ;; AssertionError: assert 'GSC240' == None
12127 ("test_astrometrydb.py" "TestAstrometryDB"
12128 "test_success_offsets"))))))
12129 (native-inputs
12130 (list nss-certs-for-test
12131 python-pytest
12132 python-setuptools
12133 python-setuptools-scm))
12134 (propagated-inputs
12135 (list python-astropy
12136 python-lxml
12137 python-numpy
12138 python-requests
12139 python-stsci-tools))
12140 (home-page "https://stwcs.readthedocs.io/en/latest/")
12141 (synopsis "WCS based distortion models and coordinate transformation")
12142 (description
12143 "STWCS provides support for WCS distortion models and coordinate
12144transformation for the imaging instruments on the @acronym{Hubble Space
12145Telescope, HST}).")
12146 (license license:bsd-3)))
12147
12148(define-public python-sunkit-image
12149 (package
12150 (name "python-sunkit-image")
12151 (version "0.7.0")
12152 (source
12153 (origin
12154 (method git-fetch)
12155 (uri (git-reference
12156 (url "https://github.com/sunpy/sunkit-image/")
12157 (commit (string-append "v" version))))
12158 (file-name (git-file-name name version))
12159 (sha256
12160 (base32 "11l6vf62b5pmv687rkr9abkwdwcgj2xqydqczziky6v3114106nf"))))
12161 (build-system pyproject-build-system)
12162 (arguments
12163 (list
12164 #:test-flags
12165 #~(list "--numprocesses" (number->string (parallel-job-count))
12166 ;; One test fails with assertion, probably in NumPy array
12167 ;; precision calculation: np.allclose and
12168 ;; sunpy.map.mapbase.GenericMap are not matched.
12169 "--deselect=sunkit_image/tests/test_radial.py::test_fnrgf")
12170 #:phases
12171 #~(modify-phases %standard-phases
12172 (add-before 'check 'set-home
12173 (lambda _
12174 ;; For tests: Permission denied: '/homeless-shelter'
12175 (setenv "HOME" "/tmp"))))))
12176 (native-inputs
12177 (list nss-certs-for-test
12178 python-dask
12179 python-pytest-astropy
12180 python-pytest-mpl
12181 python-pytest-xdist
12182 python-setuptools
12183 python-setuptools-scm))
12184 (propagated-inputs
12185 (list python-astropy
12186 python-matplotlib
12187 python-numpy
12188 python-scikit-image
12189 python-scipy
12190 python-sunpy))
12191 (home-page "https://github.com/sunpy/sunkit-image/")
12192 (synopsis "Solar Physics image processing toolbox")
12193 (description
12194 "This package provides an image processing toolbox for Solar Physics.")
12195 (license license:bsd-2)))
12196
12197(define-public python-sunkit-magex
12198 (package
12199 (name "python-sunkit-magex")
12200 (version "1.1.0")
12201 (source
12202 (origin
12203 (method url-fetch)
12204 (uri (pypi-uri "sunkit_magex" version))
12205 (sha256
12206 (base32 "16wraf2yrqslik4h3mhj5gcwx7fdg3x9v38swlhcgcyvkcjxbqc2"))))
12207 (build-system pyproject-build-system)
12208 (arguments
12209 (list
12210 #:test-flags
12211 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count))))
12212 #:phases
12213 #~(modify-phases %standard-phases
12214 (add-before 'check 'pre-check
12215 ;; FileNotFoundError: [Errno 2] No such file or directory:
12216 ;; '/homeless-shelter/.config'
12217 (lambda _
12218 (setenv "HOME" "/tmp"))))))
12219 (native-inputs
12220 (list nss-certs-for-test
12221 python-pytest
12222 python-pytest-arraydiff
12223 python-pytest-doctestplus
12224 python-pytest-xdist
12225 python-reproject
12226 python-setuptools
12227 python-setuptools-scm
12228 python-streamtracer
12229 python-sympy))
12230 (propagated-inputs
12231 (list python-astropy
12232 python-numpy
12233 python-scikit-image
12234 python-scipy
12235 python-sunpy))
12236 (home-page "https://docs.sunpy.org/projects/sunkit-magex")
12237 (synopsis "Solar Magnetic field Extrapolation")
12238 (description
12239 "This package provides a set of tools for the modelling of magnetic field
12240data. It is a SunPy affiliated package and is built on top of @code{sunpy}
12241and @code{astropy}.")
12242 ;; This project is Copyright (c) The SunPy Community and licensed under
12243 ;; the terms of the GNU GPL v3+ license. This package is based upon the
12244 ;; Openastronomy packaging guide which is licensed under the BSD 3-clause
12245 ;; license. See the licenses folder for more information.
12246 (license (list license:gpl3+ license:bsd-3))))
12247
12248(define-public python-sunkit-spex
12249 (package
12250 (name "python-sunkit-spex")
12251 (version "0.5.0")
12252 (source
12253 (origin
12254 (method git-fetch)
12255 (uri (git-reference
12256 (url "https://github.com/sunpy/sunkit-spex")
12257 (commit (string-append "v" version))))
12258 (file-name (git-file-name name version))
12259 (sha256
12260 (base32 "0l619zs1ym6jznnbfiisb2qyyiz54xznkgazp4cnnhmcgqh3w93w"))))
12261 (build-system pyproject-build-system)
12262 (arguments
12263 (list
12264 #:test-flags
12265 #~(list "--ignore=sunkit_spex/legacy/"
12266 ;; Network access is required
12267 "--ignore=sunkit_spex/models/physical/tests/test_thermal.py"
12268 "--ignore=sunkit_spex/models/physical/tests/test_thermal.py"
12269 "--ignore=sunkit_spex/models/physical/thermal.py"
12270 #$@(map (lambda (test)
12271 (string-append "--deselect=sunkit_spex/models/"
12272 "physical/tests/" test))
12273 (list "test_albedo.py::test_get_albedo_matrix"
12274 "test_albedo.py::test_albedo_model"
12275 "test_albedo.py::test_albedo_idl"))
12276 ;; astropy.units.errors.UnitConversionError: 'Angstrom' (length)
12277 ;; and '' (dimensionless) are not convertible
12278 (string-append "--deselect="
12279 "sunkit_spex/spectrum/tests/test_spectrum.py"
12280 "::test_gwcs_from_array_1d_wavelength")
12281 (string-append "--deselect="
12282 "sunkit_spex/spectrum/tests/test_spectrum.py"
12283 "::test_gwcs_from_array_3d_cube")
12284 ;; XXX: Maby this: <https://github.com/sunpy/ndcube/issues/913>.
12285 (string-append "--deselect="
12286 "sunkit_spex/models/physical/albedo.py"
12287 "::sunkit_spex.models.physical.albedo"
12288 ".get_albedo_matrix"))
12289 #:phases
12290 #~(modify-phases %standard-phases
12291 (add-after 'unpack 'relax-requirements
12292 ;; See: <https://github.com/sunpy/ndcube/issues/913>, resolved by
12293 ;; <https://github.com/spacetelescope/gwcs/pull/635> and it's part
12294 ;; of [email protected].
12295 (lambda _
12296 (substitute* "pyproject.toml"
12297 (("gwcs>=0.26.0,<1.0.0") "gwcs>=0.26.0,<=1.0.3"))))
12298 (add-before 'check 'set-home
12299 (lambda _
12300 (setenv "HOME" "/tmp"))))))
12301 (native-inputs
12302 (list python-pytest
12303 python-pytest-doctestplus
12304 python-setuptools
12305 python-setuptools-scm))
12306 (propagated-inputs
12307 (list python-gwcs
12308 python-matplotlib
12309 python-ndcube
12310 python-numpy
12311 python-parfive
12312 python-scipy
12313 python-sunpy
12314 python-xarray))
12315 (home-page "https://github.com/sunpy/sunkit-spex")
12316 (synopsis "Solar X-ray spectroscopy tool")
12317 (description
12318 "This package provides a tooling for solar X-ray spectroscopy based on
12319SunPy.")
12320 (license license:bsd-3)))
12321
12322(define-public python-sunpy
12323 (package
12324 (name "python-sunpy")
12325 (version "8.0.0")
12326 (source
12327 (origin
12328 (method git-fetch)
12329 (uri (git-reference
12330 (url "https://github.com/sunpy/sunpy")
12331 (commit (string-append "v" version))))
12332 (file-name (git-file-name name version))
12333 (sha256
12334 (base32 "0q5a57lz63l96lw0j069qjhvw90dgvmc8d7pmvsk54ici6y0a7am"))))
12335 (build-system pyproject-build-system)
12336 (arguments
12337 (list
12338 ;; tests: 2969 passed, 15 skipped, 3 xfailed, 3017 warnings
12339 #:test-flags
12340 #~(list "-m" "not remote_data"
12341 "--pyargs" "sunpy"
12342 "--numprocesses" (number->string (min 8 (parallel-job-count)))
12343 ;; Test introduces a time bomb and fails with error: ValueError:
12344 ;; interpolating from IERS_Auto using predictive values that are
12345 ;; more than 30.0 days old.
12346 "-k" "not test_print_params")
12347 #:phases
12348 #~(modify-phases %standard-phases
12349 (add-after 'unpack 'patch-manifest.in
12350 ;; See: <https://codeberg.org/guix/guix/issues/4393>.
12351 (lambda* (#:key name source inputs #:allow-other-keys)
12352 (let ((port (open-file "MANIFEST.in" "w")))
12353 (for-each
12354 (lambda (file)
12355 (display "include " port)
12356 (display file port)
12357 (display "\n" port))
12358 (find-files "sunpy"))
12359 (close port))))
12360 (add-before 'build 'set-HOME
12361 (lambda _
12362 (setenv "HOME" "/tmp")))
12363 (add-before 'check 'remove-local-source
12364 (lambda _
12365 (delete-file-recursively "sunpy"))))))
12366 (native-inputs
12367 (list nss-certs-for-test
12368 python-aiohttp
12369 python-extension-helpers
12370 python-hvpy
12371 python-jplephem
12372 python-pytest-asdf-plugin
12373 python-pytest-astropy
12374 python-pytest-mock
12375 python-pytest-mpl
12376 python-pytest-run-parallel
12377 python-pytest-xdist
12378 python-responses
12379 python-setuptools
12380 python-setuptools-scm))
12381 (propagated-inputs
12382 (list python-astropy
12383 python-fsspec
12384 python-numpy
12385 python-packaging
12386 python-parfive
12387 python-pyerfa
12388 python-requests
12389 ;; [optional]
12390 opencv
12391 python-aiobotocore
12392 python-asdf
12393 python-asdf-astropy
12394 python-beautifulsoup4
12395 python-boto3
12396 python-cdflib
12397 python-contourpy
12398 python-dask
12399 python-dateutil
12400 python-drms
12401 python-fsspec
12402 python-glymur
12403 python-h5netcdf
12404 python-h5py
12405 python-lxml
12406 python-matplotlib
12407 python-mpl-animators
12408 python-pandas
12409 python-reproject
12410 python-scikit-image
12411 python-scipy
12412 ;; python-spiceypy ;not packaged yet in Guix
12413 python-tqdm
12414 python-zeep))
12415 (home-page "https://sunpy.org")
12416 (synopsis "Python library for Solar Physics")
12417 (description
12418 "SunPy is package for solar physics and is meant to be a free alternative
12419to the @url{https://sohowww.nascom.nasa.gov/solarsoft/, SolarSoft} data
12420analysis environment.
12421
12422It includes an interface for searching and downloading data from multiple data
12423providers, data containers for image and time series data, commonly used solar
12424coordinate frames and associated transformations, as well as other
12425functionality needed for solar data analysis.")
12426 (license license:bsd-2)))
12427
12428;; A bare minimal package, mainly to use in tests and reduce closure size.
12429;; Tests are left out in the main package to slim down native-inputs and
12430;; propagated-inputs.
12431(define-public python-sunpy-minimal
12432 (package/inherit python-sunpy
12433 (name "python-sunpy-minimal")
12434 (arguments
12435 (substitute-keyword-arguments arguments
12436 ((#:tests? #t #t) #f)))
12437 (native-inputs
12438 (list python-setuptools
12439 python-setuptools-scm))
12440 (propagated-inputs
12441 (list python-astropy-minimal
12442 python-fsspec
12443 python-mpl-animators
12444 python-parfive
12445 python-pyerfa
12446 python-requests))))
12447
12448(define-public python-sunpy-soar
12449 (package
12450 (name "python-sunpy-soar")
12451 ;; 1.12.0 (2025-12-10); to support SunPy 8+.
12452 (properties '((commit . "324f4513b15b6770e4d8806fc87b99714c391c87")
12453 (revision . "0")))
12454 (version (git-version "1.12.0"
12455 (assoc-ref properties 'revision)
12456 (assoc-ref properties 'commit)))
12457 (source
12458 (origin
12459 (method git-fetch)
12460 (uri (git-reference
12461 (url "https://github.com/sunpy/sunpy-soar")
12462 (commit (assoc-ref properties 'commit))))
12463 (file-name (git-file-name name version))
12464 (sha256
12465 (base32 "1x07anqpnkw165f6vxphyfi08jdykwplr9153pf2xg4r29q1slkc"))))
12466 (build-system pyproject-build-system)
12467 (arguments
12468 (list
12469 ;; tests: 57 passed, 26 deselected, 1 xfailed, 63 warnings
12470 #:test-flags
12471 ;; Disable tests requiring network access to download test data from
12472 ;; <http://soar.esac.esa.int> and <http://docs.virtualsolar.org>.
12473 #~(list "-k" (string-join
12474 (list "not test_can_handle_with_distance_and_time"
12475 "test_can_handle_with_distance_no_time"
12476 "test_distance_out_of_bounds_warning"
12477 "test_distance_search_insitu"
12478 "test_distance_search_remote_sensing"
12479 "test_distance_time_search"
12480 "test_download_path"
12481 "test_insitu_search"
12482 "test_invalid_detector"
12483 "test_no_instrument"
12484 "test_no_results"
12485 "test_search"
12486 "test_search_detector_instrument_dimension_2"
12487 "test_search_detector_instrument_dimension_4"
12488 "test_search_low_latency"
12489 "test_search_soop"
12490 "test_search_wavelength_detector_column"
12491 "test_soar_server_down"
12492 "test_wavelength_column_wavelength_exists"
12493 "test_wavelength_range"
12494 "test_wavelength_single"
12495 "test_when_soar_provider_passed"
12496 "test_when_wrong_provider_passed")
12497 " and not ")
12498 ;; Skipping registering the sunpy_soar client in favour of the
12499 ;; client included in sunpy >= 8.0. Uninstall or do not import
12500 ;; the sunpy_soar package to remove this warning.
12501 "-W" "ignore::sunpy.util.exceptions.SunpyUserWarning")
12502 #:phases
12503 #~(modify-phases %standard-phases
12504 (add-before 'build 'set-home-env
12505 (lambda _
12506 (setenv "HOME" "/tmp"))))))
12507 (native-inputs
12508 (list nss-certs-for-test
12509 python-matplotlib
12510 python-pytest
12511 python-pytest-doctestplus
12512 python-responses
12513 python-setuptools
12514 python-setuptools-scm))
12515 (propagated-inputs
12516 (list python-astropy
12517 python-requests
12518 python-sunpy))
12519 (home-page "https://docs.sunpy.org/projects/soar")
12520 (synopsis "Solar Orbiter Archive plugin for SunPy")
12521 (description
12522 "This package provides a @code{sunpy} FIDO plugin for accessing data in the
12523@acronym{Solar Orbiter Archive, SOAR}.")
12524 (license license:bsd-2)))
12525
12526(define-public python-sunraster
12527 (package
12528 (name "python-sunraster")
12529 (version "0.7.0")
12530 (source
12531 (origin
12532 (method url-fetch)
12533 (uri (pypi-uri "sunraster" version))
12534 (sha256
12535 (base32 "11i4kssm9r2364s35jjy29y42qlcdxaf8h64l9ggrqgbg02anckz"))))
12536 (build-system pyproject-build-system)
12537 (arguments
12538 (list
12539 #:test-flags
12540 #~(list "--numprocesses" (number->string (parallel-job-count))
12541 "--ignore=docs/data_types/raster.rst"
12542 "--ignore=docs/data_types/spectrogram.rst")
12543 #:phases
12544 #~(modify-phases %standard-phases
12545 (add-before 'build 'set-home-env
12546 (lambda _
12547 ;; PermissionError: [Errno 13] Permission denied:
12548 ;; '/homeless-shelter'
12549 (setenv "HOME" "/tmp"))))))
12550 (native-inputs
12551 (list nss-certs-for-test
12552 python-pytest
12553 python-pytest-astropy
12554 python-pytest-doctestplus
12555 python-pytest-xdist
12556 python-setuptools
12557 python-setuptools-scm
12558 python-sunpy-minimal))
12559 (propagated-inputs
12560 (list python-astropy
12561 python-ndcube
12562 python-numpy))
12563 (home-page "https://docs.sunpy.org/projects/sunraster/en/stable/")
12564 (synopsis "Solar mission spectral data tool")
12565 (description
12566 "sunraster is an Python library that provides the tools to read in and
12567analyze spectrogram data.")
12568 (license license:bsd-2)))
12569
12570(define-public python-suntime
12571 (package
12572 (name "python-suntime")
12573 (version "1.3.2")
12574 (source
12575 (origin
12576 (method git-fetch) ; no tests data in the PyPI tarball
12577 (uri (git-reference
12578 (url "https://github.com/SatAgro/suntime")
12579 (commit (string-append "v" version))))
12580 (file-name (git-file-name name version))
12581 (sha256
12582 (base32 "145jqwnl8frg49981xcli1l13h73m40gkbnpwa88lhva03j7y1k2"))))
12583 (build-system pyproject-build-system)
12584 (arguments
12585 (list #:test-flags #~(list "tests.py")))
12586 (native-inputs
12587 (list python-pytest
12588 python-setuptools))
12589 (propagated-inputs
12590 (list python-dateutil))
12591 (home-page "https://github.com/SatAgro/suntime")
12592 (synopsis "Sunset and sunrise time calculation python library")
12593 (description
12594 "Python library doing sunrise and sunset time calculation. Takes a
12595WGS84 (GPS) latitude/longitude as input as well as an UTC or local datetime
12596object.")
12597 (license license:lgpl3+)))
12598
12599(define-public python-swiftgalaxy
12600 (package
12601 (name "python-swiftgalaxy")
12602 (version "3.0.2")
12603 (source
12604 (origin
12605 (method git-fetch)
12606 (uri (git-reference
12607 (url "https://github.com/SWIFTSIM/swiftgalaxy")
12608 (commit (string-append "v" version))))
12609 (file-name (git-file-name name version))
12610 (sha256
12611 (base32 "1k82fz3m7kjygv111z6n9i5ippkz5x98b3rkz8am76mdkm8hgvl8"))))
12612 (build-system pyproject-build-system)
12613 (arguments
12614 (list #:tests? #f)) ;tests need to download remote datasets
12615 (native-inputs
12616 (list python-setuptools
12617 python-setuptools-scm))
12618 (propagated-inputs
12619 (list python-h5py
12620 python-numpy
12621 python-scipy
12622 python-swiftsimio
12623 python-unyt))
12624 (home-page "https://github.com/SWIFTSIM/swiftgalaxy")
12625 (synopsis "Code abstraction of objects (galaxies) in simulations")
12626 (description
12627 "SWIFTGalaxy is an astrophysics module that extends
12628@url{http://swiftsimio.readthedocs.org/, SWIFTSimIO} tailored to analyses of
12629particles belonging to individual galaxies simulated with
12630@url{https://swift.strw.leidenuniv.nl/, SWIFT}. It inherits from and extends
12631the functionality of the @code{SWIFTDataset}. It understands the content of
12632halo catalogues (supported:
12633@url{https://ui.adsabs.harvard.edu/abs/2019PASA...36...21E/abstract,
12634Velociraptor}, @url{https://caesar.readthedocs.io/en/latest/, Caesar},
12635@url{https://github.com/SWIFTSIM/SOAP, SOAP}) and therefore which particles
12636belong to a galaxy or other group of particles, and its integrated properties.
12637The particles occupy a coordinate frame that is enforced to be consistent,
12638such that particles loaded on-the-fly will match e.g. rotations and
12639translations of particles already in memory. Intuitive masking of particle
12640datasets is also enabled. Utilities to make working in cylindrical and
12641spherical coordinate systems more convenient are also provided. Finally,
12642tools to iterate efficiently over multiple galaxies are also provided.")
12643 (license license:gpl3+)))
12644
12645(define-public python-swiftsimio
12646 (package
12647 (name "python-swiftsimio")
12648 (version "12.1.4")
12649 (source
12650 (origin
12651 (method git-fetch)
12652 (uri (git-reference
12653 (url "https://github.com/SWIFTSIM/swiftsimio")
12654 (commit (string-append "v" version))))
12655 (file-name (git-file-name name version))
12656 (sha256
12657 (base32 "17vjmg94mj3wwiv7jb1ngq9vyyywz3073pz1gcn7riy8y3q24a8j"))))
12658 (build-system pyproject-build-system)
12659 (arguments
12660 (list #:tests? #f)) ;tests need to download remote datasets
12661 (native-inputs
12662 (list python-setuptools))
12663 (propagated-inputs
12664 (list python-astropy
12665 python-h5py
12666 python-numba
12667 python-numpy
12668 python-unyt))
12669 (home-page "https://github.com/SWIFTSIM/swiftsimio")
12670 (synopsis "SWIFTsim I/O routines for Python")
12671 (description
12672 "@code{swiftsimio} is a toolkit for reading data produced by the
12673@url{https://swift.strw.leidenuniv.nl/,SWIFT} astrophysics simulation code.
12674It is used to ensure that all data have a symbolic unit attached, and can be
12675used for visualisation. Another key feature is the use of the cell metadata
12676in @code{SWIFT} snapshots to enable efficient reading of sub-regions.")
12677 (license (list license:lgpl3+
12678 license:gpl3+))))
12679
12680(define-public python-swiftsimsoap
12681 (package
12682 ;; XXX: The project is called SOAP, and it is not present on PyPI, name
12683 ;; package as swiftsimsoap to prevent collusion.
12684 (name "python-swiftsimsoap")
12685 ;; There is not correct version tag or PyPI release, use the latest commit
12686 ;; from master HEAD.
12687 (properties '((commit . "15e5299ae48cf095c35653f3f450e71b22328089")
12688 (revision . "3")))
12689 (version (git-version "1.0.0"
12690 (assoc-ref properties 'revision)
12691 (assoc-ref properties 'commit)))
12692 (source
12693 (origin
12694 (method git-fetch)
12695 (uri (git-reference
12696 (url "https://github.com/SWIFTSIM/SOAP")
12697 (commit (assoc-ref properties 'commit))))
12698 (file-name (git-file-name name version))
12699 (sha256
12700 (base32 "1lnhv5zl7xa8irbkf6q4491lq0h5rfrrlr2fgyxskr5z0ns91x76"))))
12701 (build-system pyproject-build-system)
12702 (arguments
12703 (list
12704 #:test-flags
12705 ;; Tests need wget, potentially to download remove data.
12706 #~(list "--ignore=tests/test_read_vr.py"
12707 "--ignore=tests/test_subhalo_rank.py")))
12708 (native-inputs
12709 (list python-pytest
12710 python-setuptools))
12711 (propagated-inputs
12712 (list python-astropy
12713 python-h5py
12714 python-matplotlib
12715 python-mpi4py
12716 python-numpy
12717 python-psutil
12718 python-scipy
12719 python-unyt
12720 python-virgodc))
12721 (home-page "https://github.com/SWIFTSIM/SOAP")
12722 (synopsis "Spherical Overdensity Aperture Processor")
12723 (description
12724 "This repository contains programs which can be used to compute
12725properties of halos in spherical apertures in
12726@url{https://swift.strw.leidenuniv.nl/, SWIFT} snapshots. The resulting
12727output halo catalogues can be read using the
12728@url{https://swiftsimio.readthedocs.io/en/latest/, swiftsimio} Python
12729package.")
12730 (license (list license:lgpl3+
12731 license:gpl3+))))
12732
12733(define-public python-synthesizar
12734 (package
12735 (name "python-synthesizar")
12736 ;; Not released yet, recommended installation method via git clone.
12737 (properties '((commit . "77aab1767e25bc10a200e1b26270da1de20922c2")
12738 (revision . "0")))
12739 (version (git-version "0.0.0"
12740 (assoc-ref properties 'revision)
12741 (assoc-ref properties 'commit)))
12742 (source
12743 (origin
12744 (method git-fetch)
12745 (uri (git-reference
12746 (url "https://github.com/wtbarnes/synthesizAR")
12747 (commit (assoc-ref properties 'commit))))
12748 (file-name (git-file-name name version))
12749 (sha256
12750 (base32 "1yakp5bpjws0x9y35wv16q378bgz02jmsk9vrzwqw2003r4vnw1n"))))
12751 (build-system pyproject-build-system)
12752 (arguments
12753 (list
12754 #:phases
12755 #~(modify-phases %standard-phases
12756 (delete 'sanity-check)
12757 (add-before 'check 'pre-check
12758 (lambda _
12759 (setenv "HOME" "/tmp"))))))
12760 (native-inputs
12761 (list nss-certs-for-test
12762 python-pytest
12763 python-pytest-astropy
12764 python-setuptools
12765 python-setuptools-scm))
12766 (propagated-inputs
12767 (list python-asdf
12768 python-matplotlib
12769 python-ndcube
12770 python-scipy
12771 python-sunpy
12772 python-xarray
12773 python-zarr
12774 ;; [optional]
12775 python-aiapy
12776 python-dask
12777 python-distributed
12778 python-ebtelplusplus
12779 python-fiasco
12780 python-plasmapy
12781 python-pydrad
12782 python-sunkit-image
12783 python-xrtpy))
12784 (home-page "https://synthesizar.readthedocs.io/en/latest/")
12785 (synopsis "Optically-thin emission forward modeling")
12786 (description
12787 "synthesizAR is a Python package for building synthetic solar/stellar
12788active regions comprised of coronal loops. The package allows one to build up
12789a forward-modeled observation of an active region, starting with an observed
12790magnetogram and ending with an synthetic observational data product.
12791
12792synthesizAR is designed to be modular and extensible. Extensions for new
12793hydrodynamic codes, emission models, or instruments can be easily dropped in.
12794The goal of synthesizAR is to provide an easy-to-use and efficient pipeline
12795for forward-modeling hydrodynamic results from end to end.")
12796 (license license:bsd-3)))
12797
12798(define-public python-synphot
12799 (package
12800 (name "python-synphot")
12801 (version "1.7.0")
12802 (source
12803 (origin
12804 (method git-fetch)
12805 (uri (git-reference
12806 (url "https://github.com/spacetelescope/synphot_refactor")
12807 (commit version)))
12808 (file-name (git-file-name name version))
12809 (sha256
12810 (base32 "0dxfwhxv8wnnksj3hgh0k4rqzqwvjndwncbqfzp234hqg9isyz0q"))))
12811 (build-system pyproject-build-system)
12812 (arguments
12813 (list
12814 ;; tests: 410 passed, 29 skipped, 4 xfailed
12815 #:test-flags
12816 #~(list "--pyargs" "synphot"
12817 ;; Not harmful deprecation warning as synphot is compatible with
12818 ;; specutils now, remove or silent error in the next refresh
12819 ;; cycle.
12820 ;;
12821 ;; See: <https://github.com/spacetelescope/synphot_refactor/issues/411>.
12822 "-W" "ignore::astropy.utils.exceptions.AstropyDeprecationWarning")))
12823 (native-inputs
12824 (list python-pytest
12825 python-pytest-astropy
12826 python-setuptools
12827 python-setuptools-scm))
12828 (propagated-inputs
12829 (list python-astropy
12830 python-dust-extinction
12831 python-numpy
12832 python-scipy
12833 python-specutils))
12834 (home-page "https://github.com/spacetelescope/synphot_refactor")
12835 (synopsis "Synthetic photometry using Astropy")
12836 (description
12837 "This package provides a replacement for IRAF STSDAS SYNPHOT and ASTROLIB
12838PYSYNPHOT, utilizing Astropy and covering the non-instrument specific portions
12839of the old packages.")
12840 (license license:bsd-3)))
12841
12842(define-public python-tables-io
12843 (package
12844 (name "python-tables-io")
12845 (version "1.1.2")
12846 (source
12847 (origin
12848 (method git-fetch)
12849 (uri (git-reference
12850 (url "https://github.com/LSSTDESC/tables_io")
12851 (commit (string-append "v" version))))
12852 (file-name (git-file-name name version))
12853 (sha256
12854 (base32 "0yi20hjxmh1vgi8l74pinqvw9fmn2qz6sfkf0khrg3sillwbpa9q"))))
12855 (build-system pyproject-build-system)
12856 (native-inputs
12857 (list python-mpi4py
12858 python-pytest
12859 python-setuptools
12860 python-setuptools-scm))
12861 (propagated-inputs
12862 (list python-click
12863 python-deprecated
12864 python-h5py
12865 python-numpy
12866 python-pandas
12867 python-tables
12868 ;; [optional]
12869 python-astropy
12870 python-pyarrow))
12871 (home-page "https://github.com/LSSTDESC/tables_io")
12872 (synopsis "Input/output and conversion functions for tabular data")
12873 (description
12874 "@code{tables_io} provides an interface for a variety of non-ASCII file
12875formats that are commonly used within the @url{https://lsstdesc.org/, LSST
12876DESC collaboration}. It allows users to read in data from multiple types of
12877files through one convenient interface.")
12878 (license license:expat)))
12879
12880(define-public python-tweakwcs
12881 (package
12882 (name "python-tweakwcs")
12883 (version "0.9.2")
12884 (source
12885 (origin
12886 (method git-fetch)
12887 (uri (git-reference
12888 (url "https://github.com/spacetelescope/tweakwcs")
12889 (commit version)))
12890 (file-name (git-file-name name version))
12891 (sha256
12892 (base32 "0x1f6d7rw51hgg3bpb8dy7v57mnf4vhr7b1m1fz2yl1j0bx8zvlp"))))
12893 (build-system pyproject-build-system)
12894 (native-inputs
12895 (list python-pytest
12896 python-scipy-minimal
12897 python-setuptools
12898 python-setuptools-scm))
12899 (propagated-inputs
12900 (list python-astropy
12901 python-gwcs
12902 python-numpy
12903 python-packaging
12904 python-spherical-geometry
12905 python-stsci-imagestats
12906 python-stsci-stimage))
12907 (home-page "https://tweakwcs.readthedocs.io/en/latest/")
12908 (synopsis
12909 "Algorithms for matching and aligning catalogs and for tweaking the WCS")
12910 (description
12911 "@code{tweakwcs} is a package that provides core algorithms for computing
12912and applying corrections to @code{WCS} objects such as to minimize mismatch
12913between image and reference catalogs. Currently only aligning images with
12914@code{FITS WCS} and @code{JWST gWCS} are supported.")
12915 (license license:bsd-3)))
12916
12917(define-public python-utilities-awetzel
12918 (package
12919 (name "python-utilities-awetzel")
12920 (version "1.0.4")
12921 (source
12922 (origin
12923 (method url-fetch)
12924 (uri (pypi-uri "utilities_awetzel" version))
12925 (sha256
12926 (base32 "11q9kg6yfrkrjxkdw7fmilcfjsrhcdd885sc5z4f8nwy3x7vnrph"))))
12927 (build-system pyproject-build-system)
12928 (arguments
12929 (list #:tests? #f)) ;no tests
12930 (native-inputs
12931 (list python-setuptools))
12932 (propagated-inputs
12933 (list python-h5py
12934 python-matplotlib
12935 python-numpy
12936 python-scipy))
12937 (home-page "https://bitbucket.org/awetzel/utilities")
12938 (synopsis "General routines for analyzing astrophysical data sets")
12939 (description
12940 "Python package of utility functions that are useful in analyzing various
12941datasets, in particular, catalogs of particles or galaxies/halos from
12942cosmological simulations.")
12943 (license license:expat)))
12944
12945(define-public python-velociraptor
12946 (package
12947 (name "python-velociraptor")
12948 (version "0.21.0")
12949 (source
12950 (origin
12951 (method git-fetch)
12952 (uri (git-reference
12953 (url "https://github.com/SWIFTSIM/velociraptor-python")
12954 (commit (string-append "v" version))))
12955 (file-name (git-file-name name version))
12956 (sha256
12957 (base32 "038k3wp5z22mf73a20rjm5l87yrzmwk8p99jj014s47drixgk9k4"))))
12958 (build-system pyproject-build-system)
12959 (arguments
12960 (list
12961 ;; See: <https://github.com/SWIFTSIM/velociraptor-python/issues/117>.
12962 #:tests? #f
12963 #:phases
12964 #~(modify-phases %standard-phases
12965 (add-before 'sanity-check 'set-home
12966 (lambda _
12967 (setenv "HOME" "/tmp"))))))
12968 (native-inputs
12969 (list python-setuptools))
12970 (propagated-inputs
12971 (list python-astropy
12972 python-h5py
12973 python-numpy
12974 python-swiftsimio
12975 python-unyt))
12976 (home-page "https://github.com/SWIFTSIM/velociraptor-python")
12977 (synopsis "VELOCIraptor catalogue reading routines")
12978 (description
12979 " VELOCIraptor-Python is a python toolkit for reading
12980@url{http://github.com/pelahi/velociraptor-stf, VELOCIraptor} outputs, with a
12981particular focus on integration with the
12982@url{https://github.com/SWIFTSIM/SWIFT, SWIFT} cosmological simulation code.
12983
12984It allows for automatic association of symbolic units (using unyt) with halo
12985properties, extraction of individual haloes to a SWIFTsimIO dataset, and
12986includes tools to help create both publication-ready and quick figures.")
12987 (license license:gpl3+)))
12988
12989(define-public python-viresclient
12990 (package
12991 (name "python-viresclient")
12992 (version "0.16.0")
12993 (source
12994 (origin
12995 (method git-fetch)
12996 (uri (git-reference
12997 (url "https://github.com/ESA-VirES/VirES-Python-Client")
12998 (commit (string-append "v" version))))
12999 (file-name (git-file-name name version))
13000 (sha256
13001 (base32 "1plnjb6x8221q5ivnzjrvqvig7lb54rdvywzcg04msc3v3kwmdk6"))))
13002 (build-system pyproject-build-system)
13003 ;; tests: 9 passed
13004 (native-inputs
13005 (list python-flit-core
13006 python-pytest))
13007 (propagated-inputs
13008 (list python-cdflib
13009 python-h5py
13010 python-jinja2
13011 python-netcdf4
13012 python-pandas
13013 python-requests
13014 python-tables
13015 python-tqdm
13016 python-xarray))
13017 (home-page "https://viresclient.readthedocs.io/en/latest/")
13018 (synopsis "Python client for interacting with a VirES server")
13019 (description
13020 "This package provides a Python client for interacting with a
13021@code{VirES} server, of which there are two: VirES for
13022@url{https://vires.services, Swarm} and VirES for
13023@url{https://aeolus.services, Aeolus}")
13024 (license license:expat)))
13025
13026(define-public python-virgodc
13027 (package
13028 (name "python-virgodc")
13029 (version "1.0.5")
13030 (source
13031 (origin
13032 (method git-fetch)
13033 (uri (git-reference
13034 (url "https://github.com/jchelly/VirgoDC")
13035 (commit (string-append "v" version))))
13036 (file-name (git-file-name name version))
13037 (sha256
13038 (base32 "1axhiiafvbld4k6pgid22drhhpxfpjyy0abcczmcggv5m5ghxqc2"))))
13039 (build-system pyproject-build-system)
13040 (arguments
13041 (list
13042 #:phases
13043 #~(modify-phases %standard-phases
13044 (add-after 'unpack 'chdir-python
13045 (lambda _
13046 (chdir "python"))))))
13047 (native-inputs
13048 (list python-pytest
13049 python-setuptools
13050 python-setuptools-scm))
13051 (propagated-inputs
13052 (list python-h5py
13053 python-mpi4py
13054 python-numpy))
13055 (home-page "https://github.com/jchelly/VirgoDC")
13056 (synopsis "Read routines and examples for the Virgo Data Centre")
13057 (description
13058 "This package provides facilities for reading various formats used to
13059store snapshots, group catalogues and merger trees in Virgo Consortium
13060simulations, including older binary formats which can otherwise be difficult
13061to deal with.
13062
13063It also provides a collection of MPI parallel algorithms which can be useful
13064for dealing with particle data and a few related utility functions.")
13065 (license license:gpl3)))
13066
13067(define-public python-wiimatch
13068 (package
13069 (name "python-wiimatch")
13070 (version "0.3.2")
13071 (source (origin
13072 (method url-fetch)
13073 (uri (pypi-uri "wiimatch" version))
13074 (sha256
13075 (base32
13076 "15kq7z30m9i286ncs9xvpaq3dq1p5fa47jz21prq146qwr7j6dm8"))))
13077 (build-system pyproject-build-system)
13078 (propagated-inputs (list python-numpy python-scipy))
13079 (native-inputs (list python-pytest python-pytest-doctestplus
13080 python-setuptools-scm))
13081 (home-page "https://github.com/spacetelescope/wiimatch")
13082 (synopsis
13083 "Optimal matching of weighted N-dimensional image intensity data")
13084 (description
13085 "@code{wiimatch} is a package that provides core computational algorithms
13086for optimal @code{matching} of weighted N-dimensional image intensity data
13087using (multivariate) polynomials.")
13088 (license license:bsd-3)))
13089
13090(define-public python-xrtpy
13091 (package
13092 (name "python-xrtpy")
13093 (version "0.5.1")
13094 (source
13095 (origin
13096 (method git-fetch)
13097 (uri (git-reference
13098 (url "https://github.com/HinodeXRT/xrtpy")
13099 (commit (string-append "v" version))))
13100 (file-name (git-file-name name version))
13101 (sha256
13102 (base32 "0mqqp4jnypnjiblcf658i27j38wdf6cqmggpsnnhpr07brngy40c"))))
13103 (build-system pyproject-build-system)
13104 (arguments
13105 (list
13106 ;; tests: 818 passed, 2 skipped, 995 deselected
13107 #:test-flags
13108 ;; Remote data is required to run these tests.
13109 #~(list "-k" (string-join
13110 (list "not test_EffectiveArea_contamination_on_CCD"
13111 "test_EffectiveArea_contamination_on_filter1"
13112 "test_EffectiveArea_contamination_on_filter2"
13113 "test_EffectiveArea_filter_name"
13114 "test_astropy_time_input"
13115 "test_binning_case"
13116 "test_ccd_contam_data_loads"
13117 "test_deconvolve"
13118 "test_effective_area_compare_idl"
13119 "test_lightleak"
13120 "test_response_length_matches_filters"
13121 "test_responses_for_different_abundance_models"
13122 "test_responses_for_different_dates"
13123 "test_shape_and_units_consistency"
13124 "test_standard_case"
13125 "test_temperature_response")
13126 " and not "))
13127 #:phases
13128 #~(modify-phases %standard-phases
13129 (add-before 'check 'pre-check
13130 (lambda _
13131 (setenv "HOME" "/tmp"))))))
13132 (native-inputs
13133 (list python-pytest
13134 python-pytest-astropy
13135 python-setuptools
13136 python-setuptools-scm))
13137 (propagated-inputs
13138 (list python-astropy
13139 python-matplotlib
13140 python-numpy
13141 python-scikit-image
13142 python-scipy
13143 python-sunpy))
13144 (home-page "https://xrtpy.readthedocs.io/en/latest/")
13145 (synopsis "X-Ray Telescope data analyzing Python library")
13146 (description
13147 "XRTpy is a Python package being developed for the analysis of
13148observations made by the @url{https://xrt.cfa.harvard.edu/, X-Ray
13149Telescope} (XRT) on the Hinode spacecraft.")
13150 (license license:bsd-2)))
13151
13152(define-public python-yt
13153 (package
13154 (name "python-yt")
13155 (version "4.4.2")
13156 (source
13157 (origin
13158 (method url-fetch)
13159 (uri (pypi-uri "yt" version))
13160 (sha256
13161 (base32 "02rvs1555y482vf54ivl5wjiziskybnmbxbq6xn46fslqa4km270"))))
13162 (build-system pyproject-build-system)
13163 (arguments
13164 (list
13165 #:build-backend "setuptools.build_meta"
13166 #:test-flags
13167 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count)))
13168 ;; Failed: 'yield' keyword is allowed in fixtures, but not in
13169 ;; tests (test_recipe)
13170 "--ignore=doc/source/cookbook/tests/test_cookbook.py"
13171 "-k" (string-join
13172 ;; Tests requiring networking.
13173 (list "not test_load_sample_timeout"
13174 "test_unknown_filename"
13175 "test_typo_filename"
13176 "test_data_dir_broken"
13177 "test_registry_byte_size_dtype"
13178 "test_registry_byte_size_sign"
13179 ;; AssertionError: Arrays are not equal
13180 "test_field_cut_off_axis_octree"
13181 ;; UserWarning: pkg_resources is deprecated as an
13182 ;; API
13183 "test_glue_data_object")
13184 " and not "))
13185 #:phases
13186 #~(modify-phases %standard-phases
13187 (add-before 'check 'prepare-test-environment
13188 (lambda _
13189 (setenv "HOME" "/tmp")
13190 (invoke "python" "setup.py" "build_ext" "--inplace"))))))
13191 (native-inputs
13192 (list nss-certs-for-test
13193 python-cython
13194 python-pyaml
13195 python-pytest
13196 python-pytest-mpl
13197 python-pytest-xdist
13198 python-setuptools
13199 python-sympy))
13200 (propagated-inputs
13201 (list python-cmyt
13202 python-ewah-bool-utils
13203 python-ipywidgets
13204 python-matplotlib
13205 python-more-itertools
13206 python-numpy
13207 python-packaging
13208 python-pillow
13209 python-tomli-w
13210 python-tqdm
13211 python-unyt
13212 ;; [optional]
13213 ;; python-arm-pyart ; not packed yet
13214 ;; python-f90nml
13215 ;; python-firefly
13216 ;; python-miniball
13217 ;; python-pyx
13218 ;; python-ratarmount
13219 python-astropy
13220 python-cartopy
13221 python-glue-core
13222 python-h5py
13223 python-netcdf4
13224 python-pandas
13225 python-pooch
13226 python-regions
13227 python-requests
13228 python-xarray))
13229 (home-page "http://yt-project.org/")
13230 (synopsis "Analyzing and visualizing volumetric data framework")
13231 (description
13232 "This package provides a structured, variable-resolution meshes,
13233 unstructured meshes, and discrete or sampled data such as particles. Focused on
13234 driving physically-meaningful inquiry, it has been applied in domains such as
13235 astrophysics, seismology, nuclear engineering, molecular dynamics, and
13236 oceanography.")
13237 (license (list
13238 ;; COPYING.txt: for Python code.
13239 ;;
13240 ;; yt uses a shared copyright model. Each contributor maintains
13241 ;; copyright over their contributions to yt. But, it is important
13242 ;; to note that these contributions are typically only changes to
13243 ;; the repositories. Thus, the yt source code, in its entirety is
13244 ;; not the copyright of any single person or institution. Instead,
13245 ;; it is the collective copyright of the entire yt Development
13246 ;; Team. If individual contributors want to maintain a record of
13247 ;; what changes/contributions they have specific copyright on,
13248 ;; they should indicate their copyright in the commit message of
13249 ;; the change, when they commit the change to one of the yt
13250 ;; repositories.
13251 license:bsd-3
13252 ;; yt/frontends/artio/artio_headers/LICENSE: for C code.
13253 license:lgpl3))))
13254
13255(define-public python-yt-astro-analysis
13256 ;; XXX: The project might be unmaintained.
13257 (package
13258 (name "python-yt-astro-analysis")
13259 (version "1.1.4")
13260 (source
13261 (origin
13262 (method url-fetch)
13263 (uri (pypi-uri "yt_astro_analysis" version))
13264 (sha256
13265 (base32 "0dy96084wvb7ccnnp22b6wacyjzn1n62i4mwq0q7nkp90bzx44a2"))))
13266 (build-system pyproject-build-system)
13267 (arguments
13268 ;; Tests are broken during collection time: RuntimeWarning: numpy.ndarray
13269 ;; size changed, may indicate binary incompatibility. Expected 16 from C
13270 ;; header, got 96 from PyObject.
13271 (list #:tests? #f))
13272 (native-inputs
13273 (list python-cython
13274 python-pytest
13275 python-setuptools))
13276 (propagated-inputs
13277 (list python-h5py
13278 python-numpy
13279 python-packaging
13280 python-yt))
13281 (home-page "https://github.com/yt-project/yt_astro_analysis")
13282 (synopsis "YT astrophysical analysis modules")
13283 (description
13284 "This package provides an @code{yt} extension package for astrophysical
13285analysis. This package contains functionality for:
13286
13287@itemize
13288@item halo finding and analysis
13289@item lightcones
13290@item planning cosmological simulations for making lightcones and lightrays
13291@item exporting to the RADMC-3D radiation transport code
13292@item creating PPV FITS cubes
13293@end itemize")
13294 (license (list license:bsd-3 license:lgpl3))))
13295
13296(define-public python-zodipy
13297 (package
13298 (name "python-zodipy")
13299 (version "1.1.5")
13300 (source
13301 (origin
13302 (method git-fetch)
13303 (uri (git-reference
13304 ;; XXX: Upstream is not stable with version style
13305 ;; <https://github.com/Cosmoglobe/zodipy/issues/48>
13306 (url "https://github.com/Cosmoglobe/zodipy")
13307 (commit (string-append "v" version))))
13308 (file-name (git-file-name name version))
13309 (sha256
13310 (base32 "13l1bhzvgzcbj8wsx4m87v2ys32x23rkm66y1fh6z08h72w3zrqq"))))
13311 (build-system pyproject-build-system)
13312 (native-inputs
13313 (list python-poetry-core
13314 python-pytest))
13315 (propagated-inputs
13316 (list python-astropy
13317 python-jplephem
13318 python-numpy
13319 python-scipy))
13320 (home-page "https://github.com/Cosmoglobe/zodipy")
13321 (synopsis "Zodiacal emission simulations")
13322 (description
13323 "ZodiPy is an package for simulating zodiacal light in intensity for
13324arbitrary solar system observers.")
13325 (license license:gpl3+)))
13326
13327(define-public qfits
13328 (package
13329 (name "qfits")
13330 (version "6.2.0")
13331 (source
13332 (origin
13333 (method url-fetch)
13334 (uri
13335 (string-append "ftp://ftp.eso.org/pub/qfits/qfits-" version ".tar.gz"))
13336 (sha256
13337 (base32 "0m2b21mim3a7wgfg3ph2w5hv7mdvr03jmmhzipc0wcahijglcw9j"))))
13338 (build-system gnu-build-system)
13339 (arguments
13340 (list
13341 #:make-flags
13342 #~(list (string-append "CFLAGS=-g -O2"
13343 " -Wno-error=implicit-function-declaration"))))
13344 (home-page "https://www.eso.org/sci/software/eclipse/qfits/")
13345 (synopsis "C library offering access to astronomical FITS files")
13346 (description
13347 "@code{qfits} is a C library giving access to FITS file internals, both
13348for reading and writing.")
13349 (license license:gpl2+)))
13350
13351(define-public scamp
13352 (package
13353 (name "scamp")
13354 (version "2.15.0")
13355 (source
13356 (origin
13357 (method git-fetch)
13358 (uri (git-reference
13359 (url "https://github.com/astromatic/scamp")
13360 (commit (string-append "v" version))))
13361 (file-name (git-file-name name version))
13362 (sha256
13363 (base32 "12iccq0b9g8pmranja5rmayrlxbayy1h6w6v9grs764gf85g2wql"))))
13364 (build-system gnu-build-system)
13365 (arguments
13366 (list
13367 #:configure-flags
13368 #~(list "CPPFLAGS=-fcommon"
13369 "--enable-openblas"
13370 "--enable-plplot"
13371 (string-append "--with-curl-incdir="
13372 #$(this-package-input "curl") "/include")
13373 (string-append "--with-curl-libdir="
13374 #$(this-package-input "curl") "/lib")
13375 (string-append "--with-fftw-incdir="
13376 #$(this-package-input "fftwf") "/include")
13377 (string-append "--with-fftw-libdir="
13378 #$(this-package-input "fftwf") "/lib")
13379 (string-append "--with-openblas-incdir="
13380 #$(this-package-input "openblas") "/include")
13381 (string-append "--with-openblas-libdir="
13382 #$(this-package-input "openblas") "/lib")
13383 (string-append "--with-plplot-incdir="
13384 #$(this-package-input "plplot") "/include")
13385 (string-append "--with-plplot-libdir="
13386 #$(this-package-input "plplot") "/lib"))))
13387 (native-inputs
13388 (list autoconf
13389 automake
13390 libtool
13391 pkg-config
13392 python-astropy
13393 python-numpy
13394 python-wrapper))
13395 (inputs
13396 (list curl fftwf openblas plplot))
13397 (home-page "https://www.astromatic.net/software/scamp/")
13398 (synopsis "Compute astrometric solutions")
13399 (description
13400 "@acronym{Software for Calibrating AstroMetry and Photometry,SCAMP} is a
13401software that computes astrometric projection parameters from source
13402catalogues derived from @url{http://fits.gsfc.nasa.gov/,FITS} images. The
13403computed solution is expressed according to the
13404@url{http://www.atnf.csiro.au/people/mcalabre/WCS/index.html,WCS} standard.
13405The main features of SCAMP are:
13406
13407@itemize
13408@item compatibility with @code{SExtractor} FITS or Multi-Extension FITS
13409catalogue format in input
13410@item generation of WCS-compliant and @code{SWarp}-compatible FITS image
13411headers in output
13412@item automatic grouping of catalogues on the sky
13413@item selectable on-line astrometric reference catalogue
13414@item automatic determination of scale, position angle, flipping and
13415coordinate shift using fast pattern-matching
13416@item various astrometric calibration modes for single detectors and detector
13417arrays
13418@item combined astrometric solutions for multi-channel/instrument surveys
13419@item highly configurable astrometric distortion polynomials
13420@item correction for differential chromatic refraction
13421@item proper motion measurements
13422@item multi-threaded code that takes advantage of multiple processors
13423@item @url{http://www.ivoa.net/documents/VOTable,VOTable}-compliant XML output
13424of meta-data
13425@item @url{http://en.wikipedia.org/wiki/XSLT,XSLT} filter sheet provided for
13426convenient access to metadata from a regular web browser
13427@end itemize")
13428 (license license:gpl3+)))
13429
13430(define-public sextractor
13431 (package
13432 (name "sextractor")
13433 (version "2.28.2")
13434 (source
13435 (origin
13436 (method git-fetch)
13437 (uri (git-reference
13438 (url "https://github.com/astromatic/sextractor")
13439 (commit version)))
13440 (file-name (git-file-name name version))
13441 (sha256
13442 (base32 "05i2q1665y4hv0dymgcwraq7ixwr706gwfb88vyvi8hazgym2iaq"))))
13443 (build-system gnu-build-system)
13444 (arguments
13445 (list
13446 #:configure-flags
13447 #~(list
13448 "--enable-openblas"
13449 (string-append "--with-cfitsio-incdir="
13450 #$(this-package-input "cfitsio") "/include")
13451 (string-append "--with-cfitsio-libdir="
13452 #$(this-package-input "cfitsio") "/lib")
13453 (string-append "--with-fftw-incdir="
13454 #$(this-package-input "fftwf") "/include")
13455 (string-append "--with-fftw-libdir="
13456 #$(this-package-input "fftwf") "/lib")
13457 (string-append "--with-openblas-incdir="
13458 #$(this-package-input "openblas") "/include")
13459 (string-append "--with-openblas-libdir="
13460 #$(this-package-input "openblas") "/lib"))))
13461 (native-inputs
13462 (list autoconf automake libtool))
13463 (inputs
13464 (list cfitsio fftwf openblas))
13465 (home-page "https://www.astromatic.net/software/sextractor")
13466 (synopsis "Extract catalogs of sources from astronomical images")
13467 (description
13468 "SExtractor is a program that builds a catalogue of objects from an
13469astronomical image. Although it is particularly oriented towards reduction of
13470large scale galaxy-survey data, it can perform reasonably well on moderately
13471crowded star fields.")
13472 (license license:gpl3+)))
13473
13474(define-public sgp4
13475 ;; Version tag v1.0 is dated to <2021-01-11>, use the latest commit instead.
13476 (let ((commit "6a448b4850e5fbf8c1ca03bb5f6013a9fdc1fd91")
13477 (revision "2"))
13478 (package
13479 (name "sgp4")
13480 (version (git-version "1.0" revision commit))
13481 (source
13482 (origin
13483 (method git-fetch)
13484 (uri (git-reference
13485 (url "https://github.com/dnwrnr/sgp4")
13486 (commit commit)))
13487 (file-name (git-file-name name version))
13488 (sha256
13489 (base32 "15q8sain87cbppmzq66y6gp6bvm3kdd1bcchrl59rcvjp0w51wl1"))))
13490 (build-system cmake-build-system)
13491 (arguments
13492 (list
13493 ;; FIXME: Tests evaluated via runtest binary, but it's failing even
13494 ;; when SGP4-VER.TLE file was copied next to it during install phase.
13495 ;;
13496 ;; There are 2 more binaries are created after build phase -
13497 ;; passpredict and sattrack which are failing to execute after
13498 ;; install, strace output:
13499 ;;
13500 ;; strace: exec: Exec format error
13501 ;;
13502 #:tests? #f))
13503 (home-page "https://github.com/dnwrnr/sgp4")
13504 (synopsis "Simplified perturbations models library")
13505 (description
13506 "This is a library implementing the simplified perturbations model.
13507It can be used to calculate the trajectory of satellites.")
13508 (license license:asl2.0))))
13509
13510(define-public siril
13511 (package
13512 (name "siril")
13513 (version "1.4.4")
13514 (source
13515 (origin
13516 (method git-fetch)
13517 (uri (git-reference
13518 (url "https://gitlab.com/free-astro/siril")
13519 (commit version)))
13520 (sha256
13521 (base32 "00js51nnb5kwm6p9lp2s8yl0y2cjiy1zbddxsq4y8mccydwvy0aj"))
13522 (file-name (git-file-name name version))
13523 (modules '((guix build utils)))
13524 (snippet
13525 #~(begin
13526 ;; Remove bundled libraries.
13527 (for-each delete-file-recursively
13528 (list "subprojects/healpix_cxx"
13529 ;; TODO: Package htmesh, it's included in KSarts
13530 ;; - URL: <https://invent.kde.org/education/kstars>
13531 ;; - File: <kstars/htmesh>
13532 ;; "subprojects/htmesh"
13533 ;;
13534 ;; TODO: Package kplot - Cairo plotting library
13535 ;; <https://github.com/kristapsdz/kplot>.
13536 ;; "subprojects/kplot"
13537 "subprojects/wcslib"
13538 "subprojects/librtprocess"
13539 "subprojects/yyjson"))))))
13540 (build-system meson-build-system)
13541 (arguments
13542 (list
13543 #:glib-or-gtk? #t
13544 #:configure-flags
13545 #~(list "--wrap-mode=nodownload")
13546 #:imported-modules `(,@%meson-build-system-modules
13547 (guix build glib-or-gtk-build-system))
13548 #:modules '((guix build meson-build-system)
13549 ((guix build glib-or-gtk-build-system)
13550 #:prefix glib-or-gtk:)
13551 (guix build utils))
13552 #:phases
13553 #~(modify-phases %standard-phases
13554 (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
13555 (assoc-ref glib-or-gtk:%standard-phases
13556 'generate-gdk-pixbuf-loaders-cache-file))
13557 (add-after 'install 'wrap-program
13558 (lambda* _
13559 (wrap-program (string-append #$output "/bin/siril")
13560 ;; Wrapping GDK_PIXBUF_MODULE_FILE to load icons in pure
13561 ;; environments.
13562 `("GDK_PIXBUF_MODULE_FILE" =
13563 (,(getenv "GDK_PIXBUF_MODULE_FILE")))))))))
13564 (native-inputs
13565 (list cmake-minimal
13566 git
13567 (list glib "bin") ; for glib-compile-resources
13568 libconfig
13569 pkg-config))
13570 (inputs
13571 (list bash-minimal ;for wrap-program
13572 cfitsio
13573 curl
13574 exiv2
13575 ffmpeg
13576 ffms2
13577 fftwf
13578 gdk-pixbuf
13579 gsl
13580 gtk+
13581 gtksourceview-4
13582 healpix-cxx
13583 json-glib
13584 lcms
13585
13586 ;; XXX: It downloads script and data during start up, check if they
13587 ;; may be presented as packages with wrapped environment variables
13588 ;; src/io/siril_git.c
13589 ;; <https://gitlab.com/free-astro/siril-scripts>
13590 ;; <https://gitlab.com/free-astro/siril-spcc-database>.
13591 libgit2
13592
13593 libheif
13594 libjxl
13595 libraw
13596 (librsvg-for-system)
13597 librtprocess
13598 libxisf
13599 lz4
13600 opencv
13601 pugixml
13602 wcslib
13603 yyjson))
13604 (home-page "https://siril.org/")
13605 (synopsis "Image processing software for amateur astronomy")
13606 (description
13607 "This package provides an astronomical image processing tool - SIRIL. It
13608is specially tailored for noise reduction and improving the signal/noise ratio
13609of an image from multiple captures, as required in astronomy. SIRIL can align
13610automatically or manually, stack and enhance pictures from various file
13611formats, even image sequence files (films and SER files). It works well with
13612limited system resources, like in embedded platforms, but is also very fast
13613when run on more powerful computers and provides conversion to FITS from a
13614large number of image formats.")
13615 (license license:gpl3+)))
13616
13617(define-public ska-sdp-func
13618 (package
13619 (name "ska-sdp-func")
13620 (version "1.2.2")
13621 (source
13622 (origin
13623 (method git-fetch)
13624 (uri (git-reference
13625 (url "https://gitlab.com/ska-telescope/sdp/ska-sdp-func")
13626 (commit version)))
13627 (sha256
13628 (base32 "0blk4sfy2kl544d7iahcd9awvlg3xvwcm5qmis6h4xiw7xgj7psf"))
13629 (file-name (git-file-name name version))))
13630 (build-system cmake-build-system)
13631 (arguments
13632 (list
13633 #:configure-flags
13634 #~(list "-DBUILD_INFO=ON"
13635 "-DFIND_CUDA=OFF")
13636 #:phases
13637 #~(modify-phases %standard-phases
13638 (add-after 'unpack 'disable-failing-tests
13639 (lambda _
13640 (substitute* "tests/CMakeLists.txt"
13641 ;; Two tests fail with SegFAilt: "Cannot allocate GPU memory:
13642 ;; The processing function library was compiled without CUDA
13643 ;; support".
13644 (("clean") "# clean")
13645 ;; test_weighting fails with error: sdp_weighting_uniform:
13646 ;; Expected 'output_weight' not to be read-only.
13647 (("visibility") "# visibility")))))))
13648 (home-page "https://developer.skao.int/projects/ska-sdp-func/en/latest/")
13649 (synopsis "SDP Processing Function Library")
13650 (description
13651 "This package provides a Square Kilometre Array (SKA) Science Data
13652Processor (SDP) function library for radio astronomy.")
13653 (license license:bsd-3)))
13654
13655(define-public python-ska-sdp-func
13656 (package/inherit ska-sdp-func
13657 (name "python-ska-sdp-func")
13658 (build-system pyproject-build-system)
13659 (arguments
13660 (list
13661 #:test-flags
13662 #~(list
13663 ;; Ignore tests requiring CUDA.
13664 "--ignore=tests/visibility/test_tiled_functions.py"
13665 "--ignore=tests/visibility/test_opt_weighting.py"
13666 ;; We don't want benchmark tests.
13667 "--ignore=tests/fourier_transforms/test_swiftly_bench.py"
13668 ;; Skip tests failing with errors:
13669 ;; UnboundLocalError: local variable 'psf' referenced before assignment
13670 ;; AttributeError: 'NoneType' object has no attribute 'asnumpy'
13671 "-k" "not test_hogbom_clean and not test_ms_clean_cornwell")))
13672 (native-inputs
13673 (list cmake
13674 python-pytest
13675 python-scipy
13676 python-setuptools))
13677 (propagated-inputs
13678 (list python-numpy))))
13679
13680(define-public skymaker
13681 (package
13682 (name "skymaker")
13683 (version "3.10.5")
13684 (source
13685 (origin
13686 (method git-fetch)
13687 (uri (git-reference
13688 (url "https://github.com/astromatic/skymaker")
13689 (commit version)))
13690 (file-name (git-file-name name version))
13691 (sha256
13692 (base32 "0kcy0lfm25gihahpr41ghhw3b8znzczzg9rrlkfih043h2pfsm5l"))))
13693 (build-system gnu-build-system)
13694 (arguments
13695 (list
13696 #:configure-flags
13697 #~(list
13698 "CPPFLAGS=-fcommon"
13699 (string-append
13700 "--with-fftw-libdir=" #$(this-package-input "fftwf") "/lib")
13701 (string-append
13702 "--with-fftw-incdir=" #$(this-package-input "fftwf") "/include"))))
13703 (native-inputs
13704 (list autoconf automake libtool pkg-config))
13705 (inputs
13706 (list fftwf))
13707 (home-page "https://www.astromatic.net/software/skymaker")
13708 (synopsis "Astronomical image simulator")
13709 (description
13710 "SkyMaker is a program that simulates astronomical images. It accepts
13711object lists in ASCII generated by the Stuff program to produce realistic
13712astronomical fields. SkyMaker is part of the
13713@uref{https://www.astromatic.net/projects/efigi, EFIGI} development project.")
13714 (license license:gpl3+)))
13715
13716(define-public splash
13717 (package
13718 (name "splash")
13719 (version "3.12.0")
13720 (source
13721 (origin
13722 (method git-fetch)
13723 (uri (git-reference
13724 (url "https://github.com/danieljprice/splash")
13725 (commit (string-append "v" version))))
13726 (file-name (git-file-name name version))
13727 (sha256
13728 (base32 "0gxz995g4bd7xi9cyazbi34zhsli4aqvzl8j6mdjrbqylxhwa37g"))))
13729 (build-system gnu-build-system)
13730 (arguments
13731 ;; FIXME: Tests failed
13732 ;; Issue submitted upstream https://github.com/danieljprice/splash/issues/67
13733 ;;
13734 ;; make: *** No rule to make target 'test_interpolate3D.o', needed by 'test1'. Stop.
13735 ;;
13736 (list #:tests? #f
13737 #:parallel-build? #f ;parallel build fails
13738 #:make-flags #~(list "SYSTEM=gfortran" "PREFIX="
13739 (string-append "GIZA_DIR="
13740 #$(this-package-input "giza"))
13741 (string-append "DESTDIR="
13742 #$output))
13743 #:phases #~(modify-phases %standard-phases
13744 (delete 'configure)
13745 (add-before 'install 'create-install-dirrectories
13746 (lambda _
13747 (mkdir-p (string-append #$output "/bin")))))))
13748 (native-inputs
13749 (list gfortran
13750 pkg-config
13751 perl
13752 python-wrapper))
13753 (inputs
13754 (list cairo
13755 cfitsio
13756 giza))
13757 (home-page "https://users.monash.edu.au/~dprice/splash/")
13758 (synopsis "Astrophysical visualisation tool for smoothed particle hydrodynamics")
13759 (description
13760 "SPLASH is visualisation tool for Smoothed Particle Hydrodynamics (SPH)
13761simulations in one, two and three dimensions, developed mainly for
13762astrophysics. It uses a command-line menu but data can be manipulated
13763interactively in the plotting window.")
13764 (license license:gpl2+)))
13765
13766(define-public spot-nik
13767 (package
13768 (name "spot-nik")
13769 (version "1.5.1")
13770 (source
13771 (origin
13772 (method git-fetch)
13773 (uri (git-reference
13774 (url "https://github.com/naojsoft/spot")
13775 (commit (string-append "v" version))))
13776 (file-name (git-file-name name version))
13777 (sha256
13778 (base32 "0nmq4ngidfy4a1dmc996dd0zdpk2ljsll4bws61r571rq1r876kk"))))
13779 (build-system pyproject-build-system)
13780 (arguments
13781 (list
13782 ;; Network access is required to get data set from
13783 ;; <https://ssd.jpl.nasa.gov/ftp/eph/planets/bsp/de421.bsp>.
13784 #:tests? #f))
13785 (native-inputs
13786 (list python-setuptools-scm))
13787 (inputs
13788 (list python-astropy
13789 python-astroquery
13790 python-ginga
13791 python-jplephem
13792 python-matplotlib
13793 python-pandas
13794 python-dateutil
13795 python-requests
13796 python-skyfield
13797 python-pyqt-6
13798 python-pyside-6))
13799 (home-page "https://github.com/naojsoft/spot")
13800 (synopsis "Site Planning and Observation Tool")
13801 (description
13802 "SPOT (Site Planning and Observation Tool) is a graphical tool for
13803planning and conducting astronomical observations at a site. ")
13804 (license license:bsd-3)))
13805
13806(define-public stackistry
13807 (package
13808 (name "stackistry")
13809 (version "0.3.0")
13810 (source
13811 (origin
13812 (method git-fetch)
13813 (uri (git-reference
13814 (url "https://github.com/GreatAttractor/stackistry")
13815 (commit (string-append "v" version))))
13816 (file-name (git-file-name name version))
13817 (sha256
13818 (base32 "0rz29v33n0x0k40hv3v79ym5ylch1v0pbph4i21809gz2al5p7dq"))))
13819 (build-system gnu-build-system)
13820 (arguments
13821 (list
13822 #:tests? #f ; No test target
13823 #:make-flags
13824 #~(list
13825 (string-append
13826 "SKRY_INCLUDE_PATH=" #$(this-package-input "libskry") "/include")
13827 (string-append
13828 "SKRY_LIB_PATH=-L" #$(this-package-input "libskry") "/lib")
13829 (string-append
13830 "LIBAV_INCLUDE_PATH=" #$(this-package-input "ffmpeg") "/include"))
13831 #:phases
13832 #~(modify-phases %standard-phases
13833 ;; no configure and tests are provided
13834 (delete 'configure)
13835 (add-after 'unpack 'fix-paths
13836 (lambda _
13837 (substitute* "src/main.cpp"
13838 (("\"\\.\\.\", \"lang\"")
13839 "\"../share/stackistry\", \"lang\""))
13840 (substitute* "src/utils.cpp"
13841 (("\"\\.\\.\", \"icons\"")
13842 "\"../share/stackistry\", \"icons\""))))
13843 (replace 'install
13844 ;; The Makefile lacks an ‘install’ target.
13845 (lambda _
13846 (let* ((out #$output)
13847 (bin (string-append out "/bin"))
13848 (icons (string-append out "/share/stackistry/icons"))
13849 (lang (string-append out "/share/stackistry/lang")))
13850 (copy-recursively "bin" bin)
13851 (copy-recursively "icons" icons)
13852 (copy-recursively "lang" lang)))))))
13853 (native-inputs
13854 (list pkg-config))
13855 (inputs
13856 (list gtkmm-3 libskry ffmpeg-4))
13857 (home-page "https://github.com/GreatAttractor/stackistry")
13858 (synopsis "Astronomical lucky imaging/image stacking tool")
13859 (description
13860 "Stackistry implements the lucky imaging principle of astronomical
13861imaging: creating a high-quality still image out of a series of many (possibly
13862thousands) low quality ones (blurred, deformed, noisy). The resulting image
13863stack typically requires post-processing, including sharpening (e.g. via
13864deconvolution). Such post-processing is not performed by Stackistry.")
13865 (license license:gpl3+)))
13866
13867(define-public stellarium
13868 (package
13869 (name "stellarium")
13870 (version "26.2")
13871 (source
13872 (origin
13873 (method git-fetch)
13874 (uri (git-reference
13875 (url "https://github.com/Stellarium/stellarium")
13876 (commit (string-append "v" version))))
13877 (file-name (git-file-name name version))
13878 (sha256
13879 (base32 "1n3dkfrp35qn3m4r7wfgb2brwpy792ps1riixblnvv2cmgsvpncq"))))
13880 (build-system qt-build-system)
13881 (arguments
13882 (list
13883 #:configure-flags
13884 #~(list "-DENABLE_TESTING=ON"
13885 (string-append "-DCMAKE_CXX_FLAGS=-isystem "
13886 #$(this-package-input "qtpositioning") "/include/qt6"
13887 " -isystem "
13888 #$(this-package-input "qtserialport") "/include/qt6"))
13889 #:phases
13890 #~(modify-phases %standard-phases
13891 (add-before 'check 'set-offscreen-display
13892 (lambda _
13893 (setenv "QT_QPA_PLATFORM" "offscreen")
13894 (setenv "HOME" "/tmp"))))))
13895 (inputs
13896 (list calcmysky
13897 eigen
13898 glm
13899 gpsd
13900 indi-2.2.1
13901 libnova
13902 md4c
13903 nlopt
13904 openssl
13905 qtbase
13906 qtcharts
13907 qtlocation
13908 qtmultimedia
13909 qtpositioning
13910 qtserialport
13911 qtsvg
13912 qttranslations
13913 qtwayland
13914 qtwebengine
13915 qxlsx
13916 zlib))
13917 (native-inputs
13918 (list doxygen
13919 gettext-minimal
13920 graphviz
13921 mesa
13922 perl
13923 python-wrapper
13924 qttools))
13925 (home-page "https://stellarium.org/")
13926 (synopsis "Planetarium and 3D sky viewer")
13927 (description
13928 "Stellarium shows a realistic sky in 3D, just like what you see with the
13929naked eye, binoculars, or a telescope. It can be used to control telescopes
13930over a serial port for tracking celestial objects.")
13931 (license license:gpl2+)))
13932
13933(define-public stiff
13934 (package
13935 (name "stiff")
13936 (version "2.4.0")
13937 (source
13938 (origin
13939 (method git-fetch)
13940 (uri (git-reference
13941 (url "https://github.com/astromatic/stiff")
13942 (commit version)))
13943 (file-name (git-file-name name version))
13944 (sha256
13945 (base32 "1iffrncag1w6nd9c6v3dlx9m79nfg6ph42i0gsvlq8pvjph7s6pa"))))
13946 (build-system gnu-build-system)
13947 (arguments
13948 (list #:configure-flags
13949 #~(list "CFLAGS=-O2 -g -fcommon")))
13950 (inputs
13951 (list libtiff zlib libjpeg-turbo))
13952 (home-page "https://www.astromatic.net/software/stiff/")
13953 (synopsis "Convert scientific FITS images to TIFF format")
13954 (description
13955 "STIFF is a program that converts scientific @acronym{FITS, Flexible Image
13956Transport System} images to the more popular TIFF format for illustration
13957purposes.")
13958 (license license:gpl3+)))
13959
13960(define-public stuff
13961 ;; XXX: No version tag available in GitHub.
13962 ;; See: https://github.com/astromatic/stuff/issues/6
13963 (let ((commit "9cf363216a0d5c3d41b3dc759994feee3be0fc4e")
13964 (revision "0"))
13965 (package
13966 (name "stuff")
13967 (version (git-version "2.0.1" revision commit))
13968 (source
13969 (origin
13970 (method git-fetch)
13971 (uri (git-reference
13972 (url "https://github.com/astromatic/stuff")
13973 (commit commit)))
13974 (file-name (git-file-name name version))
13975 (sha256
13976 (base32 "1n7f2f7llwf1fbliypblia3xyrh69yy1rqbwwhz897qd92fxnl5i"))))
13977 (build-system gnu-build-system)
13978 (native-inputs
13979 (list autoconf automake libtool pkg-config))
13980 (home-page "https://www.astromatic.net/software/stuff")
13981 (synopsis "Astronomical catalogue simulation")
13982 (description
13983 "Stuff is a program that simulates \"perfect\" astronomical
13984catalogues. It generates object lists in ASCII which can read by the SkyMaker
13985program to produce realistic astronomical fields. Stuff is part of the
13986@uref{https://www.astromatic.net/projects/efigi, EFIGI} development project.")
13987 (license license:gpl3+))))
13988
13989(define-public sunwait
13990 (package
13991 (name "sunwait")
13992 (version "0.9.1")
13993 (source
13994 (origin
13995 (method git-fetch)
13996 (uri
13997 (git-reference
13998 (url "https://github.com/risacher/sunwait")
13999 (commit version)))
14000 (file-name (git-file-name name version))
14001 (sha256
14002 (base32 "0mzc8bb7zzl1ch3v7w08vw2v50yjxvr7phyb78njpq89wy6hsrxz"))))
14003 (build-system gnu-build-system)
14004 (arguments
14005 (list
14006 #:tests? #f ; no tests provided
14007 #:make-flags
14008 #~(list (string-append "CC=" #$(cc-for-target)))
14009 #:phases
14010 #~(modify-phases %standard-phases
14011 (delete 'configure) ; no configure script is provided
14012 (replace 'install
14013 (lambda _
14014 (install-file "sunwait"
14015 (string-append #$output "/bin")))))))
14016 (home-page "https://github.com/risacher/sunwait")
14017 (synopsis "Sunrise and sunset times calculation")
14018 (description
14019 "Sunwait calculates sunrise or sunset times with civil, nautical,
14020astronomical and custom twilights. The sun's position is calculated using
14021time, and position - latitude and longitude should be specified on the command
14022line.
14023
14024Features:
14025
14026@itemize
14027@item calculates sunrise and sunset for given coordinates
14028@item can wait for sunrise/sunset, or return DAY or NIGHT codes
14029@item works with Windows Task Scheduler (or cron)
14030@item supports custom twilight angles
14031@item used to automate domestic lighting with Arduino transmitter and radio
14032controlled sockets
14033@end itemize")
14034 (license license:gpl3)))
14035
14036(define-public swarp
14037 (package
14038 (name "swarp")
14039 (version "2.41.5")
14040 (source
14041 (origin
14042 (method git-fetch)
14043 (uri (git-reference
14044 (url "https://github.com/astromatic/swarp")
14045 (commit (string-append version))))
14046 (file-name (git-file-name name version))
14047 (sha256
14048 (base32 "00463r5rd4xl74xs4h1n4gl2qk7v9p5nw9x05pbzgh8jm77q90qq"))))
14049 (build-system gnu-build-system)
14050 (native-inputs
14051 (list automake autoconf libtool pkg-config))
14052 (inputs
14053 (list cfitsio))
14054 (home-page "https://www.astromatic.net/software/swarp")
14055 (synopsis "FITS image resampling and co-addition")
14056 (description
14057 "SWarp is a program that resamples and co-adds together FITS images using
14058any arbitrary astrometric projection defined in the WCS standard.")
14059 (license license:gpl3+)))
14060
14061(define-public tangos
14062 (package
14063 (name "tangos")
14064 (version "1.11.0")
14065 (source
14066 (origin
14067 (method git-fetch)
14068 (uri (git-reference
14069 (url "https://github.com/pynbody/tangos")
14070 (commit (string-append "v" version))))
14071 (file-name (git-file-name name version))
14072 (sha256
14073 (base32 "0mvg6qvalm4rf8gwi0d8lbljww51ym2lmc044i28fr1815prdhng"))))
14074 (build-system pyproject-build-system)
14075 (arguments
14076 (list
14077 ;; tests: 320 passed, 1 skipped, 1 deselected, 120 warnings
14078 #:test-flags
14079 ;; OSError: File PosixPath('test_simulations/test_tipsy/tiny.000640'):
14080 ;; format not understood or does not exist
14081 #~(list "--deselect=tests/test_bh_reader.py::test_bhlog" )
14082 #:phases
14083 #~(modify-phases %standard-phases
14084 (add-after 'unpack 'remove-broken-scripts
14085 (lambda _
14086 ;; TODO: Report upstram.
14087 ;; I could not find "Simpy" module, see:
14088 ;; - URL: <https://github.com/pynbody/tangos/commit>
14089 ;; - commit: 7de987e27d756278c4571dc65f36d377027fa29d
14090 ;; - comment: #commitcomment-167855052
14091 (delete-file "tangos/scripts/preprocess_bh.py")
14092 (substitute* "setup.py"
14093 ;; ModuleNotFoundError: No module named
14094 ;; 'tangos.scripts.bh_timelink'
14095 ((".*tangos_bh_timelink =.*") "")
14096 ;; It looks this script uses not a publicly available module:
14097 ;; import Simpy.BlackHoles.orbit.
14098 ((".*tangos_preprocess_bh =.*") ""))))
14099 (add-before 'check 'pre-check
14100 (lambda _
14101 (setenv "HOME" "/tmp")
14102 (setenv "TANGOS_TESTING_DB_BACKEND" "sqlite"))))))
14103 (native-inputs
14104 (list python-pymysql
14105 python-pynbody
14106 python-pyquery
14107 python-pytest
14108 python-webtest
14109 python-yt))
14110 (inputs
14111 (list python-hupper
14112 python-matplotlib
14113 python-more-itertools
14114 python-numpy
14115 python-packaging
14116 python-pastedeploy
14117 python-plaster
14118 python-plaster-pastedeploy
14119 python-psycopg2
14120 python-pymysql
14121 python-pyparsing
14122 python-pyramid
14123 python-pyramid-debugtoolbar
14124 python-pyramid-jinja2
14125 python-pyramid-retry
14126 python-pyramid-tm
14127 python-repoze-lru
14128 python-scipy
14129 python-setuptools
14130 python-sqlalchemy-2
14131 python-tblib
14132 python-tqdm
14133 python-translationstring
14134 python-venusian
14135 python-waitress
14136 python-webob
14137 python-zope-deprecation
14138 python-zope-interface
14139 python-zope-sqlalchemy))
14140 (home-page "https://github.com/pynbody/tangos")
14141 (synopsis "Agile numerical galaxy organisation system")
14142 (description
14143 "TANGOS is a tool to build a database (along the lines of
14144@url{http://icc.dur.ac.uk/Eagle/database.php, Eagle} or
14145@url{https://www.cosmosim.org/cms/documentation/projects/multidark-bolshoi-project/,
14146MultiDark}) for cosmological and zoom simulations.
14147
14148Features:
14149@itemize
14150@item designed to store and manage results from custom analysis code
14151@item provides web and Python interfaces
14152@item science-focussed queries across entire merger trees, without requiring
14153any knowledge of SQL
14154@item manages the process of populating the database with science data,
14155including auto-parallelising custom analysis
14156@item customization with multiple Python modules such as @code{pynbody} or
14157@code{yt} to process raw simulation data
14158@item supports file-based database SQLite, server-based MySQL and PostgreSQL
14159@end itemize")
14160 (license license:bsd-3)))
14161
14162(define-public tempo
14163 (package
14164 (name "tempo")
14165 (version "13.103")
14166 (source
14167 (origin
14168 (method url-fetch)
14169 (uri (string-append "mirror://sourceforge/tempo/tempo-"
14170 version ".tar.gz"))
14171 (sha256
14172 (base32 "1ghml56sd7rhwymrlqlvj3g12hjyqvk2sjl08rqlf5y7dwdp0nvl"))))
14173 (build-system gnu-build-system)
14174 (native-inputs
14175 (list gfortran))
14176 (home-page "https://github.com/nanograv/tempo")
14177 (synopsis "Pulsar timing data analysis program")
14178 (description
14179 "Tempo analyzes pulsar timing data. Pulse times of arrival (TOAs),
14180pulsar model parameters, and coded instructions are read from one or more
14181input files. The TOAs are fitted by a pulse timing model incorporating
14182transformation to the solar-system barycenter, pulsar rotation and spin-down
14183and, where necessary, one of several binary models. Program output includes
14184parameter values and uncertainties, residual pulse arrival times, chi-squared
14185statistics, and the covariance matrix of the model. In prediction
14186mode,ephemerides of pulse phase behavior (in the form of polynomial
14187expansions) are calculated from input timing models.")
14188 (license license:gpl2+)))
14189
14190(define-public tempo2
14191 (package
14192 (name "tempo2")
14193 (version "2026.04.1")
14194 (source
14195 (origin
14196 (method git-fetch)
14197 (uri (git-reference
14198 (url "https://bitbucket.org/psrsoft/tempo2")
14199 (commit version)))
14200 (file-name (git-file-name name version))
14201 (sha256
14202 (base32 "0vwsp06anvq5lw3lrz18hwxd62iflgh0a8g22kvm1j6aicw3zixj"))))
14203 (build-system gnu-build-system)
14204 (arguments
14205 (list
14206 #:phases
14207 #~(modify-phases %standard-phases
14208 (add-after 'unpack 'patch-pathes
14209 (lambda _
14210 (substitute* (list "bootstrap" "plugin/make_build_settings.sh")
14211 (("/bin/bash") (which "bash"))
14212 (("/bin/echo") "echo"))))
14213 (add-before 'configure 'set-t2runtime-path
14214 (lambda _
14215 (setenv "TEMPO2" (string-append #$output "/share/runtime"))))
14216 (add-after 'install 'install-t2runtime-files
14217 (lambda _
14218 (copy-recursively "T2runtime"
14219 (string-append #$output "/share/runtime")))))))
14220 (native-inputs
14221 (list autoconf
14222 automake
14223 gfortran
14224 libtool
14225 pkg-config))
14226 (home-page "https://bitbucket.org/psrsoft/tempo2")
14227 (synopsis "High precision pulsar timing tool")
14228 (description
14229 "Tempo2 is a pulsar timing package, based on the old FORTRAN TEMPO code
14230to address some shortcomings in that code for high precision pulsar timing.
14231See related paper
14232@url{https://ui.adsabs.harvard.edu/abs/2006MNRAS.369..655H/abstract}.")
14233 (license license:gpl3+)))
14234
14235(define-public tenmon
14236 (package
14237 (name "tenmon")
14238 (version "20260626")
14239 (source
14240 (origin
14241 (method git-fetch)
14242 (uri (git-reference
14243 (url "https://gitea.nouspiro.space/nou/tenmon")
14244 (commit version)))
14245 (file-name (git-file-name name version))
14246 (sha256
14247 (base32 "0igjq7i7v439a55m26xfzfcm1jhm3hbmh99kmwjx5nm4fyry4ffp"))))
14248 (build-system qt-build-system)
14249 (arguments
14250 (list
14251 #:qtbase qtbase
14252 #:tests? #f ;no test target
14253 #:phases
14254 #~(modify-phases %standard-phases
14255 ;; libxisf is expected to be found as git submodule, link it before
14256 ;; build.
14257 (add-after 'unpack 'link-libxisf
14258 (lambda _
14259 (rmdir "libXISF")
14260 (symlink #+(package-source (this-package-native-input "libxisf"))
14261 (string-append (getcwd) "/libXISF")))))))
14262 (native-inputs
14263 (list git-minimal/pinned
14264 libxisf-for-tenmon
14265 pkg-config ))
14266 (inputs
14267 (list cfitsio
14268 glu
14269 gsl
14270 libexif
14271 libraw
14272 qtbase
14273 qtcharts
14274 qtdeclarative
14275 qtsvg
14276 qtwayland
14277 wcslib
14278 zstd
14279 (list zstd "lib")))
14280 (home-page "https://nouspiro.space/?page_id=206")
14281 (synopsis "FITS and XISF image viewer, converter and indexer")
14282 (description
14283 "FITS/XISF image viewer with multithreaded image loading. It is intended
14284primarily for viewing astro photos and images with support of following
14285formats:
14286
14287@itemize
14288@item FITS 8, 16 bit integer and 32 bit float
14289@item XISF 8, 16 bit integer and 32 bit float
14290@item RAW CR2, DNG, NEF
14291@item JPEG, PNG, BMP, GIF, PBM, PGM, PPM and SVG images
14292@end itemize
14293
14294Features:
14295@itemize
14296@item using same stretch function as PixInsight
14297@item OpenGL accelerated drawing
14298@item index and search FITS XISF header data
14299@item quick mark images and then copy/move marked files
14300@item convert FITS <-> XISF
14301@item convert FITS/XISF -> JPEG/PNG
14302@item image statistics mean, media, min, max
14303@item support for WCS
14304@item thumbnails
14305@item convert CFA images to colour - debayer
14306@item color space aware
14307@end itemize")
14308 (license license:gpl3+)))
14309
14310(define-public unsio
14311 ;; There is no versioned tag, use the latest commit.
14312 (let ((commit "ac48210ec24432ec3ad330c4203e7eb21876a921")
14313 (revision "1"))
14314 (package
14315 (name "unsio")
14316 (version (git-version "1.3.3" revision commit))
14317 (source (origin
14318 (method git-fetch)
14319 (uri (git-reference
14320 (url "https://gitlab.lam.fr/infrastructure/unsio")
14321 (commit commit)))
14322 (file-name (git-file-name name version))
14323 (sha256
14324 (base32
14325 "0diiiflwz5yw2hpk3xj5x5iviyfibim4lhs02qn07hfw86qi9vn2"))
14326 (modules '((guix build utils)))
14327 (snippet
14328 ;; force installation into lib/ instead of lib64/
14329 #~(substitute* "cmake/DetectCpackGenerator.cmake"
14330 (("lib64") "lib")))))
14331 (build-system cmake-build-system)
14332 (arguments
14333 (list #:tests? #f ; no tests
14334 #:build-type "Release" ; to improve performance
14335 #:configure-flags #~(list "-DCMAKE_CXX_STANDARD=14")))
14336 (inputs (list gfortran hdf5 perl sqlite zlib))
14337 (home-page "https://projets.lam.fr/projects/unsio/wiki")
14338 (synopsis "Input and output routines for n-body file formats")
14339 (description
14340 "@acronym{UNSIO, Universal Nbody Snapshot Input Output} provides
14341an API for performing input and output operations on different kinds of
14342n-body file formats (nemo, Gadget binaries 1 and 2, Gadget hdf5, Ramses).")
14343 (license license:cecill))))
14344
14345(define-public uraniborg
14346 (package
14347 (name "uraniborg")
14348 (version "0.0.15")
14349 (source
14350 (origin
14351 (method git-fetch)
14352 (uri (git-reference
14353 (url "https://codeberg.org/astronexus/uraniborg")
14354 (commit (string-append "v" version))))
14355 (file-name (git-file-name name version))
14356 (sha256
14357 (base32 "0wniyp6rw2gcv1plqdqqx8l9qa1yr2rap6yhhq628ynj846v0xk4"))))
14358 (build-system go-build-system)
14359 (arguments
14360 (list
14361 #:install-source? #f
14362 #:import-path "bitbucket.org/dpnash/uraniborg"
14363 #:phases
14364 #~(modify-phases %standard-phases
14365 (add-before 'build 'patch-config
14366 (lambda* (#:key import-path #:allow-other-keys)
14367 (with-directory-excursion (string-append "src/" import-path)
14368 (substitute* "consts.go"
14369 (("DEFAULT_BASE_DIR = \".\"") (format #f "DEFAULT_BASE_DIR = ~s" #$output))
14370 (("\"config\"") (format #f "~s" "etc/uraniborg"))
14371 (("\"data\"") (format #f "~s" "share/uraniborg/data"))
14372 (("\"charts\"") (format #f "~s" "share/uraniborg/charts"))
14373 (("\"fonts\"") (format #f "~s" "share/uraniborg/fonts")))
14374 (substitute* (find-files "config" ".*\\.yaml$")
14375 (("fonts/") (string-append #$output "/share/uraniborg/fonts/"))))))
14376 (add-after 'install 'install-runtime-files
14377 (lambda* (#:key import-path #:allow-other-keys)
14378 (with-directory-excursion (string-append "src/" import-path)
14379 (let ((etc (string-append #$output "/etc/uraniborg"))
14380 (data (string-append #$output "/share/uraniborg/data"))
14381 (charts (string-append #$output "/share/uraniborg/charts"))
14382 (fonts (string-append #$output "/share/uraniborg/fonts")))
14383 (copy-recursively "config" etc)
14384 (copy-recursively "charts" charts)
14385 (copy-recursively "fonts" fonts)
14386 (system* "gunzip" "data/athyg_33_subset.csv.gz")
14387 (install-file "data/athyg_33_subset.csv" data)))))
14388 (delete 'check)
14389 (add-after 'install-runtime-files 'post-install-check
14390 (lambda* (#:key tests? import-path #:allow-other-keys)
14391 (when tests?
14392 (with-directory-excursion (string-append "src/" import-path)
14393 (invoke "go" "test" "-v" "./..."))))))))
14394 (native-inputs
14395 (list go-codeberg-org-astronexus-brahe
14396 go-dario-cat-mergo
14397 go-github-com-fogleman-gg
14398 go-github-com-fsnotify-fsnotify
14399 go-gopkg-in-yaml-v3))
14400 (home-page "https://codeberg.org/astronexus/uraniborg")
14401 (synopsis "CLI star chart application for the AT-HYG catalog")
14402 (description
14403 "@code{uraniborg} is a CLI visualization tool and star chart \"engine\"
14404for the Augmented Tycho + HYG (AT-HYG) star catalog. The
14405@url{https://codeberg.org/astronexus/athyg, AT-HYG} catalog consists of stars
14406from the Tycho-2 star catalog, augmented with additional distance and velocity
14407information from Gaia DR3, as well as the \"classic\" / historical information
14408from the HYG catalog.
14409
14410@code{uraniborg} lets you view the sky from both the solar system and from any
14411star in the AT-HYG catalog with a known distance (over 2.5 million stars
14412currently).
14413
14414Base directory containing custom config, data, charts and fonts may be
14415adjusted with command line option @code{-b}, by default set to store path.")
14416 (license (list license:asl2.0 ;; Roboto fonts
14417 license:silofl1.1 ;; Noto Sans fonts
14418 license:gpl3+))))
14419
14420(define-public uranimator
14421 ;; No release or version tags.
14422 (let ((commit "d96f0084c029667f313ec72aade9968fa5bb506e")
14423 (revision "1"))
14424 (package
14425 (name "uranimator")
14426 (version (git-version "0.0.0" revision commit))
14427 (source
14428 (origin
14429 (method git-fetch)
14430 (uri (git-reference
14431 (url "https://codeberg.org/astronexus/uranimator.git")
14432 (commit commit)))
14433 (file-name (git-file-name name version))
14434 (sha256
14435 (base32 "1yf1ghzzpnh0v1ra6dv4l135jgbs28pzadqig8cy8bwi9jq5wlrn"))))
14436 (build-system go-build-system)
14437 (arguments
14438 (list
14439 #:install-source? #f
14440 #:import-path "codeberg.org/astronexus/uranimator"))
14441 (native-inputs
14442 (list go-codeberg-org-astronexus-brahe
14443 go-github-com-jessevdk-go-flags
14444 go-gonum-org-v1-gonum
14445 go-gopkg-in-yaml-v3))
14446 (home-page "https://codeberg.org/astronexus/uranimator")
14447 (synopsis "Create sets of astro .png files that can be turned into animations")
14448 (description
14449 "@code{uranimator} is a CLI tool that works with your existing
14450@url{https://codeberg.org/astronexus/uraniborg,(code uraniborg)} install to
14451create animations. See how the sky evolves over a million years or what
14452traveling to a star 100 light years away looks like.")
14453 (license license:agpl3))))
14454
14455(define-public wcslib
14456 (package
14457 (name "wcslib")
14458 (version "8.9")
14459 (source
14460 (origin
14461 (method url-fetch)
14462 (uri (string-append "https://www.atnf.csiro.au/computing/software/wcs/"
14463 "wcslib-releases/"
14464 "wcslib-" version ".tar.bz2"))
14465 (sha256
14466 (base32 "0yw0i026ihdhppr7zysxp831vgnsq7pcvxf8rq3bzc4ia370kb42"))
14467 (snippet
14468 #~(begin (use-modules (guix build utils))
14469 (delete-file-recursively "C/flexed")))))
14470 (build-system gnu-build-system)
14471 (arguments
14472 (list
14473 #:configure-flags
14474 #~(list (string-append "--with-cfitsiolib="
14475 #$(this-package-input "cfitsio") "/lib")
14476 (string-append "--with-cfitsioinc="
14477 #$(this-package-input "cfitsio") "/include"))
14478 #:phases
14479 #~(modify-phases %standard-phases
14480 (delete 'install-license-files) ; installed by ‘make install’
14481 (add-before 'configure 'patch-/bin/sh
14482 (lambda _
14483 (substitute* "makedefs.in"
14484 (("/bin/sh") "sh")))))))
14485 ;; TODO: Fix build with gfortran and pack missing optional pgplot.
14486 ;; (inputs (list gfortran pgplot))
14487 (inputs
14488 (list cfitsio))
14489 (native-inputs
14490 (list flex))
14491 (home-page "https://www.atnf.csiro.au/computing/software/wcs/")
14492 (synopsis "Library which implements the FITS WCS standard")
14493 (description "The FITS \"World Coordinate System\" (@dfn{WCS}) standard
14494defines keywords and usage that provide for the description of astronomical
14495coordinate systems in a @dfn{FITS} (Flexible Image Transport System) image
14496header.")
14497 (license license:lgpl3+)))
14498
14499;;; The version is required for julia-wcs-jll and julia-wcs. They do not
14500;;; support version higher than 7.x.
14501(define-public wcslib-7.12
14502 (package
14503 (inherit wcslib)
14504 (version "7.12")
14505 (source
14506 (origin
14507 (method url-fetch)
14508 (uri (string-append "https://www.atnf.csiro.au/computing/software/wcs/"
14509 "wcslib-" version ".tar.bz2"))
14510 (sha256
14511 (base32 "1m3bx6gh5w3c7vvsqcki0x20mg8lilg13m0i8nh7za89w58dxy4w"))
14512 (snippet
14513 #~(begin (use-modules (guix build utils))
14514 (delete-file-recursively "C/flexed")))))
14515 (properties '((hidden? . #t)))))
14516
14517(define-public wcslib-8.6
14518 (package
14519 (inherit wcslib)
14520 (name "wcslib")
14521 (version "8.6")
14522 (source
14523 (origin
14524 (inherit (package-source wcslib))
14525 (method url-fetch)
14526 (uri (string-append "https://www.atnf.csiro.au/computing/software/wcs/"
14527 "wcslib-releases/"
14528 "wcslib-" version ".tar.bz2"))
14529 (sha256
14530 (base32 "0nndcz82qvfx3hhhw0bylyrydnc23a8bqhp71w4yz6d10lv44c70"))
14531 (snippet
14532 #~(begin (use-modules (guix build utils))
14533 (delete-file-recursively "C/flexed")))))))
14534
14535(define-public wcstools
14536 (package
14537 (name "wcstools")
14538 (version "3.9.7")
14539 (source
14540 (origin
14541 (method url-fetch)
14542 (uri (string-append
14543 "http://tdc-www.harvard.edu/software/wcstools/wcstools-"
14544 version ".tar.gz"))
14545 (sha256
14546 (base32 "125hqzspvqrx6372smzsmxwg06ib2arjc5awnwnq53w1xdq6jpsj"))
14547 (patches (search-patches "wcstools-extend-makefiles.patch"))))
14548 (build-system gnu-build-system)
14549 (arguments
14550 (list
14551 #:tests? #f ;No tests provided.
14552 #:make-flags
14553 #~(list (string-append "CC=" #$(cc-for-target))
14554 (string-append "PREFIX=" #$output))
14555 #:phases
14556 #~(modify-phases %standard-phases
14557 (delete 'configure))))
14558 (home-page "http://tdc-www.harvard.edu/software/wcstools/")
14559 (synopsis "Handle the WCS of a FITS image")
14560 (description
14561 "WCSTools is a set of software utilities, written in C, which create,
14562display and manipulate the world coordinate system of a FITS or IRAF image,
14563using specific keywords in the image header which relate pixel position within
14564the image to position on the sky. Auxiliary programs search star catalogs and
14565manipulate images.")
14566 (license license:gpl2+)))
14567
14568(define-public webbpsf-data
14569 (package
14570 (name "webbpsf-data")
14571 (version "1.5.0")
14572 (source
14573 (origin
14574 (method url-fetch)
14575 ;; 73.9MiB archive
14576 (uri "https://stsci.box.com/shared/static/qxpiaxsjwo15ml6m4pkhtk36c9jgj70k.gz")
14577 (file-name (string-append "webbpsf-data-" version ".tar.gz"))
14578 (sha256
14579 (base32 "0lnzjvn9276v00p5g4894jgdb9mw4mr89q64l7ywikz9khk3j5gc"))))
14580 (build-system copy-build-system)
14581 (arguments
14582 (list
14583 #:install-plan #~'(("." "share/webbpsf-data"))))
14584 (home-page "https://webbpsf.readthedocs.io/en/stable/installation.html")
14585 (synopsis "JWST pupil shape, instrument throughputs, and aperture positions data files")
14586 (description
14587 "This package contains FIT and CSV files required for WebbPSF
14588installation and distributed separately from it.")
14589 (license license:bsd-3)))
14590
14591(define-public weightwatcher
14592 (package
14593 (name "weightwatcher")
14594 (version "1.12")
14595 (source
14596 (origin
14597 (method git-fetch)
14598 (uri (git-reference
14599 (url "https://github.com/astromatic/weightwatcher")
14600 (commit version)))
14601 (file-name (git-file-name name version))
14602 (sha256
14603 (base32 "0701z6bdqq32jv7ga3n6jh27q684ni0hbfjm1mak7rh0qqx089gi"))))
14604 (build-system gnu-build-system)
14605 (arguments
14606 (list
14607 #:configure-flags
14608 #~(list "CFLAGS=-fcommon"))) ; fix build with GCC 10
14609 (home-page "https://www.astromatic.net/software/weightwatcher")
14610 (synopsis "Weight-map/flag-map multiplexer and rasteriser")
14611 (description
14612 "Weightwatcher is a program hat combines weight-maps, flag-maps and
14613polygon data in order to produce control maps which can directly be used in
14614astronomical image-processing packages like Drizzle, Swarp or SExtractor.")
14615 (license license:gpl3+)))
14616
14617(define-public xplanet
14618 (package
14619 (name "xplanet")
14620 (version "1.3.1")
14621 (source
14622 (origin
14623 (method url-fetch)
14624 (uri
14625 (string-append
14626 "mirror://sourceforge/xplanet/xplanet/"
14627 version "/xplanet-" version ".tar.gz"))
14628 (sha256
14629 (base32 "1rzc1alph03j67lrr66499zl0wqndiipmj99nqgvh9xzm1qdb023"))
14630 (patches
14631 (search-patches
14632 "xplanet-1.3.1-cxx11-eof.patch"
14633 "xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch"
14634 "xplanet-1.3.1-libimage_gif.c.patch"
14635 "xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch"))))
14636 (build-system gnu-build-system)
14637 (arguments
14638 (list
14639 #:configure-flags
14640 #~(list
14641 ;; No NASA JPL cspice support.
14642 "--without-cspice"
14643 (string-append "CPPFLAGS=-I" #$(this-package-input "netpbm")
14644 "/include/netpbm"))))
14645 (native-inputs
14646 (list pkg-config))
14647 (inputs
14648 (list freetype
14649 giflib
14650 libice
14651 libjpeg-turbo
14652 libpng
14653 libtiff
14654 libx11
14655 libxscrnsaver
14656 netpbm
14657 pango
14658 zlib))
14659 (home-page "https://xplanet.sourceforge.net/")
14660 (synopsis "Planetary body renderer")
14661 (description
14662 "Xplanet renders an image of a planet into an X window or file.
14663All of the major planets and most satellites can be drawn and different map
14664projections are also supported, including azimuthal, hemisphere, Lambert,
14665Mercator, Mollweide, Peters, polyconic, orthographic and rectangular.")
14666 (license license:gpl2+)))
14667
14668;;;
14669;;; Avoid adding new packages to the end of this file. To reduce the chances
14670;;; of a merge conflict, place them above in alphabetical order.
14671;;;