Marking up HEALPix index columns in VOTable

Stéphane Erard stephane.erard at obspm.fr
Mon Aug 8 20:11:49 CEST 2016


Dear Mark and all

I've been wondering about the same thing last spring for possible use on planetary surfaces (~spherical ones at least)
To me that was clearly a system with 2 coordinates, Nside and tile number (plus possibly ordering nested/ring as a 3rd one - it doesn't hurt in EPNCore since we always have 3 spatial coordinates available). 
Your baseline solution may be better if there is a simple way to parse it in the tools.

Regards
Stéphane

Le 8 août 2016 à 18:55, Mark Taylor <M.B.Taylor at bristol.ac.uk> a écrit :

> [I've crossposted this to apps and semantics, but I suggest
> followups to Apps only]
> 
> Dear colleagues,
> 
> Gregory Mantelet, Markus Demleitner and I have been having some
> discussions about exchange of HEALPix maps within the VO.
> 
> The type of data we're considering is a table for which one column
> contains a HEALPix index (an integer which identifies a tile on the sky),
> and other columns contain quantities relating to to that tile
> (source density, extinction, mean G magnitude, whatever).
> The question we're trying to answer is: how does a data producer
> mark up the healpix-index column in a VOTable so that consumers
> can recognise it as such?
> 
> The following UCD1+ is defined:
> 
>    Q  |  pos.healpix      |  Hierarchical Equal Area IsoLatitude Pixelization
> 
> So far so good; however, marking up a column like this provides
> insufficient information to make it useful, because to make sense
> of a HEALPix index you need to know what Order N of tiling it represents
> (HEALPix splits the sky into 12*4^N tiles, where N is an integer
> that for practical purposes falls in the range 0..29).
> Since UCD words cannot be parameterised (beyond composing them with
> other UCD words) there doesn't seem to be any way to encode this
> Order information in the UCD.
> 
> Markus's clever idea is to do something like this:
> 
>     <FIELD datatype="int" ucd="pos.healpix">
>       <VALUES type="legal">
>         <MAX>49151</MAX>
>       </VALUES>
>     </FIELD>
> 
> Since the legal maximum value for the column is 49151 (=12*(4^6)-1),
> it's possible to infer that N=6 for this healpix column.  Note that
> since type="legal" this does not say that the actual contents of
> the column hit that maximum (i.e. some pixels might be absent, but the
> declaration would not change).
> 
> This is kind of horrible, but at the same time the meaning is fairly
> unambiguous, and it requires no new standardisation activity.
> So, we are likely to go ahead with marking up HEALPix columns in
> this way (Markus's and Gregory's services will emit VOTables like
> this, and topcat will understand them) unless anybody persuades
> us different.
> 
> We have considered various other options too, but on balance we
> think they're even worse.  Briefly:
> 
>   - Abuse UCDs by trying to parameterise them:
>        pos.healpix(6)?
>        pos.healpix;index=6?
> 
>   - Introduce new UCD words to (0<=N<=29, so the number of new words
>     would be quite, but not ridiculously, large):
>        pos.healpix0, pos.healpix1, ... pos.healpix29?
>        pos.healpix;arith.0, pos.healpix;arith.1, ... pos.healpix;arith.29
> 
>   - Xtype magic:
>        xtype="healpix(6)"
>        xtype="tilings:healpix(6)"
> 
>   - Some table-level indication of the order:
>        <TABLE>
>          <PARAM name="healpix-order" datatype="int" value="6">
>          <FIELD datatype=int ucd="pos.healpix"/>
>            ...
>        </TABLE>
>      this would work because in practice, it's hard to imagine you
>      could have multiple columns in a single table with different
>      healpix orders.  This is somewhat analogous to how the
>      ad-hoc FITS healpix serialization works.
>      Note it still needs some convention to identify the healpix-order
>      PARAM.
> 
>   - Some business with GROUP/FIELDref/PARAM elements at table level.
>     Note this also needs some convention to identify the healpix-order.
> 
>   - Reinvent UCD syntax????
> 
> 
> Actually it is even worse than this: there are two alternative
> conventional schemes for assigning HEALPix indices to a tiling
> at a given order, known as NESTED and RING, and you need to know
> which one is intended.  Furthermore, the actual sky position
> corresponding to a given pixel is dependent on how the tiling is
> attached to the celestial sphere (e.g. equatorial, ecliptic, galactic).
> So even if you know N you don't have enough explicit information
> to make sense of a healpix index.  However, we are currently
> following MOC in assuming the NESTED scheme, and it's probably
> reasonable to take the sky system as implicit, so we're ignoring
> those details for now.
> 
> Any bright ideas, wise comments etc welcome.
> 
> Mark
> 
> --
> Mark Taylor   Astronomical Programmer   Physics, Bristol University, UK
> m.b.taylor at bris.ac.uk +44-117-9288776  http://www.star.bris.ac.uk/~mbt/



More information about the semantics mailing list