Hi Fritz,
I am happy the short assessment was useful, thanks also for your
thoughts on Gnuastro ;-).
The longevity issue that you mentioned is indeed the same reason that I
use C myself: since modern operating systems are written in C, it will
not change significantly in the foreseeable future! In fact when I first
started Gnuastro, so many people asked me "why not use Python?" that I
had to write the following section to the manual, justifing "Why C?":
https://www.gnu.org/software/gnuastro/manual/html_node/Why-C.html
GSL itself has no dependencies, only a minimal C compiler and standard C
library, which is very good in terms of longevity (thanks so much to all
the maintainers over the years).
However, what you mentioned about "keep it on terms that they can
maintain" is also very important, so be sure to coordinate your choice
with their capabilities.
Good luck on the spectral analysis library,
Cheers,
Mohammad
On 3/16/21 4:58 PM, Fritz Sonnichsen wrote:
Thank you Mohammad. I looked at your web page and you do exciting stuff!
Your assessment of GSL is what I needed. I think the manual is well
written and tells me what I can do with it--as you mention the higher
level details applied to a specific area of science probably require
another added package- or at least writing the software "in house". I
probably will proceed that way. One difficulty is that this code will
probably eventually get handed off to a biologist and a software
engineer--so I need to try to keep it on terms that they can maintain.
I also need to be sure that a language (e.g. GSL) will stay around
long term---seems like that is a problem these days. In addition I find
that a lot of the "post C" languages can get very cluttered in the wrong
hands and tend so stick with C as a science language especially for code
destined to other people (perhaps I am showing my age!).
Regarding AI and Machine Learning it is rather new to me and I
probably will not be involved other than using openCV for
image processing. I just want to track if any of it has been
accommodated by existing routines, but I guess it is rather broad and
subject to its own packages-
Cheers
Fritz
On Tue, Mar 16, 2021 at 9:55 AM Mohammad Akhlaghi <[email protected]
<mailto:[email protected]>> wrote:
Hi Fritz,
GSL is a low-level/fundamental/core numeric analysis library providing
the low-level tools for numeric operations that are common in many
different science applications.
So for example in GNU Astronomy Utilities (that I am maintaining), we
heavily rely on many of GSL's low-level tools and use them extensively
for astronomical data analysis. It is the same for many other
scientific
software (they use GSL for low-level computationally hard operations).
So if you want to write a high-level spectral analysis library/program
many of the computational tools you'll need are in GSL (for example for
fitting emission lines or the continuum, or convolving/smoothing data
and many more things), but you have to write the wrapper functions to
use them in the special context you need in your spectral analysis.
About AI, I think its out of GSL's scope (similar to the logic above:
GSL is a low-level/fundamental library)! I am not a GSL maintainer, but
this is just what I feel given the current set of tools it provides.
Cheers,
Mohammad
On 3/16/21 1:25 PM, Mike Marchywka wrote:
> Can you comment on how you compare spectra? Just for my own
> personal interest, not sure if will further the thread here however..
> Not sure a "dot product" in the conventional sense would help much.
> You could imagine comparing peak positions and relative heights
> or a fit to a continuum for example. Peaks plus black body in some
> vector comparison?
>
> note new address
> Mike Marchywka 306 Charles Cox Drive Canton, GA 30115
> 2295 Collinworth Drive Marietta GA 30062. formerly 487 Salem
Woods Drive Marietta GA 30067 404-788-1216 (C)<- leave message
989-348-4796 (P)<- emergency
>
>
> ________________________________________
> From: Help-gsl <[email protected]
<mailto:[email protected]>> on behalf of Fritz Sonnichsen
<[email protected] <mailto:[email protected]>>
> Sent: Tuesday, March 16, 2021 9:15 AM
> To: [email protected] <mailto:[email protected]>
> Subject: Checking GSL for Spectroscopy
>
> I am preparing to convert MATLAB code to something more general.
The new
> code will run on LInux and ARM processors.
> For a lot of reasons I am not going to use Python. We also
want to
> keep this project "close" to scientists and do not want to turn
it into a
> full time computer programming job. So the final word is that I
am looking
> for something that can be called by (and hopefully is written) in
C. Worse
> case I will just write the code myself but would prefer to start
> integrating our systems into something with a lot of pre-written
and vetted
> routines.
>
> GSL looks like a good choice. Maybe R comes next. We have a mix
of needs
> but I will point out a few:
> 1) Baselining a spectrum
> 2) Finding peaks in that spectrum
> 3) using Pearson correlation to compare the spectrum QUICKLY to
> about 50,000 recorded examples.
>
> We also have some uses with basic statistics and we do some image
> processing.
>
> So my question is--does GSL position itself in these areas?
MATLAB (with
> packages) does them all.
> I am not sure how active GSL, if it is keeping up with AI,
imaging and
> spectroscopy--or is it fading or giving way to popular languages for
> example. I was surprised that the 600+ page manual did not seem
to show
> anything relating to the simple spectral analysis described above for
> example. Certainly I can search the web for others' code but at
some point
> if I cannot attach to a well established product I will just write it
> myself.
>
> Any comments appreciated
> thanks
> Fritz
>