Skip to content

v0.4.0

Choose a tag to compare

@roytsmart roytsmart released this 15 Oct 16:33
e0f889e

utu.spectrum

New: synthesize(), the spectral radiance of each line (#14). It spreads each line of contribution_function() into a Gaussian in bins of velocity around its rest wavelength.

  • Width: the thermal width of the ion added in quadrature to a nonthermal width.
  • Center: the line-of-sight velocity of the plasma.
  • Temperature: each temperature has its own profile, and the profiles are summed with the emission measure.
  • Maps: every other axis of the emission measure, such as the two axes of a map, is carried through. The shift and the nonthermal width can vary along any of them.
  • Conservation: each bin gets the integral of the profile across it, so a line's radiance is conserved on coarse grids, and its far wings don't round to zero.
  • Memory: the result is filled in blocks, so large maps with many lines fit in memory.

The emission measure is per bin of temperature, not a DEM per unit log T. It is ∫n_e n_H dh, because fiasco's contribution functions leave out n_H/n_e. The docs of lines() and contribution_function() now say so too, and the tutorial has a new section on line profiles.

Fixed: ions(hdf5_dbase_root=...) lists the ions of the database it is given (#13). It used to list them from fiasco's default database, so an ion that only the given database has was never returned.

Dependencies: synthesize() needs SciPy, which is now a dependency.

What's Changed

  • List the ions of the database utu.spectrum.ions() is given by @roytsmart in #13
  • Add utu.spectrum.synthesize, the spectral radiance of each line by @roytsmart in #14

Full Changelog: v0.3.1...v0.4.0