(address . guix-patches@gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
* gnu/packages/astronomy.scm (alfa): New variable.
---
gnu/packages/astronomy.scm | 53 ++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
Toggle diff (66 lines)
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index bc31a12594..c5f0944219 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -86,6 +86,59 @@ (define-module (gnu packages astronomy)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1))
+(define-public alfa
+ (package
+ (name "alfa")
+ (version "2.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rwesson/ALFA")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "0aqxqar36822mh373awsl79j7zn8vik4yddyydsxv0c76gn4i2k3"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:parallel-build? #f
+ #:make-flags
+ #~(list (string-append "PREFIX=" #$output)
+ (string-append "VERSION=" #$version))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check)
+ (add-after 'install 'post-install-check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "make" "fittest")))))))
+ (inputs (list cfitsio gfortran))
+ (home-page "https://nebulousresearch.org/codes/alfa/")
+ (synopsis "Automated Line Fitting Algorithm")
+ (description
+ "This package provides @acronym{ALFA, Automatic line fitting algorithm}
+which can identify and fit hundreds of lines in emission line spectra in just a
+few seconds with following features:
+@itemize
+
+@item A population of synthetic spectra is generated using a reference line
+catalogue.
+
+@item The goodness of fit for each synthetic spectrum is calculated. The best
+sets of parameters are retained and the rest discarded.
+
+@item A new population of synthetic spectra is obtained by averaging pairs of
+the best performers.
+
+@item A small fraction of the parameters of the lines in the new generation are
+randomly altered.
+
+@item The process repeats until a good fit is obtained.
+@end itemize")
+ (license license:gpl3+)))
+
(define-public aocommon
(let ((commit "7329a075271edab8f6264db649e81e62b2b6ae5e")
(revision "1"))
--
2.38.0