Europa dose maps (from Yoffe et al., 2025; Astrobiology)
Description
Ion/Electron Deposited Energy Maps (.npz)
Overview
This repository stores NumPy .npz bundles output by G4beamline post‑processing for deposited energy/dose in water ice.
Files include 1D ion depth profiles and 2D integrated surface maps derived from electron grids, optionally with ions added.
Units: dose rates in MGy yr^-1. Depth in mm. Density labels in g cm^-3.
File Naming
EDep_ions_MGy_density-{density}.npz
Example: EDep_ions_MGy_density-0.5.npz
integrated_deposited_energy_{hemisphere}_electrons.npz
Example: integrated_deposited_energy_trailing_electrons.npz
integrated_deposited_energy_{hemisphere}_both.npz
Example: integrated_deposited_energy_leading_both.npz
{hemisphere} is leading or trailing.
Contents by File Type
Ion depth profiles: EDep_ions_MGy_density-{density}.npz
Keys
z: 1D array of depths in mm (increasing)
p: 1D dose profile for H+ in MGy yr^-1 (same length as z)
O: 1D dose profile for O^{2+} in MGy yr^-1
S: 1D dose profile for S^{3+} in MGy yr^-1
Notes
Species keys are present only if that species was simulated; missing keys imply zero.
All species share the same depth grid z.
Integrated maps (2D): integrated_deposited_energy_{hemisphere}_electrons.npz
Keys
vals: 2D array (surface grid) of electron dose integrated over depth, MGy yr^-1
Notes
Shape matches the electron hemisphere grid used during generation.
Axes correspond to the model’s surface discretization (longitude/latitude bins). If you need explicit coordinate arrays, keep them alongside the source pipeline or regenerate them from it.
Integrated maps (2D, electrons + ions): integrated_deposited_energy_{hemisphere}_both.npz
Keys
vals: 2D array (surface grid) of total dose integrated over depth, MGy yr^-1
Notes
Constructed as the electron integrated map plus the depth‑integrated ion profile applied uniformly across the hemisphere (uniform scalar offset from ions).
Loading Examples (Python)
Ion depth profiles
Load and plot species; compute total ion dose vs depth
import numpy as np
import matplotlib.pyplot as plt
dat = np.load('EDep_ions_MGy_density-0.5.npz')
z = dat['z'] # mm
ED_p = dat['p'] if 'p' in dat else 0*z
ED_O = dat['O'] if 'O' in dat else 0*z
ED_S = dat['S'] if 'S' in dat else 0*z
ED_total = ED_p + ED_O + ED_S # MGy/yr vs depth
plt.loglog(z, ED_p, label='H+')
plt.loglog(z, ED_O, label='O++')
plt.loglog(z, ED_S, '--', label='S+++')
plt.loglog(z, ED_total, 'k', label='Total ions')
plt.xlabel('Depth [mm]'); plt.ylabel('Dose rate [MGy yr$^{-1}$]'); plt.legend(); plt.show()
Depth‑integrated ion scalar to combine with electron maps
# If z is nonuniform, use np.trapz for accuracy
ion_scalar = np.trapz(ED_total, z) # MGy/yr integrated over depth
Integrated surface maps (electrons only or both)
import numpy as np
import matplotlib.pyplot as plt
M_el = np.load('integrated_deposited_energy_trailing_electrons.npz')['vals']
M_both = np.load('integrated_deposited_energy_trailing_both.npz')['vals']
fig, ax = plt.subplots(1, 2, figsize=(10,4), constrained_layout=True)
im0 = ax[0].imshow(M_el, origin='upper'); ax[0].set_title('Electrons (depth‑integrated)')
im1 = ax[1].imshow(M_both, origin='upper'); ax[1].set_title('Electrons + ions (depth‑integrated)')
for a in ax: a.set_xlabel('Longitude bin'); a.set_ylabel('Latitude bin'); a.grid(alpha=0.2)
fig.colorbar(im0, ax=ax[0], fraction=0.046, pad=0.04, label='MGy yr$^{-1}$')
fig.colorbar(im1, ax=ax[1], fraction=0.046, pad=0.04, label='MGy yr$^{-1}$')
plt.show()
Conventions and Units
Dose values are MGy yr^-1. (1 Gy = 1 J kg^-1.)
Depth z is in mm measured from the surface inward.
density in filenames is the bulk density in g cm^-3 of the ice used in the conversion.
Hemispheres: leading or trailing with respect to orbital motion.
Best Practices
Always inspect dat.files to see which species exist in an ion bundle:
np.load(path).files returns the available keys.
Ensure species depth grids match before combining different ions; in these bundles all species share the same z by construction.
When comparing to electron grids, remember that the integrated maps here do not carry explicit longitude/latitude coordinate arrays—carry them alongside if needed in your workflow.
Reproducibility Notes
The ion bundle is built so repeated runs append/update species while enforcing the same z grid.
The “both” map assumes ions are spatially uniform over the hemisphere (uniform scalar from depth‑integrated ion dose). If you later have spatially resolved ion maps, prefer recomputing “both” from matching grids.
Files
Files
(703.2 MB)
Additional details
Related works
- Is described by
- Publication: 10.1089/ast.2024.0140 (DOI)
Software
- Programming language
- Python