gnu: emacs-consult: Fix grammar.
[jackhill/guix/guix.git] / gnu / packages / astronomy.scm
index 98ef7b3..4660e14 100644 (file)
@@ -54,6 +54,7 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages version-control)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system cmake)
@@ -117,7 +118,7 @@ for reading and writing.")
 (define-public erfa
   (package
     (name "erfa")
-    (version "1.7.2")
+    (version "1.7.3")
     (source
      (origin
        (method git-fetch)
@@ -126,7 +127,7 @@ for reading and writing.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1vsqwvzlk7r8q7nwyb7i710blcfdl5kwcm2va9km07a820nsp84a"))))
+        (base32 "0nh12dr7gk4ki55lz95pkm4fpf7kazirra3zax9pab6v4qql4hlw"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("automake" ,automake)
@@ -136,8 +137,10 @@ for reading and writing.")
     (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).")
+     "The @acronym{ERFA, Essential Routines for Fundamental Astronomy} C library
+contains key algorithms for astronomy, and is based on the @acronym{SOFA,
+Standards of Fundamental Astronomy} library published by the @acronym{IAU,
+International Astronomical Union}.")
     (license license:bsd-3)))
 
 (define-public eye
@@ -166,7 +169,7 @@ feature detection and cosmetic corrections.")
 (define-public wcslib
   (package
     (name "wcslib")
-    (version "6.4")
+    (version "7.5")
     (source
      (origin
        (method url-fetch)
@@ -174,7 +177,7 @@ feature detection and cosmetic corrections.")
              "ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib-" version
              ".tar.bz2"))
        (sha256
-        (base32 "003h23m6d5wcs29v2vbnl63f3z35k5x70lpsqlz5c9bp1bvizh8k"))))
+        (base32 "1536gmcpm6pckn9xrb6j8s4pm1vryjhzvhfaj9wx3jwxcpbdy0dw"))))
     (inputs
      `(("cfitsio" ,cfitsio)))
     (build-system gnu-build-system)
@@ -331,10 +334,74 @@ astronomical fields.  SkyMaker is part of the EFIGI
 (@url{https://www.astromatic.net/projects/efigi}) development project.")
     (license license:gpl3+)))
 
+(define-public stackistry
+  (package
+    (name "stackistry")
+    (version "0.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/GreatAttractor/stackistry")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0rz29v33n0x0k40hv3v79ym5ylch1v0pbph4i21809gz2al5p7dq"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list
+        (string-append
+         "SKRY_INCLUDE_PATH=" (assoc-ref %build-inputs "libskry") "/include")
+        (string-append
+         "SKRY_LIB_PATH=-L" (assoc-ref %build-inputs "libskry") "/lib")
+        (string-append
+         "LIBAV_INCLUDE_PATH=" (assoc-ref %build-inputs "ffmpeg") "/include"))
+       #:phases
+       (modify-phases %standard-phases
+         ;; no configure and tests are provided
+         (delete 'configure)
+         (delete 'check)
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "src/main.cpp"
+               (("\"\\.\\.\", \"lang\"")
+                "\"../share/stackistry\", \"lang\""))
+             (substitute* "src/utils.cpp"
+               (("\"\\.\\.\", \"icons\"")
+                "\"../share/stackistry\", \"icons\""))
+             #t))
+         (replace 'install
+           ;; The Makefile lacks an ‘install’ target.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (icons (string-append out "/share/stackistry/icons"))
+                    (lang (string-append out "/share/stackistry/lang")))
+               (copy-recursively "bin" bin)
+               (copy-recursively "icons" icons)
+               (copy-recursively "lang" lang))
+             #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+     (inputs
+      `(("gtkmm" ,gtkmm)
+        ("libskry" ,libskry)
+        ("ffmpeg" ,ffmpeg)))
+     (home-page "https://github.com/GreatAttractor/stackistry")
+     (synopsis "Astronomical lucky imaging/image stacking tool")
+     (description
+      "Stackistry implements the lucky imaging principle of astronomical
+imaging: creating a high-quality still image out of a series of many (possibly
+thousands) low quality ones (blurred, deformed, noisy).  The resulting image
+stack typically requires post-processing, including sharpening (e.g. via
+deconvolution).  Such post-processing is not performed by Stackistry.")
+     (license license:gpl3+)))
+
 (define-public stellarium
   (package
     (name "stellarium")
-    (version "0.20.4")
+    (version "0.21.0")
     (source
      (origin
        (method url-fetch)
@@ -342,7 +409,7 @@ astronomical fields.  SkyMaker is part of the EFIGI
                            "/releases/download/v" version
                            "/stellarium-" version ".tar.gz"))
        (sha256
-        (base32 "1253zlr0mi4kdbj119spxk7spg4rkahb4rlpd0hz1d81mnv3n0v3"))))
+        (base32 "04vg2asj9gygwnrs32scqc8192ln2lyqa9v7cjqk8zd4frkwszwp"))))
     (build-system cmake-build-system)
     (inputs
      `(("qtbase" ,qtbase)
@@ -514,6 +581,48 @@ Mechanics, Astrometry and Astrodynamics library.")
     (license (list license:lgpl2.0+
                    license:gpl2+)))) ; examples/transforms.c & lntest/*.c
 
+(define-public libskry
+  (package
+    (name "libskry")
+    (version "0.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/GreatAttractor/libskry")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14kwng0j8wqzlb0gqg3ayq36l15dpz7kvxc56fa47j55b376bwh6"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list
+        (string-append
+         "LIBAV_INCLUDE_PATH=" (assoc-ref %build-inputs "ffmpeg") "/include"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ;; no configure provided
+         (delete 'check) ;; no tests provided
+         (replace 'install
+           ;; The Makefile lacks an ‘install’ target.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib"))
+                    (include (string-append out "/include")))
+               (copy-recursively "bin" lib)
+               (copy-recursively "include" include))
+             #t)))))
+    (inputs
+     `(("ffmpeg" ,ffmpeg)))
+    (home-page "https://github.com/GreatAttractor/libskry")
+    (synopsis "Astronimical lucky imaging library")
+    (description
+     "@code{libskry} implements the lucky imaging principle of astronomical
+imaging: creating a high-quality still image out of a series of many thousands)
+low quality ones")
+    (license license:gpl3+)))
+
 (define-public libpasastro
   ;; NOTE: (Sharlatan-20210122T215921+0000): the version tag has a build
   ;; error on spice which is resolved with the latest commit.
@@ -686,7 +795,7 @@ provide you with detailed information about each pass.")
 (define-public indi
   (package
     (name "indi")
-    (version "1.8.8")
+    (version "1.8.9")
     (source
      (origin
        (method git-fetch)
@@ -695,7 +804,7 @@ provide you with detailed information about each pass.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "19gm7rbnm3295g2i8mdzfslpz0vrcgfmbl59311qpszvlxbmyd2r"))))
+        (base32 "0nw4b2cdsg244slcm3yf1v11jlxbbjrpvi6ax90svs7rlandz8jv"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -841,16 +950,74 @@ of stand-alone functions and classes.")
                    license:expat
                    license:lgpl3+))))
 
