Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
0937b11
[#2026_RSI] Created
dvezinet Jun 12, 2026
298cd74
[#2026_RSI] restructured
dvezinet Jun 12, 2026
b5a09b7
[#001] Renamed for variablename validity
dvezinet Jun 12, 2026
41dc151
[#001] Added all figures
dvezinet Jun 12, 2026
8fc01a6
[#001] Minor debug
dvezinet Jun 12, 2026
e7c1441
[#001] All but inputs
dvezinet Jun 22, 2026
03a5df8
[#001] Add inputs
dvezinet Jun 22, 2026
4fa8e68
[#001] Renamed fig*.py
dvezinet Jun 22, 2026
1be70e5
[#001] Almost done fig03_tokamak
dvezinet Jun 22, 2026
338ba7b
[#001] removed tfs
Didou09 Jun 23, 2026
b7d9031
[#001] fig03 done
dvezinet Jun 23, 2026
8b784b8
[#001] cleanup figures
dvezinet Jun 23, 2026
20c0612
[#001] fig03() done
dvezinet Jun 23, 2026
82632d0
[#001] Better fig04_Bremsstrahlung
dvezinet Jun 24, 2026
b0f2d48
[#001] git LFS track SCRAM data
dvezinet Jun 24, 2026
a5e3b43
[#001] Better fig04
dvezinet Jun 24, 2026
950aded
[#001] Added Conor's plot routine
dvezinet Jun 24, 2026
81ed816
[#001] Advanced fig04
dvezinet Jun 25, 2026
9831fb5
[#001] Adding H and He data
dvezinet Jun 25, 2026
d2ec31c
[#001] new fig03 and fig04
Didou09 Jun 25, 2026
5e239f1
[#001] fig04 has 2 different Ekin_max_eV
Didou09 Jun 25, 2026
a5e8246
[#001] Fig02_dist now has 2 different Ekin_max_eV
Didou09 Jun 25, 2026
35b26ec
[#001] Renamed figures according to paper
Didou09 Jun 25, 2026
62b5abc
[001] Finished renaming
Didou09 Jun 25, 2026
35ac823
[#001] Created fig03_validate_ff
Didou09 Jun 25, 2026
083379c
[#001] fig03_validate_ff ongoing
Didou09 Jun 26, 2026
b57ea51
[#001] Clean up
Didou09 Jun 26, 2026
578d999
[#fixed]
Didou09 Jun 26, 2026
553a193
[#001] Better fig03_validate_ff
Didou09 Jun 26, 2026
5b3ec06
[#001] Almost final fig03_validate_ff => doublcheck d2cross_phi compu…
Didou09 Jun 26, 2026
ad25041
[#001] Centralized figure saving
Didou09 Jun 26, 2026
6b3267b
[#001] Fixed savefig
Didou09 Jun 26, 2026
f63cfb8
[#001] Fixed savefig 2
Didou09 Jun 26, 2026
b41f632
[#001] Removed all figures
Didou09 Jun 26, 2026
3514160
[#001] new figures
Didou09 Jun 26, 2026
89a6c9f
[#001] Added fig05_emiss
Didou09 Jun 26, 2026
6ef1af6
[#001] Fixed naming
Didou09 Jun 26, 2026
679fd21
[#001] Restructured to centralize spectra loading
Didou09 Jun 26, 2026
51e1238
[#001] Better doc for _load_spect.py
Didou09 Jun 26, 2026
73c76c4
[#001] Better fig03
Didou09 Jun 26, 2026
2ccd41e
[#001] Structure of fig05
Didou09 Jun 26, 2026
32ce55e
[#001] Created _load_spect_anis.py
Didou09 Jun 27, 2026
a836f4a
[#001] Better plot vs theta
dvezinet Jun 30, 2026
0ac1dbc
[#001] progress on fig05
dvezinet Jun 30, 2026
853b95f
[#001] load_spect_anis() operational
dvezinet Jul 1, 2026
a94baf7
[#001] Updating fig04
dvezinet Jul 1, 2026
78a6eec
[#001] fig04 working again
dvezinet Jul 1, 2026
3ac2e78
[#001] Updating fig03
dvezinet Jul 1, 2026
3aaab03
[#001] fixed fig03_validate_ff()
dvezinet Jul 2, 2026
a271ab8
[#001] Minor cleanup
dvezinet Jul 2, 2026
87f435e
[#001] fixed fig03(error='iso') and fig04()
dvezinet Jul 6, 2026
051382c
[#001] progress on fig05_emiss()
dvezinet Jul 6, 2026
49f284e
[#001] _fig02_dist_type.py implementes
dvezinet Jul 6, 2026
8fe1a85
[#001] debugging fig05
dvezinet Jul 6, 2026
05c6f68
[#001] Getting there with fig02_dist and ff
dvezinet Jul 6, 2026
9f65584
[#001] fig02_RE_ff() done
dvezinet Jul 7, 2026
e87b9df
[#001] fig05_emiss() almost done
dvezinet Jul 7, 2026
88d5bf0
[#001] return dmix
dvezinet Jul 7, 2026
509fbc4
[#001] fig05_emiss() done
dvezinet Jul 7, 2026
2d939fc
[#001] Doing fig08_scores_1keV()
dvezinet Jul 7, 2026
2d93d03
[#001] Almost there with fig08()
Didou09 Jul 8, 2026
d700398
[#001] fig08_scores_1keV() done
dvezinet Jul 8, 2026
ea70416
[#001] fig08() now outsources computation to _perfs.py
dvezinet Jul 8, 2026
b94538f
[#001] Renaming
dvezinet Jul 8, 2026
9006616
[#001] Better _perfs.py
dvezinet Jul 8, 2026
452686e
[#001] fig09_perfs_scans() almost there
dvezinet Jul 8, 2026
52cdd8c
[#001] Progress on fig09
dvezinet Jul 8, 2026
e91c7c8
[#001] Fixed color
Didou09 Jul 8, 2026
733ad15
[#001] _LRESP revized
dvezinet Jul 9, 2026
c9c4e6f
[#001] Added Config and Coll for HXRVA
dvezinet Jul 9, 2026
1a1c711
[#001] Added BOLO
dvezinet Jul 9, 2026
6a90905
[#001] Added CAD of HXR
dvezinet Jul 9, 2026
9ca90e9
[#001] Final fig03_validate_ff()
Didou09 Jul 9, 2026
ecba330
[#001] fig02_dist_type() done
Didou09 Jul 9, 2026
af8b86f
[#001] fig02_RE_ff() and fig03_validate_ff() and fig01_cross() ok
Didou09 Jul 10, 2026
3437a50
[#001] fig08_perfs_single() ok
Didou09 Jul 10, 2026
cab18a0
[#001] fig08_perfs_single.png
Didou09 Jul 10, 2026
10c928c
[#001] Better fig08_perfs_single()
Didou09 Jul 10, 2026
71ccb45
[#001] Added digitizers to fig08_perfs_single()
Didou09 Jul 10, 2026
dc80c8a
[#001] Added spectro + figures
Didou09 Jul 10, 2026
bfb3573
[#001] Updated xi for spectro
Didou09 Jul 10, 2026
950f6ed
[#001] Added ff from Maxwellian to fig05_emiss() + legend
dvezinet Jul 10, 2026
db55b4a
[#001] Safeguard on digitizer vs vmin in fig08_perfs_single()
dvezinet Jul 10, 2026
1c8f4ab
[#001] Better decoration
dvezinet Jul 10, 2026
4d5079a
[#001] fig09_perfs_scans() needs improving
dvezinet Jul 10, 2026
87f0530
[#001] Debugging perfs
dvezinet Jul 10, 2026
fdcfaeb
[#001] propagate dmix
dvezinet Jul 10, 2026
cb84345
[#001] Started fig12_images
dvezinet Jul 10, 2026
31cb1a2
[#001] fig12 ok
dvezinet Jul 14, 2026
993d6b8
[#001] removed no picth angle distribution from fig12()
dvezinet Jul 15, 2026
b486f49
[#001] Added H and He SCRAM data
dvezinet Jul 15, 2026
8643cff
[#001] All data from SCRAM
dvezinet Jul 15, 2026
34b426c
[#001] Updated dmix to 'H' and 'H' + 8% 'O' + 2% 'Fe'
dvezinet Jul 15, 2026
e742cca
[#001] Added data_source to choose between SCRAM vs CHIANTI
dvezinet Jul 15, 2026
0565992
[#001] Checking fractional abundances in load_spect()
dvezinet Jul 15, 2026
b217d7f
[#001] cleaner fig05_emiss()
dvezinet Jul 15, 2026
e63005c
[#001] Pb identified with fractional abundances => moving on to fig12()
dvezinet Jul 15, 2026
72ce348
[#001] Propagating data_source + updated fig03_validate_ff()
dvezinet Jul 15, 2026
0806c0d
[#001] Added _singlept_sensor.py
dvezinet Jul 15, 2026
d388110
[#001] Fixed titles in fig05_emiss()
dvezinet Jul 15, 2026
1bd262a
[#001] Started fig13_hxrva_merits()
dvezinet Jul 15, 2026
7513ab4
[#001] Progress on fig13()
dvezinet Jul 16, 2026
6a416fa
[#001] Added HXR_MPP200_zoom.png
dvezinet Jul 16, 2026
cbbe1cf
[#001] Better titles inc dmix
dvezinet Jul 16, 2026
1334bb4
[#001] fig11_hxrva_cad() ok
dvezinet Jul 16, 2026
5b3759a
[#001] Added BOLO CAD
dvezinet Jul 16, 2026
c2ee9ac
[#001] better metrics
dvezinet Jul 16, 2026
53560c3
[#001] BOLO CAD ok
Didou09 Jul 16, 2026
02786ab
[#001] Added figure of BOLO CAD
Didou09 Jul 16, 2026
561eabf
[#001] Adding HXRVA source file
dvezinet Jul 16, 2026
10f33d1
[#001] Adjusted figsize for HXRVA CAD
Didou09 Jul 16, 2026
acfb85c
[#001] HXRVA fig ok
Didou09 Jul 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/d2cross_Ee0100eV-10MeV-80log_Eph100eV-10MeV-81log_ntheta61_EH.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/d2cross_Ee01eV-100MeV-80log_Eph1eV-100MeV-81log_ntheta61_EH.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/d2cross_phi_Ee01eV-100MeV-80log_Eph1eV-100MeV-81log_nthetaph61_nthetae060_EH.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/responsivities.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/d2cross_phi_Ee01eV-100MeV-240log_Eph1eV-100MeV-241log_nthetaph61_nthetae060_EH.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/260616_SCRAM86_Ar_data.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/260616_SCRAM86_Fe_data.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/260616_SCRAM86_Kr_data.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/260616_SCRAM86_O_data.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/260616_SCRAM86_W_data.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/260625_FLYCHK_H_data.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/260625_FLYCHK_He_data.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/Inversion_HXRVA_ptcam_dvezinet_20260709-204104.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/TFG_Config_ExpSPARC_SPARC-V2_sh00000_Vers1.8.18.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/Inversion_BOLO_DMS_ptcam_dvezinet_20260709-205535.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/HXR_MPP200.png filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/HXR_MPP200_zoom.png filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/code/_fig03_validate_ff.py filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/figures/fig02_dist_type.png filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/figures/fig02_RE_ff.png filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/figures/fig03_validate_ff.png filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/figures/fig08_perfs_single.png filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/figures/fig07_responsivities.png filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/260715_SCRAM86_H_data.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/260715_SCRAM86_He_data.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/figures/HXR_MPP200_zoom.png filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/OMP000U.png filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/OMP000U_Zoom.png filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/OMP000U_Zoom_inside.png filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/figures/fig14_bolo_cad.png filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/inputs/Inversion_HXRVA_dvezinet_20260713-154229.npz filter=lfs diff=lfs merge=lfs -text
articles/RSI_2026_RunawayBremsstrahlungDetection/figures/fig11_hxrva_cad.png filter=lfs diff=lfs merge=lfs -text
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
figures/fig01_cross.png filter=lfs diff=lfs merge=lfs -text
figures/fig02_dist.png filter=lfs diff=lfs merge=lfs -text
figures/fig04_bremsstrahlung.png filter=lfs diff=lfs merge=lfs -text
figures/fig05_tokamak.png filter=lfs diff=lfs merge=lfs -text
figures/fig06_responsivities.png filter=lfs diff=lfs merge=lfs -text
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .code import *
21 changes: 21 additions & 0 deletions articles/RSI_2026_RunawayBremsstrahlungDetection/code/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from ._main import main
from ._load_spect import main as load_spect
from ._load_spect_anis import main as load_spect_anis
from ._perfs import main as perfs
from ._singlept_sensor import main as singlept_sensor

from ._fig01_cross import main as fig01_cross
from ._fig02_dist import main as fig02_dist
from ._fig02_dist_type import main as fig02_dist_type
from ._fig02_RE_ff import main as fig02_RE_ff
from ._fig03_validate_ff import main as fig03_validate_ff
from ._fig04_bremsstrahlung import main as fig04_bremsstrahlung
from ._fig05_emiss import main as fig05_emiss
from ._fig06_tokamak import main as fig06_tokamak
from ._fig07_responsivities import main as fig07_responsivities
from ._fig08_perfs_single import main as fig08_perfs_single
from ._fig09_perfs_scans import main as fig09_perfs_scans
from ._fig11_hxrva_cad import main as fig11_hxrva_cad
from ._fig12_hxrva_images import main as fig12_hxrva_images
from ._fig13_hxrva_metrics import main as fig13_hxrva_metrics
from ._fig14_bolo_cad import main as fig14_bolo_cad
315 changes: 315 additions & 0 deletions articles/RSI_2026_RunawayBremsstrahlungDetection/code/_fig01_cross.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,315 @@


import os


import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import tofu as tf


from ._savefig import main as savefig


tfphysemis = tf.physics_tools.electrons.emission


# #####################################################
# #####################################################
# DEFAULTS
# #####################################################


_PATH_HERE = os.path.dirname(__file__)
_PATH_PAPER = os.path.dirname(_PATH_HERE)


_DPFE_DCROSS = {
'EH0': os.path.join(
_PATH_PAPER,
'inputs',
'd2cross_Ee01eV-100MeV-80log_Eph1eV-100MeV-81log_ntheta61_EH.npz',
),
'EH1': os.path.join(
_PATH_PAPER,
'inputs',
'd2cross_Ee0100eV-10MeV-80log_Eph100eV-10MeV-81log_ntheta61_EH.npz',
),
'BHE': os.path.join(
_PATH_PAPER,
'inputs',
'd2cross_Ee01eV-100MeV-400log_Eph1eV-100MeV-401log_ntheta181_BHE.npz',
),
}


# #####################################################
# #####################################################
# Fig 1 - cross-section
# #####################################################


def main(
figsize=(12, 6),
pfe_cross='EH0',
version='EH',
Eph_eV=np.r_[1e3, 10e3, 500e3],
Ee0_eV=np.r_[20e3, 1e6],
fontsize=14,
# save
path_save=None,
pfe_save=None,
# unused
**kwdargs,
):
""" Plot EH cross-section over a wide range of Eph and Ee0

Add 4 hand-picked cases vs angle of emission theta_ph

"""

# --------------
# load
# --------------

pfe = _DPFE_DCROSS[pfe_cross]

dout = {
kk: vv.tolist()
for kk, vv in dict(np.load(pfe, allow_pickle=True)).items()
}
units = dout['cross'][version]['units']
Z = dout.get('Z', {'data': 1})['data']

# --------------
# prepare axes
# --------------

dmargin_theta = {
'left': 0.07, 'right': 0.46,
'bottom': 0.09, 'top': 0.92,
'wspace': 0.08, 'hspace': 0.05,
}
dmargin_map = {
'left': 0.54, 'right': 0.99,
'bottom': 0.09, 'top': 0.92,
'wspace': 0.10, 'hspace': 0.10,
}

fig = plt.figure(figsize=figsize)

gs_theta = gridspec.GridSpec(ncols=2, nrows=2, **dmargin_theta)
gs_map = gridspec.GridSpec(ncols=1, nrows=1, **dmargin_map)
dax = {}

# --------------
# prepare axes
# --------------

# --------------
# ax - isolines

ax = fig.add_subplot(
gs_map[0, 0],
xscale='log',
yscale='log',
aspect='equal',
)
ax.set_xlabel(
r"$E_{e,0}$ (keV)",
size=fontsize,
fontweight='bold',
)
ax.set_ylabel(
r"$E_{ph}$ (keV)",
size=fontsize,
fontweight='bold',
)
ax.set_title(
r"$d^2\sigma(E_{e0}, E_{ph}, \theta_{ph}, Z)$"
+ f"\n Z = {Z} - version = {version}",
size=fontsize,
fontweight='bold',
)

# store
dax['map'] = {'handle': ax, 'type': 'isolines'}

# --------------
# ax - theta_norm

# theta_norm0
ax = fig.add_subplot(
gs_theta[0, 0],
xscale='linear',
)
ax.set_ylabel(
"normalized cross-section (adim.)",
size=fontsize,
fontweight='bold',
)
ax.set_title(
r"$E_{e0}$" + f" = {Ee0_eV[0]*1e-3:2.0f} keV",
size=fontsize,
fontweight='bold',
)
ax.tick_params(labelbottom=False)

# store
dax['theta_norm0'] = {'handle': ax, 'type': 'isolines'}

# theta_norm1
ax = fig.add_subplot(
gs_theta[0, 1],
sharex=dax['theta_norm0']['handle'],
sharey=dax['theta_norm0']['handle'],
)
ax.set_title(
r"$E_{e0}$" + f" = {Ee0_eV[1]*1e-6:2.0f} MeV",
size=fontsize,
fontweight='bold',
)
ax.tick_params(labelbottom=False)
ax.tick_params(labelleft=False)
ax.set_xticks(np.r_[0, 45, 90, 135, 180])

# store
dax['theta_norm1'] = {'handle': ax, 'type': 'isolines'}

# --------------
# ax - theta_abs

# theta_abs0
ax = fig.add_subplot(
gs_theta[1, 0],
sharex=dax['theta_norm0']['handle'],
)
ax.set_xlabel(
r"$\theta_{ph}$ (deg)",
size=fontsize,
fontweight='bold',
)
ax.set_ylabel(
r"$d\sigma$" + f"({units})",
size=fontsize,
fontweight='bold',
)
ax.set_yticks(np.logspace(-12, -5, 8))

# store
dax['theta_abs0'] = {'handle': ax, 'type': 'isolines'}

# theta_abs1
ax = fig.add_subplot(
gs_theta[1, 1],
sharex=dax['theta_norm0']['handle'],
sharey=dax['theta_abs0']['handle'],
)
ax.set_xlabel(
r"$\theta_{ph}$ (deg)",
size=fontsize,
fontweight='bold',
)
ax.tick_params(labelleft=False)

# store
dax['theta_abs1'] = {'handle': ax, 'type': 'isolines'}

# ticklabels size
for kax, vax in dax.items():
dax[kax]['handle'].tick_params(
axis='both',
which='major',
labelsize=fontsize - 1,
)

# ------------------
# call built-in
# ------------------

# cases 100 keV
lc = ['r', 'g', 'b']
for i0, e0 in enumerate(Ee0_eV):
iphok = Eph_eV < e0
dcases = {
i1: {
'E_e0_eV': e0,
'E_ph_eV': eph,
'color': lc[i1],
'label': f"Eph = {eph*1e-3:3.0f} keV",
}
for i1, eph in enumerate(Eph_eV[iphok])
}
_dax, _d2cross = tfphysemis.plot_xray_thin_d2cross_ei_anisotropy(
d2cross=pfe,
dcases=dcases,
dax={
'map': dax['map']['handle'],
'theta_norm': dax[f'theta_norm{i0}']['handle'],
'theta_abs': dax[f'theta_abs{i0}']['handle'],
},
)

# remove contour plots
if i0 == 0:
for cc in dax['map']['handle'].get_children():
if cc.__class__.__name__ == 'QuadContourSet':
cc.remove()

# remove legend
dax['theta_norm0']['handle'].get_legend().remove()

# ---------------------
# Adjust map x/y scales
# ---------------------

dax['map']['handle'].set_xlim(0.1, 10e3)
dax['map']['handle'].set_ylim(0.1, 10e3)
dax['theta_abs1']['handle'].set_ylabel('')
dax['theta_norm1']['handle'].legend(loc='lower right')

# --------------
# add a, b, c, d, e
# --------------

dabc = {
'theta_norm0': '(a)',
'theta_norm1': '(c)',
'theta_abs0': '(b)',
'theta_abs1': '(d)',
}
for kax, abc in dabc.items():
dax[kax]['handle'].grid(visible=True, which='major', axis='both')
dax[kax]['handle'].text(
0.95, 0.95,
abc,
fontsize=fontsize,
fontweight='bold',
horizontalalignment='right',
verticalalignment='top',
transform=dax[kax]['handle'].transAxes,
)

dax['map']['handle'].text(
0., 1.02,
"(e)",
fontsize=fontsize,
fontweight='bold',
horizontalalignment='left',
verticalalignment='bottom',
transform=dax['map']['handle'].transAxes,
)

# --------------
# save
# --------------

savefig(
fig=fig,
pfe_save=pfe_save,
path_save=path_save,
file=__file__,
)

return dax
Loading