Data File Formats

Oasis can understand a small set of file formats:

 

FITS Images

Oasis can read any FITS image file (or extension to a multi-part FITS file), so long as it contains adequate WCS positional information. It can also cope with multidimensional data, so long as the first two dimensions are sky-coordinate in nature (e.g. no spatial-velocity maps).

A Special window will pop up if the data needs to be further qualified (which part in a multi-part file / which "plane" in data multi-dimensional data block).

 

ASCII Tables

There is as yet no clear standard for XML data tables in astronomy, so Oasis is currently still using a simple ASCII format that has been in use at IPAC for the last fifteen years and for which there exists C and JAVA parsing code. We expect to accomodate XML structures when they become standards.

This ASCII format is basic. Files consist of newline-delimited records with a basic header describing columns. Columns in the table are aligned (be careful of tab characters). Data lines will be handled more efficiently of they are all the same length but they don't have to be.

Oasis provides special processing for table cells that contain external links. If the contents of the cell has the form

  <data http://dummy.edu/test.fits> data </data>

Oasis will itself access the URL and process the return as data (image, plot, overlay, etc. to be displayed. As with any URLs, these links can be to static files or to services.

Here is an example table (no external references):


\Epoch=1954.011

|        ra|       dec|    USNO-A2.0|Bmag|Rmag|
 159.498959  59.426062 1425-07526560 18.3 16.7
 159.491842  59.445492 1425-07526480 17.1 16.5
 159.483984  59.443659 1425-07526385 16.4 15.0
 159.498178  59.456398 1425-07526553 18.1 16.3
 159.576248  59.436006 1425-07527475 19.8 18.8
 159.528203  59.463370 1425-07526910 19.4 18.2
 159.562164  59.419675 1425-07527305 17.3 17.1
 159.532214  59.408706 1425-07526954 18.8 17.8
 159.587728  59.451517 1425-07527594 20.3 19.0
 159.538073  59.474728 1425-07527036 20.2 18.5
 159.483645  59.406314 1425-07526379 18.5 15.8
 159.553470  59.475423 1425-07527198 15.3 13.9
 159.555042  59.400967 1425-07527212 19.9 18.7
 159.523900  59.398275 1425-07526855 19.9 18.6
 159.493417  59.400589 1425-07526496 18.2 16.1
 159.587975  59.407631 1425-07527596 16.9 16.2
 159.598173  59.463698 1425-07527707 19.3 18.1
 159.607250  59.455431 1425-07527801 19.5 18.8
 159.460017  59.466928 1425-07526101 19.7 19.0
 159.464109  59.469981 1425-07526136 19.2 17.2
 159.475481  59.475934 1425-07526284 17.2 16.9
 159.538531  59.484628 1425-07527043 19.6 17.5
 159.607581  59.461262 1425-07527805 19.4 18.7
 159.448945  59.468114 1425-07525965 13.9 12.9
 159.459684  59.477714 1425-07526097 19.9 18.2
 159.469403  59.481700 1425-07526209 18.9 18.4
 159.446150  59.470934 1425-07525940 19.9 19.2
 159.422323  59.444992 1425-07525689 20.1 18.6
 159.628656  59.419314 1425-07528053 19.9 18.3
 159.636089  59.439598 1425-07528117 18.6 17.6
 159.532645  59.493753 1425-07526958 19.3 18.7
 159.477712  59.488898 1425-07526314 20.0 18.5
 159.609734  59.479606 1425-07527831 18.8 18.3
 159.434048  59.476006 1425-07525807 19.5 18.5
 159.408100  59.426587 1425-07525524 20.2 18.6
 159.647567  59.429087 1425-07528240 19.3 19.2

Header lines begining with a '\' are parameters. The line starting with '|' is the table header and defines both the names of the columns and the alignment of the data records. Everything after the table header should be data.

Additional table header lines are allowed (immediately after the primary one above. They must have the same format and alignment and carry additional information about the columns (specifically datatype, units, and the column's 'null' string in that order:

|    double|    double|     char    |  d |  d |
|   degrees|   degrees|             | mag| mag|
|          |          |     null    |    |    |

 

Shape Drawing Tables

If an ASCII data table contains the following keywords before the header, the sources will be drawn as shapes with size and orientation:

  • longitude
  • latitude
  • shape
  • size
  • size1 or width
  • size2 or height
  • position angle
  • ratio
  • symbol color
  • coordinate system
  • equinox or epoch

Except for the last two (which apply to the entire table) each of these points to a column. All angular measures are in decimal degrees except the size paramters, which are in arcsec. The shape column can have the values RECTANGLE, CIRCLE or ELLIPSE (case insensitive). The column ratio is the semi-minor/semi-major axis ratio.

For example:

   \fixlen            =  T
   \longitude         =  ra
   \latitude          =  dec
   \shape             =  apergeom
   \size1             =  width
   \size2             =  height
   \position angle    =  angle
   \coordinate system =  equj
   \epoch             =  2000.

   |       object|       ra|      dec|    width|   height|    angle|  apergeom|
    Mk 266         204.4776   48.2558   24.2900   24.2900   18.4148 RECTANGLE
    Mk 266         204.5726   48.2768   24.2900   24.2900   18.4148 RECTANGLE
    1249+493       192.9689   49.0576  130.6400  130.6400   49.3193 RECTANGLE
    1249+493       193.0103   49.0891  130.6400  130.6400   49.3193 RECTANGLE
    1249+493       192.9274   49.0260  130.6400  130.6400   49.3193 RECTANGLE
    1249+493       192.9274   49.0260  130.6400  130.6400   49.3193 RECTANGLE
    1249+493       192.9689   49.0576  130.6400  130.6400   49.3193 RECTANGLE
    1249+493       192.9689   49.0576  130.6400  130.6400   49.3193 RECTANGLE
    1249+493       193.0103   49.0891  130.6400  130.6400   49.3193 RECTANGLE
    BS 5062        201.3058   54.9881   26.3550    0.0000   42.2085 CIRCLE
    BS 5062        201.3058   54.9881   26.3550    0.0000   42.2085 CIRCLE
    BS 5062        201.3058   54.9881   26.3550    0.0000   42.2085 CIRCLE
    BS 5062        201.3058   54.9881  130.6400  130.6400   42.2147 RECTANGLE
    BS 5062        201.3597   55.0160  130.6400  130.6400   42.2147 RECTANGLE
    BS 5062        201.2521   54.9601  130.6400  130.6400   42.2147 RECTANGLE
    BS 5062        201.2521   54.9601  130.6400  130.6400   42.2147 RECTANGLE
    BS 5062        201.3058   54.9881  130.6400  130.6400   42.2147 RECTANGLE
    BS 5062        201.3058   54.9881  130.6400  130.6400   42.2147 RECTANGLE
    BS 5062        201.3597   55.0160  130.6400  130.6400   42.2147 RECTANGLE
    1331+493       203.3485   49.1036  130.6400  130.6400   40.9414 RECTANGLE
The table can contain any other columns desired (e.g. external data references).

 

Image Metadata Tables

If an ASCII data table contains a keyword string "\datatype = fitshdr" before the header, it will be processed as image metadata and the records rendered on the display as image outlines.

Image metadata tables should have the following columns: NAXIS1, NAXIS2, CTYPE1, CTYPE2, CRVAL1, CRVAL2, CDELT1, CDELT2, CROTA2. Any other fields may be included as desired for informational purposes but the above are used to draw image outlines in Oasis. Since some image projections take a additional parameters, the above is inadequate for all but the simplest (but most common) cases. Therefore, Oasis alternatively looks for table fields ra1, dec1, ... ra4, dec4 which it interprets to be the corners of the image in equatorial J2000 coordinates as uses these instead to draw the image outlines. The image metadata handling is not as yet set up to check for CD matrix values. The four corners should be used in this case.

For example:

\datatype = fitshdr

| cntr |      ra     |     dec     |  ns |  nl | ctype1 | ctype2 |   crpix1 |   crpix2 |    crval1   |    crval2   |   cdelt1  |   cdelt2  |   crota2    |  epoch | fname                             |
| int  |    double   |    double   | int | int |  char  |  char  |   double |   double |    double   |    double   |   double  |   double  |   double    |  double| char                              |
      0   161.6995223    57.4973072   512  1024 RA---SIN DEC--SIN     256.50     512.50   161.6992639    57.4974461 -2.7778e-04  2.7778e-04    -0.0078405  2000.00 ./2mass-atlas-000315n-j0320162.fits
      1   161.6996655    58.0361961   512  1024 RA---SIN DEC--SIN     256.50     512.50   161.6994032    58.0363350 -2.7778e-04  2.7778e-04    -0.0079583  2000.00 ./2mass-atlas-000315n-j0320185.fits
      2   161.6997387    58.3056405   512  1024 RA---SIN DEC--SIN     256.50     512.50   161.6994744    58.3057794 -2.7778e-04  2.7778e-04    -0.0080189  2000.00 ./2mass-atlas-000315n-j0320197.fits
      3   161.6998131    58.5750849   512  1024 RA---SIN DEC--SIN     256.50     512.50   161.6995468    58.5752239 -2.7778e-04  2.7778e-04    -0.0080805  2000.00 ./2mass-atlas-000315n-j0320209.fits
      4   161.9086765    57.4982992   512  1024 RA---SIN DEC--SIN     256.50     512.50   161.9084180    57.4984380 -2.7778e-04  2.7778e-04     0.0133588  2000.00 ./2mass-atlas-000320n-j0960162.fits
      5   161.9085607    57.7677436   512  1024 RA---SIN DEC--SIN     256.50     512.50   161.9083002    57.7678825 -2.7778e-04  2.7778e-04     0.0134583  2000.00 ./2mass-atlas-000320n-j0960173.fits
      6   161.9084431    58.0371880   512  1024 RA---SIN DEC--SIN     256.50     512.50   161.9081807    58.0373269 -2.7778e-04  2.7778e-04     0.0135596  2000.00 ./2mass-atlas-000320n-j0960185.fits
      7   161.9083237    58.3066325   512  1024 RA---SIN DEC--SIN     256.50     512.50   161.9080593    58.3067713 -2.7778e-04  2.7778e-04     0.0136627  2000.00 ./2mass-atlas-000320n-j0960197.fits
      8   161.9082026    58.5760769   512  1024 RA---SIN DEC--SIN     256.50     512.50   161.9079361    58.5762158 -2.7778e-04  2.7778e-04     0.0137677  2000.00 ./2mass-atlas-000320n-j0960209.fits
      9   161.6982982    58.5186645   512  1024 RA---SIN DEC--SIN     256.50     512.50   161.6980322    58.5188033 -2.7778e-04  2.7778e-04     0.0062369  2000.00 ./2mass-atlas-000330n-j0460068.fits
     10   161.6983519    58.2492200   512  1024 RA---SIN DEC--SIN     256.50     512.50   161.6980879    58.2493589 -2.7778e-04  2.7778e-04     0.0061894  2000.00 ./2mass-atlas-000330n-j0460080.fits
     11   161.6984048    57.9797756   512  1024 RA---SIN DEC--SIN     256.50     512.50   161.6981428    57.9799145 -2.7778e-04  2.7778e-04     0.0061428  2000.00 ./2mass-atlas-000330n-j0460091.fits
     12   161.6984569    57.7103311   512  1024 RA---SIN DEC--SIN     256.50     512.50   161.6981969    57.7104700 -2.7778e-04  2.7778e-04     0.0060970  2000.00 ./2mass-atlas-000330n-j0460103.fits
     13   161.6985083    57.4408867   512  1024 RA---SIN DEC--SIN     256.50     512.50   161.6982502    57.4410256 -2.7778e-04  2.7778e-04     0.0060520  2000.00 ./2mass-atlas-000330n-j0460115.fits
     14   160.2601916    58.5184847   512  1024 RA---SIN DEC--SIN     256.50     512.50   160.2599256    58.5186236 -2.7778e-04  2.7778e-04     0.0080158  2000.00 ./2mass-atlas-000427n-j0300068.fits
     15   160.2602613    58.2490403   512  1024 RA---SIN DEC--SIN     256.50     512.50   160.2599973    58.2491791 -2.7778e-04  2.7778e-04     0.0079548  2000.00 ./2mass-atlas-000427n-j0300080.fits

 

Sky Drawings

Oasis supports a simple XML format for describing drawing curves (and later other shapes) on the sky. Basically, this consists of a set of polylines with attributes.

Coordinate locations must be one per line, decimal degrees. Coordinate system and epoch are polyline attributes; see the example below.

<?xml version="1.0" ?>
   <SkyDrawing>

   <polyline name="Level 151.1 (#2)" type="open" color="blue">
      <coords system="equ" epoch="J2000">
         202.4911 46.9745
         202.4913 46.9747
         202.4915 46.9748
         202.4917 46.9751
         202.4917 46.9754
         202.4913 46.9756
         202.4913 46.9756
         202.4909 46.9758
         202.4905 46.9758
         202.4901 46.9758
         202.4897 46.9756
         202.4897 46.9756
         202.4894 46.9754
         202.4894 46.9751
         202.4895 46.9748
         202.4897 46.9746
         202.4898 46.9745
         202.4901 46.9744
         202.4905 46.9744
         202.4909 46.9744
         202.4911 46.9745
      </coords>
   </polyline>

   <polyline name="Level 151.1 (#3)" type="open" color="blue">
      <coords system="equ" epoch="J2000">
         202.5778 46.9853
         202.5781 46.9855
         202.5782 46.9856
         202.5782 46.9859
         202.5781 46.9860
         202.5780 46.9862
         202.5777 46.9864
         202.5774 46.9865
         202.5772 46.9865
         202.5771 46.9865
         202.5768 46.9864
         202.5764 46.9863
         202.5763 46.9862
         202.5761 46.9859
         202.5761 46.9856
         202.5763 46.9853
         202.5764 46.9853
         202.5768 46.9851
         202.5772 46.9851
         202.5777 46.9852
         202.5778 46.9853
      </coords>
   </polyline>

   <polyline name="Level 151.1 (#4)" type="open" color="blue">
      <coords system="equ" epoch="J2000">
         202.5011 47.0029
         202.5011 47.0029
         202.5015 47.0031
         202.5014 47.0034
         202.5011 47.0036
         202.5008 47.0037
         202.5007 47.0037
         202.5006 47.0037
         202.5003 47.0035
         202.5002 47.0034
         202.5001 47.0031
         202.5003 47.0030
         202.5005 47.0029
         202.5007 47.0028
         202.5011 47.0029
      </coords>
   </polyline>

   <polyline name="Level 151.1 (#5)" type="open" color="blue">
      <coords system="equ" epoch="J2000">
         202.5157 47.0062
         202.5158 47.0062
         202.5162 47.0063
         202.5164 47.0065
         202.5164 47.0067
         202.5163 47.0070
         202.5162 47.0071
         202.5158 47.0073
         202.5153 47.0073
         202.5149 47.0071
         202.5148 47.0070
         202.5146 47.0067
         202.5147 47.0065
         202.5149 47.0063
         202.5152 47.0062
         202.5153 47.0061
         202.5157 47.0062
      </coords>
   </polyline>

   </SkyDrawing>

 

XY Plots

We have taken a first cut at an XY plot XML to support some specific IRSA services. This is likely to change markedly in the near future but is documented here for completeness.

This format includes a table reference to what we believe is a functional subset of the XDF format defined by the ADC at GSFC. Wrapped around this is the actual set of plot directives, which should be self-explanatory:


<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<PlotSet>

   <XYPlot name="2003+57">
      <axes>
         <title> 2003+57 </title>

         <xaxis>
            <scaling> linear      </scaling>
            <min>       2437599.700      </min>
            <max>       2451604.623      </max>
            <label>   Julian Date </label>
         </xaxis>

         <yaxis>
            <scaling> linear      </scaling>
            <min>             9.000      </min>
            <max>            16.600      </max>
            <label>   Magnitude   </label>
         </yaxis>
      </axes>

      <pointset name="lightcurve">
         <source>
            <type>    XDF   </type>
            <table>   light </table>
            <xcolumn> jd    </xcolumn>
            <ycolumn> mag   </ycolumn>
         </source>

         <points>
            <color>  red    </color>
            <symbol> circle </symbol>
            <size>   1%    </size>
         </points>

         <lines>
            <color>  black  </color>
            <style>  solid  </style>
         </lines>
      </pointset>
   </XYPlot>


   <XDF name="light">

      <array name="data table">

         <axis axisId="columns" axisDatatype="integer">
            <axisUnits><unitless/></axisUnits>
            <valueList size="5"/>
         </axis>

         <fieldAxis axisId="rows">

            <field name="jd" >
               <units><unit>day</unit></units>
               <dataFormat>
                  <fixed width="12" precision="4"/>
               </dataFormat>
            </field>

            <field name="mag" >
               <units><unitless/></units>
               <dataFormat>
                  <fixed width="8" precision="3"/>
               </dataFormat>
            </field>

            <field name="ul" >
               <units><unitless/></units>
               <dataFormat>
                  <string length="2"/>
               </dataFormat>
            </field>

            <field name="unc" >
               <units><unitless/></units>
               <dataFormat>
                  <string length="3"/>
               </dataFormat>
            </field>

            <field name="obs" >
               <units><unitless/></units>
               <dataFormat>
                  <string length="3"/>
               </dataFormat>
            </field>

         </fieldAxis>

<data><![CDATA[
2437599.7000 13.2000      CR
2437607.6000 13.4000      AD
2437612.7000 13.3000      CR
2437614.6000 13.1000      SJ
            .
            .
            .
2451579.2000  9.9000     KOS
2451585.6313 10.8000     HUZ
2451600.3000 11.9000     GUN
2451604.6229 10.9000     HUZ
]]></data>

      </array>

   </XDF>
</PlotSet>