Changeset 8120 for trunk/ippTools/src/pxframes.c
- Timestamp:
- Aug 3, 2006, 6:18:57 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/ippTools/src/pxframes.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/pxframes.c
r8062 r8120 6 6 7 7 #include "pxtools.h" 8 9 static rawDetrendExpRow *newToRawDetrendExp(pxConfig *config, newExpRow *exp); 8 10 9 11 #define PX_FRAME_ALLOC(frametype, exptype) \ … … 77 79 PX_FRAME_PRINT(p2PendingFrame, p2PendingImfile); 78 80 79 81 // XXX fix the exposure search so that it doesn't dump the entire table 80 82 #define PX_FRAME_SEARCH(frametype, exptype, imfiletype) \ 81 83 psArray *frametype##Search(pxConfig *config) \ … … 83 85 PS_ASSERT_PTR_NON_NULL(config, NULL); \ 84 86 \ 85 psArray *exposures = exptype##SelectRowObjects(config->dbh, \ 86 config->where, MAX_ROWS); \ 87 psArray *exposures = exptype##SelectRowObjects(config->dbh, NULL, MAX_ROWS); \ 87 88 if (!exposures) { \ 88 89 psError(PS_ERR_UNKNOWN, false, "no " #exptype " rows found"); \ … … 131 132 PX_FRAME_SEARCH(p2PendingFrame, p2PendingExp, p2PendingImfile); 132 133 133 rawScienceFrame *newToRawScienceFrame(newFrame *newFrame) 134 { 134 135 bool rawScienceFrameInsert(pxConfig *config, rawScienceFrame *frame) 136 { 137 PS_ASSERT_PTR_NON_NULL(config, false); 138 PS_ASSERT_PTR_NON_NULL(config->dbh, false); 139 PS_ASSERT_PTR_NON_NULL(frame, false); 140 141 psDB *dbh = config->dbh; 142 143 if (!rawScienceExpInsertObject(dbh, frame->exposure)) { 144 psError(PS_ERR_UNKNOWN, false, "dbh access failed"); 145 return false; 146 } 147 148 psArray *images = frame->images; 149 for (long i = 0; i < psArrayLength(images); i++) { 150 if (!rawImfileInsertObject(dbh, images->data[i])) { 151 psError(PS_ERR_UNKNOWN, false, "dbh access failed"); 152 return false; 153 } 154 } 155 156 return true; 157 } 158 159 rawDetrendFrame *newToRawDetrendFrame(pxConfig *config, newFrame *newFrame) 160 { 161 newExpRow *newExp = NULL; 162 135 163 PS_ASSERT_PTR_NON_NULL(newFrame, NULL); 136 164 137 newExpRow *newExp = newFrame->exposure; 138 rawScienceExpRow *rawScienceExp = rawScienceExpRowAlloc( 139 newExp->exp_id, 140 newExp->camera, 141 newExp->telescope, 142 newExp->exp_type, 143 // newExp->class, 144 newExp->imfiles, 145 "my filter", 146 "my stats" 147 ); 165 newExp = newFrame->exposure; 166 rawDetrendExpRow *rawDetrendExp = newToRawDetrendExp(config, newExp); 148 167 149 168 psArray *newImages = newFrame->images; … … 155 174 newImfile->class, 156 175 newImfile->class_id, 157 newImfile->uri, 158 "my stats" 176 newImfile->uri 159 177 ); 160 178 psArrayAdd(rawImages, 0, rawImfile); … … 162 180 } 163 181 164 raw ScienceFrame *rawScienceFrame = rawScienceFrameAlloc(rawScienceExp, rawImages);165 psFree(raw ScienceExp);182 rawDetrendFrame *rawDetrendFrame = rawDetrendFrameAlloc(rawDetrendExp, rawImages); 183 psFree(rawDetrendExp); 166 184 psFree(rawImages); 167 185 168 return raw ScienceFrame;169 } 170 171 bool raw ScienceFrameInsert(pxConfig *config, rawScienceFrame *frame)186 return rawDetrendFrame; 187 } 188 189 bool rawDetrendFrameInsert(pxConfig *config, rawDetrendFrame *frame) 172 190 { 173 191 PS_ASSERT_PTR_NON_NULL(config, false); … … 177 195 psDB *dbh = config->dbh; 178 196 179 if (!raw ScienceExpInsertObject(dbh, frame->exposure)) {197 if (!rawDetrendExpInsertObject(dbh, frame->exposure)) { 180 198 psError(PS_ERR_UNKNOWN, false, "dbh access failed"); 181 199 return false; … … 193 211 } 194 212 195 rawDetrendFrame *newToRawDetrendFrame(newFrame *newFrame) 196 { 197 newExpRow *newExp = NULL; 198 199 PS_ASSERT_PTR_NON_NULL(newFrame, NULL); 200 201 newExp = newFrame->exposure; 202 rawDetrendExpRow *rawDetrendExp = rawDetrendExpRowAlloc( 203 newExp->exp_id, 204 newExp->camera, 205 newExp->telescope, 206 newExp->exp_type, 207 // newExp->class, 208 newExp->imfiles, 209 "my filter", 210 "my stats" 213 static rawDetrendExpRow *newToRawDetrendExp(pxConfig *config, newExpRow *exp) 214 { 215 PS_ASSERT_PTR_NON_NULL(config, NULL); 216 PS_ASSERT_PTR_NON_NULL(exp, NULL); 217 218 bool status = false; 219 psString filter = psMetadataLookupStr(&status, config->args, "-filter"); 220 if (!status) { 221 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -filter"); 222 return false; 223 } 224 if (!filter) { 225 psError(PS_ERR_UNKNOWN, true, "-filter is required"); 226 return false; 227 } 228 psF32 airmass = psMetadataLookupF32(&status, config->args, "-airmass"); 229 if (!status) { 230 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -airmass"); 231 return false; 232 } 233 if (isnan(airmass)) { 234 psError(PS_ERR_UNKNOWN, true, "-airmass is required"); 235 return false; 236 } 237 psF64 ra = psMetadataLookupF64(&status, config->args, "-ra"); 238 if (!status) { 239 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -ra"); 240 return false; 241 } 242 if (isnan(ra)) { 243 psError(PS_ERR_UNKNOWN, true, "-airmass is required"); 244 return false; 245 } 246 psF64 decl = psMetadataLookupF64(&status, config->args, "-decl"); 247 if (!status) { 248 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -decl"); 249 return false; 250 } 251 if (isnan(decl)) { 252 psError(PS_ERR_UNKNOWN, true, "-decl is required"); 253 return false; 254 } 255 psF32 exp_time = psMetadataLookupF32(&status, config->args, "-exp_time"); 256 if (isnan(exp_time)) { 257 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -exp_time"); 258 return false; 259 } 260 if (!exp_time) { 261 psError(PS_ERR_UNKNOWN, true, "-exp_time is required"); 262 return false; 263 } 264 psF64 background = psMetadataLookupF64(&status, config->args, "-background"); 265 if (!status) { 266 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -background"); 267 return false; 268 } 269 if (!exp_time) { 270 psError(PS_ERR_UNKNOWN, true, "-background is required"); 271 return false; 272 } 273 274 return rawDetrendExpRowAlloc( 275 exp->exp_id, 276 exp->camera, 277 exp->telescope, 278 exp->exp_type, 279 exp->imfiles, 280 filter, 281 airmass, 282 ra, 283 decl, 284 exp_time, 285 background 211 286 ); 212 213 psArray *newImages = newFrame->images; 214 psArray *rawImages = psArrayAlloc(psArrayLength(newImages)); 215 for (long i = 0; i < psArrayLength(newImages); i++) { 216 newImfileRow *newImfile = newImages->data[i]; 217 rawImfileRow *rawImfile = rawImfileRowAlloc( 218 newImfile->exp_id, 219 newImfile->class, 220 newImfile->class_id, 221 newImfile->uri, 222 "my stats" 223 ); 224 psArrayAdd(rawImages, 0, rawImfile); 225 psFree(rawImfile); 226 } 227 228 rawDetrendFrame *rawDetrendFrame = rawDetrendFrameAlloc(rawDetrendExp, rawImages); 229 psFree(rawDetrendExp); 230 psFree(rawImages); 231 232 return rawDetrendFrame; 233 } 234 235 bool rawDetrendFrameInsert(pxConfig *config, rawDetrendFrame *frame) 236 { 237 PS_ASSERT_PTR_NON_NULL(config, false); 238 PS_ASSERT_PTR_NON_NULL(config->dbh, false); 239 PS_ASSERT_PTR_NON_NULL(frame, false); 240 241 psDB *dbh = config->dbh; 242 243 if (!rawDetrendExpInsertObject(dbh, frame->exposure)) { 244 psError(PS_ERR_UNKNOWN, false, "dbh access failed"); 245 return false; 246 } 247 248 psArray *images = frame->images; 249 for (long i = 0; i < psArrayLength(images); i++) { 250 if (!rawImfileInsertObject(dbh, images->data[i])) { 251 psError(PS_ERR_UNKNOWN, false, "dbh access failed"); 252 return false; 253 } 254 } 255 256 return true; 257 } 287 }
Note:
See TracChangeset
for help on using the changeset viewer.
