astronomy.scm 41 KB

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