IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 24, 2010, 11:22:25 AM (16 years ago)
Author:
eugene
Message:

large update merging in changes for Ohana to support large files

Location:
trunk/Ohana
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana

  • trunk/Ohana/src/libfits/include/gfitsio.h

    r21059 r27435  
    4444
    4545typedef struct {
    46   int                     simple;
    47   int                     unsign;
    48   int                     extend;
    49   int                     bitpix;
    50   int                     Naxes;
    51   int                     Naxis[FT_MAX_NAXES];
    52   int                     size;
     46  int                     simple; // T or F
     47  int                     unsign; // T or F
     48  int                     extend; // T or F
     49  int                     bitpix; // 8, 16, 32, 64, or -32, -64
     50  int                     Naxes;  // < FT_MAX_NAXES (10)
     51  off_t                   Naxis[FT_MAX_NAXES];
     52  off_t                   datasize;
    5353  int                     pcount;
    5454  int                     gcount;
     
    6565  int                     bitpix;
    6666  int                     Naxes;
    67   int                     Naxis[FT_MAX_NAXES];
    68   int                     size;
     67  off_t                   Naxis[FT_MAX_NAXES];
     68  off_t                   datasize;
    6969  double                  bzero;
    7070  double                  bscale;
     
    7676  Header                 *header;
    7777  char                   *buffer;
    78   int                     size;
     78  off_t                   datasize;
    7979} FTable;
    8080
     
    8383  Header                 *header;
    8484  char                  **buffer;
    85   int                     Nrow;
    86   int                    *row;
    87   int                     size;  /* total buffer size */
    88   int                     pad;   /* bytes of padding at the end */
     85  off_t                   Nrow;
     86  off_t                  *row;
     87  off_t                   datasize;  /* total buffer size */
     88  off_t                   pad;   /* bytes of padding at the end */
    8989} VTable;
    9090
    9191typedef struct {
    92   int  maxlen;                // max size of all table rows
    93   int  nbytes;                // number of bytes per column element
    94   int  Nstart;                // byte offset of this column
    95   int  heap_start;            // byte offset to start of HEAP
    96   char format;                // data format character (one of: XLABIJEDCM)
     92  int   maxlen;               // max size of all table rows
     93  int   nbytes;               // number of bytes per column element
     94  int   Nstart;               // byte offset of this column relative to first column
     95  off_t heap_start;           // byte offset to start of HEAP
     96  char  format;               // data format character (one of: XLABIJEDCM)
     97  char  mode;                 // access data pointer type (one of P or Q)
    9798} VarLengthColumn;
    9899
     
    106107
    107108char   *gfits_header_field             PROTO((Header *header, char *field, int N));
    108 char   *gfits_header_lineno            PROTO((Header *header, int N));
     109char   *gfits_header_lineno            PROTO((Header *header, off_t N));
    109110char   *gfits_keyword_end              PROTO((char *line));
    110111int     gfits_copy_header              PROTO((Header *in, Header *out));
     
    118119int     gfits_init_header              PROTO((Header *header));
    119120int     gfits_load_header              PROTO((FILE *f, Header *header));
    120 int     gfits_modify                   PROTO((Header *header, char *field, char *mode, int N,...));
    121 int     gfits_print                    PROTO((Header *header, char *field, char *mode, int N,...));
     121int     gfits_modify                   PROTO((Header *header, char *field, char *mode, int N,...)) OHANA_FORMAT(printf, 3, 5);
     122int     gfits_print                    PROTO((Header *header, char *field, char *mode, int N,...)) OHANA_FORMAT(printf, 3, 5);
     123int     gfits_modify_alt               PROTO((Header *header, char *field, char *mode, int N,...));
     124int     gfits_print_alt                PROTO((Header *header, char *field, char *mode, int N,...));
    122125int     gfits_read_Xheader             PROTO((char *filename, Header *header, int N));
    123126int     gfits_read_header              PROTO((char *filename, Header *header));
    124127int     gfits_save_header              PROTO((FILE *f, Header *header));
    125 int     gfits_scan                     PROTO((Header *header, char *field, char *mode, int N,...));
     128int     gfits_scan                     PROTO((Header *header, char *field, char *mode, int N,...)) OHANA_FORMAT(scanf, 3, 5);
     129int     gfits_scan_alt                 PROTO((Header *header, char *field, char *mode, int N,...));
    126130int     gfits_set_unsign_mode          PROTO((int mode));
    127131int     gfits_stripwhite               PROTO((char *string));
    128132int     gfits_vscan                    PROTO((Header *header, char *field, char *mode, int N, va_list argp));
     133int     gfits_vscan_alt                PROTO((Header *header, char *field, char *mode, int N, va_list argp));
    129134int     gfits_write_header             PROTO((char *filename, Header *header));
    130 int     gfits_data_size                PROTO((Header *header));
    131 int     gfits_data_min_size            PROTO((Header *header));
     135off_t   gfits_data_size                PROTO((Header *header));
     136off_t   gfits_data_min_size            PROTO((Header *header));
    132137int     gfits_extended_to_primary      PROTO((Header *header, int simple, char *comment));
    133138int     gfits_primary_to_extended      PROTO((Header *header, char *exttype, char *comment));
     
    143148/******************************* Matrix functions *************/
    144149
    145 void    gfits_add_matrix_value         PROTO((Matrix *matrix, int x, int y, double value));
     150void    gfits_add_matrix_value         PROTO((Matrix *matrix, off_t x, off_t y, double value));
    146151int     gfits_convert_format           PROTO((Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int inBlank, int outUnsign));
    147152int     gfits_copy_matrix              PROTO((Matrix *in, Matrix *out));
     
    152157void    gfits_free_matrix              PROTO((Matrix *matrix));
    153158int     gfits_fwrite_matrix            PROTO((FILE *f, Matrix *matrix));     
    154 double  gfits_get_matrix_value         PROTO((Matrix *matrix, int x, int y));
    155 void    gfits_insert_array             PROTO((Matrix *matrix, Matrix *array, int x, int y));
     159double  gfits_get_matrix_value         PROTO((Matrix *matrix, off_t x, off_t y));
     160void    gfits_insert_matrix            PROTO((Matrix *matrix, Matrix *array, off_t x, off_t y));
    156161int     gfits_load_matrix              PROTO((FILE *f, Matrix *matrix, Header *header));
    157162int     gfits_multiply_matrix          PROTO((Matrix *M1, Matrix *M2, Matrix *M3));
    158163int     gfits_read_matrix              PROTO((char *filename, Matrix *matrix));     
    159164int     gfits_read_matrix_segment      PROTO((char *filename, Matrix *matrix, char *region));
    160 int     gfits_read_portion             PROTO((char *filename, Matrix *matrix, int Nskip, int Npix));
    161 void    gfits_set_matrix_value         PROTO((Matrix *matrix, int x, int y, double value));
     165int     gfits_read_portion             PROTO((char *filename, Matrix *matrix, off_t Nskip, off_t Npix));
     166void    gfits_set_matrix_value         PROTO((Matrix *matrix, off_t x, off_t y, double value));
    162167int     gfits_write_matrix             PROTO((char *filename, Matrix *matrix));
    163168int     gfits_uncompress_image         PROTO((Header *header, Matrix *matrix, FTable *ftable));
     
    166171int     gfits_byteswap_zdata           PROTO((char *zdata, int Nzdata, int bitpix));
    167172int     gfits_extension_is_compressed  PROTO((Header *header));
    168 int     gfits_tile_size                PROTO((Matrix *matrix, int *otile, int *ztile));
     173off_t   gfits_tile_size                PROTO((Matrix *matrix, int *otile, int *ztile));
    169174int     gfits_uncompressed_data_pixsize PROTO((char *cmptype, int out_bitpix, char **optname, char **optvalue, int Noptions));
    170175int     gfits_vartable_heap_pixsize    PROTO((char format));
     
    173178
    174179char   *gfits_table_print              PROTO((FTable *ftable,...));
    175 int     gfits_add_rows                 PROTO((FTable *ftable, char *data, int Nrow, int Nbytes));
     180int     gfits_add_rows                 PROTO((FTable *ftable, char *data, off_t Nrow, off_t Nbytes));
    176181int     gfits_bintable_format          PROTO((char *format, char *type, int *Nval, int *Nbytes));
    177182int     gfits_create_table             PROTO((Header *header, FTable *ftable));
     
    181186int     gfits_fread_ftable             PROTO((FILE *f, FTable *ftable, char *extname));
    182187int     gfits_fread_ftable_data        PROTO((FILE *f, FTable *ftable));
    183 int     gfits_fread_ftable_range       PROTO((FILE *f, FTable *ftable, int start, int Nrows));
    184 int     gfits_fread_vtable             PROTO((FILE *f, VTable *vtable, char *extname, int Nrow, int *row));
    185 int     gfits_fread_vtable_range       PROTO((FILE *f, VTable *vtable, int start, int Nrows));
     188int     gfits_fread_ftable_range       PROTO((FILE *f, FTable *ftable, off_t start, off_t Nrows));
     189int     gfits_fread_vtable             PROTO((FILE *f, VTable *vtable, char *extname, off_t Nrow, off_t *row));
     190int     gfits_fread_vtable_range       PROTO((FILE *f, VTable *vtable, off_t start, off_t Nrows));
    186191int     gfits_free_table               PROTO((FTable *ftable));
    187192int     gfits_free_vtable              PROTO((VTable *vtable));
    188193int     gfits_fwrite_table             PROTO((FILE *f, FTable *table));
    189194int     gfits_fwrite_vtable            PROTO((FILE *f, VTable *table));
    190 int     gfits_fwrite_ftable_range      PROTO((FILE *f, FTable *table, int start, int Nrows, int Ndisk, int Ntotal));
     195int     gfits_fwrite_ftable_range      PROTO((FILE *f, FTable *table, off_t start, off_t Nrows, off_t Ndisk, off_t Ntotal));
    191196int     gfits_get_bintable_column      PROTO((Header *header, FTable *table, char *label, void **data));
    192197int     gfits_get_bintable_column_type PROTO((Header *header, char *label, char *type, int *Nval));
    193 void   *gfits_get_bintable_column_data PROTO((Header *header, FTable *table, char *label, char *type, int *Nrow, int *Ncol));
     198void   *gfits_get_bintable_column_data PROTO((Header *header, FTable *table, char *label, char *type, off_t *Nrow, int *Ncol));
    194199int     gfits_get_table_column         PROTO((Header *header, FTable *table, char *label, void **data));
    195200int     gfits_get_table_column_type    PROTO((Header *header, char *label, char *type));
    196201int     gfits_read_ftable              PROTO((char *filename, FTable *table, char *extname));
    197202int     gfits_read_table               PROTO((char *filename, FTable *ftable));
    198 int     gfits_set_bintable_column      PROTO((Header *header, FTable *table, char *label, void *data, int Nrow));
    199 int     gfits_set_table_column         PROTO((Header *header, FTable *table, char *label, void *data, int Nrow));
    200 int     gfits_table_column             PROTO((FTable *ftable, char *field, char *mode,...));
     203int     gfits_set_bintable_column      PROTO((Header *header, FTable *table, char *label, void *data, off_t Nrow));
     204int     gfits_set_table_column         PROTO((Header *header, FTable *table, char *label, void *data, off_t Nrow));
     205int     gfits_table_column             PROTO((FTable *ftable, char *field, char *mode,...)) OHANA_FORMAT(printf, 3, 4);
    201206int     gfits_table_format             PROTO((char *format, char *type, int *Nval, int *Nbytes));
    202207int     gfits_table_scale_data         PROTO((FTable *ftable));
    203208int     gfits_table_scale_storage      PROTO((FTable *ftable));
    204 int     gfits_table_to_vtable          PROTO((FTable *ftable, VTable *vtable, int start, int Nkeep));
    205 int     gfits_vadd_rows                PROTO((VTable *vtable, char *data, int Nrow, int Nbytes));
    206 int     gfits_vtable_from_ftable       PROTO((FTable *ftable, VTable *vtable, int *row, int Nrow));
     209int     gfits_table_to_vtable          PROTO((FTable *ftable, VTable *vtable, off_t start, off_t Nkeep));
     210int     gfits_vadd_rows                PROTO((VTable *vtable, char *data, off_t Nrow, off_t Nbytes));
     211int     gfits_vtable_from_ftable       PROTO((FTable *ftable, VTable *vtable, off_t *row, off_t Nrow));
    207212int     gfits_write_table              PROTO((char *filename, FTable *ftable));
    208213
     
    215220
    216221int     gfits_varlength_column_define  PROTO((FTable *ftable, VarLengthColumn *def, int column));
    217 void   *gfits_varlength_column_pointer PROTO((FTable *ftable, VarLengthColumn *column, int row, int *length));
     222void   *gfits_varlength_column_pointer PROTO((FTable *ftable, VarLengthColumn *column, off_t row, off_t *length));
    218223
    219224#endif /* FITSIO */
Note: See TracChangeset for help on using the changeset viewer.