Atomic Data Reproduction Differences
This page records the observed differences between the TARDIS regression reference atom-data file and the Carsus-generated reproduction candidate.
Files compared
- Reference file:
/home/afullard/tardis-regression-data/atom_data/kurucz_cd23_chianti_H_He_latest.h5- Generated file:
/tmp/carsus_reference_experiment.h5
The generated file was built from the recovered historical Kurucz SQLite GFALL
database, the NNDC CSV snapshot from tardis-sn/carsus-data-nndc commit
136a8633e3dee21079d3738dabfe7758f6e40d41, and CHIANTI H-He data with
CHIANTI 7.1 .wgfa radiative transition rows overlaid onto the current
CHIANTI reader output.
High-level result
Both files contain the same HDF keys. No table has reference-only or
generated-only index rows. The following tables compare exactly with
DataFrame.equals:
/atom_data/collisions_metadata/ionization_data/levels_data/macro_atom_references/zeta_data
The following tables do not compare byte-for-byte:
/collisions_data/decay_radiation_data/lines_data/macro_atom_data/metadata
HDF keys and shapes
Key |
Reference shape |
Generated shape |
Exact |
Index equal |
Reference-only rows |
Generated-only rows |
|---|---|---|---|---|---|---|
|
|
|
yes |
yes |
0 |
0 |
|
|
|
no |
yes |
0 |
0 |
|
|
|
yes |
yes |
0 |
0 |
|
|
|
no |
yes |
0 |
0 |
|
|
|
yes |
yes |
0 |
0 |
|
|
|
yes |
yes |
0 |
0 |
|
|
|
no |
no, in stored order |
0 |
0 |
|
|
|
no |
yes |
0 |
0 |
|
|
|
yes |
yes |
0 |
0 |
|
|
|
no |
yes |
0 |
0 |
|
|
|
yes |
yes |
0 |
0 |
Root attributes
FORMAT_VERSION and database_version match. The timestamp, UUID, and
file MD5 differ because the generated file was written in a different run.
Attribute |
Reference |
Generated |
Equal |
|---|---|---|---|
|
|
|
yes |
|
|
|
yes |
|
|
|
no |
|
|
|
no |
|
|
|
no |
/lines_data
After sorting both tables by their physical index
(atomic_number, ion_number, level_number_lower, level_number_upper), all
rows align. The remaining differences are concentrated in H I, He I, and He II
line IDs, plus floating-point roundoff in quantities derived from the CHIANTI
line values.
line_id differs for 321 rows. The maximum absolute line-ID shift is 3.
Species index |
Differing rows |
|---|---|
|
74 |
|
180 |
|
67 |
Column differences after index alignment, expressed relative to the reference value:
Column |
Differing rows |
Max relative difference |
Mean relative difference |
|---|---|---|---|
|
321 |
|
|
|
321 |
|
|
|
92 |
|
|
|
86 |
|
|
|
270 |
|
|
|
327 |
|
|
|
335 |
|
|
|
543 |
|
|
The line values are therefore physically aligned to numerical precision. For
example, the largest aligned B_ul relative difference is
5.666398681217063e-16. The remaining line-ID shifts are a legacy numbering
artifact from the order and count of rows present before source-priority
filtering.
/collisions_data
The collision table has the same shape and physical index in both files. All 358 rows differ in the internal ID columns. The collision energies differ at small numerical levels.
Column |
Differing rows |
Max relative difference |
Mean relative difference |
|---|---|---|---|
|
358 |
|
|
|
358 |
|
|
|
358 |
|
|
|
262 |
|
|
|
358 |
|
|
|
358 |
|
|
/macro_atom_data
The macro atom table has the same shape and index in both files. Comparing in stored index order gives large apparent differences because row ordering within source-level groups depends on line IDs. After sorting by all physical macro atom columns, the residual differences are limited to H-He line-ID shifts and floating-point roundoff.
Stored-index comparison, expressed relative to the reference value. This is a row-order diagnostic rather than a physical comparison because rows within source-level groups are not aligned:
Column |
Differing rows |
Max relative difference |
Mean relative difference |
|---|---|---|---|
|
563325 |
837.0 |
|
|
252371 |
2 |
|
|
574050 |
|
|
|
564141 |
|
|
Content-sorted comparison, expressed relative to the reference value:
Column |
Differing rows |
Max relative difference |
Mean relative difference |
|---|---|---|---|
|
1290 |
|
|
|
963 |
|
|
/decay_radiation_data
The decay radiation table has the same shape, columns, and isotope index in both files. Differences are serialization and floating-point representation differences from parsing the same NNDC CSV snapshot with newer dependencies.
Numeric column differences:
Column |
Differing rows |
Max relative difference |
Mean relative difference |
|---|---|---|---|
|
1295 |
|
|
|
19 |
|
|
|
7535 |
|
|
|
7984 |
|
|
`` EP Energy`` |
4 |
|
|
|
31067 |
|
|
|
44861 |
|
|
Object/string-like column differences:
Column |
Differing rows |
|---|---|
|
672 |
|
2311 |
|
621 |
|
624 |
|
2040 |
|
24 |
|
79 |
`` Protons Balance`` |
1 |
|
73 |
|
111 |
|
9 |
|
20 |
/metadata
The metadata table shape and index match, but 17 of 18 rows differ. The differences are expected because the file was generated with a newer Carsus checkout and newer runtime dependencies, and because each table’s stored MD5 is recomputed from the generated representation.
Field |
Key |
Reference |
Generated |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interpretation
The recovered source data are sufficient to reproduce the reference file’s schema, table set, row counts, indexes, and all core level/ion/zeta/atom tables. The remaining differences are not missing source rows. They fall into four categories:
run-specific root attributes and table MD5 signatures;
dependency/version metadata;
floating-point and object serialization differences from newer pandas, PyTables, NumPy, Astropy, and ChiantiPy versions;
legacy line-ID numbering differences in the CHIANTI H-He line block, which propagate into
/macro_atom_databecause macro atom rows storetransition_line_id.