- Timestamp:
- Apr 1, 2012, 3:03:26 PM (14 years ago)
- Location:
- trunk/Ohana/src/addstar
- Files:
-
- 18 edited
- 14 copied
-
Makefile (modified) (4 diffs)
-
include/WISE.h (modified) (1 diff)
-
include/addstar.h (modified) (1 diff)
-
include/supercos.h (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/addstar/include/supercos.h )
-
src/ConfigInit.c (modified) (1 diff)
-
src/ReadStarsSDSS.c (modified) (2 diffs)
-
src/args_loadsupercos.c (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/addstar/src/args_loadsupercos.c )
-
src/args_loadwise.c (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/addstar/src/args_loadwise.c )
-
src/find_matches.c (modified) (1 diff)
-
src/find_matches_closest.c (modified) (1 diff)
-
src/find_matches_refstars.c (modified) (1 diff)
-
src/loadsupercos.c (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/addstar/src/loadsupercos.c )
-
src/loadsupercos_ops.c (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/addstar/src/loadsupercos_ops.c )
-
src/loadsupercos_plates.c (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/addstar/src/loadsupercos_plates.c )
-
src/loadsupercos_rawdata.c (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/addstar/src/loadsupercos_rawdata.c )
-
src/loadsupercos_survey.c (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/addstar/src/loadsupercos_survey.c )
-
src/loadwise.c (modified) (2 diffs)
-
src/loadwise_ops.c (modified) (1 diff)
-
src/loadwise_prelim_rawdata.c (modified) (2 diffs)
-
src/loadwise_star_full.c (modified) (5 diffs)
-
src/mkcmf.c (modified) (17 diffs)
-
src/parse_time.c (modified) (1 diff)
-
src/resort_catalog.c (modified) (1 diff)
-
src/sky_tessalation.c (modified) (1 diff)
-
test/relphot.flatcorr.dvo (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/addstar/test/relphot.flatcorr.dvo )
-
test/relphot.parallel.dvo (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/addstar/test/relphot.parallel.dvo )
-
test/relphot.reject.dvo (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/addstar/test/relphot.reject.dvo )
-
test/relphot.setphot.parallel.dvo (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/addstar/test/relphot.setphot.parallel.dvo )
-
test/relphot.variable.dvo (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/addstar/test/relphot.variable.dvo )
-
test/run.relastro.sh (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/addstar/test/run.relastro.sh )
-
test/simple.dvo (modified) (4 diffs)
-
test/tap.dvo (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/addstar/Makefile
r31496 r33653 24 24 sedstar : $(BIN)/sedstar.$(ARCH) 25 25 load2mass : $(BIN)/load2mass.$(ARCH) 26 loadwise : $(BIN)/loadwise.$(ARCH) 27 loadsupercos: $(BIN)/loadsupercos.$(ARCH) 26 28 gztest : $(BIN)/gztest.$(ARCH) 27 29 mkcmf : $(BIN)/mkcmf.$(ARCH) 28 30 29 all: addstar sedstar load2mass skycells mkcmf 31 all: addstar sedstar load2mass skycells mkcmf loadwise loadsupercos 32 33 INSTALL = addstar sedstar load2mass skycells mkcmf loadwise loadsupercos 30 34 31 35 # I need to fix the client/server version of addstar now that I have dropped Stars … … 214 218 $(SRC)/psps_ids.$(ARCH).o 215 219 220 LOAD-WISE = \ 221 $(SRC)/loadwise.$(ARCH).o \ 222 $(SRC)/loadwise_prelim_rawdata.$(ARCH).o \ 223 $(SRC)/loadwise_ops.$(ARCH).o \ 224 $(SRC)/loadwise_star_full.$(ARCH).o \ 225 $(SRC)/args_loadwise.$(ARCH).o \ 226 $(SRC)/ConfigInit.$(ARCH).o \ 227 $(SRC)/Shutdown.$(ARCH).o \ 228 $(SRC)/StarOps.$(ARCH).o \ 229 $(SRC)/find_matches_refstars.$(ARCH).o \ 230 $(SRC)/build_links.$(ARCH).o \ 231 $(SRC)/replace_match.$(ARCH).o \ 232 $(SRC)/SetSignals.$(ARCH).o \ 233 $(SRC)/update_coords.$(ARCH).o \ 234 $(SRC)/SkyRegionUtils.$(ARCH).o \ 235 $(SRC)/psps_ids.$(ARCH).o 236 237 LOAD-SUPERCOS = \ 238 $(SRC)/loadsupercos.$(ARCH).o \ 239 $(SRC)/loadsupercos_ops.$(ARCH).o \ 240 $(SRC)/loadsupercos_survey.$(ARCH).o \ 241 $(SRC)/loadsupercos_plates.$(ARCH).o \ 242 $(SRC)/loadsupercos_rawdata.$(ARCH).o \ 243 $(SRC)/args_loadsupercos.$(ARCH).o \ 244 $(SRC)/ConfigInit.$(ARCH).o \ 245 $(SRC)/Shutdown.$(ARCH).o \ 246 $(SRC)/StarOps.$(ARCH).o \ 247 $(SRC)/find_matches_refstars.$(ARCH).o \ 248 $(SRC)/build_links.$(ARCH).o \ 249 $(SRC)/replace_match.$(ARCH).o \ 250 $(SRC)/SetSignals.$(ARCH).o \ 251 $(SRC)/update_coords.$(ARCH).o \ 252 $(SRC)/SkyRegionUtils.$(ARCH).o \ 253 $(SRC)/parse_time.$(ARCH).o \ 254 $(SRC)/psps_ids.$(ARCH).o 255 216 256 SEDSTAR = \ 217 257 $(SRC)/sedstar.$(ARCH).o \ … … 241 281 $(SKYCELLS) : $(INC)/addstar.h 242 282 $(LOAD-2MASS) : $(INC)/addstar.h $(INC)/2mass.h 283 $(LOAD-WISE) : $(INC)/addstar.h $(INC)/WISE.h 243 284 $(MKCMF) : $(INC)/mkcmf.h 244 285 … … 250 291 $(BIN)/sedstar.$(ARCH) : $(SEDSTAR) 251 292 $(BIN)/load2mass.$(ARCH) : $(LOAD-2MASS) 293 $(BIN)/loadwise.$(ARCH) : $(LOAD-WISE) 294 $(BIN)/loadsupercos.$(ARCH): $(LOAD-SUPERCOS) 252 295 $(BIN)/skycells.$(ARCH) : $(SKYCELLS) 253 296 $(BIN)/mkcmf.$(ARCH) : $(MKCMF) 254 255 INSTALL = addstar sedstar load2mass skycells mkcmf256 297 257 298 # I need to fix the client/server version of addstar now that I have dropped Stars -
trunk/Ohana/src/addstar/include/WISE.h
r32346 r33653 21 21 short WISE_W1, WISE_W2, WISE_W3, WISE_W4; 22 22 23 SkyTable *get2mass_acc (SkyRegion *patch, char *path, char *accel); 24 Stars *get2mass_2DR_data (SkyRegion *region, char *filename, SkyRegion *patch, int photcode, int *nstars); 25 Stars *get2mass_AS_data (SkyRegion *region, char *filename, SkyRegion *patch, int phocode, int *nstars); 26 Stars *get2mass_AS_rawdata (SkyRegion *region, char *filename, SkyRegion *patch, int phocode, int *nstars); 23 AddstarClientOptions args_loadwise (int argc, char **argv, AddstarClientOptions options); 27 24 28 SkyTable *scan2mass_acc (char *path, char *accel); 29 int scan2mass_as_data (char *filename); 25 int loadwise_prelim_rawdata (SkyList *skytable, char *filename, AddstarClientOptions options); 30 26 31 char *skipNbounds (char *line, char bound, int Nbound, int Nbyte); 32 e_time get2mass_time (char *ptr, int Nbound, int Nbyte); 33 e_time get2mass_date (char *ptr, int Nbound, int Nmax); 27 int getWISE_setup (); 28 int getWISE_coords (char *line, double *R, double *D, int Nmax); 29 e_time getWISE_date (char *ptr, int Nbound, int Nmax); 30 e_time getWISE_time (char *ptr, int Nbound, int Nmax); 34 31 35 int load2mass_as_rawdata (SkyList *skytable, char *filename, AddstarClientOptions options); 36 SkyTable *load2mass_acc (char *path, char *accel); 37 int get2mass_3star (Stars *star, char *line, int Nmax); 38 int load2mass_catalog (Catalog *catalog, Stars *stars, int Nstars); 32 int getWISE_sortStars (WISE_Stars *tstars, int Ntstars); 33 int loadwise_star_full (Stars **star, char *line, int Nmax); 39 34 40 int get2mass_setup (int photcode); 41 int get2mass_coords (char *line, double *R, double *D, int Nmax); 42 int get2mass_star (Stars *star, char *line, int Nmax); 43 int get2mass_3star (Stars *star, char *line, int Nmax); 35 char *nextWISEfield (char *line); 36 int setWISE_cc_flag (Stars *star, char qual); 37 int setWISE_ph_qual (Stars *star, char qual); 38 int setWISE_rd_flag (Stars *star, char qual); 39 int setWISE_bl_flag (Stars *star, char qual); 40 int setWISE_gal_flag (Stars *star, char qual); 41 int setWISE_mp_flag (Stars *star, char qual); 42 int setWISE_dup_flag (Stars *star, char qual); 43 int setWISE_use_flag (Stars *star, char qual); 44 44 45 int get2mass_3star_full (Stars **star, char *line, int Nmax); 46 char *next2MASSfield (char *line); 47 int set2MASS_ph_qual (Stars *star, char qual); 48 int set2MASS_rd_flag (Stars *star, char qual); 49 int set2MASS_cc_flag (Stars *star, char qual); 50 int set2MASS_bl_flag (Stars *star, char qual); 51 int set2MASS_gal_flag (Stars *star, char qual); 52 int set2MASS_mp_flag (Stars *star, char qual); 53 int set2MASS_dup_flag (Stars *star, char qual); 54 int set2MASS_use_flag (Stars *star, char qual); 55 int get2mass_sortStars (WISE_Stars *tstars, int Ntstars); 45 char *skipNbounds (char *line, char bound, int Nbound, int Nbyte); -
trunk/Ohana/src/addstar/include/addstar.h
r31669 r33653 28 28 fprintf (stderr, "ERROR: photcode %s not found in photcode table\n", NAME); \ 29 29 exit (0); } 30 31 # define dCOS(A) ((double) cos ((double)RAD_DEG*A)) 32 # define dSIN(A) ((double) sin ((double)RAD_DEG*A)) 30 33 31 34 typedef struct { -
trunk/Ohana/src/addstar/src/ConfigInit.c
r28967 r33653 213 213 214 214 /* get detection filtering mask */ 215 if (!ScanConfig (config, "DETECTIONFILTER", "%d", 0, &options.detectionFilter)) {215 if (!ScanConfig (config, "DETECTIONFILTER", "%d", 0, &options.detectionFilter)) { 216 216 options.detectionFilter = 0; 217 fprintf (stderr, "Could not find 'DETECTIONFILTER' in config, using '%x'\n", options.detectionFilter);218 217 } 219 218 -
trunk/Ohana/src/addstar/src/ReadStarsSDSS.c
r30613 r33653 4 4 5 5 # define NFILTER 5 6 # define dCOS(A) ((double) cos ((double)RAD_DEG*A))7 # define dSIN(A) ((double) sin ((double)RAD_DEG*A))8 6 9 7 # define GET_COLUMN_5(NAME,TYPE) \ … … 279 277 } 280 278 281 // ha/dec -> alt/az282 int altaz (double *alt, double *az, double ha, double dec, double latitude) {283 284 double sind, sinh, cosh;285 286 sind = dSIN (dec) * dSIN (latitude) + dCOS (dec) * dCOS (ha) * dCOS (latitude);287 *alt = DEG_RAD * asin (sind);288 289 sinh = - dCOS (dec) * dSIN (ha);290 cosh = dSIN (dec) * dCOS (latitude) - dCOS (dec) * dCOS (ha) * dSIN (latitude);291 292 *az = DEG_RAD * atan2 (sinh, cosh);293 294 // I may need to use the parallactic angle to get the right plate rotation...295 // sinh = -dCOS(az) * dSIN(alt) * dSIN(ha) * dSIN(latitude) + dSIN(az) * dSIN(alt) * dCOS(ha) - dSIN(ha) * dCOS(alt) * dCOS(latitude);296 // cosh = -dSIN(az) * dSIN(ha) * dSIN(latitude) - dCOS(az) * dCOS(ha);297 // rot = -DEG_RAD * atan2 (sinh, cosh);298 return TRUE;299 }300 301 279 int SetSDSSFlags (Stars *star, unsigned int flags1, unsigned int flags2) { 302 280 -
trunk/Ohana/src/addstar/src/find_matches.c
r28840 r33653 291 291 292 292 for (j = 0; j < Nsecfilt; j++) { 293 catalog[0].secfilt[Nave*Nsecfilt+j].M = NAN; 294 catalog[0].secfilt[Nave*Nsecfilt+j].dM = NAN; 295 catalog[0].secfilt[Nave*Nsecfilt+j].Xm = NAN_S_SHORT; 296 catalog[0].secfilt[Nave*Nsecfilt+j].M_20 = NAN_S_SHORT; 297 catalog[0].secfilt[Nave*Nsecfilt+j].M_80 = NAN_S_SHORT; 298 catalog[0].secfilt[Nave*Nsecfilt+j].Ncode = 0; 299 catalog[0].secfilt[Nave*Nsecfilt+j].Nused = 0; 293 catalog[0].secfilt[Nave*Nsecfilt+j].M = NAN; 294 catalog[0].secfilt[Nave*Nsecfilt+j].Map = NAN; 295 catalog[0].secfilt[Nave*Nsecfilt+j].dM = NAN; 296 catalog[0].secfilt[Nave*Nsecfilt+j].Xm = NAN_S_SHORT; 297 catalog[0].secfilt[Nave*Nsecfilt+j].M_20 = NAN_S_SHORT; 298 catalog[0].secfilt[Nave*Nsecfilt+j].M_80 = NAN_S_SHORT; 299 catalog[0].secfilt[Nave*Nsecfilt+j].Ncode = 0; 300 catalog[0].secfilt[Nave*Nsecfilt+j].Nused = 0; 301 catalog[0].secfilt[Nave*Nsecfilt+j].ubercalDist = 1000; 302 catalog[0].secfilt[Nave*Nsecfilt+j].flags = 0; 303 catalog[0].secfilt[Nave*Nsecfilt+j].dummy[0] = 0; 304 catalog[0].secfilt[Nave*Nsecfilt+j].dummy[1] = 0; 300 305 } 301 306 -
trunk/Ohana/src/addstar/src/find_matches_closest.c
r32632 r33653 292 292 293 293 for (j = 0; j < Nsecfilt; j++) { 294 catalog[0].secfilt[Nave*Nsecfilt+j].M = NAN; 295 catalog[0].secfilt[Nave*Nsecfilt+j].dM = NAN; 296 catalog[0].secfilt[Nave*Nsecfilt+j].Xm = NAN_S_SHORT; 297 catalog[0].secfilt[Nave*Nsecfilt+j].M_20 = NAN_S_SHORT; 298 catalog[0].secfilt[Nave*Nsecfilt+j].M_80 = NAN_S_SHORT; 299 catalog[0].secfilt[Nave*Nsecfilt+j].Ncode = 0; 300 catalog[0].secfilt[Nave*Nsecfilt+j].Nused = 0; 294 catalog[0].secfilt[Nave*Nsecfilt+j].M = NAN; 295 catalog[0].secfilt[Nave*Nsecfilt+j].Map = NAN; 296 catalog[0].secfilt[Nave*Nsecfilt+j].dM = NAN; 297 catalog[0].secfilt[Nave*Nsecfilt+j].Xm = NAN_S_SHORT; 298 catalog[0].secfilt[Nave*Nsecfilt+j].M_20 = NAN_S_SHORT; 299 catalog[0].secfilt[Nave*Nsecfilt+j].M_80 = NAN_S_SHORT; 300 catalog[0].secfilt[Nave*Nsecfilt+j].Ncode = 0; 301 catalog[0].secfilt[Nave*Nsecfilt+j].Nused = 0; 302 catalog[0].secfilt[Nave*Nsecfilt+j].ubercalDist = 1000; 303 catalog[0].secfilt[Nave*Nsecfilt+j].flags = 0; 304 catalog[0].secfilt[Nave*Nsecfilt+j].dummy[0] = 0; 305 catalog[0].secfilt[Nave*Nsecfilt+j].dummy[1] = 0; 301 306 } 302 307 -
trunk/Ohana/src/addstar/src/find_matches_refstars.c
r29001 r33653 13 13 int Nsecfilt; 14 14 15 if ((NREFSTAR_GROUP != 1) && (NREFSTAR_GROUP != 3)) { 15 switch (NREFSTAR_GROUP) { 16 case 1: 17 case 3: 18 case 4: 19 break; 20 default: 16 21 fprintf (stderr, "ERROR: NREFSTAR_GROUP NOT SET!\n"); 17 22 exit (1); -
trunk/Ohana/src/addstar/src/loadwise.c
r32346 r33653 2 2 # include "WISE.h" 3 3 4 /* This is the DVO program to upload WISE detections into a DVO database. 5 It is modeled on the load2mass program, but unlike that case, it is expected to be run only 6 rarely (once?). The WISE data are delivered as *.bz2 files. This program assumes the files 7 have been decompressed. It does not allow a subset of the sky to be uploaded; entire WISE 8 files are loaded if supplied on the command line. 9 10 USAGE: loadwise -D CATDIR (catdir) (wisefile) [...more files] 11 12 */ 13 4 14 int main (int argc, char **argv) { 5 15 6 char *path;7 16 int i; 8 SkyTable *sky , *skyWISE;17 SkyTable *sky; 9 18 SkyList *skylist = NULL; 10 SkyList *overlap = NULL;11 19 AddstarClientOptions options; 12 20 13 21 // need to construct these options with args_loadWISE... 14 22 options = ConfigInit (&argc, argv); 15 options = args_load WISE(argc, argv, options);23 options = args_loadwise (argc, argv, options); 16 24 17 25 // load the full sky description table: … … 30 38 } 31 39 32 path = WISE_DIR_PRELIM; 33 34 // the accel.dat file has the raw filenames 35 // test if the file exists, or else try the .gz version 36 // XXX can we build an accelerator? 37 skyWISE = loadWISE_acc (path, "accel.dat"); 38 39 for (i = 0; i < skyWISE[0].Nregions; i++) { 40 // check if any of the skylist entries overlap this WISE catalog: 41 overlap = SkyListByBounds_List (skylist, -1, skyWISE[0].regions[i].Rmin, skyWISE[0].regions[i].Rmax, skyWISE[0].regions[i].Dmin, skyWISE[0].regions[i].Dmax); 42 if (overlap[0].Nregions == 0) { 43 SkyListFree (overlap); 44 continue; 45 } 46 47 fprintf (stderr, "loading %s\n", skyWISE[0].filename[i]); 48 loadWISE_as_rawdata (overlap, skyWISE[0].filename[i], options); 49 SkyListFree (overlap); 40 for (i = 1; i < argc; i++) { 41 fprintf (stderr, "loading %s\n", argv[i]); 42 loadwise_prelim_rawdata (skylist, argv[i], options); 50 43 } 51 44 exit (0); 52 45 } 46 -
trunk/Ohana/src/addstar/src/loadwise_ops.c
r32346 r33653 1 1 # include "addstar.h" 2 2 # include "WISE.h" 3 4 static int FilterSkip;5 static int TimeSkip;6 static int Qentry;7 static int Photcode;8 3 9 4 int getWISE_setup () { -
trunk/Ohana/src/addstar/src/loadwise_prelim_rawdata.c
r32346 r33653 10 10 # define DEBUG 0 11 11 12 int load WISE_as_rawdata (SkyList *skytable, char *filename, AddstarClientOptions options) {12 int loadwise_prelim_rawdata (SkyList *skytable, char *filename, AddstarClientOptions options) { 13 13 14 14 int i, j, verbose; … … 159 159 stars[Nstars+3][0].average.R = tstars[j].R; 160 160 stars[Nstars+3][0].average.D = tstars[j].D; 161 getWISE_star_full (&stars[Nstars], &buffer[offset], Nbyte - offset);161 loadwise_star_full (&stars[Nstars], &buffer[offset], Nbyte - offset); 162 162 163 163 tstars[j].flag = TRUE; -
trunk/Ohana/src/addstar/src/loadwise_star_full.c
r32346 r33653 2 2 # include "WISE.h" 3 3 4 // XXX check to see if desired output format is PS1_V1 or later? (use 16bit version if not?) 4 int setWISE_ph_qual (Stars *star, char qual); 5 int setWISE_var_flag (Stars *star, char qual); 6 int setWISE_ext_flag (Stars **star, char *ptr); 7 int setWISE_cc_flag (Stars *star, char qual); 8 int setWISE_sat_flag (Stars *star, char *ptr); 9 int setWISE_blend_flag (Stars **star, char *ptr); 5 10 6 11 // fill in the data for a WISE quad star. takes a pointer to the start of the line the 7 12 // RA and DEC have already been set 8 int getWISE_star_full (Stars **star, char *line, int Nmax) { 9 13 int loadwise_star_full (Stars **star, char *line, int Nmax) { 14 15 int i; 10 16 char *ptr; 11 double dMfull;12 double jd;13 17 14 18 if (line == NULL) Shutdown ("format error in WISE"); 15 19 20 ptr = line; 21 22 // I can assign dRA and dDEC to dX and dY if I can consistently set posangle and pltscale 23 star[0][0].measure.posangle = 0.0; 24 star[0][0].measure.pltscale = 1.0; 25 16 26 ptr = skipNbounds (ptr, '|', 3, Nmax); // skip: desig, ra, dec, 17 star[0][0].measure.FWx = ToShortPixels(strtod (ptr, NULL)); 18 ptr = nextWISEfield (ptr); // sig_dec 19 star[0][0].measure.FWy = ToShortPixels(strtod (ptr, NULL)); 20 ptr = nextWISEfield (ptr); // sig_radec 21 star[0][0].measure.theta = ToShortPixels(strtod (ptr, NULL)); 22 23 star[1][0].measure.FWx = star[0][0].measure.FWx; 24 star[1][0].measure.FWy = star[0][0].measure.FWy; 25 star[1][0].measure.theta = star[0][0].measure.theta; 26 star[2][0].measure.FWx = star[0][0].measure.FWx; 27 star[2][0].measure.FWy = star[0][0].measure.FWy; 28 star[2][0].measure.theta = star[0][0].measure.theta; 29 star[3][0].measure.FWx = star[0][0].measure.FWx; 30 star[3][0].measure.FWy = star[0][0].measure.FWy; 31 star[3][0].measure.theta = star[0][0].measure.theta; 32 33 ptr = skipNbounds (ptr, '|', 10, Nmax); // skip: glon, glat, elon, elat, wx, wy, cntr, source_id, coadd_id, src 27 star[0][0].measure.dXccd = ToShortPixels(strtod (ptr, NULL)); // sig_ra 28 ptr = nextWISEfield (ptr); 29 star[0][0].measure.dYccd = ToShortPixels(strtod (ptr, NULL)); // sig_dec 30 ptr = nextWISEfield (ptr); 31 32 // we only know a single set of values for all 4 bands 33 for (i = 1; i < 4; i++) { 34 star[i][0].measure.dXccd = star[0][0].measure.dXccd; 35 star[i][0].measure.dYccd = star[0][0].measure.dYccd; 36 star[i][0].measure.posangle = star[0][0].measure.posangle; 37 star[i][0].measure.pltscale = star[0][0].measure.pltscale; 38 } 39 ptr = skipNbounds (ptr, '|', 5, Nmax); // skip: sig_radec, glon, glat, elon, elat 40 41 star[0][0].measure.Xccd = strtod (ptr, NULL); // wx 42 ptr = nextWISEfield (ptr); // skip wx 43 star[0][0].measure.Yccd = strtod (ptr, NULL); // wy 44 ptr = nextWISEfield (ptr); // skip wy 45 46 for (i = 1; i < 4; i++) { 47 star[i][0].measure.Xccd = star[0][0].measure.Xccd; 48 star[i][0].measure.Yccd = star[0][0].measure.Yccd; 49 } 50 ptr = skipNbounds (ptr, '|', 4, Nmax); // skip: cntr, source_id, coadd_id, src 34 51 35 52 // W1 36 star[0][0].measure.M = strtod (ptr, NULL); 37 ptr = nextWISEfield (ptr); // j_cmsig 38 star[0][0].measure.dM = strtod (ptr, NULL); 39 ptr = skipNbounds (ptr, '|', 2, Nmax); // skip: w1snr, w1rchi2 40 41 // W2 42 star[1][0].measure.M = strtod (ptr, NULL); 43 ptr = nextWISEfield (ptr); // j_cmsig 44 star[1][0].measure.dM = strtod (ptr, NULL); 45 ptr = skipNbounds (ptr, '|', 2, Nmax); // skip: w2snr, w2rchi2 46 47 // W3 48 star[2][0].measure.M = strtod (ptr, NULL); 49 ptr = nextWISEfield (ptr); // j_cmsig 50 star[2][0].measure.dM = strtod (ptr, NULL); 51 ptr = skipNbounds (ptr, '|', 2, Nmax); // skip: w3snr, w3rchi2 52 53 // W4 54 star[3][0].measure.M = strtod (ptr, NULL); 55 ptr = nextWISEfield (ptr); // j_cmsig 56 star[3][0].measure.dM = strtod (ptr, NULL); 57 ptr = skipNbounds (ptr, '|', 2, Nmax); // skip: w4snr, w4rchi2 58 59 star[0][0].measure.photFlags = 0; 60 star[1][0].measure.photFlags = 0; 61 star[2][0].measure.photFlags = 0; 62 star[3][0].measure.photFlags = 0; 63 ptr = skipNbounds (ptr, '|', 8, Nmax); // skip fields 64 65 setWISE_cc_flag (star[0], ptr[0]); // cc_flg 66 setWISE_cc_flag (star[1], ptr[1]); // cc_flg 67 setWISE_cc_flag (star[2], ptr[2]); // cc_flg 68 setWISE_cc_flag (star[3], ptr[2]); // cc_flg 69 ptr = skipNbounds (ptr, '|', 2, Nmax); // skip: ext_flg, var_flg 70 71 setWISE_ph_qual (star[0], ptr[0]); // ph_qual 72 setWISE_ph_qual (star[1], ptr[1]); // ph_qual 73 setWISE_ph_qual (star[2], ptr[2]); // ph_qual 74 setWISE_ph_qual (star[3], ptr[3]); // ph_qual 75 ptr = skipNbounds (ptr, '|', 2, Nmax); // skip: ext_flg, var_flg 76 77 // setWISE_rd_flag (star[0], ptr[0]); 78 // setWISE_bl_flag (star[0], ptr[0]); 79 // setWISE_gal_flag (star[0], ptr[0]); 80 // setWISE_mp_flag (star[0], ptr[0]); 81 82 // ptr = nextWISEfield (ptr); // x_scan 83 // star[0][0].measure.Xccd = strtod (ptr, NULL); 84 // star[2][0].measure.Xccd = star[1][0].measure.Xccd = star[0][0].measure.Xccd; 85 // ptr = nextWISEfield (ptr); // jdate (julian date) 86 87 jd = 2455263.0; // NOTE : WISE prelim release does not contain per-detection time info. 53 for (i = 0; i < 4; i++) { 54 star[0][0].measure.M = strtod (ptr, NULL); // w?mpro 55 ptr = nextWISEfield (ptr); 56 star[0][0].measure.dM = strtod (ptr, NULL); // w?sigmpro 57 ptr = skipNbounds (ptr, '|', 2, Nmax); // skip: w?sigmpro, w?snr 58 star[0][0].measure.psfChisq = strtod (ptr, NULL); // w?rchi2 59 ptr = nextWISEfield (ptr); // skip : w1rchi2 60 61 // init the photFlags field 62 star[i][0].measure.photFlags = 0; 63 } 64 65 ptr = nextWISEfield (ptr); // skip: rchi2 66 67 // set blend flags for all 4 measures 68 setWISE_blend_flag (star, ptr); // nb & na both used here 69 ptr = skipNbounds (ptr, '|', 2, Nmax); // skip: nb, na 70 71 for (i = 0; i < 4; i++) { 72 setWISE_sat_flag (star[i], ptr); // w1sat 73 ptr = nextWISEfield (ptr); 74 } 75 ptr = nextWISEfield (ptr); // skip satnum 76 77 for (i = 0; i < 4; i++) { 78 setWISE_cc_flag (star[i], ptr[i]); // cc_flg 79 } 80 ptr = nextWISEfield (ptr); // skip cc_flags 81 82 // set ext flags for all 4 measures 83 setWISE_ext_flag (star, ptr); // ext_flg 84 ptr = nextWISEfield (ptr); // skip ext_flags 85 86 for (i = 0; i < 4; i++) { 87 setWISE_var_flag (star[i], ptr[i]); // var_flg 88 } 89 ptr = nextWISEfield (ptr); // skip var_flags 90 91 for (i = 0; i < 4; i++) { 92 setWISE_ph_qual (star[i], ptr[i]); // ph_qual 93 } 94 95 double jd = 2455263.0; // NOTE : WISE prelim release does not contain per-detection time info. 88 96 // the release is based on data taken in the period 14 January 2010 to 29 April 2010 89 97 star[0][0].measure.t = ohana_jd_to_sec (jd); … … 92 100 star[3][0].measure.t = star[0][0].measure.t; 93 101 94 // ptr = nextWISEfield (ptr); // j_psfchi 95 // star[0][0].measure.psfChisq = strtod (ptr, NULL); 96 // ptr = nextWISEfield (ptr); // h_psfchi 97 // star[1][0].measure.psfChisq = strtod (ptr, NULL); 98 // ptr = nextWISEfield (ptr); // k_psfchi 99 // star[2][0].measure.psfChisq = strtod (ptr, NULL); 100 // 101 // ptr = nextWISEfield (ptr); // j_m_stdap 102 // star[0][0].measure.Map = strtod (ptr, NULL); 103 // ptr = nextWISEfield (ptr); // j_msig_stdap (skip?) 104 // 105 // ptr = nextWISEfield (ptr); // h_m_stdap 106 // star[1][0].measure.Map = strtod (ptr, NULL); 107 // ptr = nextWISEfield (ptr); // h_msig_stdap (skip?) 108 // 109 // ptr = nextWISEfield (ptr); // k_m_stdap 110 // star[2][0].measure.Map = strtod (ptr, NULL); 111 // ptr = nextWISEfield (ptr); // k_msig_stdap (skip?) 112 // 113 // ptr = nextWISEfield (ptr); // dist_edge_ns (skip) 114 // ptr = nextWISEfield (ptr); // dist_edge_ew (skip) 115 // ptr = nextWISEfield (ptr); // dist_edge_flg (skip) 116 // 117 // ptr = nextWISEfield (ptr); // dup_src (one flag for all filters) 118 // setWISE_dup_flag (star[0], ptr[0]); 119 // setWISE_dup_flag (star[1], ptr[0]); 120 // setWISE_dup_flag (star[2], ptr[0]); 121 // 122 // ptr = nextWISEfield (ptr); // use_src (one flag for all filters) 123 // setWISE_use_flag (star[0], ptr[0]); 124 // setWISE_use_flag (star[1], ptr[0]); 125 // setWISE_use_flag (star[2], ptr[0]); 126 127 star[0][0].measure.photcode = TM_J; 102 star[0][0].measure.photcode = WISE_W1; 128 103 star[0][0].measure.detID = 0; 129 104 star[0][0].measure.imageID = 0; 130 105 131 star[1][0].measure.photcode = TM_H;106 star[1][0].measure.photcode = WISE_W2; 132 107 star[1][0].measure.detID = 0; 133 108 star[1][0].measure.imageID = 0; 134 109 135 star[2][0].measure.photcode = TM_K;110 star[2][0].measure.photcode = WISE_W3; 136 111 star[2][0].measure.detID = 0; 137 112 star[2][0].measure.imageID = 0; 113 114 star[3][0].measure.photcode = WISE_W4; 115 star[3][0].measure.detID = 0; 116 star[3][0].measure.imageID = 0; 138 117 139 118 return TRUE; … … 153 132 } 154 133 134 # define FLAG_PH_A 0x00000001 // quality flag 'A' 135 # define FLAG_PH_B 0x00000002 // quality flag 'B' 136 # define FLAG_PH_C 0x00000004 // quality flag 'C' 137 # define FLAG_PH_U 0x00000008 // quality flag 'U' 138 # define FLAG_PH_X 0x00000010 // quality flag 'X' 139 140 # define FLAG_SATURATED_PIX 0x00000100 // sat > 0.0 141 142 # define FLAG_CC_PERSIST 0x00010000 // 'p' or 'P' 143 # define FLAG_CC_HALO 0x00020000 // 'h' or 'H' 144 # define FLAG_CC_GHOST 0x00020000 // 'o' or 'O' (note overloading) 145 # define FLAG_CC_SPIKE 0x00040000 // 'd' or 'D' 146 # define FLAG_CC_SPURIOUS 0x00080000 // Upper Case letters 147 148 # define FLAG_BLEND_ACTIVE 0x00100000 // nb > 1, na == 0 149 # define FLAG_BLEND_PASSIVE 0x00200000 // nb > 1, na == 1 150 151 # define FLAG_EXTENDED 0x01000000 // ext == 1 152 153 # define FLAG_VARIABLE_LEVEL1 0x10000000 // var_flg == 1 to 4 154 # define FLAG_VARIABLE_LEVEL2 0x20000000 // var_flg == 5 to 7 155 # define FLAG_VARIABLE_LEVEL3 0x40000000 // var_flg == 8 or 9 156 157 int setWISE_blend_flag (Stars **star, char *ptr) { 158 159 int nb = atoi (ptr); 160 if (nb == 1) return TRUE; 161 162 ptr = nextWISEfield (ptr); // skip to na 163 int na = atoi (ptr); 164 165 if (na == 0) { 166 star[0][0].measure.photFlags |= FLAG_BLEND_ACTIVE; 167 star[1][0].measure.photFlags |= FLAG_BLEND_ACTIVE; 168 star[2][0].measure.photFlags |= FLAG_BLEND_ACTIVE; 169 star[3][0].measure.photFlags |= FLAG_BLEND_ACTIVE; 170 } else { 171 star[0][0].measure.photFlags |= FLAG_BLEND_PASSIVE; 172 star[1][0].measure.photFlags |= FLAG_BLEND_PASSIVE; 173 star[2][0].measure.photFlags |= FLAG_BLEND_PASSIVE; 174 star[3][0].measure.photFlags |= FLAG_BLEND_PASSIVE; 175 } 176 return TRUE; 177 } 178 179 int setWISE_sat_flag (Stars *star, char *ptr) { 180 181 float sat = strtod (ptr, NULL); 182 if (sat > 0.0) { 183 star[0].measure.photFlags |= FLAG_SATURATED_PIX; 184 } 185 return TRUE; 186 } 187 155 188 int setWISE_cc_flag (Stars *star, char qual) { 156 189 157 190 switch (qual) { 158 case 'p': star[0].measure.photFlags |= 0x00010000; break; 159 case 'P': star[0].measure.photFlags |= 0x00010000; break; 160 case 'h': star[0].measure.photFlags |= 0x00020000; break; 161 case 'H': star[0].measure.photFlags |= 0x00020000; break; 162 case 'd': star[0].measure.photFlags |= 0x00040000; break; 163 case 'D': star[0].measure.photFlags |= 0x00040000; break; 164 case 'o': star[0].measure.photFlags |= 0x00020000; break; 165 case 'O': star[0].measure.photFlags |= 0x00020000; break; 191 case 'p': star[0].measure.photFlags |= FLAG_CC_PERSIST; break; 192 case 'h': star[0].measure.photFlags |= FLAG_CC_HALO; break; 193 case 'd': star[0].measure.photFlags |= FLAG_CC_SPIKE; break; 194 case 'o': star[0].measure.photFlags |= FLAG_CC_GHOST; break; 195 196 case 'P': star[0].measure.photFlags |= FLAG_CC_PERSIST | FLAG_CC_SPURIOUS; break; 197 case 'H': star[0].measure.photFlags |= FLAG_CC_HALO | FLAG_CC_SPURIOUS; break; 198 case 'D': star[0].measure.photFlags |= FLAG_CC_SPIKE | FLAG_CC_SPURIOUS; break; 199 case 'O': star[0].measure.photFlags |= FLAG_CC_GHOST | FLAG_CC_SPURIOUS; break; 200 166 201 case '0': break; 167 202 default: … … 172 207 } 173 208 209 int setWISE_ext_flag (Stars **star, char *ptr) { 210 211 int ext = atoi (ptr); 212 if (ext == 1) { 213 star[0][0].measure.photFlags |= FLAG_EXTENDED; 214 star[1][0].measure.photFlags |= FLAG_EXTENDED; 215 star[2][0].measure.photFlags |= FLAG_EXTENDED; 216 star[3][0].measure.photFlags |= FLAG_EXTENDED; 217 } 218 return TRUE; 219 } 220 221 int setWISE_var_flag (Stars *star, char qual) { 222 223 int value = qual - '0'; 224 assert (value >= 0); 225 assert (value <= 9); 226 if (value == 0) return TRUE; 227 if (value < 5) { 228 star[0].measure.photFlags |= FLAG_VARIABLE_LEVEL1; 229 return TRUE; 230 } 231 if (value < 8) { 232 star[0].measure.photFlags |= FLAG_VARIABLE_LEVEL2; 233 return TRUE; 234 } 235 star[0].measure.photFlags |= FLAG_VARIABLE_LEVEL3; 236 return TRUE; 237 } 238 174 239 int setWISE_ph_qual (Stars *star, char qual) { 175 240 176 241 switch (qual) { 177 case 'A': star[0].measure.photFlags |= 0x00000001; break; // was: 0x0004178 case 'B': star[0].measure.photFlags |= 0x00000002; break; // was: 0x0005179 case 'C': star[0].measure.photFlags |= 0x00000004; break; // was: 0x0006180 case 'U': star[0].measure.photFlags |= 0x00000040; break; // was: 0x0001181 case 'X': star[0].measure.photFlags |= 0x00000080; break; // was: 0x0000242 case 'A': star[0].measure.photFlags |= FLAG_PH_A; break; 243 case 'B': star[0].measure.photFlags |= FLAG_PH_B; break; 244 case 'C': star[0].measure.photFlags |= FLAG_PH_C; break; 245 case 'U': star[0].measure.photFlags |= FLAG_PH_U; break; 246 case 'X': star[0].measure.photFlags |= FLAG_PH_X; break; 182 247 default: 183 248 fprintf (stderr, "error!\n"); … … 187 252 } 188 253 189 int setWISE_rd_flag (Stars *star, char qual) { 190 191 switch (qual) { 192 case '0': star[0].measure.photFlags |= 0x00000100; break; // was: 0x0000 193 case '1': star[0].measure.photFlags |= 0x00000200; break; // was: 0x0010 194 case '2': star[0].measure.photFlags |= 0x00000400; break; // was: 0x0020 195 case '3': star[0].measure.photFlags |= 0x00000800; break; // was: 0x0030 196 case '4': star[0].measure.photFlags |= 0x00001000; break; // was: 0x0040 197 case '6': star[0].measure.photFlags |= 0x00002000; break; // was: 0x0050 198 case '9': star[0].measure.photFlags |= 0x00004000; break; // was: 0x0060 199 default: 200 fprintf (stderr, "error!\n"); 201 exit (2); 202 } 203 return (TRUE); 204 } 205 206 int setWISE_bl_flag (Stars *star, char qual) { 207 208 switch (qual) { 209 case '0': star[0].measure.photFlags &= ~0x00300000; break; // was: ~0x0008 210 case '1': star[0].measure.photFlags |= 0x00100000; break; // was: ~0x0008 211 default: star[0].measure.photFlags |= 0x00200000; break; // was: 0x0008 212 } 213 return (TRUE); 214 } 215 216 int setWISE_gal_flag (Stars *star, char qual) { 217 218 switch (qual) { 219 case '0': star[0].measure.photFlags &= ~0x00c00000; break; // was: ~0x0080 220 case '1': star[0].measure.photFlags |= 0x00400000; break; // was: ~0x0080 221 default: star[0].measure.photFlags |= 0x00800000; // was: 0x0080 222 star[0].measure.extNsigma = 100.0; 223 break; 224 } 225 return (TRUE); 226 } 227 228 int setWISE_mp_flag (Stars *star, char qual) { 229 230 switch (qual) { 231 case '0': star[0].measure.photFlags &= ~0x03000000; break; // was: ~0x0800 232 case '1': star[0].measure.photFlags |= 0x01000000; break; // was: ~0x0800 233 default: star[0].measure.photFlags |= 0x02000000; break; // was: 0x0800 234 } 235 return (TRUE); 236 } 237 238 int setWISE_dup_flag (Stars *star, char qual) { 239 240 switch (qual) { 241 case '0': star[0].measure.photFlags &= ~0x0c000000; break; // was: ~0x1000 242 case '1': star[0].measure.photFlags |= 0x04000000; break; // was: ~0x1000 243 default: star[0].measure.photFlags |= 0x08000000; break; // was: 0x1000 244 } 245 return (TRUE); 246 } 247 248 int setWISE_use_flag (Stars *star, char qual) { 249 250 switch (qual) { 251 case '0': star[0].measure.photFlags &= ~0x10000000; break; // was: ~0x2000 252 case '1': star[0].measure.photFlags |= 0x10000000; break; // was: 0x2000 253 default: abort(); 254 } 255 return (TRUE); 256 } 257 258 // unused photFlags: 259 // 0x0000.8000 260 // 0x0004.0000 261 // 0x0008.0000 262 // 0x2000.0000 263 // 0x4000.0000 264 // 0x8000.0000 254 /* unused photFlag bits: 255 256 0x0000.0020 257 0x0000.0040 258 0x0000.0080 259 260 0x0000.0200 261 0x0000.0400 262 0x0000.0800 263 264 0x0000.1000 265 0x0000.2000 266 0x0000.4000 267 0x0000.8000 268 269 0x0040.0000 270 0x0080.0000 271 272 0x0200.0000 273 0x0400.0000 274 0x0800.0000 275 276 0x8000.0000 277 278 */ -
trunk/Ohana/src/addstar/src/mkcmf.c
r27582 r33653 14 14 void gauss_init (int Nbin); 15 15 double rnd_gauss (double mean, double sigma); 16 void writeStars_PS1_V2 (FTable *ftable, double *X, double *Y, double *M, int Nstars);16 void writeStars_PS1_V2 (FTable *ftable, double *X, double *Y, double *M, unsigned int *Flag, int Nstars); 17 17 void writeStars_PS1_V1 (FTable *ftable, double *X, double *Y, double *M, int Nstars); 18 18 void writeStars_PS1_DEV_1 (FTable *ftable, double *X, double *Y, double *M, int Nstars); 19 19 void writeStars_PS1_DEV_0 (FTable *ftable, double *X, double *Y, double *M, int Nstars); 20 20 21 int ADDNOISE = TRUE; 22 float BAD_PSFQF_FRAC = 0.0; 23 21 24 int main (int argc, char **argv) { 22 25 … … 25 28 26 29 int N, Nstars, NSTARS, found; 30 unsigned int *Flag; 27 31 double *X, *Y, *M, Xmax, Ymax; 28 32 … … 34 38 Coords coords; 35 39 40 static char *photcode = "SIMTEST.r.Chip"; 41 if ((N = get_argument (argc, argv, "-photcode"))) { 42 remove_argument (N, &argc, argv); 43 photcode = strcreate (argv[N]); 44 remove_argument (N, &argc, argv); 45 } 46 47 static double mjd; 48 mjd = NAN; 49 if ((N = get_argument (argc, argv, "-mjd"))) { 50 remove_argument (N, &argc, argv); 51 mjd = strtod (argv[N], NULL); 52 remove_argument (N, &argc, argv); 53 } 54 36 55 static char *date = "2001-01-01"; 37 56 if ((N = get_argument (argc, argv, "-date"))) { … … 58 77 } 59 78 79 double CRPIX1 = 0.0; 80 double CRPIX2 = 0.0; 81 if ((N = get_argument (argc, argv, "-crpix"))) { 82 remove_argument (N, &argc, argv); 83 CRPIX1 = atof (argv[N]); 84 remove_argument (N, &argc, argv); 85 CRPIX2 = atof (argv[N]); 86 remove_argument (N, &argc, argv); 87 } 88 89 float exptime = 1.0; 90 if ((N = get_argument (argc, argv, "-exptime"))) { 91 remove_argument (N, &argc, argv); 92 exptime = atof (argv[N]); 93 remove_argument (N, &argc, argv); 94 } 95 96 // XXX note that the airmass and ra,dec,mjd can be inconsistent (for a given observatory location) 97 float airmass = 1.0; 98 if ((N = get_argument (argc, argv, "-airmass"))) { 99 remove_argument (N, &argc, argv); 100 airmass = atof (argv[N]); 101 remove_argument (N, &argc, argv); 102 } 103 104 int NX = 0; 105 int NY = 0; 106 if ((N = get_argument (argc, argv, "-size"))) { 107 remove_argument (N, &argc, argv); 108 NX = atof (argv[N]); 109 remove_argument (N, &argc, argv); 110 NY = atof (argv[N]); 111 remove_argument (N, &argc, argv); 112 } 113 60 114 // add support for all cmf types 61 115 static char *type = "PS1_V2"; … … 66 120 } 67 121 122 // add support for all cmf types 123 int FROM_COORDS = FALSE; 124 if ((N = get_argument (argc, argv, "-coords"))) { 125 remove_argument (N, &argc, argv); 126 FROM_COORDS = TRUE; 127 } 128 129 // expect a field with the photom flags for each detection 130 int READ_FLAGS = FALSE; 131 if ((N = get_argument (argc, argv, "-flags"))) { 132 remove_argument (N, &argc, argv); 133 READ_FLAGS = TRUE; 134 } 135 136 // add support for all cmf types 137 ADDNOISE = TRUE; 138 if ((N = get_argument (argc, argv, "-no-noise"))) { 139 remove_argument (N, &argc, argv); 140 ADDNOISE = FALSE; 141 } 142 143 // random bad PSF_QF values 144 if ((N = get_argument (argc, argv, "-bad-psfqf-frac"))) { 145 remove_argument (N, &argc, argv); 146 BAD_PSFQF_FRAC = atof(argv[N]); 147 remove_argument (N, &argc, argv); 148 } 149 68 150 if (argc != 3) { 69 151 fprintf (stderr, "USAGE mkcmf (input) (output) [-date date] [-time time] [-radec ra dec] [-cmftype type]\n"); … … 71 153 } 72 154 155 /* bore site center guess */ 156 strcpy (coords.ctype, "DEC--TAN"); 157 coords.crval1 = RA; 158 coords.crval2 = DEC; 159 coords.crpix1 = CRPIX1; 160 coords.crpix2 = CRPIX2; 161 162 coords.cdelt1 = 0.25/3600.0; 163 coords.cdelt2 = 0.25/3600.0; 164 165 coords.pc1_1 = 1; 166 coords.pc2_2 = 1; 167 coords.pc1_2 = 0; 168 coords.pc2_1 = 0; 169 coords.Npolyterms = 1; 170 171 // load stars and generate complete output fields 73 172 f = fopen (argv[1], "r"); 74 173 if (f == NULL) { … … 83 182 ALLOCATE (Y, double, NSTARS); 84 183 ALLOCATE (M, double, NSTARS); 184 ALLOCATE (Flag, unsigned int, NSTARS); 85 185 86 186 Xmax = Ymax = 0; 87 while (fscanf (f, "%lf %lf %lf", &X[Nstars], &Y[Nstars], &M[Nstars]) != EOF) { 187 while (1) { 188 int status; 189 double ra, dec, mag, xobs, yobs, xraw, yraw, mraw; 190 unsigned int flags; 191 if (FROM_COORDS) { 192 status = fscanf (f, "%lf %lf %lf %lf %lf %lf", &ra, &dec, &mag, &xraw, &yraw, &mraw); 193 RD_to_XY (&xobs, &yobs, ra, dec, &coords); 194 } else { 195 status = fscanf (f, "%lf %lf %lf", &xobs, &yobs, &mraw); 196 } 197 if (status == EOF) break; 198 if (READ_FLAGS) { 199 status = fscanf (f, "%x", &flags); 200 if (status == EOF) { 201 fprintf (stderr, "error: missing flag for last star?\n"); 202 exit (1); 203 } 204 Flag[Nstars] = flags; 205 } else { 206 Flag[Nstars] = 0; 207 } 208 209 X[Nstars] = xobs; 210 Y[Nstars] = yobs; 211 M[Nstars] = mraw; 212 88 213 Xmax = MAX(Xmax, X[Nstars]); 89 214 Ymax = MAX(Ymax, Y[Nstars]); … … 94 219 REALLOCATE (Y, double, NSTARS); 95 220 REALLOCATE (M, double, NSTARS); 221 REALLOCATE (Flag, unsigned int, NSTARS); 96 222 } 97 223 Nstars ++; 224 } 225 if (NX && NY) { 226 Xmax = NX; 227 Ymax = NY; 98 228 } 99 229 … … 106 236 107 237 // XXX add minimum needed header fields 108 gfits_print (&header, "IMNAXIS1", "%d", 1, (int)(Xmax + 50));109 gfits_print (&header, "IMNAXIS2", "%d", 1, (int)(Ymax + 50));238 gfits_print (&header, "IMNAXIS1", "%d", 1, (int)(Xmax)); 239 gfits_print (&header, "IMNAXIS2", "%d", 1, (int)(Ymax)); 110 240 111 241 gfits_modify (&header, "NSTARS", "%d", 1, Nstars); 112 gfits_modify (&header, "PHOTCODE", "%s", 1, "SIMTEST.r.Chip"); 113 gfits_modify (&header, "DATE-OBS", "%s", 1, date); 114 gfits_modify (&header, "UTC-OBS", "%s", 1, time); 242 gfits_modify (&header, "PHOTCODE", "%s", 1, photcode); 243 if (isfinite(mjd)) { 244 gfits_modify (&header, "MJD-OBS", "%lf", 1, mjd); 245 } else { 246 gfits_modify (&header, "DATE-OBS", "%s", 1, date); 247 gfits_modify (&header, "UTC-OBS", "%s", 1, time); 248 } 115 249 gfits_modify (&header, "ZERO_PT", "%lf", 1, 25.0); 116 gfits_modify (&header, "EXPTIME", "%lf", 1, 1.0);117 gfits_modify (&header, "AIRMASS", "%lf", 1, 1.0);250 gfits_modify (&header, "EXPTIME", "%lf", 1, exptime); 251 gfits_modify (&header, "AIRMASS", "%lf", 1, airmass); 118 252 gfits_modify (&header, "NASTRO", "%d", 1, 10); 119 253 120 254 gfits_modify (&header, "IMAGEID", "%d", 1, (int)(1000*drand48())); 121 255 gfits_modify (&header, "SOURCEID", "%d", 1, (int)(100*drand48())); 122 123 /* bore site center guess */124 strcpy (coords.ctype, "DEC--TAN");125 coords.crval1 = RA;126 coords.crval2 = DEC;127 coords.crpix1 = 0.0;128 coords.crpix2 = 0.0;129 130 coords.cdelt1 = 0.25/3600.0;131 coords.cdelt2 = 0.25/3600.0;132 133 coords.pc1_1 = 1;134 coords.pc2_2 = 1;135 coords.pc1_2 = 0;136 coords.pc2_1 = 0;137 coords.Npolyterms = 1;138 256 139 257 PutCoords (&coords, &header); … … 157 275 } 158 276 if (!strcmp(type, "PS1_V2")) { 159 writeStars_PS1_V2 (&ftable, X, Y, M, Nstars);277 writeStars_PS1_V2 (&ftable, X, Y, M, Flag, Nstars); 160 278 found = TRUE; 161 279 } … … 211 329 212 330 A = time(NULL); 213 for (B = 0; A == time(NULL); B++); 331 // XXX this is expensive if called a lot (1 sec min) 332 // for (B = 0; A == time(NULL); B++); 333 B = A + 10000; 214 334 srand48(B); 215 335 … … 273 393 fSN = 1.0 / sqrt(flux); 274 394 275 stars[i].X = X[i] + FX * fSN * rnd_gauss(0.0, 1.0); 276 stars[i].Y = Y[i] + FY * fSN * rnd_gauss(0.0, 1.0); 277 stars[i].M = M[i] + fSN*rnd_gauss(0.0, 1.0); 395 stars[i].X = X[i]; 396 stars[i].Y = Y[i]; 397 stars[i].M = M[i]; 398 399 if (ADDNOISE) { 400 stars[i].X += FX * fSN * rnd_gauss(0.0, 1.0); 401 stars[i].Y += FY * fSN * rnd_gauss(0.0, 1.0); 402 stars[i].M += fSN*rnd_gauss(0.0, 1.0); 403 } 278 404 279 405 stars[i].dX = FX * fSN; … … 312 438 fSN = 1.0 / sqrt(flux); 313 439 314 stars[i].X = X[i] + FX * fSN * rnd_gauss(0.0, 1.0); 315 stars[i].Y = Y[i] + FY * fSN * rnd_gauss(0.0, 1.0); 316 stars[i].M = M[i] + fSN*rnd_gauss(0.0, 1.0); 440 stars[i].X = X[i]; 441 stars[i].Y = Y[i]; 442 stars[i].M = M[i]; 443 444 if (ADDNOISE) { 445 stars[i].X += FX * fSN * rnd_gauss(0.0, 1.0); 446 stars[i].Y += FY * fSN * rnd_gauss(0.0, 1.0); 447 stars[i].M += fSN*rnd_gauss(0.0, 1.0); 448 } 317 449 318 450 stars[i].dX = FX * fSN; … … 354 486 fSN = 1.0 / sqrt(flux); 355 487 356 stars[i].X = X[i] + FX * fSN * rnd_gauss(0.0, 1.0); 357 stars[i].Y = Y[i] + FY * fSN * rnd_gauss(0.0, 1.0); 358 stars[i].M = M[i] + fSN*rnd_gauss(0.0, 1.0); 488 stars[i].X = X[i]; 489 stars[i].Y = Y[i]; 490 stars[i].M = M[i]; 491 492 if (ADDNOISE) { 493 stars[i].X += FX * fSN * rnd_gauss(0.0, 1.0); 494 stars[i].Y += FY * fSN * rnd_gauss(0.0, 1.0); 495 stars[i].M += fSN*rnd_gauss(0.0, 1.0); 496 } 359 497 360 498 stars[i].dX = FX * fSN; … … 380 518 } 381 519 382 void writeStars_PS1_V2 (FTable *ftable, double *X, double *Y, double *M, int Nstars) {520 void writeStars_PS1_V2 (FTable *ftable, double *X, double *Y, double *M, unsigned int *Flag, int Nstars) { 383 521 384 522 int i; … … 396 534 fSN = 1.0 / sqrt(flux); 397 535 398 stars[i].X = X[i] + FX * fSN * rnd_gauss(0.0, 1.0); 399 stars[i].Y = Y[i] + FY * fSN * rnd_gauss(0.0, 1.0); 400 stars[i].M = M[i] + fSN*rnd_gauss(0.0, 1.0); 401 536 stars[i].X = X[i]; 537 stars[i].Y = Y[i]; 538 stars[i].M = M[i]; 539 540 if (ADDNOISE) { 541 stars[i].X += FX * fSN * rnd_gauss(0.0, 1.0); 542 stars[i].Y += FY * fSN * rnd_gauss(0.0, 1.0); 543 stars[i].M += fSN*rnd_gauss(0.0, 1.0); 544 } 545 546 // randomly give poor PSFQF values 547 if ((BAD_PSFQF_FRAC > 0.0) && (drand48() < BAD_PSFQF_FRAC)) { 548 stars[i].psfQual = 0.25; 549 } else { 550 stars[i].psfQual = PSFQUAL; 551 } 552 402 553 stars[i].dX = FX * fSN; 403 554 stars[i].dY = FY * fSN; … … 413 564 stars[i].fy = FY; 414 565 stars[i].df = DF; 415 stars[i].psfQual = PSFQUAL;416 566 stars[i].nFrames = 1; 417 stars[i].flags = F LAGS;567 stars[i].flags = Flag[i]; 418 568 } 419 569 -
trunk/Ohana/src/addstar/src/parse_time.c
r17419 r33653 145 145 146 146 } 147 148 // ha/dec -> alt/az 149 int altaz (double *alt, double *az, double ha, double dec, double latitude) { 150 151 double sind, sinh, cosh; 152 153 sind = dSIN (dec) * dSIN (latitude) + dCOS (dec) * dCOS (ha) * dCOS (latitude); 154 *alt = DEG_RAD * asin (sind); 155 156 sinh = - dCOS (dec) * dSIN (ha); 157 cosh = dSIN (dec) * dCOS (latitude) - dCOS (dec) * dCOS (ha) * dSIN (latitude); 158 159 *az = DEG_RAD * atan2 (sinh, cosh); 160 161 // I may need to use the parallactic angle to get the right plate rotation... 162 // sinh = -dCOS(az) * dSIN(alt) * dSIN(ha) * dSIN(latitude) + dSIN(az) * dSIN(alt) * dCOS(ha) - dSIN(ha) * dCOS(alt) * dCOS(latitude); 163 // cosh = -dSIN(az) * dSIN(ha) * dSIN(latitude) - dCOS(az) * dCOS(ha); 164 // rot = -DEG_RAD * atan2 (sinh, cosh); 165 return TRUE; 166 } 167 -
trunk/Ohana/src/addstar/src/resort_catalog.c
r31160 r33653 28 28 return; 29 29 } 30 31 # define myAbort(MSG) { fprintf (stderr, "%s\n", MSG); abort(); }32 # define myAssert(LOGIC,MSG) { if (!(LOGIC)) { fprintf (stderr, "%s\n", MSG); abort(); } }33 30 34 31 // sort the measure Sequence based on the average Sequence entries -
trunk/Ohana/src/addstar/src/sky_tessalation.c
r31239 r33653 546 546 } 547 547 548 // define the parameters of a single sky projection center 548 // define the parameters of a projection centers for this ring 549 // dec : ~ center of ring in Dec 550 // dDEC : approximate height 551 // nring : number of cells generated for this ring 552 // format : guide to generate the filenames (c-type string format) 549 553 SkyRectangle *sky_rectangle_ring (float dec, float dDEC, int *nring, char *format) { 550 554 -
trunk/Ohana/src/addstar/test/simple.dvo
r27582 r33653 8 8 test.fields PS1_V1 PS1_V1 9 9 test.fields PS1_V2 PS1_V1 10 test.fields PS1_V3 PS1_V1 10 11 11 12 test.fields PS1_DEV_0 PS1_V2 … … 13 14 test.fields PS1_V1 PS1_V2 14 15 test.fields PS1_V2 PS1_V2 16 test.fields PS1_V3 PS1_V2 17 18 test.fields PS1_DEV_0 PS1_V3 19 test.fields PS1_DEV_1 PS1_V3 20 test.fields PS1_V1 PS1_V3 21 test.fields PS1_V2 PS1_V3 22 test.fields PS1_V3 PS1_V3 15 23 end 16 24 … … 31 39 mkinput 32 40 exec mkcmf test.in.txt test.cmf -date 2008/1/1 -time 01:00:00 -radec $RA $DEC -type $1 33 exec addstar -D CATDIR catdir.test -D CAMERA simtest test.cmf -D CATFORMAT $2 41 exec addstar -D CATDIR catdir.test -D CAMERA simtest test.cmf -D CATFORMAT $2 -quick-airmass 34 42 35 43 list testfields -copy testfields_$1 … … 220 228 N_FRAMES : SKIP # no accessor 221 229 end 230 231 # this list is good for PS1_V3 232 list testfields_PS1_V3 233 IPP_IDET : detid 234 X_PSF : xccd 235 Y_PSF : yccd 236 X_PSF_SIG : xccd:err # FAIL 237 Y_PSF_SIG : yccd:err # FAIL 238 RA_PSF : SKIP # astrometry is not calibrated in the cmf 239 DEC_PSF : SKIP # astrometry is not calibrated in the cmf 240 POSANGLE : SKIP # astrometry is not calibrated in the cmf 241 PLTSCALE : SKIP # astrometry is not calibrated in the cmf 242 PSF_INST_MAG : mag:inst 243 PSF_INST_MAG_SIG : mag:err 244 AP_MAG_STANDARD : mag:ap # FAIL 245 AP_MAG_RADIUS : SKIP # no accessor 246 PEAK_FLUX_AS_MAG : SKIP # no accessor 247 CAL_PSF_MAG : SKIP # photometry is not calibrated in the cmf 248 CAL_PSF_MAG_SIG : SKIP # photometry is not calibrated in the cmf 249 SKY : sky 250 SKY_SIG : sky_err 251 PSF_CHISQ : psf_chisq 252 CR_NSIGMA : cr_nsigma 253 EXT_NSIGMA : ext_nsigma 254 PSF_MAJOR : FWHM_MAJ 255 PSF_MINOR : FWHM_MIN 256 PSF_THETA : THETA # FAIL 257 PSF_QF : PSF_QF 258 PSF_NDOF : SKIP # no accessor 259 PSF_NPIX : SKIP # no accessor 260 MOMENTS_XX : SKIP # no accessor 261 MOMENTS_XY : SKIP # no accessor 262 MOMENTS_YY : SKIP # no accessor 263 FLAGS : phot_flags 264 N_FRAMES : SKIP # no accessor 265 end -
trunk/Ohana/src/addstar/test/tap.dvo
r27435 r33653 1 1 # -*-sh-*- 2 3 if (not($?TAP_BREAK)) set TAP_BREAK = 0 2 4 3 5 macro tapOK … … 29 31 $TAP_NTEST = $1 30 32 $TAP_NFAIL = 0 33 $TAP_NSKIP = 0 31 34 $TAP_NDONE = 0 32 35 if (not($?TAP_BREAK)) set TAP_BREAK = 0 36 end 37 38 macro tapSKIP 39 if ($0 != 2) 40 echo "USAGE: tapSKIP (nskip)" 41 break 42 end 43 44 $TAP_NSKIP ++ 45 $TAP_NDONE ++ 33 46 end 34 47 … … 47 60 end 48 61 49 if ($TAP_NFAIL == 0) 62 if ($TAP_NSKIP) 63 echo "skipped $TAP_NSKIP of $TAP_NDONE" 64 end 65 66 if ($TAP_NFAIL + $TAP_NSKIP == 0) 50 67 echo "passed $TAP_NDONE tests" 51 68 end
Note:
See TracChangeset
for help on using the changeset viewer.