+(define-public python-asdf
+  (package
+    (name "python-asdf")
+    (version "2.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "asdf" version))
+       (sha256
+        (base32 "1y47zhkd90i8wmm2i35amfl0rvjqlb3fcx90xp7n9kr2z0byzyzg"))))
+    (build-system python-build-system)
+    (arguments
+     ;; TODO: (Sharlatan-20210207T165820+0000): Tests depend on astropy, astropy
+     ;; depends on asdf. Disable circular dependence.
+     `(#:tests? #f))
+    (native-inputs
+     `(("packaging" ,python-packaging)
+       ("semantic-version" ,python-semantic-version)
+       ("setuptools-scm" ,python-setuptools-scm)))
+     (inputs
+      `(("importlib-resources" ,python-importlib-resources)
+        ("jsonschema" ,python-jsonschema)
+        ("numpy" ,python-numpy)
+        ("pyyaml" ,python-pyyaml)))
+     (home-page "https://github.com/asdf-format/asdf")
+     (synopsis "Python tools to handle ASDF files")
+     (description
+      "The Advanced Scientific Data Format (ASDF) is a next-generation
+interchange format for scientific data.  This package contains the Python
+implementation of the ASDF Standard.")
+     (license license:bsd-3)))
+
+(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)))
+
 (define-public python-skyfield
   (package
     (name "python-skyfield")
-    (version "1.36")
+    (version "1.38")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "skyfield" version))
        (sha256
-        (base32 "1dm1327a4qv3klj9blrvddbhl72v1fqz52ym9km8qjj9vdkpywh6"))))
+        (base32 "1qi1l8qn6irdv6w41qq30s2yjwak7h6ayywr1pry9gwcm2c25bv5"))))
     (build-system python-build-system)
     (arguments
      ;; NOTE: (Sharlatan-20210207T163305+0000): tests depend on custom test