summaryrefslogtreecommitdiff
path: root/gnu/packages/astronomy.scm
diff options
context:
space:
mode:
authorSharlatan Hellseher <sharlatanus@gmail.com>2022-11-16 22:50:35 +0000
committerLudovic Courtès <ludo@gnu.org>2022-12-02 00:02:12 +0100
commit594f5ef35107d5641c44dac5cd7e9fb3737b674b (patch)
treeb9b4a4b72e54eb754d121fc60550d0d3601b4641 /gnu/packages/astronomy.scm
parent5a7e496c5d1a9f38e71033e0ddfcd3446553dff8 (diff)
gnu: Add alfa.
* gnu/packages/astronomy.scm (alfa): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/astronomy.scm')
-rw-r--r--gnu/packages/astronomy.scm52
1 files changed, 52 insertions, 0 deletions
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 439fdf72a8..66bff83033 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -89,6 +89,58 @@
#: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"))