Marking up HEALPix index columns in VOTable

Marco Molinaro molinaro at oats.inaf.it
Tue Aug 16 10:35:30 CEST 2016


Hi Markus, App-ers,

2016-08-15 10:04 GMT+02:00 Markus Demleitner <msdemlei at ari.uni-heidelberg.de>:
> Hi Apps,
>
> On Thu, Aug 11, 2016 at 04:03:37PM +0200, Marco Molinaro wrote:
>> if the order is what is needed,
>> considering the MOC standardization to be in place,
>> I vote for a solution that is a part of Rick's suggestion
>>
>> N -> pos.healpix;meta.number
>>
>> into a table level PARAM.
>> Maybe mixed to a single addition to UCD words:
>>
>> meta.order
>>
>> if we want some more specific detail and a reusable word.
>> (thus going pos.healpix;meta.order)
>>
>> However I must say that I'm working on a tableset that,
>> if it were to return such field, would have a non-homogeneous
>> order for tessellation. But this case is not covered by the
>> "horrible" solution either.
>
> If I understand correctly what your problem is, I'd say it'd be
> solved by what I think we need anyway to allow multiple healpix
> columns (and hence potentially multiple orders) per table: some form
> of grouping.
>
> I'm still not a great fan of this since it involves referencing, and
> getting referencing right always is a bit tricky -- but if people
> really consider using VALUES as prohibitively ugly (while I'd still
> say healpix ranges and hence orders are a perfectly legitimate use
> case), there's probably no way around it.
>
> Let's at least keep that as simple as we possibly can, then.  I think
> the minimal thing we can say is:
>
>   A FIELD containing a healpix index is marked up with a
>   ucd="pos.healpix".  It must be referenced from a GROUP that will
>   normally contain a PARAM with pos.healpix;meta.number that contains
>   the healpix order (log_4(nsides)):
>
>     <GROUP>
>       <PARAM datatype="short" name="order_1"
>         ucd="meta.number;pos.healpix" value="3"/>
>       <FIELDref ref="hp_1"/>
>     </GROUP>
>    ...
>    <FIELD id="hp_1" datatype="long" name="hp_1" ucd="pos.healpix"/>
>
>   [meta.number is P, so it must be first, and I'd argue that's a good
>   thing, too; I'd advocate having meta.order, too, though].
>   In case a column contains healpixes of differing orders, the order
>   can also be stored in a separate column:
>
>      <GROUP>
>       <FIELDref ref="order_2"/>
>       <FIELDref ref="hp_2"/>
>     </GROUP>
>     ...
>     <FIELD id="order_2" datatype="short" name="order"
>         ucd="meta.number;pos.healpix"/>
>     <FIELD id="hp_2" datatype="long" name="hp_2" ucd="pos.healpix"/>
>
>   From a consumer point of view, the rule is: If a FIELD has a ucd or
>   pos.healpix, look for a GROUP that contains a FIELDref to that
>   FIELD.  This GROUP must contain either a PARAM with ucd
>   meta.number;pos.healpix or a FIELDref with this ucd.   Obtain the
>   order number from there.  If no such GROUP, FIELDref, or PARAM can
>   be found, ignore the FIELD or raise an error.
>
> It may not be overly pretty, but it's not overly complex either and
> neither requires prior nor likely complicates later DM work.
>
> And I really can't convince you that simply going for VALUES (which,
> yes, cannot cover the inhomogeneous case) would do the trick for now?

To me it's ok, if we want to avoid GROUPing around or add an
additional PARAM to the table.
The FIELD element must be there in any case, so having the info
directly within it it's fair to me, even if you need a little
computation to extract the order value and you have to keep in mind
the meaning of the MAX VALUE there.

Marco

>
>          -- Markus
>
>


More information about the apps mailing list