IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 20652


Ignore:
Timestamp:
Nov 10, 2008, 2:17:14 PM (17 years ago)
Author:
eugene
Message:

ippScripts/scripts/camera_exp.pl

Location:
trunk
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/addstar/doc/notes.txt

    r16810 r20652  
     1
     22008.10.11
     3
     4  updating addstar / dvo to deal better with mosaic / image relationships
     5
     6  * fix imageID sequencing (DONE)
     7  * define imageID -> image lookup
     8  * add parentID (for mosaic relationship)
     9  * add external ID
     10  * add supplied filename (different from 'filename')
     11
     12  there are two issues involved in mosaic astrometry:  1) we need to
     13  have links in the Image table between the chip-level images and
     14  their associated mosaic images.  this is provided by the parentID
     15  field.  2) the coord transformation functions use a local static
     16  variable to supply the associated mosaic coords structure.  this is
     17  a weak implementation, but the method for now.
     18
     19 
    120
    2212008.02.23
  • trunk/Ohana/src/gophot/src/gophot.c

    r12902 r20652  
    2525  }
    2626  /* convert to float, set up noise array and axes */
    27   gfits_convert_format (&header, &matrix, -32, 1.0, 0.0, 0);
     27  gfits_convert_format (&header, &matrix, -32, 1.0, 0.0, 0xffff, 0);
    2828  ALLOCATE (noise, float, matrix.size);
    2929  big = (float *) matrix.buffer;
  • trunk/Ohana/src/libfits/include/gfitsio.h

    r18270 r20652  
    138138
    139139void    gfits_add_matrix_value         PROTO((Matrix *matrix, int x, int y, double value));
    140 int     gfits_convert_format           PROTO((Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int outUnsign));
     140int     gfits_convert_format           PROTO((Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int inBlank, int outUnsign));
    141141int     gfits_copy_matrix              PROTO((Matrix *in, Matrix *out));
    142142int     gfits_create_matrix            PROTO((Header *header, Matrix *matrix));
     
    157157int     gfits_uncompress_image         PROTO((Header *header, Matrix *matrix, FTable *ftable));
    158158int     gfits_uncompress_data          PROTO((char *zdata, int Nzdata, char *cmptype, char **optname, char **optvalue, int Nopt, char *outdata, int *Nout, int out_pixsize));
    159 int     gfits_distribute_data          PROTO((Matrix *matrix, int bitpix, char *data, int Ndata, int *otile, int *ztile, float zscale, float zzero));
     159int     gfits_distribute_data          PROTO((Matrix *matrix, int bitpix, char *data, int Ndata, int *otile, int oblank, int *ztile, int zblank, float zscale, float zzero));
    160160int     gfits_byteswap_zdata           PROTO((char *zdata, int Nzdata, int bitpix));
    161161int     gfits_extension_is_compressed  PROTO((Header *header));
  • trunk/Ohana/src/libfits/matrix/F_compress_M.c

    r18403 r20652  
    3434  char cmptype[80];
    3535  char zaxis[10], naxis[10], key[10], word[81], exttype[81], checksum[81], datasum[81];
    36   int Noptions, NOPTIONS;
     36  int Noptions, NOPTIONS, zblank, oblank;
    3737  VarLengthColumn zdef;
    3838  float zscale, zzero;
     
    177177  gfits_scan (header, "ZSCALE", "%lf", 1, &zscale);
    178178
     179  zblank = 32767;
     180  gfits_scan (header, "ZBLANK", "%d", 1, &zblank);
     181
     182  oblank = 32767;
     183  gfits_scan (header, "BLANK", "%d", 1, &oblank);
     184
    179185  zzero = 0;
    180186  gfits_scan (header, "ZZERO", "%lf", 1, &zzero);
     
    248254
    249255    // copy the uncompressed pixels into their correct locations           
    250     if (!gfits_distribute_data (matrix, odata_pixsize, out, Nout, otile, ztile, zscale, zzero)) return (FALSE);
     256    if (!gfits_distribute_data (matrix, odata_pixsize, out, Nout, otile, oblank, ztile, zblank, zscale, zzero)) return (FALSE);
    251257
    252258    // update the tile counters, carrying to the next dimension if needed
     
    289295
    290296// bitpix is the input data size/type
    291 int gfits_distribute_data (Matrix *matrix, int bitpix, char *data, int Ndata, int *otile, int *ztile, float zscale, float zzero) {
     297int gfits_distribute_data (Matrix *matrix, int bitpix, char *data, int Ndata, int *otile, int oblank, int *ztile, int zblank, float zscale, float zzero) {
    292298
    293299  int i, j, start, offset, coord, Nline;
     
    331337    TYPE *Optr = (TYPE *) &matrix->buffer[SIZE*(offset + start)]; \
    332338    for (j = 0; j < Ztile[0]; j++, Iptr++, Optr++) { \
    333       *Optr = *Iptr * zscale + zzero; \
    334     } }
     339      if (*Iptr == zblank) { \
     340          *Optr = oblank;    \
     341      } else { \
     342          *Optr = *Iptr * zscale + zzero;       \
     343      } } }
    335344
    336345  // this macro sets up the outer switch and calls above macro with all output bitpix options
  • trunk/Ohana/src/libfits/matrix/F_convert_format.c

    r15998 r20652  
    22# include <gfitsio.h>
    33
    4 # define CONVERTDOWN \
    5   inMode  *in; \
    6   outMode *out; \
    7   out = (outMode *) matrix[0].buffer; \
    8   in  = (inMode  *) matrix[0].buffer; \
    9   for (i = 0; i < Npixels; i++, out++, in++) \
    10     *out = *in*A + B; \
     4# ifndef NAN
     5# ifndef BYTE_SWAP
     6#  define __nan_bytes           { 0x7f, 0xc0, 0, 0 }
     7# else
     8#  define __nan_bytes           { 0, 0, 0xc0, 0x7f }
     9# endif
     10static union { unsigned char __c[4]; float __d; } __nan_union
     11__attribute_used__ = { __nan_bytes };
     12# define NAN    (__nan_union.__d)
     13# endif
     14
     15# define CONVERTDOWN(MY_NAN)                            \
     16  inMode  *in;                                          \
     17  outMode *out;                                         \
     18  out = (outMode *) matrix[0].buffer;                   \
     19  in  = (inMode  *) matrix[0].buffer;                   \
     20  for (i = 0; i < Npixels; i++, out++, in++)            \
     21    if (*in == inBlank) {                               \
     22      *out = (MY_NAN);                                  \
     23    } else {                                            \
     24      *out = *in*A + B;                                 \
     25    }                                                   \
    1126  REALLOCATE (matrix[0].buffer, char, matrix[0].size);
    1227
    13 # define CONVERTSAME \
    14   inMode  *in; \
    15   outMode *out; \
    16   out = (outMode *) matrix[0].buffer; \
    17   in  = (inMode  *) matrix[0].buffer; \
    18   for (i = 0; i < Npixels; i++, out++, in++) \
    19     *out = *in*A + B;
    20 
    21 # define CONVERTUP \
    22   inMode  *in; \
    23   outMode *out; \
    24   REALLOCATE (matrix[0].buffer, char, matrix[0].size); \
    25   out = (outMode *)matrix[0].buffer + Npixels - 1; \
    26   in  = (inMode  *)matrix[0].buffer + Npixels - 1; \
    27   for (i = 0; i < Npixels; i++, out--, in--) \
    28     *out = *in*A + B;
     28# define CONVERTSAME(MY_NAN)                    \
     29  inMode  *in;                                  \
     30  outMode *out;                                 \
     31  out = (outMode *) matrix[0].buffer;           \
     32  in  = (inMode  *) matrix[0].buffer;           \
     33  for (i = 0; i < Npixels; i++, out++, in++)    \
     34    if (*in == inBlank) {                       \
     35      *out = (MY_NAN);                          \
     36    } else {                                    \
     37      *out = *in*A + B;                         \
     38    }
     39
     40# define CONVERTUP(MY_NAN)                              \
     41  inMode  *in;                                          \
     42  outMode *out;                                         \
     43  REALLOCATE (matrix[0].buffer, char, matrix[0].size);  \
     44  out = (outMode *)matrix[0].buffer + Npixels - 1;      \
     45  in  = (inMode  *)matrix[0].buffer + Npixels - 1;      \
     46  for (i = 0; i < Npixels; i++, out--, in--)            \
     47    if (*in == inBlank) {                               \
     48      *out = (MY_NAN);                                  \
     49    } else {                                            \
     50      *out = *in*A + B;                                 \
     51    }
     52
     53# define CONVERTDOWN_FF(MY_NAN)                         \
     54  inMode  *in;                                          \
     55  outMode *out;                                         \
     56  out = (outMode *) matrix[0].buffer;                   \
     57  in  = (inMode  *) matrix[0].buffer;                   \
     58  for (i = 0; i < Npixels; i++, out++, in++)            \
     59    if (isnan(*in) || isinf(*in)) {                     \
     60      *out = (MY_NAN);                                  \
     61    } else {                                            \
     62      *out = *in*A + B;                                 \
     63    }                                                   \
     64  REALLOCATE (matrix[0].buffer, char, matrix[0].size);
     65
     66# define CONVERTSAME_FF(MY_NAN)                 \
     67  inMode  *in;                                  \
     68  outMode *out;                                 \
     69  out = (outMode *) matrix[0].buffer;           \
     70  in  = (inMode  *) matrix[0].buffer;           \
     71  for (i = 0; i < Npixels; i++, out++, in++)    \
     72    if (isnan(*in) || isinf(*in)) {                     \
     73      *out = (MY_NAN);                          \
     74    } else {                                    \
     75      *out = *in*A + B;                         \
     76    }
     77
     78# define CONVERTUP_FF(MY_NAN)                           \
     79  inMode  *in;                                          \
     80  outMode *out;                                         \
     81  REALLOCATE (matrix[0].buffer, char, matrix[0].size);  \
     82  out = (outMode *)matrix[0].buffer + Npixels - 1;      \
     83  in  = (inMode  *)matrix[0].buffer + Npixels - 1;      \
     84  for (i = 0; i < Npixels; i++, out--, in--)            \
     85    if (isnan(*in) || isinf(*in)) {                     \
     86      *out = (MY_NAN);                                  \
     87    } else {                                            \
     88      *out = *in*A + B;                                 \
     89    }
    2990
    3091/*********************** fits convert format ***********************************/
    31 int gfits_convert_format (Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int outUnsign) {
     92int gfits_convert_format (Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int inBlank, int outUnsign) {
    3293
    3394  unsigned long i, nbytes, Npixels;
     
    63124  if ((!outUnsign) && (!inUnsign)) {  /** BLOCK 1 **/
    64125    switch (inBitpix) {
    65     case 8:
    66       { typedef unsigned char inMode;
     126      case 8:
     127        { typedef unsigned char inMode;
    67128        switch (outBitpix) {
    68         case 8:   { typedef unsigned char  outMode; CONVERTSAME; break; }
    69         case 16:  { typedef short          outMode; CONVERTUP;   break; }
    70         case -16: { typedef unsigned short outMode; CONVERTUP;   break; }
    71         case 32:  { typedef int            outMode; CONVERTUP;   break; }
    72         case -32: { typedef float          outMode; CONVERTUP;   break; }
    73         case -64: { typedef double         outMode; CONVERTUP;   break; }
    74         }
    75       }
    76       break; 
    77     case 16:
    78       { typedef short inMode;
    79         switch (outBitpix) {
    80         case 8:   { typedef unsigned char  outMode; CONVERTDOWN; break; }
    81         case 16:  { typedef short          outMode; CONVERTSAME; break; }
    82         case -16: { typedef unsigned short outMode; CONVERTSAME; break; }
    83         case 32:  { typedef int            outMode; CONVERTUP;   break; }
    84         case -32: { typedef float          outMode; CONVERTUP;   break; }
    85         case -64: { typedef double         outMode; CONVERTUP;   break; }
    86         }
    87       }
    88       break; 
    89     case -16:
    90       { typedef unsigned short inMode;
    91         switch (outBitpix) {
    92         case 8:   { typedef unsigned char  outMode; CONVERTDOWN; break; }
    93         case 16:  { typedef short          outMode; CONVERTSAME; break; }
    94         case -16: { typedef unsigned short outMode; CONVERTSAME; break; }
    95         case 32:  { typedef int            outMode; CONVERTUP;   break; }
    96         case -32: { typedef float          outMode; CONVERTUP;   break; }
    97         case -64: { typedef double         outMode; CONVERTUP;   break; }
    98         }
    99       }
    100       break; 
    101     case 32:
    102       { typedef int inMode;
    103         switch (outBitpix) {
    104         case 8:   { typedef unsigned char  outMode; CONVERTDOWN; break; }
    105         case 16:  { typedef short          outMode; CONVERTDOWN; break; }
    106         case -16: { typedef unsigned short outMode; CONVERTDOWN; break; }
    107         case 32:  { typedef int            outMode; CONVERTSAME; break; }
    108         case -32: { typedef float          outMode; CONVERTSAME; break; }
    109         case -64: { typedef double         outMode; CONVERTUP;   break; }
    110         }
    111       }
    112       break;
    113     case -32:
    114       { typedef float inMode;
    115         switch (outBitpix) {
    116         case 8:   { typedef unsigned char  outMode; CONVERTDOWN; break; }
    117         case 16:  { typedef short          outMode; CONVERTDOWN; break; }
    118         case -16: { typedef unsigned short outMode; CONVERTDOWN; break; }
    119         case 32:  { typedef int            outMode; CONVERTSAME; break; }
    120         case -32: { typedef float          outMode; CONVERTSAME; break; }
    121         case -64: { typedef double         outMode; CONVERTUP;   break; }
    122         }
    123       }
    124       break;
    125     case -64:
    126       { typedef double inMode;
    127         switch (outBitpix) {
    128         case 8:   { typedef unsigned char  outMode; CONVERTDOWN; break; }
    129         case 16:  { typedef short          outMode; CONVERTDOWN; break; }
    130         case -16: { typedef unsigned short outMode; CONVERTDOWN; break; }
    131         case 32:  { typedef int            outMode; CONVERTDOWN; break; }
    132         case -32: { typedef float          outMode; CONVERTDOWN; break; }
    133         case -64: { typedef double         outMode; CONVERTSAME; break; }
    134         }
    135       }
     129          case 8:   { typedef unsigned char  outMode; CONVERTSAME(0); break; }
     130          case 16:  { typedef short          outMode; CONVERTUP(0);   break; }
     131          case -16: { typedef unsigned short outMode; CONVERTUP(0);   break; }
     132          case 32:  { typedef int            outMode; CONVERTUP(0);   break; }
     133          case -32: { typedef float          outMode; CONVERTUP(NAN);   break; }
     134          case -64: { typedef double         outMode; CONVERTUP(NAN);   break; }
     135        }
     136        }
     137        break; 
     138      case 16:
     139        { typedef short inMode;
     140          switch (outBitpix) {
     141            case 8:   { typedef unsigned char  outMode; CONVERTDOWN(0); break; }
     142            case 16:  { typedef short          outMode; CONVERTSAME(0); break; }
     143            case -16: { typedef unsigned short outMode; CONVERTSAME(0); break; }
     144            case 32:  { typedef int            outMode; CONVERTUP(0);   break; }
     145            case -32: { typedef float          outMode; CONVERTUP(NAN);   break; }
     146            case -64: { typedef double         outMode; CONVERTUP(NAN);   break; }
     147          }
     148        }
     149        break; 
     150      case -16:
     151        { typedef unsigned short inMode;
     152          switch (outBitpix) {
     153            case 8:   { typedef unsigned char  outMode; CONVERTDOWN(0); break; }
     154            case 16:  { typedef short          outMode; CONVERTSAME(0); break; }
     155            case -16: { typedef unsigned short outMode; CONVERTSAME(0); break; }
     156            case 32:  { typedef int            outMode; CONVERTUP(0);   break; }
     157            case -32: { typedef float          outMode; CONVERTUP(NAN);   break; }
     158            case -64: { typedef double         outMode; CONVERTUP(NAN);   break; }
     159          }
     160        }
     161        break; 
     162      case 32:
     163        { typedef int inMode;
     164          switch (outBitpix) {
     165            case 8:   { typedef unsigned char  outMode; CONVERTDOWN(0); break; }
     166            case 16:  { typedef short          outMode; CONVERTDOWN(0); break; }
     167            case -16: { typedef unsigned short outMode; CONVERTDOWN(0); break; }
     168            case 32:  { typedef int            outMode; CONVERTSAME(0); break; }
     169            case -32: { typedef float          outMode; CONVERTSAME(NAN); break; }
     170            case -64: { typedef double         outMode; CONVERTUP(NAN);   break; }
     171          }
     172        }
     173        break;
     174      case -32:
     175        { typedef float inMode;
     176          switch (outBitpix) {
     177            case 8:   { typedef unsigned char  outMode; CONVERTDOWN_FF(0); break; }
     178            case 16:  { typedef short          outMode; CONVERTDOWN_FF(0); break; }
     179            case -16: { typedef unsigned short outMode; CONVERTDOWN_FF(0); break; }
     180            case 32:  { typedef int            outMode; CONVERTSAME_FF(0); break; }
     181            case -32: { typedef float          outMode; CONVERTSAME_FF(NAN); break; }
     182            case -64: { typedef double         outMode; CONVERTUP_FF(NAN);   break; }
     183          }
     184        }
     185        break;
     186      case -64:
     187        { typedef double inMode;
     188          switch (outBitpix) {
     189            case 8:   { typedef unsigned char  outMode; CONVERTDOWN_FF(0); break; }
     190            case 16:  { typedef short          outMode; CONVERTDOWN_FF(0); break; }
     191            case -16: { typedef unsigned short outMode; CONVERTDOWN_FF(0); break; }
     192            case 32:  { typedef int            outMode; CONVERTDOWN_FF(0); break; }
     193            case -32: { typedef float          outMode; CONVERTDOWN_FF(NAN); break; }
     194            case -64: { typedef double         outMode; CONVERTSAME_FF(NAN); break; }
     195          }
     196        }
    136197    }
    137198  }
    138199  if ((outUnsign) && (!inUnsign)) {  /** BLOCK 3 **/
    139200    switch (inBitpix) {
    140     case 8:
    141       { typedef unsigned char inMode;
     201      case 8:
     202        { typedef unsigned char inMode;
    142203        switch (outBitpix) {
    143         case 8:   { typedef          char   outMode; CONVERTSAME; break; }
    144         case 16:  { typedef unsigned short  outMode; CONVERTUP;   break; }
    145         case -16: { typedef unsigned short  outMode; CONVERTUP;   break; }
    146         case 32:  { typedef unsigned int    outMode; CONVERTUP;   break; }
    147         case -32: { typedef          float  outMode; CONVERTUP;   break; }
    148         case -64: { typedef          double outMode; CONVERTUP;   break; }
    149         }
    150       }
    151       break; 
    152     case 16:
    153       { typedef short inMode;
    154         switch (outBitpix) {
    155         case 8:   { typedef          char   outMode; CONVERTDOWN; break; }
    156         case 16:  { typedef unsigned short  outMode; CONVERTSAME; break; }
    157         case -16: { typedef unsigned short  outMode; CONVERTSAME; break; }
    158         case 32:  { typedef unsigned int    outMode; CONVERTUP;   break; }
    159         case -32: { typedef          float  outMode; CONVERTUP;   break; }
    160         case -64: { typedef          double outMode; CONVERTUP;   break; }
    161         }
    162       }
    163       break; 
    164     case -16:
    165       { typedef unsigned short inMode;
    166         switch (outBitpix) {
    167         case 8:   { typedef          char   outMode; CONVERTDOWN; break; }
    168         case 16:  { typedef unsigned short  outMode; CONVERTSAME; break; }
    169         case -16: { typedef unsigned short  outMode; CONVERTSAME; break; }
    170         case 32:  { typedef unsigned int    outMode; CONVERTUP;   break; }
    171         case -32: { typedef          float  outMode; CONVERTUP;   break; }
    172         case -64: { typedef          double outMode; CONVERTUP;   break; }
    173         }
    174       }
    175       break; 
    176     case 32:
    177       { typedef int inMode;
    178         switch (outBitpix) {
    179         case 8:   { typedef          char   outMode; CONVERTDOWN; break; }
    180         case 16:  { typedef unsigned short  outMode; CONVERTDOWN; break; }
    181         case -16: { typedef unsigned short  outMode; CONVERTDOWN; break; }
    182         case 32:  { typedef unsigned int    outMode; CONVERTSAME; break; }
    183         case -32: { typedef          float  outMode; CONVERTSAME; break; }
    184         case -64: { typedef          double outMode; CONVERTUP;   break; }
    185         }
    186       }
    187       break;
    188     case -32:
    189       { typedef float inMode;
    190         switch (outBitpix) {
    191         case 8:   { typedef          char   outMode; CONVERTDOWN; break; }
    192         case 16:  { typedef unsigned short  outMode; CONVERTDOWN; break; }
    193         case -16: { typedef unsigned short  outMode; CONVERTDOWN; break; }
    194         case 32:  { typedef unsigned int    outMode; CONVERTSAME; break; }
    195         case -32: { typedef          float  outMode; CONVERTSAME; break; }
    196         case -64: { typedef          double outMode; CONVERTUP;   break; }
    197         }
    198       }
    199       break;
    200     case -64:
    201       { typedef double inMode;
    202         switch (outBitpix) {
    203         case 8:   { typedef          char   outMode; CONVERTDOWN; break; }
    204         case 16:  { typedef unsigned short  outMode; CONVERTDOWN; break; }
    205         case -16: { typedef unsigned short  outMode; CONVERTDOWN; break; }
    206         case 32:  { typedef unsigned int    outMode; CONVERTDOWN; break; }
    207         case -32: { typedef          float  outMode; CONVERTDOWN; break; }
    208         case -64: { typedef          double outMode; CONVERTSAME; break; }
    209         }
    210       }
     204          case 8:   { typedef          char   outMode; CONVERTSAME(0); break; }
     205          case 16:  { typedef unsigned short  outMode; CONVERTUP(0);   break; }
     206          case -16: { typedef unsigned short  outMode; CONVERTUP(0);   break; }
     207          case 32:  { typedef unsigned int    outMode; CONVERTUP(0);   break; }
     208          case -32: { typedef          float  outMode; CONVERTUP(NAN);   break; }
     209          case -64: { typedef          double outMode; CONVERTUP(NAN);   break; }
     210        }
     211        }
     212        break; 
     213      case 16:
     214        { typedef short inMode;
     215          switch (outBitpix) {
     216            case 8:   { typedef          char   outMode; CONVERTDOWN(0); break; }
     217            case 16:  { typedef unsigned short  outMode; CONVERTSAME(0); break; }
     218            case -16: { typedef unsigned short  outMode; CONVERTSAME(0); break; }
     219            case 32:  { typedef unsigned int    outMode; CONVERTUP(0);   break; }
     220            case -32: { typedef          float  outMode; CONVERTUP(NAN);   break; }
     221            case -64: { typedef          double outMode; CONVERTUP(NAN);   break; }
     222          }
     223        }
     224        break; 
     225      case -16:
     226        { typedef unsigned short inMode;
     227          switch (outBitpix) {
     228            case 8:   { typedef          char   outMode; CONVERTDOWN(0); break; }
     229            case 16:  { typedef unsigned short  outMode; CONVERTSAME(0); break; }
     230            case -16: { typedef unsigned short  outMode; CONVERTSAME(0); break; }
     231            case 32:  { typedef unsigned int    outMode; CONVERTUP(0);   break; }
     232            case -32: { typedef          float  outMode; CONVERTUP(NAN);   break; }
     233            case -64: { typedef          double outMode; CONVERTUP(NAN);   break; }
     234          }
     235        }
     236        break; 
     237      case 32:
     238        { typedef int inMode;
     239          switch (outBitpix) {
     240            case 8:   { typedef          char   outMode; CONVERTDOWN(0); break; }
     241            case 16:  { typedef unsigned short  outMode; CONVERTDOWN(0); break; }
     242            case -16: { typedef unsigned short  outMode; CONVERTDOWN(0); break; }
     243            case 32:  { typedef unsigned int    outMode; CONVERTSAME(0); break; }
     244            case -32: { typedef          float  outMode; CONVERTSAME(NAN); break; }
     245            case -64: { typedef          double outMode; CONVERTUP(NAN);   break; }
     246          }
     247        }
     248        break;
     249      case -32:
     250        { typedef float inMode;
     251          switch (outBitpix) {
     252            case 8:   { typedef          char   outMode; CONVERTDOWN_FF(0); break; }
     253            case 16:  { typedef unsigned short  outMode; CONVERTDOWN_FF(0); break; }
     254            case -16: { typedef unsigned short  outMode; CONVERTDOWN_FF(0); break; }
     255            case 32:  { typedef unsigned int    outMode; CONVERTSAME_FF(0); break; }
     256            case -32: { typedef          float  outMode; CONVERTSAME_FF(NAN); break; }
     257            case -64: { typedef          double outMode; CONVERTUP_FF(NAN);   break; }
     258          }
     259        }
     260        break;
     261      case -64:
     262        { typedef double inMode;
     263          switch (outBitpix) {
     264            case 8:   { typedef          char   outMode; CONVERTDOWN_FF(0); break; }
     265            case 16:  { typedef unsigned short  outMode; CONVERTDOWN_FF(0); break; }
     266            case -16: { typedef unsigned short  outMode; CONVERTDOWN_FF(0); break; }
     267            case 32:  { typedef unsigned int    outMode; CONVERTDOWN_FF(0); break; }
     268            case -32: { typedef          float  outMode; CONVERTDOWN_FF(NAN); break; }
     269            case -64: { typedef          double outMode; CONVERTSAME_FF(NAN); break; }
     270          }
     271        }
    211272    }
    212273  }
    213274  if ((!outUnsign) && (inUnsign)) {  /** BLOCK 2 **/
    214275    switch (inBitpix) {
    215     case 8:
    216       { typedef unsigned char inMode;
     276      case 8:
     277        { typedef unsigned char inMode;
    217278        switch (outBitpix) {
    218         case 8:   { typedef unsigned char  outMode; CONVERTSAME; break; }
    219         case 16:  { typedef short          outMode; CONVERTUP;   break; }
    220         case -16: { typedef unsigned short outMode; CONVERTUP;   break; }
    221         case 32:  { typedef int            outMode; CONVERTUP;   break; }
    222         case -32: { typedef float          outMode; CONVERTUP;   break; }
    223         case -64: { typedef double         outMode; CONVERTUP;   break; }
    224         }
    225       }
    226       break; 
    227     case 16:
    228       { typedef unsigned short inMode;
    229         switch (outBitpix) {
    230         case 8:   { typedef unsigned char  outMode; CONVERTDOWN; break; }
    231         case 16:  { typedef short          outMode; CONVERTSAME; break; }
    232         case -16: { typedef unsigned short outMode; CONVERTSAME; break; }
    233         case 32:  { typedef int            outMode; CONVERTUP;   break; }
    234         case -32: { typedef float          outMode; CONVERTUP;   break; }
    235         case -64: { typedef double         outMode; CONVERTUP;   break; }
    236         }
    237       }
    238       break; 
    239     case -16:
    240       { typedef unsigned short inMode;
    241         switch (outBitpix) {
    242         case 8:   { typedef unsigned char  outMode; CONVERTDOWN; break; }
    243         case 16:  { typedef short          outMode; CONVERTSAME; break; }
    244         case -16: { typedef unsigned short outMode; CONVERTSAME; break; }
    245         case 32:  { typedef int            outMode; CONVERTUP;   break; }
    246         case -32: { typedef float          outMode; CONVERTUP;   break; }
    247         case -64: { typedef double         outMode; CONVERTUP;   break; }
    248         }
    249       }
    250       break; 
    251     case 32:
    252       { typedef unsigned int inMode;
    253         switch (outBitpix) {
    254         case 8:   { typedef unsigned char  outMode; CONVERTDOWN; break; }
    255         case 16:  { typedef short          outMode; CONVERTDOWN; break; }
    256         case -16: { typedef unsigned short outMode; CONVERTDOWN; break; }
    257         case 32:  { typedef int            outMode; CONVERTSAME; break; }
    258         case -32: { typedef float          outMode; CONVERTSAME; break; }
    259         case -64: { typedef double         outMode; CONVERTUP;   break; }
    260         }
    261       }
    262       break;
    263     case -32:
    264       { typedef float inMode;
    265         switch (outBitpix) {
    266         case 8:   { typedef unsigned char  outMode; CONVERTDOWN; break; }
    267         case 16:  { typedef short          outMode; CONVERTDOWN; break; }
    268         case -16: { typedef unsigned short outMode; CONVERTDOWN; break; }
    269         case 32:  { typedef int            outMode; CONVERTSAME; break; }
    270         case -32: { typedef float          outMode; CONVERTSAME; break; }
    271         case -64: { typedef double         outMode; CONVERTUP;   break; }
    272         }
    273       }
    274       break;
    275     case -64:
    276       { typedef double inMode;
    277         switch (outBitpix) {
    278         case 8:   { typedef unsigned char  outMode; CONVERTDOWN; break; }
    279         case 16:  { typedef short          outMode; CONVERTDOWN; break; }
    280         case -16: { typedef unsigned short outMode; CONVERTDOWN; break; }
    281         case 32:  { typedef int            outMode; CONVERTDOWN; break; }
    282         case -32: { typedef float          outMode; CONVERTDOWN; break; }
    283         case -64: { typedef double         outMode; CONVERTSAME; break; }
    284         }
    285       }
     279          case 8:   { typedef unsigned char  outMode; CONVERTSAME(0); break; }
     280          case 16:  { typedef short          outMode; CONVERTUP(0);   break; }
     281          case -16: { typedef unsigned short outMode; CONVERTUP(0);   break; }
     282          case 32:  { typedef int            outMode; CONVERTUP(0);   break; }
     283          case -32: { typedef float          outMode; CONVERTUP(NAN);   break; }
     284          case -64: { typedef double         outMode; CONVERTUP(NAN);   break; }
     285        }
     286        }
     287        break; 
     288      case 16:
     289        { typedef unsigned short inMode;
     290          switch (outBitpix) {
     291            case 8:   { typedef unsigned char  outMode; CONVERTDOWN(0); break; }
     292            case 16:  { typedef short          outMode; CONVERTSAME(0); break; }
     293            case -16: { typedef unsigned short outMode; CONVERTSAME(0); break; }
     294            case 32:  { typedef int            outMode; CONVERTUP(0);   break; }
     295            case -32: { typedef float          outMode; CONVERTUP(NAN);   break; }
     296            case -64: { typedef double         outMode; CONVERTUP(NAN);   break; }
     297          }
     298        }
     299        break; 
     300      case -16:
     301        { typedef unsigned short inMode;
     302          switch (outBitpix) {
     303            case 8:   { typedef unsigned char  outMode; CONVERTDOWN(0); break; }
     304            case 16:  { typedef short          outMode; CONVERTSAME(0); break; }
     305            case -16: { typedef unsigned short outMode; CONVERTSAME(0); break; }
     306            case 32:  { typedef int            outMode; CONVERTUP(0);   break; }
     307            case -32: { typedef float          outMode; CONVERTUP(NAN);   break; }
     308            case -64: { typedef double         outMode; CONVERTUP(NAN);   break; }
     309          }
     310        }
     311        break; 
     312      case 32:
     313        { typedef unsigned int inMode;
     314          switch (outBitpix) {
     315            case 8:   { typedef unsigned char  outMode; CONVERTDOWN(0); break; }
     316            case 16:  { typedef short          outMode; CONVERTDOWN(0); break; }
     317            case -16: { typedef unsigned short outMode; CONVERTDOWN(0); break; }
     318            case 32:  { typedef int            outMode; CONVERTSAME(0); break; }
     319            case -32: { typedef float          outMode; CONVERTSAME(NAN); break; }
     320            case -64: { typedef double         outMode; CONVERTUP(NAN);   break; }
     321          }
     322        }
     323        break;
     324      case -32:
     325        { typedef float inMode;
     326          switch (outBitpix) {
     327            case 8:   { typedef unsigned char  outMode; CONVERTDOWN_FF(0); break; }
     328            case 16:  { typedef short          outMode; CONVERTDOWN_FF(0); break; }
     329            case -16: { typedef unsigned short outMode; CONVERTDOWN_FF(0); break; }
     330            case 32:  { typedef int            outMode; CONVERTSAME_FF(0); break; }
     331            case -32: { typedef float          outMode; CONVERTSAME_FF(NAN); break; }
     332            case -64: { typedef double         outMode; CONVERTUP_FF(NAN);   break; }
     333          }
     334        }
     335        break;
     336      case -64:
     337        { typedef double inMode;
     338          switch (outBitpix) {
     339            case 8:   { typedef unsigned char  outMode; CONVERTDOWN_FF(0); break; }
     340            case 16:  { typedef short          outMode; CONVERTDOWN_FF(0); break; }
     341            case -16: { typedef unsigned short outMode; CONVERTDOWN_FF(0); break; }
     342            case 32:  { typedef int            outMode; CONVERTDOWN_FF(0); break; }
     343            case -32: { typedef float          outMode; CONVERTDOWN_FF(NAN); break; }
     344            case -64: { typedef double         outMode; CONVERTSAME_FF(NAN); break; }
     345          }
     346        }
    286347    }
    287348  }
    288349  if ((outUnsign) && (inUnsign)) {
    289350    switch (inBitpix) {
    290     case 8:
    291       { typedef char inMode;
     351      case 8:
     352        { typedef char inMode;
    292353        switch (outBitpix) {
    293         case 8:   { typedef char            outMode; CONVERTSAME; break; }
    294         case 16:  { typedef unsigned short  outMode; CONVERTUP;   break; }
    295         case -16: { typedef unsigned short  outMode; CONVERTDOWN; break; }
    296         case 32:  { typedef unsigned int    outMode; CONVERTUP;   break; }
    297         case -32: { typedef          float  outMode; CONVERTUP;   break; }
    298         case -64: { typedef          double outMode; CONVERTUP;   break; }
    299         }
    300       }
    301       break; 
    302     case 16:
    303       { typedef unsigned short inMode;
    304         switch (outBitpix) {
    305         case 8:   { typedef char            outMode; CONVERTDOWN; break; }
    306         case 16:  { typedef unsigned short  outMode; CONVERTSAME; break; }
    307         case -16: { typedef unsigned short  outMode; CONVERTDOWN; break; }
    308         case 32:  { typedef unsigned int    outMode; CONVERTUP;   break; }
    309         case -32: { typedef          float  outMode; CONVERTUP;   break; }
    310         case -64: { typedef          double outMode; CONVERTUP;   break; }
    311         }
    312       }
    313       break; 
    314     case -16:
    315       { typedef unsigned short inMode;
    316         switch (outBitpix) {
    317         case 8:   { typedef char            outMode; CONVERTDOWN; break; }
    318         case 16:  { typedef unsigned short  outMode; CONVERTSAME; break; }
    319         case -16: { typedef unsigned short  outMode; CONVERTDOWN; break; }
    320         case 32:  { typedef unsigned int    outMode; CONVERTUP;   break; }
    321         case -32: { typedef          float  outMode; CONVERTUP;   break; }
    322         case -64: { typedef          double outMode; CONVERTUP;   break; }
    323         }
    324       }
    325       break; 
    326     case 32:
    327       { typedef unsigned int inMode;
    328         switch (outBitpix) {
    329         case 8:   { typedef char            outMode; CONVERTDOWN; break; }
    330         case 16:  { typedef unsigned short  outMode; CONVERTDOWN; break; }
    331         case -16: { typedef unsigned short  outMode; CONVERTDOWN; break; }
    332         case 32:  { typedef unsigned int    outMode; CONVERTSAME; break; }
    333         case -32: { typedef          float  outMode; CONVERTSAME; break; }
    334         case -64: { typedef          double outMode; CONVERTUP;   break; }
    335         }                                   
    336       }                                     
    337       break;                               
    338     case -32:                               
    339       { typedef float inMode;               
    340         switch (outBitpix) {               
    341         case 8:   { typedef char            outMode; CONVERTDOWN; break; }
    342         case 16:  { typedef unsigned short  outMode; CONVERTDOWN; break; }
    343         case -16: { typedef unsigned short  outMode; CONVERTDOWN; break; }
    344         case 32:  { typedef unsigned int    outMode; CONVERTSAME; break; }
    345         case -32: { typedef          float  outMode; CONVERTSAME; break; }
    346         case -64: { typedef          double outMode; CONVERTUP;   break; }
    347         }                                   
    348       }                                     
    349       break;                               
    350     case -64:                               
    351       { typedef double inMode;             
    352         switch (outBitpix) {               
    353         case 8:   { typedef char            outMode; CONVERTDOWN; break; }
    354         case 16:  { typedef unsigned short  outMode; CONVERTDOWN; break; }
    355         case -16: { typedef unsigned short  outMode; CONVERTDOWN; break; }
    356         case 32:  { typedef unsigned int    outMode; CONVERTDOWN; break; }
    357         case -32: { typedef          float  outMode; CONVERTDOWN; break; }
    358         case -64: { typedef          double outMode; CONVERTSAME; break; }
    359         }
    360       }
     354          case 8:   { typedef char            outMode; CONVERTSAME(0); break; }
     355          case 16:  { typedef unsigned short  outMode; CONVERTUP(0);   break; }
     356          case -16: { typedef unsigned short  outMode; CONVERTDOWN(0); break; }
     357          case 32:  { typedef unsigned int    outMode; CONVERTUP(0);   break; }
     358          case -32: { typedef          float  outMode; CONVERTUP(NAN);   break; }
     359          case -64: { typedef          double outMode; CONVERTUP(NAN);   break; }
     360        }
     361        }
     362        break; 
     363      case 16:
     364        { typedef unsigned short inMode;
     365          switch (outBitpix) {
     366            case 8:   { typedef char            outMode; CONVERTDOWN(0); break; }
     367            case 16:  { typedef unsigned short  outMode; CONVERTSAME(0); break; }
     368            case -16: { typedef unsigned short  outMode; CONVERTDOWN(0); break; }
     369            case 32:  { typedef unsigned int    outMode; CONVERTUP(0);   break; }
     370            case -32: { typedef          float  outMode; CONVERTUP(NAN);   break; }
     371            case -64: { typedef          double outMode; CONVERTUP(NAN);   break; }
     372          }
     373        }
     374        break; 
     375      case -16:
     376        { typedef unsigned short inMode;
     377          switch (outBitpix) {
     378            case 8:   { typedef char            outMode; CONVERTDOWN(0); break; }
     379            case 16:  { typedef unsigned short  outMode; CONVERTSAME(0); break; }
     380            case -16: { typedef unsigned short  outMode; CONVERTDOWN(0); break; }
     381            case 32:  { typedef unsigned int    outMode; CONVERTUP(0);   break; }
     382            case -32: { typedef          float  outMode; CONVERTUP(NAN);   break; }
     383            case -64: { typedef          double outMode; CONVERTUP(NAN);   break; }
     384          }
     385        }
     386        break; 
     387      case 32:
     388        { typedef unsigned int inMode;
     389          switch (outBitpix) {
     390            case 8:   { typedef char            outMode; CONVERTDOWN(0); break; }
     391            case 16:  { typedef unsigned short  outMode; CONVERTDOWN(0); break; }
     392            case -16: { typedef unsigned short  outMode; CONVERTDOWN(0); break; }
     393            case 32:  { typedef unsigned int    outMode; CONVERTSAME(0); break; }
     394            case -32: { typedef          float  outMode; CONVERTSAME(NAN); break; }
     395            case -64: { typedef          double outMode; CONVERTUP(NAN);   break; }
     396          }                                 
     397        }                                           
     398        break;                             
     399      case -32:                                     
     400        { typedef float inMode;             
     401          switch (outBitpix) {             
     402            case 8:   { typedef char            outMode; CONVERTDOWN_FF(0); break; }
     403            case 16:  { typedef unsigned short  outMode; CONVERTDOWN_FF(0); break; }
     404            case -16: { typedef unsigned short  outMode; CONVERTDOWN_FF(0); break; }
     405            case 32:  { typedef unsigned int    outMode; CONVERTSAME_FF(0); break; }
     406            case -32: { typedef          float  outMode; CONVERTSAME_FF(NAN); break; }
     407            case -64: { typedef          double outMode; CONVERTUP_FF(NAN);   break; }
     408          }                                 
     409        }                                           
     410        break;                             
     411      case -64:                                     
     412        { typedef double inMode;                   
     413          switch (outBitpix) {             
     414            case 8:   { typedef char            outMode; CONVERTDOWN_FF(0); break; }
     415            case 16:  { typedef unsigned short  outMode; CONVERTDOWN_FF(0); break; }
     416            case -16: { typedef unsigned short  outMode; CONVERTDOWN_FF(0); break; }
     417            case 32:  { typedef unsigned int    outMode; CONVERTDOWN_FF(0); break; }
     418            case -32: { typedef          float  outMode; CONVERTDOWN_FF(NAN); break; }
     419            case -64: { typedef          double outMode; CONVERTSAME_FF(NAN); break; }
     420          }
     421        }
    361422    }
    362423  }
  • trunk/Ohana/src/opihi/cmd.data/rd.c

    r18325 r20652  
    44int rd (int argc, char **argv) {
    55 
    6   int i, N, status, plane, Nplane, extend, Nextend, Nskip, JustHead;
     6  int i, N, status, plane, Nplane, extend, Nextend, Nskip, JustHead, blank;
    77  int ccdsel, done, Nword, IsCompressed;
    88  char region[512], *ccdid, *filename;
     
    221221  buf[0].bzero  = buf[0].header.bzero;     /* store the original values */
    222222  buf[0].unsign = buf[0].header.unsign;
     223
    223224  gprint (GP_LOG, "read %d bytes from %s into buffer %s\n",
    224225           buf[0].header.size + buf[0].matrix.size, argv[2], argv[1]);
    225226
     227  blank = 0xffff;
     228  gfits_scan (&buf[0].header, "BLANK", "%d", 1, &blank);
     229
    226230  /** now - convert the matrix values to floats for internal use **/
    227   gfits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, gfits_get_unsign_mode());
    228  
     231  gfits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, blank, gfits_get_unsign_mode());
     232
    229233  return (TRUE);
    230234}
  • trunk/Ohana/src/opihi/cmd.data/rdseg.c

    r13040 r20652  
    44int rdseg (int argc, char **argv) {
    55 
    6   int x, y, nx, ny, status;
     6  int x, y, nx, ny, status, blank;
    77  char region[512], *filename;
    88  FILE *f;
     
    6565           buf[0].header.size + buf[0].matrix.size, argv[2], argv[1]);
    6666
     67  gfits_scan (&buf[0].header, "BLANK", "%d", 1, &blank);
     68
    6769  /** now - convert the matrix values to floats for internal use **/
    68   gfits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, gfits_get_unsign_mode());
     70  gfits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, blank, gfits_get_unsign_mode());
    6971 
    7072  return (TRUE);
  • trunk/Ohana/src/opihi/cmd.data/wd.c

    r18279 r20652  
    8282
    8383  if (temp_header.Naxes) {
    84     gfits_convert_format (&temp_header, &temp_matrix, outBitpix, outScale, outZero, outUnsign);
     84    // the inBlank value probably does not matter: temp_matrix is float, so nan is used
     85    gfits_convert_format (&temp_header, &temp_matrix, outBitpix, outScale, outZero, 0xffff, outUnsign);
    8586  } else {
    8687    gfits_modify (&temp_header, "BITPIX", "%d", 1, outBitpix);
  • trunk/Ohana/src/opihi/dimm/camera.c

    r12902 r20652  
    112112    ReadOut (x, y, dx, dy, 1, buf[0].matrix.buffer);
    113113
    114     gfits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, gfits_get_unsign_mode());
     114    gfits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, 0xffff, gfits_get_unsign_mode());
    115115
    116116    EXIT_STATUS (TRUE);
  • trunk/Ohana/src/tools/src/medianfilter.c

    r16040 r20652  
    5151  gfits_read_header (filename[0], &head);
    5252  gfits_create_matrix (&head, &out);
    53   gfits_convert_format (&head, &out, -32, 1.0, 0.0, FALSE);
     53  gfits_convert_format (&head, &out, -32, 1.0, 0.0, 0xffff, FALSE);
    5454
    5555  /* find size of temporary images */
     
    9090      tmphead[i].Naxis[0] = 1;
    9191      tmphead[i].Naxis[1] = Npixrd;
    92       gfits_convert_format (&tmphead[i], &tmpmatr[i], -32, 1.0, 0.0, FALSE);
     92      gfits_convert_format (&tmphead[i], &tmpmatr[i], -32, 1.0, 0.0, 0xffff, FALSE);
    9393    }
    9494   
  • trunk/ippScripts/scripts/camera_exp.pl

    r19971 r20652  
    145145my ($list3File, $list3Name) = tempfile( "/tmp/$exp_tag.cm.$cam_id.b3.list.XXXX", UNLINK => !$save_temps ); # For astrometry
    146146
     147### XXX for the moment, always generate the bright-star mask
     148my ($list4File, $list4Name) = tempfile( "/tmp/$exp_tag.cm.$cam_id.b4.list.XXXX", UNLINK => !$save_temps ); # For astrometry
     149
    147150# XXX we perform astrometry iff photometry output exists
    148151my $chipObjectsExist = 0;
     
    154157    # we expect the chip analysis stage to produce psphot output (cmf file) and two binned images
    155158    my $chipObjects = $ipprc->filename("PSPHOT.OUTPUT", $file->{path_base}, $class_id);
     159    my $chipMask   = $ipprc->filename("PPIMAGE.CHIP.MASK", $file->{path_base}, $class_id);
    156160
    157161    # if any of the output chip photometry files exist, we can run psastro / addstar below
     
    166170    print $list2File ($ipprc->filename("PPIMAGE.BIN2", $file->{path_base}, $class_id) . "\n");
    167171    print $list3File ($ipprc->file_resolve($chipObjects, 0) . "\n");
     172    print $list4File ($ipprc->file_resolve($chipMask, 0) . "\n");
    168173}
    169174close $list1File;
    170175close $list2File;
    171176close $list3File;
     177close $list4File;
    172178
    173179# Output products
     
    234240        # run psastro on the chipObjects, producing fpaObjects
    235241        my $command;
    236         $command  = "$psastro -list $list3Name $outroot";
     242        $command  = "$psastro -list $list3Name -masklist $list4Name $outroot";
    237243        $command .= " -tracedest $traceDest -log $logDest";
    238244        $command .= " -dbname $dbname" if defined $dbname;
  • trunk/ippconfig/vysos5/psastro.config

    r20015 r20652  
    7070PSASTRO.CATDIR              STR      SYNTH.BRIGHT
    7171DVO.GETSTAR.PHOTCODE        STR      r
    72 DVO.GETSTAR.MAG.MAX         F32      12.0
    7372
    7473PSASTRO.PLOT.REF.MAG.MIN  F32 +5.0
  • trunk/ippconfig/vysos5/psphot.config

    r20102 r20652  
    3737PSF.TREND.NY                        S32   5
    3838
     39PSF.RESIDUALS.SPATIAL_ORDER         S32   1               # fit spatial variations of the residuals at this order (0,1)
Note: See TracChangeset for help on using the changeset viewer.