Changeset 20652
- Timestamp:
- Nov 10, 2008, 2:17:14 PM (17 years ago)
- Location:
- trunk
- Files:
-
- 13 edited
-
Ohana/src/addstar/doc/notes.txt (modified) (1 diff)
-
Ohana/src/gophot/src/gophot.c (modified) (1 diff)
-
Ohana/src/libfits/include/gfitsio.h (modified) (2 diffs)
-
Ohana/src/libfits/matrix/F_compress_M.c (modified) (5 diffs)
-
Ohana/src/libfits/matrix/F_convert_format.c (modified) (2 diffs)
-
Ohana/src/opihi/cmd.data/rd.c (modified) (2 diffs)
-
Ohana/src/opihi/cmd.data/rdseg.c (modified) (2 diffs)
-
Ohana/src/opihi/cmd.data/wd.c (modified) (1 diff)
-
Ohana/src/opihi/dimm/camera.c (modified) (1 diff)
-
Ohana/src/tools/src/medianfilter.c (modified) (2 diffs)
-
ippScripts/scripts/camera_exp.pl (modified) (4 diffs)
-
ippconfig/vysos5/psastro.config (modified) (1 diff)
-
ippconfig/vysos5/psphot.config (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/addstar/doc/notes.txt
r16810 r20652 1 2 2008.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 1 20 2 21 2008.02.23 -
trunk/Ohana/src/gophot/src/gophot.c
r12902 r20652 25 25 } 26 26 /* 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); 28 28 ALLOCATE (noise, float, matrix.size); 29 29 big = (float *) matrix.buffer; -
trunk/Ohana/src/libfits/include/gfitsio.h
r18270 r20652 138 138 139 139 void 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));140 int gfits_convert_format PROTO((Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int inBlank, int outUnsign)); 141 141 int gfits_copy_matrix PROTO((Matrix *in, Matrix *out)); 142 142 int gfits_create_matrix PROTO((Header *header, Matrix *matrix)); … … 157 157 int gfits_uncompress_image PROTO((Header *header, Matrix *matrix, FTable *ftable)); 158 158 int 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));159 int gfits_distribute_data PROTO((Matrix *matrix, int bitpix, char *data, int Ndata, int *otile, int oblank, int *ztile, int zblank, float zscale, float zzero)); 160 160 int gfits_byteswap_zdata PROTO((char *zdata, int Nzdata, int bitpix)); 161 161 int gfits_extension_is_compressed PROTO((Header *header)); -
trunk/Ohana/src/libfits/matrix/F_compress_M.c
r18403 r20652 34 34 char cmptype[80]; 35 35 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; 37 37 VarLengthColumn zdef; 38 38 float zscale, zzero; … … 177 177 gfits_scan (header, "ZSCALE", "%lf", 1, &zscale); 178 178 179 zblank = 32767; 180 gfits_scan (header, "ZBLANK", "%d", 1, &zblank); 181 182 oblank = 32767; 183 gfits_scan (header, "BLANK", "%d", 1, &oblank); 184 179 185 zzero = 0; 180 186 gfits_scan (header, "ZZERO", "%lf", 1, &zzero); … … 248 254 249 255 // 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); 251 257 252 258 // update the tile counters, carrying to the next dimension if needed … … 289 295 290 296 // 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) {297 int gfits_distribute_data (Matrix *matrix, int bitpix, char *data, int Ndata, int *otile, int oblank, int *ztile, int zblank, float zscale, float zzero) { 292 298 293 299 int i, j, start, offset, coord, Nline; … … 331 337 TYPE *Optr = (TYPE *) &matrix->buffer[SIZE*(offset + start)]; \ 332 338 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 } } } 335 344 336 345 // 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 2 2 # include <gfitsio.h> 3 3 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 10 static 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 } \ 11 26 REALLOCATE (matrix[0].buffer, char, matrix[0].size); 12 27 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 } 29 90 30 91 /*********************** fits convert format ***********************************/ 31 int gfits_convert_format (Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int outUnsign) {92 int gfits_convert_format (Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int inBlank, int outUnsign) { 32 93 33 94 unsigned long i, nbytes, Npixels; … … 63 124 if ((!outUnsign) && (!inUnsign)) { /** BLOCK 1 **/ 64 125 switch (inBitpix) { 65 case 8:66 { typedef unsigned char inMode;126 case 8: 127 { typedef unsigned char inMode; 67 128 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 } 136 197 } 137 198 } 138 199 if ((outUnsign) && (!inUnsign)) { /** BLOCK 3 **/ 139 200 switch (inBitpix) { 140 case 8:141 { typedef unsigned char inMode;201 case 8: 202 { typedef unsigned char inMode; 142 203 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 } 211 272 } 212 273 } 213 274 if ((!outUnsign) && (inUnsign)) { /** BLOCK 2 **/ 214 275 switch (inBitpix) { 215 case 8:216 { typedef unsigned char inMode;276 case 8: 277 { typedef unsigned char inMode; 217 278 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 } 286 347 } 287 348 } 288 349 if ((outUnsign) && (inUnsign)) { 289 350 switch (inBitpix) { 290 case 8:291 { typedef char inMode;351 case 8: 352 { typedef char inMode; 292 353 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 } 361 422 } 362 423 } -
trunk/Ohana/src/opihi/cmd.data/rd.c
r18325 r20652 4 4 int rd (int argc, char **argv) { 5 5 6 int i, N, status, plane, Nplane, extend, Nextend, Nskip, JustHead ;6 int i, N, status, plane, Nplane, extend, Nextend, Nskip, JustHead, blank; 7 7 int ccdsel, done, Nword, IsCompressed; 8 8 char region[512], *ccdid, *filename; … … 221 221 buf[0].bzero = buf[0].header.bzero; /* store the original values */ 222 222 buf[0].unsign = buf[0].header.unsign; 223 223 224 gprint (GP_LOG, "read %d bytes from %s into buffer %s\n", 224 225 buf[0].header.size + buf[0].matrix.size, argv[2], argv[1]); 225 226 227 blank = 0xffff; 228 gfits_scan (&buf[0].header, "BLANK", "%d", 1, &blank); 229 226 230 /** 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 229 233 return (TRUE); 230 234 } -
trunk/Ohana/src/opihi/cmd.data/rdseg.c
r13040 r20652 4 4 int rdseg (int argc, char **argv) { 5 5 6 int x, y, nx, ny, status ;6 int x, y, nx, ny, status, blank; 7 7 char region[512], *filename; 8 8 FILE *f; … … 65 65 buf[0].header.size + buf[0].matrix.size, argv[2], argv[1]); 66 66 67 gfits_scan (&buf[0].header, "BLANK", "%d", 1, &blank); 68 67 69 /** 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()); 69 71 70 72 return (TRUE); -
trunk/Ohana/src/opihi/cmd.data/wd.c
r18279 r20652 82 82 83 83 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); 85 86 } else { 86 87 gfits_modify (&temp_header, "BITPIX", "%d", 1, outBitpix); -
trunk/Ohana/src/opihi/dimm/camera.c
r12902 r20652 112 112 ReadOut (x, y, dx, dy, 1, buf[0].matrix.buffer); 113 113 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()); 115 115 116 116 EXIT_STATUS (TRUE); -
trunk/Ohana/src/tools/src/medianfilter.c
r16040 r20652 51 51 gfits_read_header (filename[0], &head); 52 52 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); 54 54 55 55 /* find size of temporary images */ … … 90 90 tmphead[i].Naxis[0] = 1; 91 91 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); 93 93 } 94 94 -
trunk/ippScripts/scripts/camera_exp.pl
r19971 r20652 145 145 my ($list3File, $list3Name) = tempfile( "/tmp/$exp_tag.cm.$cam_id.b3.list.XXXX", UNLINK => !$save_temps ); # For astrometry 146 146 147 ### XXX for the moment, always generate the bright-star mask 148 my ($list4File, $list4Name) = tempfile( "/tmp/$exp_tag.cm.$cam_id.b4.list.XXXX", UNLINK => !$save_temps ); # For astrometry 149 147 150 # XXX we perform astrometry iff photometry output exists 148 151 my $chipObjectsExist = 0; … … 154 157 # we expect the chip analysis stage to produce psphot output (cmf file) and two binned images 155 158 my $chipObjects = $ipprc->filename("PSPHOT.OUTPUT", $file->{path_base}, $class_id); 159 my $chipMask = $ipprc->filename("PPIMAGE.CHIP.MASK", $file->{path_base}, $class_id); 156 160 157 161 # if any of the output chip photometry files exist, we can run psastro / addstar below … … 166 170 print $list2File ($ipprc->filename("PPIMAGE.BIN2", $file->{path_base}, $class_id) . "\n"); 167 171 print $list3File ($ipprc->file_resolve($chipObjects, 0) . "\n"); 172 print $list4File ($ipprc->file_resolve($chipMask, 0) . "\n"); 168 173 } 169 174 close $list1File; 170 175 close $list2File; 171 176 close $list3File; 177 close $list4File; 172 178 173 179 # Output products … … 234 240 # run psastro on the chipObjects, producing fpaObjects 235 241 my $command; 236 $command = "$psastro -list $list3Name $outroot";242 $command = "$psastro -list $list3Name -masklist $list4Name $outroot"; 237 243 $command .= " -tracedest $traceDest -log $logDest"; 238 244 $command .= " -dbname $dbname" if defined $dbname; -
trunk/ippconfig/vysos5/psastro.config
r20015 r20652 70 70 PSASTRO.CATDIR STR SYNTH.BRIGHT 71 71 DVO.GETSTAR.PHOTCODE STR r 72 DVO.GETSTAR.MAG.MAX F32 12.073 72 74 73 PSASTRO.PLOT.REF.MAG.MIN F32 +5.0 -
trunk/ippconfig/vysos5/psphot.config
r20102 r20652 37 37 PSF.TREND.NY S32 5 38 38 39 PSF.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.
