[QUANTITY] Quantity "arguments"

Ed Shaya Edward.J.Shaya.1 at gsfc.nasa.gov
Wed Nov 12 09:45:43 PST 2003


Dave

>I have no trouble at all with binned values since that is the only
>thing we *ever* have. 
>
Not so.  There are quantities that refer to the value of a phenomena at 
a specific point in a space.
Even flux is sometimes referred to at flux at a given frequency with no  
binning over a frequency range.
One can fit a spectrum and then extract  the flux at specific 
frequencies.  Not all measurements are done on a  continuous space.  
Measurement of anything done on  objects at different specific 
temperatures or pressure, etc.  The Quantity object should be general 
enough to describe any scatterplot as well as
any histogram as well as any image.

>>But, one should not go too
>>far in this direction because we should not dictate that a particular
>>set of axis values cannot be used because it may be transformed to some
>>other.  For instance, if one has calculated, from an image, a flux
>>versus projected distance in parsecs from a planetary nebula, we can't
>>insist that this be primarily expressed as a pixel array just because
>>someone else may want it in centimeters.  This is clearly a case where
>>one has a FluxQ with Argument ProjectedDistanceQ in parsec.  If you want
>>centimeters, then that is an external process.  We do however need to
>>carefully express the radial bin sizes used.
>>    
>>
>
>Afraid I disagree again. The example you give fits exactly into our
>model. If you have a radial profile, how else are you going to store it
>other than as some form of pixel array? I do not see any other option. The
>ValueList in the Quantity will contain a list of flux values (="pixels"),
>with indices (="pixel coord") running from 1 (or 0 - for Brian!) to say,
>100. The WCS component will contain a 1-D Frame representing distance in
>parsecs, and a Mapping (probably just a simple linear Mapping) which
>converts a pixel coords into a distance in parsecs. I do agree however,
>that converting parsecs to centimetres would be an external process,
>unless of course the centimetres measure distance on the telescope focal
>plane instead of distance from the centre of the nebula. In this case you
>could simply have an extra Frame in the WCS FrameSet to describe
>centimetres in the focal plane.
>  
>
Well, here is another option
FluxQ
    Argument
        ProjectedDistanceQ
             ValueList
                   0.1  0.7  1.4  0.3 3.6 6.8
             Units
                   parsecs
    ValueList
          23.2 12.3 5.3 15.7 33.3 5.6
    Units
         ergs/s/cm2/hz

This may convey all of the information that I have or want to convey.  I 
see no reason here to mess with mappings or algorithms or frames or 
pixels.   Again, these may be binned or may not be binned, perhaps they 
are the fluxes of globules at these specific radii.

On the other hand often we do want to generate axes by algorithm. Then 
one needs an index object that is to mapped.  And, when working with the 
special case of  continuous curvilinear coordinates,
we want to use Arguments of the type developed in WCS.  WCS is a 
subclass of Argument
in which the independent variable needs to begin with a pixelMapQ 
(perhaps tuple to express X,Y)  that
is mapped to the physical coordinates.  The frame0  is a subclass of Q 
that generates that pixelMap.
Frame0 is mapped by the appropriate WCSMapping.  And  Frame1 is the 
input into this Mapping.
The following fits into your world view as I understand it, but perhaps 
does not nest the way that
you prefer.  However, it allows for a much more general world view.
Quantity
       <values>
       <units>
       WCS:Argument
           Frame0_Q
                WCS:Mapping
                   Input
                       Frame1

Frame0_Q is a special quantity that provides a shorthand for the following
if we want tuple. Although, we may decide it is best to use a 1-d index 
number. That depends on the specific algorithm to be used.

PixelMapQ
       Index NAxis1*NAxis2...
       Mapping
          ToTupleAlgorithm
                Input
                   NAxis1
                   NAxis2
                      ...
   

Mapping may also be applied separately on the upper Quantity values.  
For instance to Map to new units:

Quantity
      ValueList
      Units
      Mapping
          ToNewUnits
              Input
                  Jansky
      WCS:Argument
          same as before

This Mapping has nothing to do with the coordinates  so  why should it 
be in the Argument part?

I can have several WCS:Arguments that would then be separate dimensional 
extensions of the space.
And, I can intermix with these ordinary Arguments in which the 
"coordinate" values are explicitly listed.
For instance images of the same object taken by various spacecraft can 
have Arguments with  the
names of the spececraft or PI or filterName as the independent 
variable.  Indeed, Arguments take
Qs, and Qs can have complex Arguments (pressure depends on the T and T 
depends on RA,DE, but the
ordering of the P is by Temperature).

Ed




More information about the dm mailing list