Subject: [PATCH 5/5] Astronomy packages
From: Sharlatan Hellseher <[email-masked]>
To: [email-masked]
Date: Sat, 13 Feb 2021 16:37:17 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Guix team!

This issue includes 5 more packages:

- astroalign
- sep
- pyerfa
- erfa
- qfits

Related issue https://issues.guix.gnu.org/46375
Progress https://github.com/Hellseher/guix-patches/blob/main/astronomy.org

--
… наш разум - превосходная объяснительная машина которая способна
найти смысл почти в чем угодно, истолковать любой феномен, но
совершенно не в состоянии принять мысль о непредсказуемости.
From 75b993c2a0f56d9371d8eb64c25ffe561e023e30 Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <[email-masked]>
Date: Sat, 13 Feb 2021 14:39:54 +0000
Subject: [PATCH 2/5] gnu: Add erfa

* gnu/packages/astronomy.scm (erfa): New variable.
---
 gnu/packages/astronomy.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 1fc035dd60..8d58d64a1c 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -111,6 +111,31 @@ in FITS files.")
 reading and writing.")
     (license license:gpl3+)))
 
+(define-public erfa
+  (package
+    (name "erfa")
+    (version "1.7.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/liberfa/erfa")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1vsqwvzlk7r8q7nwyb7i710blcfdl5kwcm2va9km07a820nsp84a"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("libtool" ,libtool)
+       ("automake" ,automake)
+       ("autoreconf" ,autoconf)))
+    (home-page "https://github.com/liberfa/erfa")
+    (synopsis "Essential Routines for Fundamental Astronomy")
+    (description
+     "ERFA is a C library containing key algorithms for astronomy, and is based
+on the SOFA library published by the International Astronomical Union (IAU).")
+    (license license:bsd-3)))
+
 (define-public eye
   (package
     (name "eye")
-- 
2.30.0

From 2987afa869ab7955aa8a25a8bb6f74e98f26447e Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <[email-masked]>
Date: Sat, 13 Feb 2021 15:20:30 +0000
Subject: [PATCH 4/5] gnu: Add sep

* gnu/packages/astronomy.scm (python-sep): New variable.
---
 gnu/packages/astronomy.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 59afe21294..beea02af13 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -812,3 +812,26 @@ astronomy, which is based on the SOFA library published by the International
 Astronomical Union (IAU).  All C routines are wrapped as Numpy universal
 functions, so that they can be called with scalar or array inputs.")
     (license license:bsd-3)))
