[fitsbits] BINTABLE/TABLE column count limitation

Arnold Rots arots at head.cfa.harvard.edu
Wed Jun 6 09:55:18 EDT 2012


The problem is that you will be running afoul of the WCS-related
keywords which already use additional characters, the most extreme
being the ones for vector columns, like iCTYna.

  - Arnold

Mark Taylor wrote:
> Hi FITS,
> 
> There is an acknowledged limitation of 999 on the maximum number of
> columns in a FITS table.
> 
> The TABLE and BINTABLE extensions define the following per-column fields:
> 
>    TBCOLn  (ASCII table only)
>    TDIMn   (Binary table only)
>    TDISPn
>    TFORMn
>    TNULLn
>    TSCALn
>    TTYPEn
>    TUNITn
>    TZEROn
> 
> to describe per-column metadata for the encoded table.  Along with
> the 8-character limitation on header card keywords, this limits the
> number of columns that can be described to 999; TFORM999 is legal,
> but TFORM1000 is not.  The standard explicitly constrains the value of
> the TFIELDS keyword to <=999 in acknowledgement of this limitation.
> 
> With column counts from the large surveys in the hundreds, a couple of
> table joins can have you hitting this restriction.  I don't know what
> the data from LSST etc will look like, but extrapolating survey 
> column counts over time would suggest that single tables in the 
> thousand-column range may be upon us soon.  A user of TOPCAT
> has recently reported encountering this in science use
> (https://sympa.bris.ac.uk/sympa/arc/topcat-user/2012-06/msg00003.html),
> so already it's not merely a theoretical problem.
> 
> As a pragmatic solution, I suggest the following convention.  Columns
> before the 1000th in any table are described as per the existing
> standard, but for columns 1000-9999, the 5th alphabetic character 
> of the Txxxx keyword (if present - no change reqired for TDIMn)
> is removed to make space for an additional digit.  The existing
> constraint that the TFIELDS value shall be <=999 is also of
> course relaxed to <=9999.  Thus:
> 
>    XTENSION= 'BINTABLE'
>    ...
>    TFIELDS = 2112
>    ...
>    TFORM998= 'D'
>    TTYPE998= 'foo'
>    TFORM999= 'D'
>    TTYPE999= 'foo_err'
>    TFOR1000= 'D'
>    TTYP1000= 'bar'
>    TFOR1001= 'D'
>    TTYP1001= 'bar_err'
>    ...
> 
> Under this rule, any table with fewer than 1000 columns looks exactly
> the same as it does now.  Columns >999 in wide tables will be unreadable
> by software which is not aware of the convention, but such software
> would be incapable of dealing with 1000+-column tables in any case.
> Depending on implementation, non-aware software may be able to make
> sense of the first 999 columns of wide tables.
> 
> I am considering implementing this convention in the FITS I/O handlers
> used by STIL (the java table library used by TOPCAT and STILTS as well
> as some other client- and server-side applications).  If nothing else
> this will enable STIL users to generate syntactically legal FITS files
> (though containing illegal BINTABLE extensions) representing 1000+
> column tables which they can use within STIL (e.g. to save/load tables
> in TOPCAT), even if such files are not legible by other FITS table
> applications, while I/O of tables with <1000 columns will be unaffected.
> 
> However, if others choose to implement the same convention it could
> become a de facto standard for wide tables, and possibly a candidate
> for an update of the BINTABLE convention in a future version of the
> FITS standard.
> 
> Does anybody forsee problems with this suggestion, or want to suggest
> a better alternative?  The only possible backward compatibility issue
> or unintended consequence I can think of is if there are already
> keywords along the lines of TFORxxxx (x=[0-9]) in use in existing
> table headers, but it seems rather unlikely.  The other question is
> whether 9999 is enough.  1e5-column tables are probably a little
> way off, and extending this scheme to 5-digit column indices would
> be problematic since TDIMn and TDISPn would both degenerate to TDInnnnn,
> so I'd suggest punting that issue to future generations.
> 
> Mark
> 
> --
> Mark Taylor   Astronomical Programmer   Physics, Bristol University, UK
> m.b.taylor at bris.ac.uk +44-117-928-8776 http://www.star.bris.ac.uk/~mbt/
> 
> _______________________________________________
> fitsbits mailing list
> fitsbits at listmgr.cv.nrao.edu
> http://listmgr.cv.nrao.edu/mailman/listinfo/fitsbits
> 
--------------------------------------------------------------------------
Arnold H. Rots                                Chandra X-ray Science Center
Smithsonian Astrophysical Observatory                tel:  +1 617 496 7701
60 Garden Street, MS 67                              fax:  +1 617 495 7356
Cambridge, MA 02138                             arots at head.cfa.harvard.edu
USA                                     http://hea-www.harvard.edu/~arots/
--------------------------------------------------------------------------




More information about the fitsbits mailing list