# Vector-valued Quantities

Ed Shaya Edward.J.Shaya.1 at gsfc.nasa.gov
Thu May 13 09:59:37 PDT 2004

```Oh, its OK with me if you start at QuantitySet (you call CoreQ) and then
we create some subclass of it that can only hold a singleQuantity.  So
luminosityQuantity is a subclass of singleQuantity and starDescription
is a subclass of CoreQ which can aggregate luminosityQuantity and
massQuantity.

It would be most straightforward if the serialization ends up looking
something like.

starDescription {
luminosityQuantity
massQuantity
}

where the axes in the massQuantity use a ref to the axes of the
luminosityQuantity (or they both reference a single one held by
starDescription}.  It should be easy, with a single xpath expression, to
extract just the  luminosity or just the mass.

Ed

David Berry wrote:

>Ed,
>
>
>
>>    You don't need a QuantitySet for what you describe here.  That is
>>just an SED with an alternate axis.  And I mentioned that an SED is just
>>a Quantity.  You need the set when you combine luminosity and mass for a
>>list of stars.
>>
>>
>
>I can't see any difference between the (luminosity+mass) case and the
>(flux+wavelength) case.  As before, what's wrong with a normal CoreQ in
>which the the values are vectors consisting of two numbers - the flux, and
>the associated mass?
>
>   CoreQ {
>      CompoundFrame {
>         LuminosityFrame
>         MassFrame
>      }
>      ParallelMapping {
>         LuminosityValue
>         MassValue
>      }
>   }
>
>David
>
>
>
>
>
>Or for flux and dust extinction along lines of sight.
>
>
>>Ed
>>
>>
>>David Berry wrote:
>>
>>
>>
>>>Ed,
>>>
>>>
>>>
>>>
>>>
>>>>   Next we want to combine quantities, but we want to do this keeping
>>>>some relationship between the index values of both quantities.  This is
>>>>commonly the case when the nth element in each quantity refer to the
>>>>same object.  QuantitySet provides for a standard way to get your ducks
>>>>in a row.
>>>>
>>>>
>>>>
>>>>
>>>Given that a CoreQ consists of a Frame and a Mapping (taking a
>>>ValuesList to be a special form of Mapping), it is represented by:
>>>
>>>  CoreQ {
>>>     Frame f;
>>>     Mapping m;
>>>  }
>>>
>>>Let's say we have two scalar-valued CoreQ's:
>>>
>>>  CoreQ flux
>>>  CoreQ wavelength;
>>>
>>>If we then want to combine these into a single vector-valued CoreQ, do
>>>we not just join the two Frames together to form a compound Frame,
>>>and then joing the two Mappings together to form a compound (parallel)
>>>Mapping, and then combined them in a new CoreQ as follows:
>>>
>>>  CoreQ SED {
>>>     CompoundFrame {
>>>        flux.f
>>>        wavelength.f
>>>     }
>>>     ParallelMapping {
>>>        flux.m
>>>        wavelength.m
>>>     }
>>>  }
>>>
>>>The above *is* a CoreQ since it is made up of a Frame and a Mapping, so
>>>why do we need a new "QuantitySet" class?
>>>
>>>David
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>
>----------------------------------------------------------------------
>Dr David S. Berry    (dsb at ast.man.ac.uk)
>
>STARLINK project		 |	Centre for Astrophysics
>(http://www.starlink.ac.uk/)	 |	University of Central Lancashire
>Rutherford Appleton Laboratory	 |	PRESTON
>DIDCOT				 |	United Kingdom
>United Kingdom			 |	PR1 2HE
>OX11 0QX                                Tel. 01772 893733
>                                             01257 273192
>
>
>

```