EPICS2023 Database Preparation
This section covers the extraction and optimization of atomic data from the EPICS2023 (EADL, EEDL, EPDL) datasets provided by IAEA.
EPICS2023 Database Preparation
This section covers the extraction and optimization of atomic data from the EPICS2023 (EADL, EEDL, EPDL) datasets.
Source Databases Download
The raw ENDF ASCII data files for Germanium (Z=32) must be downloaded directly from the official IAEA Nuclear Data Section data paths. You can fetch the exact element files using the following direct links:
- Download EADL.dat (Germanium Z=32) — Atomic relaxation and subshell binding energies.
- Download EEDL.dat (Germanium Z=32) — Electron transport and impact ionization cross-sections.
- Download EPDL.dat (Germanium Z=32) — Integrated photon cross-sections (Photoelectric, Compton).
After downloading, save these files as EADL.dat, EEDL.dat, and EPDL.dat respectively in the project root directory before running the database builder script.
Core Extraction Functions
The following functions parse raw position-based ENDL tables, convert them to fast NumPy structures, and enforce energy monotonicity for cubic spline interpolations.
process_db.EPICS2023(list_of_files, tables)
Parses ENDL-formatted data files and extracts tables based on active descriptors.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
list_of_files |
list of str
|
File paths for EADL, EEDL, and EPDL database sheets. |
required |
tables |
dict
|
A combined translation dictionary containing parsing lambdas or 'skip' flags. |
required |
Returns:
| Type | Description |
|---|---|
tuple(int, float, dict)
|
Z (Atomic Number), M (Atomic Mass), and the raw nested data hierarchy. |
Source code in process_db.py
process_db.Data_to_Arrays(D)
Recursively converts standard Python lists into fast NumPy arrays.
Walks down the 5-layer nested dictionary and performs in-place modification of all data terminal tables.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
D |
dict
|
The nested data dictionary to transform. |
required |
Source code in process_db.py
process_db.Shift_E(D)
Forces strict monotonic increase of energy thresholds for spline safety.
Modifies adjacent identical energy boundaries near atomic shell transitions by a small fractional value to ensure compatibility with cubic splines.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
D |
dict
|
The global multi-level interaction dataset. |
required |
Source code in process_db.py
process_db.Split_Arrays(T)
Splits multi-dimensional distribution tables over discrete incident energy values.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
T |
dict
|
A table structure with 3 equivalent-length data lists. |
required |
Returns:
| Type | Description |
|---|---|
dict
|
A reassigned layout mapped by unique isolated baseline variables. |