Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile a transitions wavelength list for astronomical observations. #335

Open
Vital-Fernandez opened this issue Oct 21, 2024 · 4 comments
Labels

Comments

@Vital-Fernandez
Copy link

First of all, I would like to thank you for your work on this great package.

I am currently seeking to compile a list of ionic transition wavelengths for use in astronomical spectra observations and would appreciate your guidance on the best way to achieve this with FIASCO.

To provide some context, I maintain a small package called LiMe for measuring lines. The library includes a small table that lists the line names, ions, bands, and wavelengths. I am looking for a more robust way to set the theoretical wavelengths in this table. One approach I have considered is using the wavelengths compiled in Cloudy’s LineLabels.txt file and updating it with each new release.

However, I am wondering if this could be done using FIASCO automatically, specifically by leveraging the .spectrum attribute of Ion objects. Could you please provide any insights on how I might retrieve weighted transitions and their corresponding wavelengths?

Thank you very much for your time and assistance.

@jwreep
Copy link
Collaborator

jwreep commented Oct 26, 2024

I think this should be able to be done if you create an Ion object, but it might not be in the easiest-to-use form yet.

For example,

iron = fiasco.Element('Fe', 1e6*u.K)
print(iron[5].transitions.wavelength)

This will print the wavelength for each transition of Fe VI, for example. (Looks like there are 1417 of them.). You can also print the upper and lower levels with e.g. iron[5].transitions.upper_level. The electronic configurations can be found in the Level object, for example,

>>> iron[5]._all_levels[10]
Level: 11
Configuration: 3p63d3
Orbital Angular Momentum: P
Energy: 3.285023329586858 eV

The Level and Transitions objects in fiasco.levels I think should have the information you're looking for, but Will can correct me if there's something that might be better.

The one caveat is that these are the transitions in CHIANTI, which was designed with the solar corona in mind, and may not have all transitions that you're looking for. We have open issues to integrate with other atomic databases (#11).

@Vital-Fernandez
Copy link
Author

Thank you very much @jwreep for your reply. I am going to play a bit with the commands to keep learning how better do this.

@wtbarnes
Copy link
Owner

wtbarnes commented Oct 28, 2024

Thanks for your question @Vital-Fernandez and your interest in fiasco! @jwreep has already answered most of your questions. Just a few follow-up comments/questions:

  • What exactly do you mean by weighted transitions?
  • You can also get level information by indexing the Ion object directly, e.g. iron[5][10] will give you the same as the above example. See this example for more info.
  • You can check whether a transition is observed or theoretical using the is_observed property on a given transition, e.g. iron[5].transitions.is_observed.
  • If I'm understanding your need correctly, you would probably want to create a collection of all ions in CHIANTI and then get the relevant transitions from each ion. The following code snippet provides a minimal example of how to do this:
import fiasco
import astropy.units as u
all_ions = fiasco.IonCollection(*[fiasco.Ion(i,1*u.MK) for i in fiasco.list_ions()])
for ion in all_ions:
    print(ion.transitions.wavelength)
    print(ion.transitions.is_observed)
  • As @jwreep has pointed out, many of these data have been used and curated in a solar specific context. All of these data come from CHIANTI, but are compiled originally from a wide variety of sources. To check the original source for any of the transition data, have a look at the ._wgfa.footer property for each ion.

@jwreep
Copy link
Collaborator

jwreep commented Nov 1, 2024

@wtbarnes, thank you for the clarifications! As an aside, would it be worth adding an all_ions command to generate the list automatically, since we use it so often?

@Vital-Fernandez Hope it works! Let us know how else we might help, or if there's any new or additional functionality that might be useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants