VOTable for Images

Mark Taylor M.B.Taylor at bristol.ac.uk
Thu Oct 17 01:27:16 CEST 2019


Mark,

I don't think this is going to work.  The <FITS> element in VOTable
is only designed to point at a FITS Binary Table (BINTABLE extension),
not a FITS image (primary HDU or IMAGE extension).  The reason that
the extnum has to be >0 is that you can't put a BINTABLE in the primary
HDU, only in one of the later extensions.  If a VOTable parser gets
directed from the FITS element to an HDU that does not contain
a BINTABLE, it's going to fail to understand it; that's certainly
true of my parser, and I'd say it's the clear intention of the
standard, e.g. (VOTable 1.3 section 2.3):

  Henceforth, we shall abbreviate "FITS Binary Table and its Conventions"
  simply by the word "FITS".

If you wanted to insert the content of an image dataset into a VOTable
document, you'd have to do something like use a cell of a table
with multi-dimensional array type.

Mark

On Wed, 16 Oct 2019, CresitelloDittmar, Mark wrote:

> All,
> 
> In my presentation at the interop (DM session), I mentioned that the
> VOTable serializations of the 2D and 4D image fail validation.
> 
> I'm not terribly surprised (it is VO*Table* after all), but I have some
> small hope of working up to some usage work on the Cube-Image in the near
> future and am not sure what the strategy is for serializing/annotating
> image datasets.
> 
> Looking for suggestions..
> 
> Basically, I'm currently using the same mode that I do with tabular
> datasets.  Include the header metadata, describe the content, point to the
> FITS file.
> 
>       <FIELD ID="_col-image" name="image" datatype="int"/>
>       <DATA>
>         <FITS extnum="0">
>           <STREAM
> href="file:///data/vao/staff/mcd/docs/models/dm/Cube/examples/src/chandra_2Dsky_image.fits"/>
>         </FITS>
>       </DATA>
> 
> 1) obviously, there is no field named "image" in the dataset, I could use
> the block name, but it's still a hack
> 2) extnum="0"
> The VOTable spec is pretty clear that the extensions are "numbered from 1
> up, the main header being numbered 0".
> So, it's no surprise that I get the following validation error on this:
> (using votlint in stilts_3.0-9)
>    ERROR (l.293, c.26): cvc-minInclusive-valid: Value '0' is not
> facet-valid with respect to minInclusive '1' for type 'positiveInteger'.
>    ERROR (l.293, c.26): cvc-attribute.3: The value '0' of attribute
> 'extnum' on element 'FITS' is not valid with respect to its type,
> 'positiveInteger'.
>    ERROR (l.294, c.112): Non-positive extension number extnum=0
>    WARNING (l.294, c.112): Read error for external stream
> uk.ac.starlink.table.TableFormatException: Can't read FITS header
> 
> And, if I point it at a non-table HDU in later extensions...
>    WARNING (l.294, c.93): Read error for external stream
> java.io.IOException: No table HDU at extension 2
> 
> I suppose I could do it with the <BINARY> node, but it'd be nice for the
> redirect to work.
> 
> 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 apps mailing list