Observatories
mileslucas opened this issue · 4 comments
I’m curious about moving the common observatory information into this repo from AstroLib. In addition, would it be crazy to try adding an “Instrument” abstract type with some common methods values like what observatory, aperture, resolution, fwhm, or similar properties? An example usage would be broadening synthetic spectra dependent on what instrument the data is from (via FWHM lookup).
I’m curious about moving the common observatory information into this repo from AstroLib
I'd be fine with moving observatories here. I created AstroLib.jl to help transition from IDL to Julia, but I'm far from being satisfied by its interface, it still feels too IDL-ish. Let's also ask @helgee about the move.
In addition, would it be crazy to try adding an “Instrument” abstract type with some common methods values like what observatory, aperture, resolution, fwhm, or similar properties? An example usage would be broadening synthetic spectra dependent on what instrument the data is from (via FWHM lookup).
I don't think it would be too crazy, but the problem is that there are potentially many information, and finding them for all instruments can be a daunting task.
I agree AstroLib feels very IDL. To the point where adding something new (like generic broadening ops) would feel out of place. I realize this is starting to get out of the scope of this issue, but perhaps AstroLib becomes maintained purely as a "wrapper" for IDL astrolib? It has the most stars of any juliaastro repo but it would be nice to see interfaces that mimic some of the AstroPy-esque functionality (like broadening, photometry, etc.) somewhere else.
Would those be appropriate here? It would be nice to get some kind of idea of what the JuliaAstro ideal landscape could look like. Perhaps, instead, we put any observatory types/data into an Observatories.jl
repo that is more book-keeping than anything else.
As for the instruments, I definitely agree with what you said. Another project I work on, Starfish
, has a python file defining an Instrument
type (for spectrographs) and subsequent listings of ~10 common spectrographs. It's something that is abstract enough to be usable (IE every spectrograph has some common attributes and the Starfish code only uses a view of those attributes) but each entry is simple enough that somebody could easily create their own entry. I'm not convinced it's necessarily worthwhile, perhaps if you can imagine a good implementation we could latch onto it.
AstroLib
has been my very first package in Julia, I think (probably my first Julia code!), so it greatly suffers from my inexperience back then. I tried to find a balance between making it easy-to-use for people coming from IDL and using idiomatic Julia features (e.g., whenever possible I tried to use standard Julia types, like DateTime
). I think I partly failed the Julia part. At least I avoided to put in AstroLib
functionalities that were already available elsewhere, like FITSIO
, it was pointless to have an AstroLib-like wrapper around that.
I don't think we should aim at mimicking Astropy in the sense of copying its interface, we'd do the same error I did with AstroLib: IDL/Python/anything-else are different languages than Julia, with different paradigms. If you meant to say that we should mimic Astropy in the sense of having functionalities written in idiomatic code for the language used (and I believe that Astropy is really great in this), I agree.
I think it's completely fine to leave AstroLib as it is and implement new feature elsewhere. I think AstroBase.jl
was born exactly with the idea of laying the common ground for Astro* packages in Julia, properly using Julia's features.
Now, let's go back to the point of the observatories. Also creating a separate package is an option, probably better for experimenting with the design, even if that would be a small package actually.
Thanks for the discussion on AstroLib, I have a better understanding of the landscape now!
For the observatories, I think that might be a good start, too. When I have some time I'll make up an Observatories.jl
on my own user and play around with the types and such.