Changeset 7080 for trunk/Ohana/src/opihi/cmd.data/rotate.c
- Timestamp:
- May 5, 2006, 5:44:26 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/cmd.data/rotate.c (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/cmd.data/rotate.c
r2843 r7080 41 41 buf[0].header.Naxis[0] = NY; 42 42 buf[0].header.Naxis[1] = NX; 43 fits_modify (&buf[0].header, "NAXIS1", "%d", 1, NY);44 fits_modify (&buf[0].header, "NAXIS2", "%d", 1, NX);45 fits_print (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");46 fits_create_matrix (&buf[0].header, &buf[0].matrix);43 gfits_modify (&buf[0].header, "NAXIS1", "%d", 1, NY); 44 gfits_modify (&buf[0].header, "NAXIS2", "%d", 1, NX); 45 gfits_print (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!"); 46 gfits_create_matrix (&buf[0].header, &buf[0].matrix); 47 47 out_buff = (float *)buf[0].matrix.buffer; 48 48 for (i = NX - 1; i > -1; i--) { … … 52 52 } 53 53 /* fix reference pixel */ 54 fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);55 fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);54 gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo); 55 gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo); 56 56 X1 = Yo; 57 57 Y1 = NX - Xo; 58 fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);59 fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);60 61 /* fix rotate matrix */ 62 fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);63 fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);64 fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);65 fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);58 gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1); 59 gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1); 60 61 /* fix rotate matrix */ 62 gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11); 63 gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12); 64 gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21); 65 gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22); 66 66 PC11 = pc21; 67 67 PC12 = pc22; 68 68 PC21 = -pc11; 69 69 PC22 = -pc12; 70 fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);71 fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);72 fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);73 fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);70 gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11); 71 gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12); 72 gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21); 73 gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22); 74 74 75 75 free (in_buff); … … 80 80 buf[0].header.Naxis[0] = NY; 81 81 buf[0].header.Naxis[1] = NX; 82 fits_modify (&buf[0].header, "NAXIS1", "%d", 1, NY);83 fits_modify (&buf[0].header, "NAXIS2", "%d", 1, NX);84 fits_print (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");85 fits_create_matrix (&buf[0].header, &buf[0].matrix);82 gfits_modify (&buf[0].header, "NAXIS1", "%d", 1, NY); 83 gfits_modify (&buf[0].header, "NAXIS2", "%d", 1, NX); 84 gfits_print (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!"); 85 gfits_create_matrix (&buf[0].header, &buf[0].matrix); 86 86 out_buff = (float *)buf[0].matrix.buffer; 87 87 for (i = 0; i < NX; i++) { … … 91 91 } 92 92 /* fix reference pixel */ 93 fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);94 fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);93 gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo); 94 gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo); 95 95 X1 = NY - Yo; 96 96 Y1 = Xo; 97 97 fprintf (stderr, "%f %f -> %f %f\n", Xo, Yo, X1, Y1); 98 fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);99 fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);100 101 /* fix rotate matrix */ 102 fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);103 fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);104 fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);105 fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);98 gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1); 99 gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1); 100 101 /* fix rotate matrix */ 102 gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11); 103 gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12); 104 gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21); 105 gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22); 106 106 PC11 = -pc21; 107 107 PC12 = -pc22; … … 110 110 fprintf (stderr, "%f %f -> %f %f\n", pc11, pc12, PC11, PC12); 111 111 fprintf (stderr, "%f %f -> %f %f\n", pc21, pc22, PC21, PC22); 112 fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);113 fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);114 fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);115 fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);112 gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11); 113 gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12); 114 gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21); 115 gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22); 116 116 117 117 free (in_buff); … … 120 120 121 121 if (!strcasecmp (argv[2], "UPSIDE") || (atof (argv[2]) == -180) || (atof (argv[2]) == 180)) { 122 fits_print (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");123 fits_create_matrix (&buf[0].header, &buf[0].matrix);122 gfits_print (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!"); 123 gfits_create_matrix (&buf[0].header, &buf[0].matrix); 124 124 out_buff = (float *)buf[0].matrix.buffer; 125 125 for (j = NY - 1; j > -1; j--) { … … 129 129 } 130 130 /* fix reference pixel */ 131 fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);132 fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);131 gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo); 132 gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo); 133 133 X1 = NX - Xo; 134 134 Y1 = NY - Yo; 135 fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);136 fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);137 138 /* fix rotate matrix */ 139 fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);140 fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);141 fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);142 fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);135 gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1); 136 gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1); 137 138 /* fix rotate matrix */ 139 gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11); 140 gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12); 141 gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21); 142 gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22); 143 143 PC11 = -pc11; 144 144 PC12 = -pc12; 145 145 PC21 = -pc21; 146 146 PC22 = -pc22; 147 fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);148 fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);149 fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);150 fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);147 gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11); 148 gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12); 149 gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21); 150 gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22); 151 151 152 152 free (in_buff); … … 155 155 156 156 if (!strcasecmp (argv[2], "FLIPY")) { 157 fits_print (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");158 fits_create_matrix (&buf[0].header, &buf[0].matrix);157 gfits_print (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!"); 158 gfits_create_matrix (&buf[0].header, &buf[0].matrix); 159 159 out_buff = (float *)buf[0].matrix.buffer; 160 160 for (j = NY - 1; j > -1; j--) { … … 164 164 } 165 165 /* fix reference pixel */ 166 fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);167 fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);166 gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo); 167 gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo); 168 168 X1 = Xo; 169 169 Y1 = NY - Yo; 170 fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);171 fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);172 173 /* fix rotate matrix */ 174 fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);175 fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);176 fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);177 fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);170 gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1); 171 gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1); 172 173 /* fix rotate matrix */ 174 gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11); 175 gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12); 176 gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21); 177 gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22); 178 178 PC11 = pc11; 179 179 PC12 = -pc12; 180 180 PC21 = pc21; 181 181 PC22 = -pc22; 182 fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);183 fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);184 fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);185 fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);182 gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11); 183 gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12); 184 gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21); 185 gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22); 186 186 187 187 free (in_buff); … … 190 190 191 191 if (!strcasecmp (argv[2], "FLIPX")) { 192 fits_print (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");193 fits_create_matrix (&buf[0].header, &buf[0].matrix);192 gfits_print (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!"); 193 gfits_create_matrix (&buf[0].header, &buf[0].matrix); 194 194 out_buff = (float *)buf[0].matrix.buffer; 195 195 for (j = 0; j < NY; j++) { … … 199 199 } 200 200 /* fix reference pixel */ 201 fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);202 fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);201 gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo); 202 gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo); 203 203 X1 = NX - Xo; 204 204 Y1 = Yo; 205 fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);206 fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);207 208 /* fix rotate matrix */ 209 fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);210 fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);211 fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);212 fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);205 gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1); 206 gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1); 207 208 /* fix rotate matrix */ 209 gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11); 210 gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12); 211 gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21); 212 gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22); 213 213 PC11 = -pc11; 214 214 PC12 = pc12; 215 215 PC21 = -pc21; 216 216 PC22 = pc22; 217 fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);218 fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);219 fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);220 fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);217 gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11); 218 gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12); 219 gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21); 220 gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22); 221 221 222 222 free (in_buff); … … 242 242 243 243 /* fix reference pixel */ 244 fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);245 fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);244 gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo); 245 gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo); 246 246 /* 247 247 X1 = (Xo - dX)*CosAngle - (Yo - dY)*SinAngle; … … 250 250 X1 = Xo*CosAngle - Yo*SinAngle + dX; 251 251 Y1 = Xo*SinAngle + Yo*CosAngle + dY; 252 fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);253 fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);252 gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1); 253 gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1); 254 254 255 255 /* fix rotate matrix */ 256 fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);257 fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);258 fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);259 fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);256 gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11); 257 gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12); 258 gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21); 259 gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22); 260 260 PC11 = pc11*CosAngle - pc21*SinAngle; 261 261 PC12 = pc12*CosAngle - pc22*SinAngle; 262 262 PC21 = pc21*CosAngle + pc11*SinAngle; 263 263 PC22 = pc22*CosAngle + pc12*SinAngle; 264 fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);265 fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);266 fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);267 fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);264 gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11); 265 gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12); 266 gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21); 267 gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22); 268 268 269 269 buf[0].header.Naxis[0] = Lx; 270 270 buf[0].header.Naxis[1] = Ly; 271 fits_modify (&buf[0].header, "NAXIS1", "%d", 1, Lx);272 fits_modify (&buf[0].header, "NAXIS2", "%d", 1, Ly);273 fits_create_matrix (&buf[0].header, &buf[0].matrix);274 fits_print (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");271 gfits_modify (&buf[0].header, "NAXIS1", "%d", 1, Lx); 272 gfits_modify (&buf[0].header, "NAXIS2", "%d", 1, Ly); 273 gfits_create_matrix (&buf[0].header, &buf[0].matrix); 274 gfits_print (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!"); 275 275 out_buff = (float *)buf[0].matrix.buffer; 276 276 for (j = 0; j < Ly; j++) {
Note:
See TracChangeset
for help on using the changeset viewer.
