Not finished (Work in progress)
Passband
What is a passband?
Defines the probability of an incoming photon of a particular wavelength being measured.
Filters
The simplest example is that of a red filter on an optical telescope; in principle any red photon (~ 5 x 10^12Hz ?) arriving is let through, and any other photons are blocked.
In practice of course it's not that simple. No filter is perfect - in the above example, some red photons will be absorbed by the filter, and some other ones might get through. Also some photons are more red than others, and the filter will not be even handed; photons of one redness will be more or less likely to pass than a photon of another redness:
(Example red filter pasband).
Finally a filter is unlikely to be completely even across its width.
Instrument, Atmosphere
Other factors influence the probability of a photon being measured - the full chain is given in the
Observation Data Model doc (2.8)
- depending on where 'incoming' is defined. We can model this set of sequential passbands using a
ChainedPassband
How are we going to model it?
From two sides; the interface the Passband object presents to the models that use it, and separately how those objects might be defined.
Assumptions
- The frequency/wavelength of a photon is fixed and exact, at least for the purposes of this part of the model.
References
Public Interface
A passband presents the following to the world:
getPassrate(
Wave
)
- returns the probability (0-1) of an incoming photon of the given wavelength/frequency being measured.
[What do you get when you apply a Wave with a significant error? Should we just ignore the accuracy?]
getMinWavelength()
- returns the wavelength below which no photons will be passed.
getMaxWavelength()
- returns the wavelength above which no photons will be passed.
[Do people prefer working in wavelengths or frequencies? Of course the above methods can be duplicated for frequencies, or we can use a Wave datamodel that can be represented as wavelength of frequency - MCH]
getUCD()
at least for the early days, as there are UCDs defined for some passbands
getName()
for humans. Note that the implementation
type will also give information and allow other specific
getCentralWave()
- returns approximate central wavelength/frequency/
Wave for convenience.
Implementations
-
SimplePassband
- a frequency range between which the passrate is 1, and outside of which the passrate is 0. [Has this any practical application? - MCH]
-
GraphPassband
- a set of points on a graph that are interpolated to give the passrates.
-
ChainedPassband
We can then have passbands such as:
-
OpticalFilter
- probably a subclass of GraphPassband
with added information such as manufacturer. A set of standard filter instances can be included in libraries
-
AtmosphericPassband
- give it your height in meters, windspeed and distance from the nearest pub, and it will work out an approximate passband. [Is this possible? useful? - MCH]