gnu: r-cli: Update to 2.4.0.
[jackhill/guix/guix.git] / gnu / packages / astronomy.scm
CommitLineData
82e4557d
JD
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2016 John Darrington <jmd@gnu.org>
0ad41c32 3;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
47962191 4;;; Copyright © 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
ca310f65 5;;; Copyright © 2019 by Amar Singh <nly@disroot.org>
77704cb1 6;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
a19d63e8 7;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
906155e4 8;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
82e4557d
JD
9;;;
10;;; This file is part of GNU Guix.
11;;;
12;;; GNU Guix is free software; you can redistribute it and/or modify it
13;;; under the terms of the GNU General Public License as published by
14;;; the Free Software Foundation; either version 3 of the License, or (at
15;;; your option) any later version.
16;;;
17;;; GNU Guix is distributed in the hope that it will be useful, but
18;;; WITHOUT ANY WARRANTY; without even the implied warranty of
19;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20;;; GNU General Public License for more details.
21;;;
22;;; You should have received a copy of the GNU General Public License
23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24
25(define-module (gnu packages astronomy)
26 #:use-module (guix packages)
c9bd15c1 27 #:use-module ((guix licenses) #:prefix license:)
82e4557d 28 #:use-module (guix download)
ca310f65 29 #:use-module (guix git-download)
0e8054e8 30 #:use-module (guix utils)
77704cb1 31 #:use-module (gnu packages)
d284d89a 32 #:use-module (gnu packages algebra)
bd5b6ce0 33 #:use-module (gnu packages autotools)
ae416e85 34 #:use-module (gnu packages check)
0558e968 35 #:use-module (gnu packages compression)
d284d89a 36 #:use-module (gnu packages curl)
77704cb1 37 #:use-module (gnu packages fontutils)
0558e968 38 #:use-module (gnu packages gettext)
0558e968 39 #:use-module (gnu packages gl)
d284d89a 40 #:use-module (gnu packages glib)
67d24b15 41 #:use-module (gnu packages gnome)
d284d89a
GLV
42 #:use-module (gnu packages gtk)
43 #:use-module (gnu packages image)
ae416e85 44 #:use-module (gnu packages libusb)
d284d89a 45 #:use-module (gnu packages lua)
c9bd15c1 46 #:use-module (gnu packages maths)
77704cb1 47 #:use-module (gnu packages netpbm)
d284d89a
GLV
48 #:use-module (gnu packages perl)
49 #:use-module (gnu packages pkg-config)
50 #:use-module (gnu packages pretty-print)
56ec8d62 51 #:use-module (gnu packages python-check)
8fa76b83
SH
52 #:use-module (gnu packages python-crypto)
53 #:use-module (gnu packages python-science)
35d13a90 54 #:use-module (gnu packages python-xyz)
d284d89a
GLV
55 #:use-module (gnu packages qt)
56 #:use-module (gnu packages version-control)
87530f7b 57 #:use-module (gnu packages video)
d284d89a 58 #:use-module (gnu packages xiph)
77704cb1 59 #:use-module (gnu packages xorg)
0558e968 60 #:use-module (guix build-system cmake)
67d24b15 61 #:use-module (guix build-system gnu)
35d13a90 62 #:use-module (guix build-system python)
906155e4 63 #:use-module (ice-9 match)
67d24b15 64 #:use-module (srfi srfi-1))
82e4557d
JD
65
66(define-public cfitsio
67 (package
68 (name "cfitsio")
84ee8988 69 (version "3.49")
82e4557d
JD
70 (source
71 (origin
72 (method url-fetch)
73 (uri (string-append
0e8054e8 74 "http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/"
84ee8988 75 "cfitsio-" version ".tar.gz"))
82e4557d 76 (sha256
84ee8988 77 (base32 "1cyl1qksnkl3cq1fzl4dmjvkd6329b57y9iqyv44wjakbh6s4rav"))))
82e4557d 78 (build-system gnu-build-system)
0e8054e8
TGR
79 ;; XXX Building with curl currently breaks wcslib. It doesn't use
80 ;; pkg-config and hence won't link with -lcurl.
82e4557d 81 (arguments
84ee8988 82 `(#:tests? #f ; no tests
82e4557d
JD
83 #:phases
84 (modify-phases %standard-phases
85 (add-after 'unpack 'patch-paths
86 (lambda _
39fb6295
JD
87 (substitute* "Makefile.in" (("/bin/") ""))
88 #t)))))
b8181163 89 (home-page "https://heasarc.gsfc.nasa.gov/fitsio/fitsio.html")
82e4557d
JD
90 (synopsis "Library for reading and writing FITS files")
91 (description "CFITSIO provides simple high-level routines for reading and
d5d087ab 92writing @dfn{FITS} (Flexible Image Transport System) files that insulate the
82e4557d
JD
93programmer from the internal complexities of the FITS format. CFITSIO also
94provides many advanced features for manipulating and filtering the information
95in FITS files.")
96 (license (license:non-copyleft "file://License.txt"
97 "See License.txt in the distribution."))))
2be83f6e 98
c1563fc1
SH
99(define-public qfits
100 (package
101 (name "qfits")
102 (version "6.2.0")
103 (source
104 (origin
105 (method url-fetch)
106 (uri
107 (string-append "ftp://ftp.eso.org/pub/qfits/qfits-" version ".tar.gz"))
108 (sha256
109 (base32 "0m2b21mim3a7wgfg3ph2w5hv7mdvr03jmmhzipc0wcahijglcw9j"))))
110 (build-system gnu-build-system)
111 (home-page "https://www.eso.org/sci/software/eclipse/qfits/")
112 (synopsis "C library offering access to astronomical FITS files")
113 (description
114 "@code{qfits} is a C library giving access to FITS file internals, both
115for reading and writing.")
116 (license license:gpl2+)))
117
4fac8b8f
SH
118(define-public erfa
119 (package
120 (name "erfa")
121 (version "1.7.2")
122 (source
123 (origin
124 (method git-fetch)
125 (uri (git-reference
126 (url "https://github.com/liberfa/erfa")
127 (commit (string-append "v" version))))
128 (file-name (git-file-name name version))
129 (sha256
130 (base32 "1vsqwvzlk7r8q7nwyb7i710blcfdl5kwcm2va9km07a820nsp84a"))))
131 (build-system gnu-build-system)
132 (native-inputs
133 `(("automake" ,automake)
134 ("autoreconf" ,autoconf)
135 ("libtool" ,libtool)
136 ("pkg-config" ,pkg-config)))
137 (home-page "https://github.com/liberfa/erfa")
138 (synopsis "Essential Routines for Fundamental Astronomy")
139 (description
140 "ERFA is a C library containing key algorithms for astronomy, and is based
141on the SOFA library published by the International Astronomical Union (IAU).")
142 (license license:bsd-3)))
143
51418c32
SH
144(define-public eye
145 (package
146 (name "eye")
147 (version "1.4.1")
148 (source
149 (origin
150 (method url-fetch)
151 (uri (string-append "https://www.astromatic.net/download/eye/"
152 "eye-" version ".tar.gz"))
153 (sha256
154 (base32 "092qhzcbrkcfidbx4bv9wz42w297n80jk7a6kwyi9a3fjfz81d7k"))))
155 (build-system gnu-build-system)
156 (home-page "https://www.astromatic.net/software/eye")
157 (synopsis "Small image feature detector using machine learning")
158 (description
159 "In EyE (Enhance Your Extraction) an artificial neural network connected to
160pixels of a moving window (retina) is trained to associate these input stimuli
161to the corresponding response in one or several output image(s). The resulting
162filter can be loaded in SExtractor to operate complex, wildly non-linear filters
163on astronomical images. Typical applications of EyE include adaptive filtering,
164feature detection and cosmetic corrections.")
165 (license license:cecill)))
166
2be83f6e
JD
167(define-public wcslib
168 (package
169 (name "wcslib")
5229d56d 170 (version "7.5")
2be83f6e
JD
171 (source
172 (origin
173 (method url-fetch)
174 (uri (string-append
f781251b 175 "ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib-" version
39fb6295 176 ".tar.bz2"))
2be83f6e 177 (sha256
5229d56d 178 (base32 "1536gmcpm6pckn9xrb6j8s4pm1vryjhzvhfaj9wx3jwxcpbdy0dw"))))
2be83f6e
JD
179 (inputs
180 `(("cfitsio" ,cfitsio)))
181 (build-system gnu-build-system)
182 (arguments
2516ba81
TGR
183 `(#:configure-flags
184 (list (string-append "--with-cfitsiolib="
185 (assoc-ref %build-inputs "cfitsio") "/lib")
186 (string-append "--with-cfitsioinc="
187 (assoc-ref %build-inputs "cfitsio") "/include"))
188 #:phases
60b0c252
TGR
189 (modify-phases %standard-phases
190 (add-before 'configure 'patch-/bin/sh
191 (lambda _
192 (substitute* "makedefs.in"
193 (("/bin/sh") "sh"))
194 #t))
195 (delete 'install-license-files)) ; installed by ‘make install’
ccfac015 196 ;; Parallel execution of the test suite is not supported.
60b0c252 197 #:parallel-tests? #f))
d4442eaf 198 (home-page "https://www.atnf.csiro.au/people/mcalabre/WCS")
a7074f47 199 (synopsis "Library which implements the FITS WCS standard")
1cfd7eaf
TGR
200 (description "The FITS \"World Coordinate System\" (@dfn{WCS}) standard
201defines keywords and usage that provide for the description of astronomical
202coordinate systems in a @dfn{FITS} (Flexible Image Transport System) image
203header.")
2be83f6e 204 (license license:lgpl3+)))
c9bd15c1 205
a80d4892
SH
206(define-public weightwatcher
207 (package
208 (name "weightwatcher")
209 (version "1.12")
210 (source
211 (origin
212 (method url-fetch)
213 (uri (string-append "https://www.astromatic.net/download/weightwatcher/"
214 "weightwatcher-" version ".tar.gz"))
215 (sha256
216 (base32 "1zaqd8d9rpgcwjsp92q3lkfaa22i20gppb91dz34ym54swisjc2p"))))
217 (build-system gnu-build-system)
218 (home-page "https://www.astromatic.net/software/weightwatcher")
219 (synopsis "Weight-map/flag-map multiplexer and rasteriser")
220 (description
221 "Weightwatcher is a program hat combines weight-maps, flag-maps and
222polygon data in order to produce control maps which can directly be used in
223astronomical image-processing packages like Drizzle, Swarp or SExtractor.")
224 (license license:gpl3+)))
225
c9bd15c1
JD
226(define-public gnuastro
227 (package
228 (name "gnuastro")
47962191 229 (version "0.14")
c9bd15c1
JD
230 (source
231 (origin
232 (method url-fetch)
233 (uri (string-append "mirror://gnu/gnuastro/gnuastro-"
38a3b666 234 version ".tar.lz"))
c9bd15c1
JD
235 (sha256
236 (base32
47962191 237 "1xp6n42qxv0x6yigi2w2l5k8006smv27lhrcssysgsvzbydghzg5"))))
c8b8e612
EF
238 (build-system gnu-build-system)
239 (arguments
240 '(#:configure-flags '("--disable-static")))
c9bd15c1
JD
241 (inputs
242 `(("cfitsio" ,cfitsio)
47962191 243 ("curl" ,curl-minimal)
c9bd15c1 244 ("gsl" ,gsl)
47962191 245 ("libgit2" ,libgit2)
4bd428a7 246 ("libjpeg" ,libjpeg-turbo)
edf07598
TGR
247 ("libtiff" ,libtiff)
248 ("wcslib" ,wcslib)
249 ("zlib" ,zlib)))
38a3b666 250 (native-inputs
bd5b6ce0
EF
251 `(("libtool" ,libtool)
252 ("lzip" ,lzip)))
6fd52309 253 (home-page "https://www.gnu.org/software/gnuastro/")
ea4678a4 254 (synopsis "Astronomy utilities")
c9bd15c1
JD
255 (description "The GNU Astronomy Utilities (Gnuastro) is a suite of
256programs for the manipulation and analysis of astronomical data.")
257 (license license:gpl3+)))
0558e968 258
b2d6f127
SH
259(define-public sextractor
260 (package
261 (name "sextractor")
262 (version "2.25.0")
263 (source
264 (origin
265 (method git-fetch)
266 (uri (git-reference
267 (url "https://github.com/astromatic/sextractor")
268 (commit version)))
269 (file-name (git-file-name name version))
270 (sha256
271 (base32 "0q69n3nyal57h3ik2xirwzrxzljrwy9ivwraxzv9566vi3n4z5mw"))))
272 (build-system gnu-build-system)
273 ;; NOTE: (Sharlatan-20210124T103117+0000): Building with `atlas' is failing
274 ;; due to missing shared library which required on configure phase. Switch
275 ;; build to use `openblas' instead. It requires FFTW with single precision
276 ;; `fftwf'.
277 (arguments
278 `(#:configure-flags
279 (list
280 "--enable-openblas"
281 (string-append
282 "--with-openblas-libdir=" (assoc-ref %build-inputs "openblas") "/lib")
283 (string-append
284 "--with-openblas-incdir=" (assoc-ref %build-inputs "openblas") "/include")
285 (string-append
286 "--with-fftw-libdir=" (assoc-ref %build-inputs "fftw") "/lib")
287 (string-append
288 "--with-fftw-incdir=" (assoc-ref %build-inputs "fftw") "/include"))))
289 (native-inputs
290 `(("autoconf" ,autoconf)
291 ("automake" ,automake)
292 ("libtool" ,libtool)))
293 (inputs
294 `(("openblas" ,openblas)
295 ("fftw" ,fftwf)))
296 (home-page "http://www.astromatic.net/software/sextractor")
297 (synopsis "Extract catalogs of sources from astronomical images")
298 (description
299 "SExtractor is a program that builds a catalogue of objects from an
300astronomical image. Although it is particularly oriented towards reduction of
301large scale galaxy-survey data, it can perform reasonably well on moderately
302crowded star fields.")
303 (license license:gpl3+)))
304
33648567
SH
305(define-public skymaker
306 (package
307 (name "skymaker")
308 (version "3.10.5")
309 (source
310 (origin
311 (method url-fetch)
312 (uri (string-append "https://www.astromatic.net/download/skymaker/"
313 "skymaker-" version ".tar.gz"))
314 (sha256
315 (base32 "03zvx7c89plp9559niqv5532r233kza3ir992rg3nxjksqmrqvx1"))))
316 (build-system gnu-build-system)
317 (arguments
318 `(#:configure-flags
319 (list
320 (string-append
321 "--with-fftw-libdir=" (assoc-ref %build-inputs "fftw") "/lib")
322 (string-append
323 "--with-fftw-incdir=" (assoc-ref %build-inputs "fftw") "/include"))))
324 (inputs
325 `(("fftw" ,fftwf)))
326 (home-page "https://www.astromatic.net/software/skymaker")
327 (synopsis "Astronomical image simulator")
328 (description
329 "SkyMaker is a program that simulates astronomical images. It accepts
330object lists in ASCII generated by the Stuff program to produce realistic
331astronomical fields. SkyMaker is part of the EFIGI
332(@url{https://www.astromatic.net/projects/efigi}) development project.")
333 (license license:gpl3+)))
334
19e08113
SH
335(define-public stackistry
336 (package
337 (name "stackistry")
338 (version "0.3.0")
339 (source
340 (origin
341 (method git-fetch)
342 (uri (git-reference
343 (url "https://github.com/GreatAttractor/stackistry")
344 (commit (string-append "v" version))))
345 (file-name (git-file-name name version))
346 (sha256
347 (base32 "0rz29v33n0x0k40hv3v79ym5ylch1v0pbph4i21809gz2al5p7dq"))))
348 (build-system gnu-build-system)
349 (arguments
350 `(#:make-flags
351 (list
352 (string-append
353 "SKRY_INCLUDE_PATH=" (assoc-ref %build-inputs "libskry") "/include")
354 (string-append
355 "SKRY_LIB_PATH=-L" (assoc-ref %build-inputs "libskry") "/lib")
356 (string-append
357 "LIBAV_INCLUDE_PATH=" (assoc-ref %build-inputs "ffmpeg") "/include"))
358 #:phases
359 (modify-phases %standard-phases
360 ;; no configure and tests are provided
361 (delete 'configure)
362 (delete 'check)
363 (add-after 'unpack 'fix-paths
364 (lambda* (#:key outputs #:allow-other-keys)
365 (substitute* "src/main.cpp"
366 (("\"\\.\\.\", \"lang\"")
367 "\"../share/stackistry\", \"lang\""))
368 (substitute* "src/utils.cpp"
369 (("\"\\.\\.\", \"icons\"")
370 "\"../share/stackistry\", \"icons\""))
371 #t))
372 (replace 'install
373 ;; The Makefile lacks an ‘install’ target.
374 (lambda* (#:key outputs #:allow-other-keys)
375 (let* ((out (assoc-ref outputs "out"))
376 (bin (string-append out "/bin"))
377 (icons (string-append out "/share/stackistry/icons"))
378 (lang (string-append out "/share/stackistry/lang")))
379 (copy-recursively "bin" bin)
380 (copy-recursively "icons" icons)
381 (copy-recursively "lang" lang))
382 #t)))))
383 (native-inputs
384 `(("pkg-config" ,pkg-config)))
385 (inputs
386 `(("gtkmm" ,gtkmm)
387 ("libskry" ,libskry)
388 ("ffmpeg" ,ffmpeg)))
389 (home-page "https://github.com/GreatAttractor/stackistry")
390 (synopsis "Astronomical lucky imaging/image stacking tool")
391 (description
392 "Stackistry implements the lucky imaging principle of astronomical
393imaging: creating a high-quality still image out of a series of many (possibly
394thousands) low quality ones (blurred, deformed, noisy). The resulting image
395stack typically requires post-processing, including sharpening (e.g. via
396deconvolution). Such post-processing is not performed by Stackistry.")
397 (license license:gpl3+)))
398
0558e968
JD
399(define-public stellarium
400 (package
401 (name "stellarium")
0ad41c32 402 (version "0.20.4")
a5883d1f
TGR
403 (source
404 (origin
405 (method url-fetch)
406 (uri (string-append "https://github.com/Stellarium/stellarium"
407 "/releases/download/v" version
408 "/stellarium-" version ".tar.gz"))
409 (sha256
0ad41c32 410 (base32 "1253zlr0mi4kdbj119spxk7spg4rkahb4rlpd0hz1d81mnv3n0v3"))))
0558e968 411 (build-system cmake-build-system)
6b2afac9 412 (inputs
5bbf31cc 413 `(("qtbase" ,qtbase)
b74e2f61 414 ("qtlocation" ,qtlocation)
5bbf31cc
DM
415 ("qtmultimedia" ,qtmultimedia)
416 ("qtscript" ,qtscript)
417 ("qtserialport" ,qtserialport)
6b2afac9
DM
418 ("zlib" ,zlib)))
419 (native-inputs
4b93bc0d 420 `(("gettext" ,gettext-minimal) ; xgettext is used at compile time
09fbfe14 421 ("perl" ,perl) ; for pod2man
4b93bc0d 422 ("qtbase" ,qtbase) ; Qt MOC is needed at compile time
5bbf31cc 423 ("qttools" ,qttools)))
f1021afb 424 (arguments
6885745d
KK
425 `(#:test-target "test"
426 #:configure-flags (list "-DENABLE_TESTING=1"
427 (string-append
428 "-DCMAKE_CXX_FLAGS=-isystem "
429 (assoc-ref %build-inputs "qtserialport")
430 "/include/qt5"))
431 #:phases (modify-phases %standard-phases
432 (add-before 'check 'set-offscreen-display
433 (lambda _
09fbfe14 434 ;; Make Qt render "offscreen", required for tests.
6885745d
KK
435 (setenv "QT_QPA_PLATFORM" "offscreen")
436 (setenv "HOME" "/tmp")
437 #t)))))
3d9f26a0 438 (home-page "https://stellarium.org/")
f1021afb
JD
439 (synopsis "3D sky viewer")
440 (description "Stellarium is a planetarium. It shows a realistic sky in
4413D, just like what you see with the naked eye, binoculars, or a telescope. It
442can be used to control telescopes over a serial port for tracking celestial
443objects.")
0558e968 444 (license license:gpl2+)))
ca310f65 445
c21ad767
SH
446(define-public stuff
447 (package
448 (name "stuff")
449 (version "1.26.0")
450 (source
451 (origin
452 (method url-fetch)
453 (uri (string-append "https://www.astromatic.net/download/stuff/"
454 "stuff-" version ".tar.gz"))
455 (sha256
456 (base32 "1syibi3b86z9pikhicvkkmgxm916j732fdiw0agw0lq6z13fdcjm"))))
457 (build-system gnu-build-system)
458 (home-page "https://www.astromatic.net/software/stuff")
459 (synopsis "Astronomical catalogue simulation")
460 (description
461 "Stuff is a program that simulates \"perfect\" astronomical catalogues.
462It generates object lists in ASCII which can read by the SkyMaker program to
463produce realistic astronomical fields. Stuff is part of the EFIGI development
464project.")
465 (license license:gpl3+)))
466
fe058ffb
SH
467(define-public swarp
468 (package
469 (name "swarp")
470 (version "2.38.0")
471 (source
472 (origin
473 (method url-fetch)
474 (uri (string-append "https://www.astromatic.net/download/swarp/"
475 "swarp-" version ".tar.gz"))
476 (sha256
477 (base32 "1i670waqp54vin1cn08mqckcggm9zqd69nk7yya2vvqpdizn6jpm"))))
478 (build-system gnu-build-system)
479 (home-page "https://www.astromatic.net/software/swarp")
480 (synopsis "FITS image resampling and co-addition")
481 (description
482 "SWarp is a program that resamples and co-adds together FITS images using
483any arbitrary astrometric projection defined in the WCS standard.")
484 (license license:gpl3+)))
485
ca310f65
AS
486(define-public celestia
487 (let ((commit "9dbdf29c4ac3d20afb2d9a80d3dff241ecf81dce"))
488 (package
489 (name "celestia")
490 (version (git-version "1.6.1" "815" commit))
491 (source (origin
492 (method git-fetch)
493 (uri (git-reference
494 (url "https://github.com/celestiaproject/celestia")
495 (commit commit)))
496 (file-name (git-file-name name version))
497 (sha256
498 (base32
499 "00xibg87l1arzifakgj7s828x9pszcgx7x7ij88a561ig49ryh78"))))
500 (build-system cmake-build-system)
501 (native-inputs
502 `(("perl" ,perl)
503 ("libgit2" ,libgit2)
504 ("pkg-config" ,pkg-config)
505 ("libtool" ,libtool)
506 ("gettext" ,gettext-minimal)))
507 (inputs
508 `(("glu" ,glu)
509 ("glew" ,glew)
510 ("libtheora" ,libtheora)
4bd428a7 511 ("libjpeg" ,libjpeg-turbo)
ca310f65
AS
512 ("libpng" ,libpng)
513 ;; maybe required?
514 ("mesa" ,mesa)
515 ;; optional: fmtlib, Eigen3;
516 ("fmt" ,fmt)
517 ("eigen" ,eigen)
518 ;; glut: for glut interface
519 ("freeglut" ,freeglut)))
520 (propagated-inputs
521 `(("lua" ,lua)))
522 (arguments
523 `(#:configure-flags '("-DENABLE_GLUT=ON" "-DENABLE_QT=OFF")
524 #:tests? #f)) ;no tests
525 (home-page "https://celestia.space/")
526 (synopsis "Real-time 3D visualization of space")
527 (description
528 "This simulation program lets you explore our universe in three
529dimensions. Celestia simulates many different types of celestial objects.
530From planets and moons to star clusters and galaxies, you can visit every
531object in the expandable database and view it from any point in space and
532time. The position and movement of solar system objects is calculated
533accurately in real time at any rate desired.")
534 (license license:gpl2+))))
67d24b15
AS
535
536(define-public celestia-gtk
537 (package
538 (inherit celestia)
539 (name "celestia-gtk")
540 (inputs
541 (append (alist-delete "freeglut" (package-inputs celestia))
542 `(("gtk2" ,gtk+-2)
543 ("gtkglext" ,gtkglext))))
544 (arguments
545 `(#:configure-flags '("-DENABLE_GTK=ON" "-DENABLE_QT=OFF")
546 #:tests? #f))))
62470a01
EF
547
548(define-public libnova
549 (package
550 (name "libnova")
551 (version "0.16")
552 (source
553 (origin
554 (method git-fetch)
555 (uri (git-reference
556 (url "https://git.code.sf.net/p/libnova/libnova.git")
557 (commit (string-append "v" version))))
558 (file-name (git-file-name name version))
559 (sha256
560 (base32
561 "0icwylwkixihzni0kgl0j8dx3qhqvym6zv2hkw2dy6v9zvysrb1b"))))
562 (build-system gnu-build-system)
563 (arguments
564 `(#:phases
565 (modify-phases %standard-phases
566 (add-after 'unpack 'patch-git-version
567 (lambda _
568 (substitute* "./git-version-gen"
569 (("/bin/sh") (which "sh")))
570 #t)))))
571 (native-inputs
572 `(("autoconf" ,autoconf)
573 ("automake" ,automake)
574 ("libtool" ,libtool)))
575 (synopsis "Celestial mechanics, astrometry and astrodynamics library")
576 (description "Libnova is a general purpose, double precision, Celestial
577Mechanics, Astrometry and Astrodynamics library.")
578 (home-page "http://libnova.sourceforge.net/")
579 (license (list license:lgpl2.0+
580 license:gpl2+)))) ; examples/transforms.c & lntest/*.c
581
87530f7b
SH
582(define-public libskry
583 (package
584 (name "libskry")
585 (version "0.3.0")
586 (source
587 (origin
588 (method git-fetch)
589 (uri (git-reference
590 (url "https://github.com/GreatAttractor/libskry")
591 (commit (string-append "v" version))))
592 (file-name (git-file-name name version))
593 (sha256
594 (base32 "14kwng0j8wqzlb0gqg3ayq36l15dpz7kvxc56fa47j55b376bwh6"))))
595 (build-system gnu-build-system)
596 (arguments
597 `(#:make-flags
598 (list
599 (string-append
600 "LIBAV_INCLUDE_PATH=" (assoc-ref %build-inputs "ffmpeg") "/include"))
601 #:phases
602 (modify-phases %standard-phases
603 (delete 'configure) ;; no configure provided
604 (delete 'check) ;; no tests provided
605 (replace 'install
606 ;; The Makefile lacks an ‘install’ target.
607 (lambda* (#:key outputs #:allow-other-keys)
608 (let* ((out (assoc-ref outputs "out"))
609 (lib (string-append out "/lib"))
610 (include (string-append out "/include")))
611 (copy-recursively "bin" lib)
612 (copy-recursively "include" include))
613 #t)))))
614 (inputs
615 `(("ffmpeg" ,ffmpeg)))
616 (home-page "https://github.com/GreatAttractor/libskry")
617 (synopsis "Astronimical lucky imaging library")
618 (description
619 "@code{libskry} implements the lucky imaging principle of astronomical
620imaging: creating a high-quality still image out of a series of many thousands)
621low quality ones")
622 (license license:gpl3+)))
623
906155e4
SH
624(define-public libpasastro
625 ;; NOTE: (Sharlatan-20210122T215921+0000): the version tag has a build
626 ;; error on spice which is resolved with the latest commit.
627 (let ((commit "e3c218d1502a18cae858c83a9a8812ab197fcb60")
628 (revision "1"))
629 (package
630 (name "libpasastro")
631 (version (git-version "1.4.0" revision commit))
632 (source (origin
633 (method git-fetch)
634 (uri (git-reference
635 (url "https://github.com/pchev/libpasastro")
636 (commit commit)))
637 (file-name (git-file-name name version))
638 (sha256
639 (base32
640 "0asp2sn34nds5va2ghppwc41vb6j3d1mf049j949rgrll817kx47"))))
641 (build-system gnu-build-system)
642 (arguments
643 `(#:tests? #f
644 #:make-flags
645 (list
646 ,(match (or (%current-target-system) (%current-system))
647 ((or "aarch64-linux" "armhf-linux" "i686-linux" "x86_64-linux")
648 "OS_TARGET=linux")
649 (_ #f))
650 ,(match (or (%current-target-system) (%current-system))
651 ("i686-linux" "CPU_TARGET=i386")
652 ("x86_64-linux" "CPU_TARGET=x86_64")
653 ((or "armhf-linux" "aarch64-linux") "CPU_TARGET=armv7l")
654 (_ #f))
655 (string-append "PREFIX=" (assoc-ref %outputs "out")))
656 #:phases
657 (modify-phases %standard-phases
658 (delete 'configure))))
659 (home-page "https://github.com/pchev/libpasastro")
660 (synopsis "Interface to astronomy library for use from Pascal program")
661 (description
662 "This package provides shared libraries to interface Pascal program with
663standard astronomy libraries:
664
665@itemize
666@item @code{libpasgetdss.so}: Interface with GetDSS to work with DSS images.
667@item @code{libpasplan404.so}: Interface with Plan404 to compute planets position.
668@item @code{libpaswcs.so}: Interface with libwcs to work with FITS WCS.
669@item @code{libpasspice.so}: To work with NAIF/SPICE kernel.
670@end itemize\n")
671 (license license:gpl2+))))
672
1aee32a2
SH
673(define-public missfits
674 (package
675 (name "missfits")
676 (version "2.8.0")
677 (source
678 (origin
679 (method url-fetch)
680 (uri (string-append "https://www.astromatic.net/download/missfits/"
681 "missfits-" version ".tar.gz"))
682 (sha256
683 (base32 "04jrd7fsvzr14vdmwgj2f6v97gdcfyjyz6jppml3ghr9xh12jxv5"))))
684 (build-system gnu-build-system)
685 (home-page "https://www.astromatic.net/software/missfits")
686 (synopsis "FITS files Maintenance program")
687 (description
688 "MissFITS is a program that performs basic maintenance and packaging tasks
689on FITS files:
690
691@itemize
692@item add/edit FITS header keywords
693@item split/join Multi-Extension-FITS (MEF) files
694@item unpack/pack FITS data-cubes
695@item create/check/update FITS checksums, using R. Seaman's protocol
696 (see http://www.adass.org/adass/proceedings/adass94/seamanr.html)
697@end itemize\n")
698 (license license:gpl3+)))
699
77704cb1
VK
700(define-public xplanet
701 (package
702 (name "xplanet")
703 (version "1.3.1")
704 (source
705 (origin
706 (method url-fetch)
707 (uri
708 (string-append
709 "mirror://sourceforge/xplanet/xplanet/"
710 version "/xplanet-" version ".tar.gz"))
711 (sha256
712 (base32 "1rzc1alph03j67lrr66499zl0wqndiipmj99nqgvh9xzm1qdb023"))
713 (patches
714 (search-patches
715 "xplanet-1.3.1-cxx11-eof.patch"
716 "xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch"
717 "xplanet-1.3.1-libimage_gif.c.patch"
718 "xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch"))))
719 (build-system gnu-build-system)
720 (native-inputs
721 `(("pkg-config" ,pkg-config)))
722 (inputs
723 `(("libx11" ,libx11)
724 ("libxscrnsaver" ,libxscrnsaver)
725 ("libice" ,libice)
726 ("freetype" ,freetype)
727 ("pango" ,pango)
728 ("giflib" ,giflib)
1628d57b 729 ("libjpeg" ,libjpeg-turbo)
77704cb1
VK
730 ("libpng" ,libpng)
731 ("libtiff" ,libtiff)
732 ("netpbm" ,netpbm)
733 ("zlib" ,zlib)))
734 (arguments
735 `(#:configure-flags
736 (let ((netpbm (assoc-ref %build-inputs "netpbm")))
737 (append (list
738 ;; Give correct path for pnm.h header to configure script
739 (string-append "CPPFLAGS=-I" netpbm "/include/netpbm")
740 ;; no nasa jpl cspice support
741 "--without-cspice" )))))
742 (home-page "http://xplanet.sourceforge.net/")
743 (synopsis "Planetary body renderer")
744 (description
745 "Xplanet renders an image of a planet into an X window or file.
746All of the major planets and most satellites can be drawn and different map
747projections are also supported, including azimuthal, hemisphere, Lambert,
748Mercator, Mollweide, Peters, polyconic, orthographic and rectangular.")
749 (license license:gpl2+)))
a19d63e8
GLV
750
751(define-public gpredict
752 (package
753 (name "gpredict")
754 (version "2.2.1")
755 (source
756 (origin
757 (method url-fetch)
758 (uri (string-append "https://github.com/csete/gpredict/releases"
759 "/download/v" version
760 "/gpredict-" version ".tar.bz2"))
761 (sha256
762 (base32 "0hwf97kng1zy8rxyglw04x89p0bg07zq30hgghm20yxiw2xc8ng7"))))
763 (build-system gnu-build-system)
764 (native-inputs
765 `(("intltool" ,intltool)
766 ("gettext" ,gettext-minimal)
767 ("pkg-config" ,pkg-config)))
768 (inputs
769 `(("curl" ,curl)
770 ("glib" ,glib)
771 ("goocanvas" ,goocanvas)
772 ("gtk+" ,gtk+)))
773 (arguments
774 `(#:phases
775 (modify-phases %standard-phases
776 (add-after 'unpack 'fix-tests
777 (lambda _
778 ;; Remove reference to non-existent file.
779 (substitute* "po/POTFILES.in"
780 (("src/gtk-sat-tree\\.c")
781 ""))
782 #t)))))
783 (synopsis "Satellite tracking and orbit prediction application")
784 (description
785 "Gpredict is a real-time satellite tracking and orbit prediction
786application. It can track a large number of satellites and display their
787position and other data in lists, tables, maps, and polar plots (radar view).
788Gpredict can also predict the time of future passes for a satellite, and
789provide you with detailed information about each pass.")
790 (home-page "http://gpredict.oz9aec.net/index.php")
791 (license license:gpl2+)))
ae416e85
SH
792
793(define-public indi
794 (package
795 (name "indi")
b94d4e6a 796 (version "1.8.9")
ae416e85
SH
797 (source
798 (origin
799 (method git-fetch)
800 (uri (git-reference
801 (url "https://github.com/indilib/indi")
802 (commit (string-append "v" version))))
803 (file-name (git-file-name name version))
804 (sha256
b94d4e6a 805 (base32 "0nw4b2cdsg244slcm3yf1v11jlxbbjrpvi6ax90svs7rlandz8jv"))))
ae416e85
SH
806 (build-system cmake-build-system)
807 (arguments
808 `(#:configure-flags
809 (let ((out (assoc-ref %outputs "out")))
810 (list
811 "-DINDI_BUILD_UNITTESTS=ON"
812 "-DCMAKE_BUILD_TYPE=Release"
813 (string-append "-DCMAKE_INSTALL_PREFIX=" out)
814 (string-append "-DUDEVRULES_INSTALL_DIR=" out "/lib/udev/rules.d")))
815 #:phases
816 (modify-phases %standard-phases
817 (replace 'check
818 (lambda _
819 (chdir "test")
820 (invoke "ctest")
821 (chdir "..")
822 #t))
823 (add-before 'install 'set-install-directories
824 (lambda* (#:key outputs #:allow-other-keys)
825 (let ((out (assoc-ref outputs "out")))
826 (mkdir-p (string-append out "/lib/udev/rules.d")))
827 #t)))))
828 (native-inputs
829 `(("googletest" ,googletest)))
830 (inputs
831 `(("cfitsio" ,cfitsio)
832 ("curl" ,curl)
833 ("fftw" ,fftw)
834 ("gsl" ,gsl)
835 ("libjpeg-turbo" ,libjpeg-turbo)
836 ("libnova" ,libnova)
837 ("libtiff" ,libtiff)
838 ("libusb" ,libusb)
839 ("zlib" ,zlib)))
840 (home-page "https://www.indilib.org")
841 (synopsis "Library for astronimical intrumentation control")
842 (description
843 "INDI (Instrument-Neutral Device Interface) is a distributed XML-based
844control protocol designed to operate astronomical instrumentation. INDI is
845small, flexible, easy to parse, scalable, and stateless. It supports common
846DCS functions such as remote control, data acquisition, monitoring, and a lot
847more.")
848 (license (list license:bsd-3
849 license:gpl2+
850 license:lgpl2.0+
851 license:lgpl2.1+))))
35d13a90
SH
852
853(define-public python-jplephem
854 (package
855 (name "python-jplephem")
856 (version "2.15")
857 (source
858 (origin
859 (method url-fetch)
860 (uri (pypi-uri "jplephem" version))
861 (sha256
862 (base32 "1ca3dswsslij79qg6dcijjz4l0fj6nzmxld8z93v45ahlkhps0g0"))))
863 (build-system python-build-system)
864 (arguments
865 `(#:phases
866 (modify-phases %standard-phases
867 (replace 'check
868 (lambda* (#:key outputs #:allow-other-keys)
869 (let ((out (assoc-ref outputs "out")))
870 (setenv "PYTHONPATH"
871 (string-append "./build/lib:"
872 (getenv "PYTHONPATH")))
873 (setenv "PATH" (string-append out "/bin:"
874 (getenv "PATH")))
875 (invoke "python" "-m" "unittest" "discover" "-s" "test")))))))
876 (inputs
877 `(("python-numpy" ,python-numpy)))
878 (home-page "https://github.com/brandon-rhodes/python-jplephem")
879 (synopsis "Python version of NASA DE4xx ephemerides")
880 (description
881 "The package is a Python implementation of the mathematics that standard
882JPL ephemerides use to predict raw (x,y,z) planetary positions.")
883 (license license:expat)))
8fa76b83 884
56ec8d62
SH
885(define-public python-pyerfa
886 (package
887 (name "python-pyerfa")
888 (version "1.7.2")
889 (source
890 (origin
891 (method url-fetch)
892 (uri (pypi-uri "pyerfa" version))
893 (sha256
894 (base32 "1s78mdyrxha2jcckfs0wg5ynkf0pwh1bw9mmh99vprinxh9n4xri"))
895 (modules '((guix build utils)))
896 (snippet
897 '(begin
898 ;; Remove bundled submodule library.
899 (delete-file-recursively "liberfa")
900 #t))))
901 (build-system python-build-system)
902 (arguments
903 `(#:phases
904 (modify-phases %standard-phases
905 (add-before 'build 'use-system-liberfa
906 (lambda _
907 (setenv "PYERFA_USE_SYSTEM_LIBERFA" "1")
908 #t)))))
909 (native-inputs
910 `(("pytest" ,python-pytest)
911 ("setuptools-scm" ,python-setuptools-scm)
912 ("pytest-doctestplus" ,python-pytest-doctestplus)))
913 (inputs
914 `(("liberfa" ,erfa)
915 ("numpy" ,python-numpy)))
916 (home-page "https://github.com/liberfa/pyerfa")
917 (synopsis "Python bindings for ERFA")
918 (description
919 "PyERFA is the Python wrapper for the ERFA library (Essential
920Routines for Fundamental Astronomy), a C library containing key algorithms for
921astronomy, which is based on the SOFA library published by the International
922Astronomical Union (IAU). All C routines are wrapped as Numpy universal
923functions, so that they can be called with scalar or array inputs.")
924 (license license:bsd-3)))
925
d1bd22b9
SH
926(define-public python-sep
927 (package
928 (name "python-sep")
929 (version "1.1.1")
930 (source
931 (origin
932 (method url-fetch)
933 (uri (pypi-uri "sep" version))
934 (sha256
935 (base32 "0wxdqn92q1grv8k7xi7h88ac6wnznw4xh5bdlz1vz6za2dgsyj4m"))))
936 (build-system python-build-system)
937 (native-inputs
938 `(("cython" ,python-cython)
939 ("pytest" ,python-pytest)))
940 (inputs
941 `(("numpy" ,python-numpy)))
942 (home-page "https://github.com/kbarbary/sep")
943 (synopsis "Astronomical source extraction and photometry library")
944 (description
945 "SEP makes the core algorithms of Source Extractor available as a library
946of stand-alone functions and classes.")
947 (license (list license:bsd-3
948 license:expat
949 license:lgpl3+))))
950
f498823e
SH
951(define-public python-asdf
952 (package
953 (name "python-asdf")
954 (version "2.7.2")
955 (source
956 (origin
957 (method url-fetch)
958 (uri (pypi-uri "asdf" version))
959 (sha256
960 (base32 "1y47zhkd90i8wmm2i35amfl0rvjqlb3fcx90xp7n9kr2z0byzyzg"))))
961 (build-system python-build-system)
962 (arguments
963 ;; TODO: (Sharlatan-20210207T165820+0000): Tests depend on astropy, astropy
964 ;; depends on asdf. Disable circular dependence.
965 `(#:tests? #f))
966 (native-inputs
967 `(("packaging" ,python-packaging)
968 ("semantic-version" ,python-semantic-version)
969 ("setuptools-scm" ,python-setuptools-scm)))
970 (inputs
971 `(("importlib-resources" ,python-importlib-resources)
972 ("jsonschema" ,python-jsonschema)
973 ("numpy" ,python-numpy)
974 ("pyyaml" ,python-pyyaml)))
f63b3eae 975 (home-page "https://github.com/asdf-format/asdf")
f498823e
SH
976 (synopsis "Python tools to handle ASDF files")
977 (description
978 "The Advanced Scientific Data Format (ASDF) is a next-generation
979interchange format for scientific data. This package contains the Python
980implementation of the ASDF Standard.")
981 (license license:bsd-3)))
982
d6996fa0
SH
983(define-public python-astroalign
984 (package
985 (name "python-astroalign")
986 (version "2.3.1")
987 (source
988 (origin
989 (method url-fetch)
990 (uri (pypi-uri "astroalign" version))
991 (sha256
992 (base32 "19qzv3552lgrd9qmj0rxs51wmx485hw04cbf76ds5pin85kfaiy1"))))
993 (build-system python-build-system)
994 (arguments
995 ;; TODO: (Sharlatan-20210213T162940+0000): I could not make tests run
996 `(#:tests? #f))
997 (inputs
998 `(("numpy" ,python-numpy)
999 ("scikit-image" ,python-scikit-image)
1000 ("scipy" ,python-scipy)
1001 ("sep" ,python-sep)))
1002 (home-page "https://astroalign.readthedocs.io/")
1003 (synopsis "Astrometric Alignment of Images")
1004 (description
1005 "ASTROALIGN is a python module that will try to align two stellar
1006astronomical images, especially when there is no WCS information available.")
1007 (license license:expat)))
1008
8fa76b83
SH
1009(define-public python-skyfield
1010 (package
1011 (name "python-skyfield")
1012 (version "1.36")
1013 (source
1014 (origin
1015 (method url-fetch)
1016 (uri (pypi-uri "skyfield" version))
1017 (sha256
1018 (base32 "1dm1327a4qv3klj9blrvddbhl72v1fqz52ym9km8qjj9vdkpywh6"))))
1019 (build-system python-build-system)
1020 (arguments
1021 ;; NOTE: (Sharlatan-20210207T163305+0000): tests depend on custom test
1022 ;; framework https://github.com/brandon-rhodes/assay
1023 `(#:tests? #f))
1024 (inputs
1025 `(("certifi" ,python-certifi)
1026 ("jplephem" ,python-jplephem)
1027 ("numpy" ,python-numpy)
1028 ("sgp4" ,python-sgp4)))
1029 (home-page "https://rhodesmill.org/skyfield/")
1030 (synopsis "Astronomy for Python")
1031 (description
1032 "Skyfield computes positions for the stars, planets, and satellites in
1033orbit around the Earth.")
1034 (license license:expat)))