Skip to content

Gas, radiation, and magnetic fields

Neutral gas

neutralgas.RingModel loads twelve Galactocentric rings from the Remy et al. H I or CO maps:

hi = hermes.neutralgas.RingModel(hermes.neutralgas.GasType.HI)
h2 = hermes.neutralgas.RingModel(hermes.neutralgas.GasType.H2)
print(len(hi), hi.getEnabledRings())

Individual rings can be enabled or disabled. This supports morphological decomposition, but ring indices and boundaries must be recorded in derived products.

Ionized gas

The Python namespace ionizedgas exposes:

  • HII_Cordes91;
  • NE2001Simple;
  • YMW16.

These models provide getDensity(position) and feed dispersion measure, rotation measure, free-free emission, and synchrotron absorption.

Photon fields

  • photonfields.CMB() is the cosmic microwave background.
  • photonfields.ISRF() loads the Vernetto16 interstellar radiation field.

The default ISRF reader consumes RadiationField/Vernetto16/isrf.fits.gz, a self-describing cube with 30 radial positions, 24 vertical positions, and 1211 wavelengths. Current HERMES retains a legacy text-table fallback for older datasets, but new installations should resolve the FITS cube.

field = hermes.photonfields.ISRF()
print(field.getSize())  # 871920
print(len(field.getEnergyAxis()))

Magnetic fields

The Python namespace magneticfields exposes regular Galactic models JF12, PT11, and Sun08. Each provides getField(position). Optional FFTW3F support enables C++ turbulent-field functionality where applicable, but it does not replace choosing and documenting a regular-field model.