+
+(define-public python-sep
+  (package
+    (name "python-sep")
+    (version "1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "sep" version))
+       (sha256
+        (base32 "0wxdqn92q1grv8k7xi7h88ac6wnznw4xh5bdlz1vz6za2dgsyj4m"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("cython" ,python-cython)
+       ("pytest" ,python-pytest)))
+    (inputs
+     `(("numpy" ,python-numpy)))
+    (home-page "https://github.com/kbarbary/sep")
+    (synopsis "Astronomical source extraction and photometry library")
+    (description
+     "SEP makes the core algorithms of Source Extractor available as a library
+of stand-alone functions and classes.")
+    (license license:expat))) ;; it comes with 3 licenses/[BSD, LGPL, MIT]
-- 
2.30.0

From 62ef9706e60f24e0160acad4a82d7f62bc6592ba Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <[email-masked]>
Date: Sat, 13 Feb 2021 14:30:01 +0000
Subject: [PATCH 1/5] gnu: Add qfits

* gnu/packages/astronomy.scm (qfits): New variables.
---
 gnu/packages/astronomy.scm | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 07dee4b462..1fc035dd60 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -92,6 +92,25 @@ in FITS files.")
     (license (license:non-copyleft "file://License.txt"
                           "See License.txt in the distribution."))))
 
+(define-public qfits
+  (package
+    (name "qfits")
+    (version "6.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "ftp://ftp.eso.org/pub/qfits/qfits-" version ".tar.gz"))
+       (sha256
+        (base32 "0m2b21mim3a7wgfg3ph2w5hv7mdvr03jmmhzipc0wcahijglcw9j"))))
+    (build-system gnu-build-system)
+    (home-page "https://www.eso.org/sci/software/eclipse/qfits/")
+    (synopsis "C library offering access to astronomical FITS files")
+    (description
+     "@code{qfits} is a C library giving access to FITS file internals, both for
+reading and writing.")
+    (license license:gpl3+)))
+
 (define-public eye
   (package
     (name "eye")
-- 
2.30.0

From d550f12c64e46dad9e3d3de757772acad083f645 Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <[email-masked]>
Date: Sat, 13 Feb 2021 16:30:48 +0000
Subject: [PATCH 5/5] gnu: Add astroalign

* gnu/packages/astronomy.scm (python-astroalign): New variable.
---
 gnu/packages/astronomy.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index beea02af13..f4dad79d81 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -49,6 +49,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python-check)
+  #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages version-control)
@@ -835,3 +836,29 @@ functions, so that they can be called with scalar or array inputs.")
      "SEP makes the core algorithms of Source Extractor available as a library
 of stand-alone functions and classes.")
     (license license:expat))) ;; it comes with 3 licenses/[BSD, LGPL, MIT]
+
+(define-public python-astroalign
+  (package
+    (name "python-astroalign")
+    (version "2.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "astroalign" version))
+       (sha256
+        (base32 "19qzv3552lgrd9qmj0rxs51wmx485hw04cbf76ds5pin85kfaiy1"))))
+    (build-system python-build-system)
+    (arguments
+     ;; TODO: (Sharlatan-20210213T162940+0000): I could not make tests run
+     `(#:tests? #f))
+    (inputs
+     `(("numpy" ,python-numpy)
+       ("scikit-image" ,python-scikit-image)
+       ("scipy" ,python-scipy)
+       ("sep" ,python-sep)))
+    (home-page "https://astroalign.readthedocs.io/")
+    (synopsis "Astrometric Alignment of Images")
+    (description
+     "ASTROALIGN is a python module that will try to align two stellar
+astronomical images, especially when there is no WCS information available.")
+    (license license:expat)))
-- 
2.30.0

From 4537223357da02adcf118e4376bc6884be77cd86 Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <[email-masked]>
Date: Sat, 13 Feb 2021 15:10:04 +0000
Subject: [PATCH 3/5] gnu: Add pyerfa

* gnu/packages/astronomy.scm (python-pyerfa): New variable.
---
 gnu/packages/astronomy.scm | 42 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 8d58d64a1c..59afe21294 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -48,6 +48,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pretty-print)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages version-control)
@@ -770,3 +771,44 @@ more.")
      "The package is a Python implementation of the mathematics that standard
 JPL ephemerides use to predict raw (x,y,z) planetary positions.")
     (license license:expat)))
+
+(define-public python-pyerfa
+  (package
+    (name "python-pyerfa")
+    (version "1.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pyerfa" version))
+       (sha256
+        (base32 "1s78mdyrxha2jcckfs0wg5ynkf0pwh1bw9mmh99vprinxh9n4xri"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove bundled submodule library.
+           (delete-file-recursively "liberfa")
+           #t))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'use-system-liberfa
+           (lambda _
+             (setenv "PYERFA_USE_SYSTEM_LIBERFA" "1")
+             #t)))))
+    (native-inputs
+     `(("pytest" ,python-pytest)
+       ("setuptools-scm" ,python-setuptools-scm)
+       ("pytest-doctestplus" ,python-pytest-doctestplus)))
+    (inputs
+     `(("liberfa" ,erfa)
+       ("numpy" ,python-numpy)))
+    (home-page "https://github.com/liberfa/pyerfa")
+    (synopsis "Python bindings for ERFA")
+    (description
+     "PyERFA is the Python wrapper for the ERFA library (Essential
+Routines for Fundamental Astronomy), a C library containing key algorithms for
+astronomy, which is based on the SOFA library published by the International
+Astronomical Union (IAU).  All C routines are wrapped as Numpy universal
+functions, so that they can be called with scalar or array inputs.")
+    (license license:bsd-3)))
-- 
2.30.0