ImageDM vs Char2 Utypes
François Bonnarel
francois.bonnarel at astro.unistra.fr
Mon Nov 4 02:30:49 PST 2013
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