Skip to content

Generating PPV cubes #338

Description

@robjmcgibbon

Several COLIBRE-project use cases need PPV (position-position-velocity) cubes of simulated galaxies. I've written code for this, and Joop seems keen that it gets added to swiftsimio. I think it might be better as a separate package, so would like to hear what others think. Some further info:

  • The implementation is numba-based, similar to the existing project/visualisation backend. I'm testing it by masking particles by velocity, building a 2D map per velocity channel, stacking them into a cube, and comparing with the numba backend.
  • The main use case would be for emission, which means the user needs to use the particle properties to index the CHIMES table. I don't think that step belongs in swiftsimio.
  • The output has units of length on the x/y axes but velocity on the z axis. I'm not sure how to represent that cleanly with cosmo_array as it currently stands.
  • Smoothing the particles in velocity space:
    • Default would be no smoothing, particles deposited into a single cell.
    • Support for smoothing by particles velocity dispersion, assuming a Gaussian. COLIBRE snapshots carry velocity dispersion directly, but we could add a helper function to compute it if it's missing.
    • Support for thermal broadening, would species-dependent.
  • If we do this as a small separate package then we could return an object, with useful methods
    • Converting units (including to RA/DEC)
    • Adding noise
    • Computing moment maps (integrated intensity, velocity field, dispersion)
    • Writing to FITS

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestvisualisationVisualisation-related issues

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions