ImageDM vs Char2 Utypes
Louys Mireille
mireille.louys at unistra.fr
Mon Nov 4 11:03:26 PST 2013
Dear all,
I think we are already using parts of STC in the protocols, especially
for STC-S regions , positions , Time Location.
It seems rather natural to me to clarify which STC structures could be
used as building blocks , in the models definition and afterwards in the
serialisation .
We do not need to import all possible STC representations of an error ,
f. i. but need to clarify the finest levels of the metadata description.
Cheers, Mireille.
Le 04/11/2013 11:30, François Bonnarel a écrit :
> Hi Doug, all
> Le 31/10/2013 19:42, Douglas Tody a écrit :
>> Hi Francois -
>>
>> I need to look into this one more carefully, but on the issue of adding
>> generalized STC substructure for something like Coord, I think this is
>> getting too complex for what we need to merely Characterize a dataset.
>> In the current ImageDM for example we fix (restrict) the coordinate
>> frames in CoordSys and this applies to the included Char instance as
>> well (hence in the Char instance in ImageDM, each Char axis does not
>> define its own coordinate system separately from ImageDM.CoordSys). If
>> we make things fully general, yes you could describe things more
>> precisely in some cases, but this is not required to merely characterize
>> the dataset, and would complicate things for a client to have to be
>> prepared to deal with what might come back.
>>
>> If we decide we want such capabilities it might be better provided by
>> extension so as to not over-complicate the main model. That is, we
>> specify a refval or other simple characteristic value as what ImageDM
>> wants, but allow optional substructure as defined by the full underlying
>> model.
> In the model the attributes come with an attribute type ? So either
> the low level in char is made with simple types or with stc class
> instances.
> Can we have a complex type with two optional features ?
>
> Regards
> François
>>
>>
>> - Doug
>>
>>
>> On Thu, 31 Oct 2013, François Bonnarel wrote:
>>
>>> Hi Doug,
>>> Hi all,
>>> Le 30/10/2013 04:24, Douglas Tody a écrit :
>>>> Hi Francois -
>>>>
>>>> I went through your detailed comments comparing the current ImageDM
>>>> Utypes (the ones in question are essentially the same as Mark's
>>>> proposed
>>>> SpectralDM versions that we carried over to ImageDM) with Char2. Some
>>>> things are not clear. To get things started I did this only for the
>>>> SpatialAxis as the others are similar. See comments below. Lets all
>>>> discuss this and settle on a consistent scheme for these few Utypes
>>>> that
>>>> differ - recognizing of course, that a data model is not merely a
>>>> collection of Utypes :-).
>>>>
>>>> In what follows I provide the current ImageDM Utype, the suggested
>>>> Char2 name, and then add some comments.
>>>>
>>>> - Doug
>>>>
>>>>
>>>> ImageDM vs Char2 Utypes
>>>> ------------------------
>>>>
>>>> Utypes shown are the current ImageDM versions unless otherwise stated.
>>>>
>>>> Char.SpatialAxis.Coverage.Location.Coord (Central coords)
>>>> Suggestion appears to be to go with the simpler Utype as above,
>>>> and in the current ImageDM, correct? (ObsTAP is more verbose)
>>>>
>>>> Simpler is better so far as I am concerned. This measure is
>>>> independent of the coordinate frame type (e.g., ra/dec,
>>>> glon/glat),
>>>> so it is more general. It is also extensible to variable image
>>>> dimensions. Separated coord values could however be more
>>>> convenient
>>>> in some use cases.
>>>>
>>> Hum ... As I tried to explain in the email associated to the
>>> comparison table:
>>> http://wiki.ivoa.net/internal/IVOA/ImageDM/ImageDM-ObsCore.txt
>>> "Characterisation is reusing STC class instances at the low level".
>>> I encourage dm readers to go there and read this little email.
>>> So Char.SpatialAxis.Coverage.Location.Coord designates an attribute
>>> of char, but i is defined as an AstroCoord stc instance (this was in
>>> char1 allready, see the UML, the text and associated xml schema of
>>> 2007/2008 recommandations and notes).
>>> That means that Coord not only contains a pair of doubles but a
>>> reference to the coordinate system, a full coordinate stc instance
>>> (with values but also errors, etc....) and possibly another
>>> coordinate (time or spectral ....) if this makes sense in the
>>> conisdered coordiante system.
>>> Here Obstap provided utypes going further the specific char part
>>> inside the stc structure by Concatenating Position2D.value2.C[12] at
>>> the end of the string as we did in the "old" path-utype style !!!
>>>
>>> For me the alternative in building Char class of ObsCore and ImageDM
>>> is:
>>> - either we define Coord as a "pair of doubles" attribute and
>>> consider the coordinate system is given elsewhere in the model
>>> - or we define it as in char1/char2 as an STC AstroCoord
>>> I personnaly prefer the second solution which allows more
>>> possibilities due to the powerfull content of AstroCoord stc
>>> objects, but DM group can choose. If we do it here we should also do
>>> it in support and bounds maybe where the same thing applies
>>> Actually what I said applies to models with classes, attributes,
>>> roles and package reuse. The discussion of how we actually define
>>> and write the utypes si another story.
>>>
>>>
>>>
>>>
>>>> Char.SpatialAxis.Coverage.Bounds.Extent (FOV)
>>>> The suggestion is to change to <above>.diameter as in ObsTAP
>>>>
>>>> Fine; More verbose but I assume the reason is that there are
>>>> measures of Extent other than diameter so we need to make such a
>>>> distinction.
>>>>
>>> Yes, right
>>>> Char.SpatialAxis.Coverage.Bounds.Limits.LoLimit2Vec
>>>> Char.SpatialAxis.Coverage.Bounds.Limits.HiLimit2Vec
>>>> ImageDM Appears to be consistent with Char2 here.
>>>>
>>> Yes, but LoLimit2Vec comes from stc, because Limits in Char2 is an
>>> stc Interval instance
>>>> The Char2 comments state that these values specify the spatial
>>>> bottom left and top right corners of the image. Is this the case,
>>>> or are these the min/max values of the spatial coord[12]?
>>>> Specifying the actual corners is preferable in my opinion, as this
>>>> gives the actual image footprint, and the min/max bounds can be
>>>> computed from these values.
>>>>
>>> That was my mistake. Min/max is more generic I think.
>>>> Char.SpatialAxis.Accuracy.StatError
>>>> Suggested replacement:
>>>> Char.SpatialAxis.Accuracy.StatError.refval.CError
>>>>
>>>> A simple StatError seems simpler and sufficient to me. We will be
>>>> lucky if we get even that much from any actual data provider. Why
>>>> do we need a pletora of types of statistical errors? If we do, a
>>>> simple reference value (StatError or StatError.refval) would allow
>>>> extension to additional metadata on the statistical error.
>>>>
>>> Two different issues:
>>> 1 ) refval inside StaError (or SysError or CustError). This is
>>> because char2 *Error also has "bounds" and variabality maps. (more
>>> or less like coverage, resolution and Sampling properties)
>>> 2 ) CError: this encompass plenty of stc structure and
>>> semantics in char2. Stc has Error for 1-dim spatial coordinates,
>>> Error2 as a couple of doubles for lon/lat errors, Error2Radius for
>>> circular error, etc... for 2-dim spatial coordiantes, and again for
>>> 3-d spatial, Error3, etc.... These distinctions seemed to be very
>>> usefull (at least for some of them) and stc allready had names for
>>> that, so why recreate everything ? So the choice the dm group as to
>>> do is the same, if we define refval as a number or a set of numbers,
>>> it's very little change in char2 itself, but we loose stc syntax.
>>> ----> by the way we could also define S*Error.refval AS an
>>> stc CError structure encompassing all the variants. this will change
>>> in char2 the place where we can define associated unit and
>>> documentation (always coming as neibourgh attributes to the "values"
>>> attributes in this model)
>>>> Presumably all this applies to SysError as well.
>>>> Likewise for SpectralAxis, TimeAxis, etc.
>>>>
>>>> Char.SpatialAxis.CalibrationStatus
>>>> Suggestion is to change to the above everwhere (ObsTAP uses
>>>> calibStatus).
>>>>
>>>> Fine, we just need to be consistent.
>>>>
>>> Ok
>>>> Char.SpatialAxis.Resolution.RefVal
>>>> Add resolution lo/hi bounds as in ObsTAP.
>>>>
>>>> No problem; we just need to ensure that the Utypes are consistent.
>>>
>>> Ok
>>>
>>> Best regards to everybody
>>> Cheers
>>> François
>>>
>
More information about the dm
mailing list