Skip to content

Structure analysis API proposal

Chris Beaumont edited this page Jun 13, 2013 · 9 revisions

The original dendrogram package contains code for basic structure analysis. Dendro-core needs this as well.

Basic quantities

  • Flux : The sum of the pixel values
  • Location : Intensity-weighted centroid
  • Extent : Intensity-weighted second moments, along each axis

Quantities specific to molecular cloud PPV cubes

  • Position angle : The orientation of a structure, projected onto the PP plane
  • Major, minor axis: The intensity-weighted second moments, parallel/perpendicular to the position angle vector
  • radius : The geometric mean of the major and minor axes
  • mass : Usually, approximated by applying a conversion factor to the flux
  • virial parameter
  • pressure

Quantities specific to PPP simulation data

The same as above, though we can measure a 3D orientation vector, the extents along all 3 principle axes, and rely external velocity information for velocity dispersion, virial parameter, and pressure

Other considerations

These quantities can be computed for any collection of voxels. The most natural collection of voxels is each leaf/branch. However, we should also be able to sample these quantities at different contour levels within a leaf/branch.

There is some tension between analysis that makes the most sense for PPV spectral data cubes, versus more generic cases. We should strive for a natural API to address PP maps, PPV spectral data cubes, and PPP simulation data. These might need to be separate classes.

The original "levelprops" code considers three paradigms for dealing with how structures are truncated: The "bijection" paradigm assumes that a structure has a sharp boundary, and all of the emission interior to the boundary belongs to the structure. The "clipping" paradigm assumes that a structure has a sharp boundary, and only the emission above the contour level of the boundary is part of the structure. The "extrapolation" paradigm assumes that a structure extends beyond the boundary.

I've really only used the bijection paradigm in my own work -- Erik R. should fill us in on whether all 3 paradigms should be ported over here

Clone this wiki locally