Skip to content

Instantly share code, notes, and snippets.

@epassaro
Created November 26, 2021 16:11
Show Gist options
  • Save epassaro/2676ab19fe0ae0f58a2f3895a6d82db8 to your computer and use it in GitHub Desktop.
Save epassaro/2676ab19fe0ae0f58a2f3895a6d82db8 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "a0d2fd58",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" ChiantiPy version 0.8.4 \n",
" found PyQt5 widgets\n",
" using PyQt5 widgets\n",
"[\u001b[1m carsus.io.nist.weightscomp\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Downloading data from the NIST Atomic Weights and Isotopic Compositions Database. (\u001b[1mweightscomp.py\u001b[0m:49)\n",
"[\u001b[1m carsus.io.nist.ionization\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Downloading ionization energies from the NIST Atomic Spectra Database. (\u001b[1mionization.py\u001b[0m:65)\n"
]
}
],
"source": [
"from carsus.io.nist import NISTWeightsComp, NISTIonizationEnergies\n",
"\n",
"atomic_weights = NISTWeightsComp()\n",
"ionization_energies = NISTIonizationEnergies('H-S')"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "db021afe",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"atomic_number ion_charge\n",
"1 0 13.598435\n",
"2 0 24.587389\n",
" 1 54.417765\n",
"3 0 5.391715\n",
" 1 75.640097\n",
" ... \n",
"16 11 564.410000\n",
" 12 651.960000\n",
" 13 706.994000\n",
" 14 3223.780700\n",
" 15 3494.187900\n",
"Name: ionization_energy, Length: 136, dtype: float64"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ionization_energies.base"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "4a75d7b0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[\u001b[1m carsus.io.kurucz.gfall\u001b[0m][\u001b[1;33mWARNING\u001b[0m] - A specific combination to identify unique levels from GFALL data has not been given. Defaulting to [\"energy\", \"j\"]. (\u001b[1mgfall.py\u001b[0m:95)\n"
]
}
],
"source": [
"from carsus.io.kurucz import GFALLReader\n",
"\n",
"gfall_path = '/home/epassaro/Desktop/tardis-sn/atomic_data/GFALL/gfall_latest.dat'\n",
"gfall_reader = GFALLReader('H-S', gfall_path)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "87b53b00",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[\u001b[1m carsus.io.cmfgen.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Configuration schema found for H 0. (\u001b[1mbase.py\u001b[0m:504)\n",
"[\u001b[1m carsus.io.cmfgen.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Configuration schema found for Si 0. (\u001b[1mbase.py\u001b[0m:504)\n",
"[\u001b[1m carsus.io.cmfgen.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Configuration schema found for Si 1. (\u001b[1mbase.py\u001b[0m:504)\n",
"[\u001b[1m carsus.io.cmfgen.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Loading atomic data for H 0. (\u001b[1mbase.py\u001b[0m:712)\n",
"[\u001b[1m carsus.io.cmfgen.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Loading atomic data for Si 0. (\u001b[1mbase.py\u001b[0m:712)\n",
"[\u001b[1m carsus.io.cmfgen.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Loading atomic data for Si 1. (\u001b[1mbase.py\u001b[0m:712)\n"
]
}
],
"source": [
"from carsus.io.cmfgen import CMFGENReader\n",
"\n",
"atomic_path = '/home/epassaro/Desktop/tardis-sn/atomic_data/CMFGEN/atomic/'\n",
"cmfgen_reader = CMFGENReader.from_config('H; Si', atomic_path, priority=20, cross_sections=True, ionization_energies=True)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "d314858d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"atomic_number ion_charge\n",
"1 0 13.598435\n",
"2 0 24.587389\n",
" 1 54.417765\n",
"3 0 5.391715\n",
" 1 75.640097\n",
" ... \n",
"16 11 564.410000\n",
" 12 651.960000\n",
" 13 706.994000\n",
" 14 3223.780700\n",
" 15 3494.187900\n",
"Name: ionization_energy, Length: 136, dtype: float64"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ionization_energies.base"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "48d27b88",
"metadata": {},
"outputs": [],
"source": [
"import copy\n",
"import pandas as pd\n",
"\n",
"combined_ionization_energies = copy.deepcopy(ionization_energies)\n",
"combined_ionization_energies.base = cmfgen_reader.ionization_energies.combine_first(ionization_energies.base)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "8cd2da77",
"metadata": {},
"outputs": [],
"source": [
"from carsus.io.zeta import KnoxLongZeta\n",
"\n",
"zeta_data = KnoxLongZeta()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "506beb18",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[\u001b[1m carsus.io.output.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Ingesting energy levels. (\u001b[1mbase.py\u001b[0m:299)\n",
"[\u001b[1m carsus.io.kurucz.gfall\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Parsing GFALL from: /home/epassaro/Desktop/tardis-sn/atomic_data/GFALL/gfall_latest.dat (\u001b[1mgfall.py\u001b[0m:148)\n",
"[\u001b[1m carsus.io.output.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - GFALL selected species: He 0, He 1, Li 0, Li 1, Be 0, Be 1, Be 2, B 0, B 1, B 2, B 3, C 0, C 1, C 2, C 3, N 0, N 1, N 2, N 3, N 4, N 5, O 0, O 1, O 2, O 3, O 4, O 5, F 0, F 1, F 2, F 3, F 4, F 5, Ne 0, Ne 1, Ne 2, Ne 3, Ne 4, Ne 5, Na 0, Na 1, Na 2, Na 3, Na 4, Na 5, Mg 0, Mg 1, Mg 2, Mg 3, Mg 4, Mg 5, Al 0, Al 1, Al 2, Al 3, Al 4, Al 5, Si 2, Si 3, Si 4, Si 5, P 0, P 1, P 2, P 3, P 4, P 5, S 0, S 1, S 2, S 3, S 4, S 5. (\u001b[1mbase.py\u001b[0m:333)\n",
"[\u001b[1m carsus.io.output.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - CMFGEN selected species: H 0, Si 0, Si 1. (\u001b[1mbase.py\u001b[0m:341)\n",
"[\u001b[1m carsus.io.output.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Ingesting transition lines. (\u001b[1mbase.py\u001b[0m:395)\n",
"[\u001b[1m carsus.io.kurucz.gfall\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Extracting line data: atomic_number, ion_charge, energy_lower, j_lower, energy_upper, j_upper, wavelength, loggf. (\u001b[1mgfall.py\u001b[0m:352)\n",
"[\u001b[1m carsus.io.output.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Matching levels and lines. (\u001b[1mbase.py\u001b[0m:434)\n",
"[\u001b[1m carsus.io.output.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Ingesting photoionization cross-sections. (\u001b[1mbase.py\u001b[0m:668)\n",
"[\u001b[1m carsus.io.output.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Matching levels and cross sections. (\u001b[1mbase.py\u001b[0m:671)\n",
"[\u001b[1m carsus.io.output.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Finished. (\u001b[1mbase.py\u001b[0m:79)\n"
]
}
],
"source": [
"from carsus.io.output import TARDISAtomData\n",
"\n",
"atom_data = TARDISAtomData(atomic_weights,\n",
" combined_ionization_energies,\n",
" gfall_reader,\n",
" zeta_data,\n",
" cmfgen_reader=cmfgen_reader)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "0ffed6d4",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>nu</th>\n",
" <th>level_index</th>\n",
" <th>level_index_lower</th>\n",
" <th>level_index_upper</th>\n",
" <th>lower_level_id</th>\n",
" <th>x_sect</th>\n",
" <th>upper_level_id</th>\n",
" <th>level_id</th>\n",
" <th>x_sect_id</th>\n",
" <th>level_number</th>\n",
" </tr>\n",
" <tr>\n",
" <th>atomic_number</th>\n",
" <th>ion_number</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"11\" valign=\"top\">14</th>\n",
" <th>1</th>\n",
" <td>3.952408e+15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>10229</td>\n",
" <td>4.713333e-19</td>\n",
" <td>10229</td>\n",
" <td>10229</td>\n",
" <td>307034</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.953724e+15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>10229</td>\n",
" <td>4.683333e-19</td>\n",
" <td>10229</td>\n",
" <td>10229</td>\n",
" <td>307035</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.955040e+15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>10229</td>\n",
" <td>4.656667e-19</td>\n",
" <td>10229</td>\n",
" <td>10229</td>\n",
" <td>307036</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.956356e+15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>10229</td>\n",
" <td>4.626667e-19</td>\n",
" <td>10229</td>\n",
" <td>10229</td>\n",
" <td>307037</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.957673e+15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>10229</td>\n",
" <td>4.596667e-19</td>\n",
" <td>10229</td>\n",
" <td>10229</td>\n",
" <td>307038</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.273393e+15</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>10373</td>\n",
" <td>0.000000e+00</td>\n",
" <td>10373</td>\n",
" <td>10373</td>\n",
" <td>500461</td>\n",
" <td>144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.276683e+15</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>10373</td>\n",
" <td>0.000000e+00</td>\n",
" <td>10373</td>\n",
" <td>10373</td>\n",
" <td>500462</td>\n",
" <td>144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.279972e+15</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>10373</td>\n",
" <td>0.000000e+00</td>\n",
" <td>10373</td>\n",
" <td>10373</td>\n",
" <td>500463</td>\n",
" <td>144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.283262e+15</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>10373</td>\n",
" <td>0.000000e+00</td>\n",
" <td>10373</td>\n",
" <td>10373</td>\n",
" <td>500464</td>\n",
" <td>144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.286552e+15</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>10373</td>\n",
" <td>0.000000e+00</td>\n",
" <td>10373</td>\n",
" <td>10373</td>\n",
" <td>500465</td>\n",
" <td>144</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>193432 rows × 10 columns</p>\n",
"</div>"
],
"text/plain": [
" nu level_index level_index_lower \\\n",
"atomic_number ion_number \n",
"14 1 3.952408e+15 0 0 \n",
" 1 3.953724e+15 0 0 \n",
" 1 3.955040e+15 0 0 \n",
" 1 3.956356e+15 0 0 \n",
" 1 3.957673e+15 0 0 \n",
"... ... ... ... \n",
" 1 3.273393e+15 144 144 \n",
" 1 3.276683e+15 144 144 \n",
" 1 3.279972e+15 144 144 \n",
" 1 3.283262e+15 144 144 \n",
" 1 3.286552e+15 144 144 \n",
"\n",
" level_index_upper lower_level_id x_sect \\\n",
"atomic_number ion_number \n",
"14 1 0 10229 4.713333e-19 \n",
" 1 0 10229 4.683333e-19 \n",
" 1 0 10229 4.656667e-19 \n",
" 1 0 10229 4.626667e-19 \n",
" 1 0 10229 4.596667e-19 \n",
"... ... ... ... \n",
" 1 144 10373 0.000000e+00 \n",
" 1 144 10373 0.000000e+00 \n",
" 1 144 10373 0.000000e+00 \n",
" 1 144 10373 0.000000e+00 \n",
" 1 144 10373 0.000000e+00 \n",
"\n",
" upper_level_id level_id x_sect_id level_number \n",
"atomic_number ion_number \n",
"14 1 10229 10229 307034 0 \n",
" 1 10229 10229 307035 0 \n",
" 1 10229 10229 307036 0 \n",
" 1 10229 10229 307037 0 \n",
" 1 10229 10229 307038 0 \n",
"... ... ... ... ... \n",
" 1 10373 10373 500461 144 \n",
" 1 10373 10373 500462 144 \n",
" 1 10373 10373 500463 144 \n",
" 1 10373 10373 500464 144 \n",
" 1 10373 10373 500465 144 \n",
"\n",
"[193432 rows x 10 columns]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"atom_data.cross_sections.set_index(['atomic_number', 'ion_number']).loc[(14,1)] #.level_number.unique()#.loc[(14,0)]"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "6287fe12",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>nu</th>\n",
" <th>level_index</th>\n",
" <th>level_index_lower</th>\n",
" <th>level_index_upper</th>\n",
" <th>lower_level_id</th>\n",
" <th>x_sect</th>\n",
" <th>upper_level_id</th>\n",
" <th>level_id</th>\n",
" <th>x_sect_id</th>\n",
" <th>level_number</th>\n",
" </tr>\n",
" <tr>\n",
" <th>atomic_number</th>\n",
" <th>ion_number</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"11\" valign=\"top\">14</th>\n",
" <th>1</th>\n",
" <td>3.952408e+15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>10229</td>\n",
" <td>4.713333e-19</td>\n",
" <td>10229</td>\n",
" <td>10229</td>\n",
" <td>307034</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.953724e+15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>10229</td>\n",
" <td>4.683333e-19</td>\n",
" <td>10229</td>\n",
" <td>10229</td>\n",
" <td>307035</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.955040e+15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>10229</td>\n",
" <td>4.656667e-19</td>\n",
" <td>10229</td>\n",
" <td>10229</td>\n",
" <td>307036</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.956356e+15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>10229</td>\n",
" <td>4.626667e-19</td>\n",
" <td>10229</td>\n",
" <td>10229</td>\n",
" <td>307037</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.957673e+15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>10229</td>\n",
" <td>4.596667e-19</td>\n",
" <td>10229</td>\n",
" <td>10229</td>\n",
" <td>307038</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.273393e+15</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>10373</td>\n",
" <td>0.000000e+00</td>\n",
" <td>10373</td>\n",
" <td>10373</td>\n",
" <td>500461</td>\n",
" <td>144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.276683e+15</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>10373</td>\n",
" <td>0.000000e+00</td>\n",
" <td>10373</td>\n",
" <td>10373</td>\n",
" <td>500462</td>\n",
" <td>144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.279972e+15</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>10373</td>\n",
" <td>0.000000e+00</td>\n",
" <td>10373</td>\n",
" <td>10373</td>\n",
" <td>500463</td>\n",
" <td>144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.283262e+15</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>10373</td>\n",
" <td>0.000000e+00</td>\n",
" <td>10373</td>\n",
" <td>10373</td>\n",
" <td>500464</td>\n",
" <td>144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.286552e+15</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>10373</td>\n",
" <td>0.000000e+00</td>\n",
" <td>10373</td>\n",
" <td>10373</td>\n",
" <td>500465</td>\n",
" <td>144</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>193432 rows × 10 columns</p>\n",
"</div>"
],
"text/plain": [
" nu level_index level_index_lower \\\n",
"atomic_number ion_number \n",
"14 1 3.952408e+15 0 0 \n",
" 1 3.953724e+15 0 0 \n",
" 1 3.955040e+15 0 0 \n",
" 1 3.956356e+15 0 0 \n",
" 1 3.957673e+15 0 0 \n",
"... ... ... ... \n",
" 1 3.273393e+15 144 144 \n",
" 1 3.276683e+15 144 144 \n",
" 1 3.279972e+15 144 144 \n",
" 1 3.283262e+15 144 144 \n",
" 1 3.286552e+15 144 144 \n",
"\n",
" level_index_upper lower_level_id x_sect \\\n",
"atomic_number ion_number \n",
"14 1 0 10229 4.713333e-19 \n",
" 1 0 10229 4.683333e-19 \n",
" 1 0 10229 4.656667e-19 \n",
" 1 0 10229 4.626667e-19 \n",
" 1 0 10229 4.596667e-19 \n",
"... ... ... ... \n",
" 1 144 10373 0.000000e+00 \n",
" 1 144 10373 0.000000e+00 \n",
" 1 144 10373 0.000000e+00 \n",
" 1 144 10373 0.000000e+00 \n",
" 1 144 10373 0.000000e+00 \n",
"\n",
" upper_level_id level_id x_sect_id level_number \n",
"atomic_number ion_number \n",
"14 1 10229 10229 307034 0 \n",
" 1 10229 10229 307035 0 \n",
" 1 10229 10229 307036 0 \n",
" 1 10229 10229 307037 0 \n",
" 1 10229 10229 307038 0 \n",
"... ... ... ... ... \n",
" 1 10373 10373 500461 144 \n",
" 1 10373 10373 500462 144 \n",
" 1 10373 10373 500463 144 \n",
" 1 10373 10373 500464 144 \n",
" 1 10373 10373 500465 144 \n",
"\n",
"[193432 rows x 10 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"atom_data.cross_sections.set_index(['atomic_number', 'ion_number']).loc[(14,1)].dropna()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "bbf00b13",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>atomic_number</th>\n",
" <th>nu</th>\n",
" <th>ion_number</th>\n",
" <th>level_index</th>\n",
" <th>level_index_lower</th>\n",
" <th>level_index_upper</th>\n",
" <th>lower_level_id</th>\n",
" <th>x_sect</th>\n",
" <th>upper_level_id</th>\n",
" <th>level_id</th>\n",
" <th>x_sect_id</th>\n",
" <th>level_number</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>3.288087e+15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>9706</td>\n",
" <td>6.310022e-18</td>\n",
" <td>9706</td>\n",
" <td>9706</td>\n",
" <td>99232</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>3.616895e+15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>9706</td>\n",
" <td>4.887964e-18</td>\n",
" <td>9706</td>\n",
" <td>9706</td>\n",
" <td>99233</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>3.978585e+15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>9706</td>\n",
" <td>3.777102e-18</td>\n",
" <td>9706</td>\n",
" <td>9706</td>\n",
" <td>99234</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>4.376443e+15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>9706</td>\n",
" <td>2.911502e-18</td>\n",
" <td>9706</td>\n",
" <td>9706</td>\n",
" <td>99235</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>4.814088e+15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>9706</td>\n",
" <td>2.238791e-18</td>\n",
" <td>9706</td>\n",
" <td>9706</td>\n",
" <td>99236</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>193427</th>\n",
" <td>14</td>\n",
" <td>3.273393e+15</td>\n",
" <td>1</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>10373</td>\n",
" <td>0.000000e+00</td>\n",
" <td>10373</td>\n",
" <td>10373</td>\n",
" <td>500461</td>\n",
" <td>144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>193428</th>\n",
" <td>14</td>\n",
" <td>3.276683e+15</td>\n",
" <td>1</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>10373</td>\n",
" <td>0.000000e+00</td>\n",
" <td>10373</td>\n",
" <td>10373</td>\n",
" <td>500462</td>\n",
" <td>144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>193429</th>\n",
" <td>14</td>\n",
" <td>3.279972e+15</td>\n",
" <td>1</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>10373</td>\n",
" <td>0.000000e+00</td>\n",
" <td>10373</td>\n",
" <td>10373</td>\n",
" <td>500463</td>\n",
" <td>144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>193430</th>\n",
" <td>14</td>\n",
" <td>3.283262e+15</td>\n",
" <td>1</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>10373</td>\n",
" <td>0.000000e+00</td>\n",
" <td>10373</td>\n",
" <td>10373</td>\n",
" <td>500464</td>\n",
" <td>144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>193431</th>\n",
" <td>14</td>\n",
" <td>3.286552e+15</td>\n",
" <td>1</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" <td>10373</td>\n",
" <td>0.000000e+00</td>\n",
" <td>10373</td>\n",
" <td>10373</td>\n",
" <td>500465</td>\n",
" <td>144</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>401234 rows × 12 columns</p>\n",
"</div>"
],
"text/plain": [
" atomic_number nu ion_number level_index \\\n",
"0 1 3.288087e+15 0 0 \n",
"1 1 3.616895e+15 0 0 \n",
"2 1 3.978585e+15 0 0 \n",
"3 1 4.376443e+15 0 0 \n",
"4 1 4.814088e+15 0 0 \n",
"... ... ... ... ... \n",
"193427 14 3.273393e+15 1 144 \n",
"193428 14 3.276683e+15 1 144 \n",
"193429 14 3.279972e+15 1 144 \n",
"193430 14 3.283262e+15 1 144 \n",
"193431 14 3.286552e+15 1 144 \n",
"\n",
" level_index_lower level_index_upper lower_level_id x_sect \\\n",
"0 0 0 9706 6.310022e-18 \n",
"1 0 0 9706 4.887964e-18 \n",
"2 0 0 9706 3.777102e-18 \n",
"3 0 0 9706 2.911502e-18 \n",
"4 0 0 9706 2.238791e-18 \n",
"... ... ... ... ... \n",
"193427 144 144 10373 0.000000e+00 \n",
"193428 144 144 10373 0.000000e+00 \n",
"193429 144 144 10373 0.000000e+00 \n",
"193430 144 144 10373 0.000000e+00 \n",
"193431 144 144 10373 0.000000e+00 \n",
"\n",
" upper_level_id level_id x_sect_id level_number \n",
"0 9706 9706 99232 0 \n",
"1 9706 9706 99233 0 \n",
"2 9706 9706 99234 0 \n",
"3 9706 9706 99235 0 \n",
"4 9706 9706 99236 0 \n",
"... ... ... ... ... \n",
"193427 10373 10373 500461 144 \n",
"193428 10373 10373 500462 144 \n",
"193429 10373 10373 500463 144 \n",
"193430 10373 10373 500464 144 \n",
"193431 10373 10373 500465 144 \n",
"\n",
"[401234 rows x 12 columns]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"atom_data.cross_sections"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "203fab18",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[\u001b[1m carsus.io.output.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - Signing TARDISAtomData. (\u001b[1mbase.py\u001b[0m:1038)\n",
"[\u001b[1m carsus.io.output.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - MD5: 805ced296bf809b626fce93b884eaa8b (\u001b[1mbase.py\u001b[0m:1039)\n",
"[\u001b[1m carsus.io.output.base\u001b[0m][ \u001b[1;37mINFO\u001b[0m] - UUID1: 114494e84ed211ecb07f6c6a777208bc (\u001b[1mbase.py\u001b[0m:1040)\n"
]
}
],
"source": [
"atom_data.to_hdf('test_h_he_phixs.h5')"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "fe1438e9",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "4a297c9e",
"metadata": {},
"outputs": [],
"source": [
"store = pd.HDFStore('test_h_he_phixs.h5')"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "e6919c33",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['/atom_data',\n",
" '/ionization_data',\n",
" '/levels',\n",
" '/lines',\n",
" '/macro_atom_data',\n",
" '/macro_atom_references',\n",
" '/meta',\n",
" '/photoionization_data',\n",
" '/zeta_data']"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"store.keys()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "b472e215",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th>nu</th>\n",
" <th>x_sect</th>\n",
" </tr>\n",
" <tr>\n",
" <th>atomic_number</th>\n",
" <th>ion_number</th>\n",
" <th>level_number</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">1</th>\n",
" <th rowspan=\"5\" valign=\"top\">0</th>\n",
" <th>0</th>\n",
" <td>3.288087e+15</td>\n",
" <td>6.310022e-18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3.616895e+15</td>\n",
" <td>4.887964e-18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3.978585e+15</td>\n",
" <td>3.777102e-18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4.376443e+15</td>\n",
" <td>2.911502e-18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4.814088e+15</td>\n",
" <td>2.238791e-18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">14</th>\n",
" <th rowspan=\"5\" valign=\"top\">1</th>\n",
" <th>144</th>\n",
" <td>3.273393e+15</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>144</th>\n",
" <td>3.276683e+15</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>144</th>\n",
" <td>3.279972e+15</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>144</th>\n",
" <td>3.283262e+15</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>144</th>\n",
" <td>3.286552e+15</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>401234 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" nu x_sect\n",
"atomic_number ion_number level_number \n",
"1 0 0 3.288087e+15 6.310022e-18\n",
" 0 3.616895e+15 4.887964e-18\n",
" 0 3.978585e+15 3.777102e-18\n",
" 0 4.376443e+15 2.911502e-18\n",
" 0 4.814088e+15 2.238791e-18\n",
"... ... ...\n",
"14 1 144 3.273393e+15 0.000000e+00\n",
" 144 3.276683e+15 0.000000e+00\n",
" 144 3.279972e+15 0.000000e+00\n",
" 144 3.283262e+15 0.000000e+00\n",
" 144 3.286552e+15 0.000000e+00\n",
"\n",
"[401234 rows x 2 columns]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"store['photoionization_data']"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment