[fitsbits] BINTABLE convention for >999 columns
William Pence
William.Pence at nasa.gov
Mon Jul 31 19:32:29 EDT 2017
Ok. I had forgotten about those complications so I agree it's less confusing to keep the domain name
> On Jul 31, 2017, at 6:50 PM, Mark Taylor <m.b.taylor at bristol.ac.uk> wrote:
>
>> On Mon, 31 Jul 2017, William Pence wrote:
>>
>> None the less, CFITSIO continues to support this more general convention. If
>> a user attempts to write a keyword longer than 8 characters the CFITSIO
>> routines will silently encode it in the FITS header using the HIERARCH
>> convention, and similarly will look for the appropriate HIERARCH keyword when
>> reading a long keyword.
>>
>> Getting back to Mark's BINTABLE convention, I agree with François-Xavier that
>> eliminating the 'XT' domain name would simplify the BINTABLE convention a
>> little bit. Using CFITSIO, one could then simply read or write the
>> "TFORM1234" keyword, instead of "XT TFORM1234".
>
> But not all the keywords defined by this convention have more than
> 8 characters.
>
> Using Francois-Xavier's suggestion, we have
>
> ...
> TTYPE998= 'var_min_s_2' / label for column 998
> TFORM998= 'D ' / format for column 998
> TUNIT998= 'counts/s' / units for column 998
> TTYPE999= 'XT_MORECOLS' / label for column 999
> TFORM999= '813I ' / format for column 999
> HIERARCH TTYPE999 = 'var_min_u_2' / label for column 999
> HIERARCH TFORM999 = 'D' / format for column 999
> HIERARCH TUNIT999 = 'counts/s' / units for column 999
> HIERARCH TTYPE1000 = 'var_prob_h_2' / label for column 1000
> HIERARCH TFORM1000 = 'D' / format for column 1000
> ...
>
> Just using CFITSIO's transparent long-keyword-means-HIERARCH rule
> to get the extended keywords would do the right thing for TFORM1000,
> TFORM1001 etc, but if you do it for TFORM999 you will get the
> wrong thing, namely the TFORM999 'container' column rather than
> the HIERARCH TFORM999 'extended' column. And if you look for
> TDIM1234 presumably CFITSIO will attempt to retrieve the
> non-existent and illegal TDIM1234 rather than the intended
> HIERARCH TDIM1234 keyword.
>
>> On Mon, 31 Jul 2017, Francois-Xavier PINEAU wrote:
>>
>> I support an "overloading" behaviour (like e.g. in CSS): same keywords
>> (TFIELDS, TXXXX999) in a more specialized context (HIERARCH) should be able to
>> overload "regular" keywords that ensure the legality of the FITS
>> file (again, waiting for an updated standard).
>
> Francois-Xavier suggests that the HIERARCH values take precedence
> over the non-HIERARCH ones in these cases. That is possible but
> if I understand correctly would require a change of the CFITSIO
> behaviour that Bill describes, and in any case sounds rather opaque
> (it's not obvious whether the HIERARCH or non-HIERARCH form
> should take precedence). The possibility of that kind of confusion
> looks to me like a good reason to stick to the namespace-required
> rule - then you know that the set of HIERARCH-derived keywords
> is the same as the set of keywords with embedded "." characters.
>
> In general I prefer the idea that software wanting to use this
> convention has to explicitly 'opt in' by recognising the convention
> in use, than that it manages to work with no client code changes
> given that the underlying library code works in a particular
> (non-standard) way.
>
> I am also a bit uncomfortable about using the HIERARCH convention
> in a way that deviates from the registered text of that convention
> (no namespace). Since it's all outside the FITS standard anyway
> that's not a showstopper, but it makes the documentation a little
> bit more complicated (it's using something like the HIERARCH
> convention registered on the FITS web pages, but with no namespace).
>
> 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 fitsbits
mailing list