Photometry in VO Spectrum Model
Jonathan McDowell
jcm at head.cfa.harvard.edu
Sun Oct 22 09:28:56 PDT 2006
Adding support for magnitude photometry to the Spectrum data model
------------------------------------------------------------------
At ADASS it was requested that we add better support for magnitude
photometry to Spectrum, specifically adding a magnitude zero point
and a way to provide a transmission curve.
I've considered several ways to do this.
(A)
Alternative 0:
- the magnitude zero point allows you to go from the data values
(in mag) to an absolute flux (in Jy or similar units). This is
very like a coordinate system. We could add a FluxFrame specialized
from CoordFrame with a Zero attribute with value, ucd and unit:
FluxFrame.Name B
FluxFrame.UCD phot.mag
FluxFrame.Zero.Value 4893.0
FluxFrame.Zero.Unit Jy
FluxFrame.Zero.UCD phot.flux.density;em.freq
Pro: Rigorous approach. Could be generalized to other
situations.
Con: We don't normally think of the y axis as a coordinate. Adding
a CoordFrame for it could be confusing, add complexity, and
reduce compatibility with STC.
Alternative 1: Just add a single value Spectrum.PhotZero
to the top level object, required to be in Jy
Con: Ugly (clutter up top level object) and inflexible (not
everyone wants to give the zero point in Jy?)
Alternative 2: The other obvious place to add it is in
Characterization. We could subclass the Char.FluxAxis (Figure 3)
to have a special Photom object with Photom.Name, etc.
Con: Reduces symmetry in the Char description. But maybe
not too badly.
(B) -
Alternative 0 -
the transmission curve has been discussed in the
Observation/Characterization
data model subgroup; it is the 'level 4' characterization, or Sensitivity,
for the spectral coordinate. We could add a new Sensitivity object
to the Spectrum characterization, with a single field holding an
IVORN URI to another instance of Spectrum holding the transmission curve.
We would add the field:
Char.SpectralAxis.Coverage.Sensitivity.URI
Pro: a long term generalization.
Pro: Providing a URI is a minimal implementation change rather than adding
a complicated structure.
Pro: Since many datasets may share the same transmission curve,
a URI reference rather than an in-place pair of data arrays is much
more efficient.
Pro: Also works for X-ray ARF curves, needed for publishing e.g. Chandra data.
Con: Adding Sensitivity is something that was deliberately left out
of the current IVOA Characterization doc and deferred for later.
Con: Adding Sensitivity to Spectrum.Char.*Axis.Coverage in the object
model (where I argue it belongs)
adds it for all axes, not just the spectral axis.
(The TimeAxis sensitivity would represent a time-variable sensitivity,
and the SpatialAxis sensitivity would be a spatial QE map).
This added complexity is not needed for the other axes at this time.
However, we could just say that you should only use it for the SpectralAxis
case for now.
Alternative 1: Add it somewhere else in the model, e.g. at the top level.
Con: As for (A), it's an ugly, cheap getout to add things at the top level.
Alternative 2: Add it as an extra field to the Char.FluxAxis.Photom
object posed in (A)'s alternative 2 above.
Con: when Char does do Sensitivity, we may want to replace it.
So the Alternative-2 proposal becomes
Char.FluxAxis.Photom.Name B
Char.FluxAxis.Photom.UCD phot.mag
Char.FluxAxis.Photom.Zero.Value 4893.0
Char.FluxAxis.Photom.Zero.Unit Jy
Char.FluxAxis.Photom.Zero.UCD phot.flux.density;em.freq
Char.FluxAxis.Photom.Sensitivity.URI ivo://photom/B_Johnson_KPNO2004
I think either Alternative 0 or Alternative 2 are workable in each case;
I request feedback.
- Jonathan
More information about the dm
mailing list