Changeset 37523
- Timestamp:
- Oct 22, 2014, 10:24:44 AM (12 years ago)
- Location:
- branches/eam_branches/ipp-20140904/Ohana/src/fakeastro
- Files:
-
- 13 edited
-
Makefile (modified) (1 diff)
-
include/fakeastro.h (modified) (4 diffs)
-
src/ConfigInit.c (modified) (1 diff)
-
src/fakeastro.c (modified) (1 diff)
-
src/fakeastro_2mass.c (modified) (3 diffs)
-
src/fakestar_io.c (modified) (4 diffs)
-
src/fit_fake_stars.c (modified) (2 diffs)
-
src/make_2mass_measures.c (modified) (4 diffs)
-
src/make_fake_stars_catalog.c (modified) (2 diffs)
-
src/make_fakeqsos.c (modified) (1 diff)
-
src/make_fakestars.c (modified) (1 diff)
-
src/match_fake_stars.c (modified) (7 diffs)
-
src/save_fake_stars.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/Makefile
r37481 r37523 53 53 $(SRC)/save_fake_stars.$(ARCH).o \ 54 54 $(SRC)/match_fake_stars.$(ARCH).o \ 55 $(SRC)/fakeastro_2mass.$(ARCH).o \ 56 $(SRC)/make_2mass_measures.$(ARCH).o \ 55 57 $(SRC)/remote_hosts.$(ARCH).o 56 58 -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/include/fakeastro.h
r37481 r37523 6 6 # include <pthread.h> 7 7 8 typedef enum {OP_NONE, OP_GALAXY, OP_IMAGES} FakeastroOp; 8 # define RESETTIME { gettimeofday (&startTimer, (void *) NULL); } 9 10 typedef enum {OP_NONE, OP_GALAXY, OP_IMAGES, OP_2MASS} FakeastroOp; 9 11 10 12 typedef struct { … … 30 32 Average average; 31 33 Measure measure; 34 StarPar starpar; 32 35 int found; 33 36 } Stars; … … 94 97 float FAKEASTRO_RGAL; // parsec 95 98 char FAKEASTRO_REF_EPOCH[80]; 99 char FAKEASTRO_2MASS_EPOCH[80]; 96 100 97 101 float RADIUS; … … 188 192 FakeAstro_Stars *make_fakeqsos (int Nstars, int ICRF); 189 193 194 int fakeastro_2mass (); 195 int make_2mass_measures (Catalog *catalog); -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/ConfigInit.c
r37481 r37523 57 57 strcpy (FAKEASTRO_REF_EPOCH, "2011/05/11,00:00:00"); // epoch of reference catalog 58 58 } 59 if (!ScanConfig (config, "FAKEASTRO_2MASS_EPOCH", "%s", 0, FAKEASTRO_2MASS_EPOCH)) { 60 strcpy (FAKEASTRO_2MASS_EPOCH, "2000/01/01,00:00:00"); // epoch of reference catalog 61 } 59 62 60 63 /* set the default search radius */ -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/fakeastro.c
r37496 r37523 11 11 case OP_GALAXY: 12 12 /* the object analysis is a separate process iterating over catalogs */ 13 fakeastro_galaxy (); 13 fakeastro_galaxy (); // generate fake stars following a galaxy model 14 /* make_fakestars() -- generates FakeAstro_Stars with density,distance and uR,uD following galaxy model 15 make_fakeqsos() 16 sortStars() 17 make_subset() 18 save_fakestars() 19 fakestar_catalog() 20 insert_fakestar() -- converts suppied FakeAstro_Stars and populates average/secfilt/starpar structures 21 (fakestar_save_stars) [fakeastro_client / fakestar_load_stars] 22 */ 14 23 exit (0); 15 24 16 25 case OP_IMAGES: 17 26 fakeastro_images (); 27 /* fakeastro_images_region() 28 load_fake_stars() 29 make_fake_images() 30 make_fake_stars() 31 fit_fake_stars() 32 save_fake_stars() 33 match_fake_stars() 34 */ 18 35 exit (0); 19 36 20 37 case OP_2MASS: 21 38 fakeastro_2mass (); 39 /* make_2mass_measures() 40 */ 22 41 exit (0); 23 42 -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/fakeastro_2mass.c
r37496 r37523 8 8 SkyTableSetFilenames (skyTable, CATDIR, "cpt"); 9 9 10 SkyList *sky List = SkyListByPatch (skyTable, -1, &UserPatch);10 SkyList *skylist = SkyListByPatch (skyTable, -1, &UserPatch); 11 11 12 12 Catalog catalog; … … 21 21 catalog.catformat = dvo_catalog_catformat (CATFORMAT); // set the default catformat from config data 22 22 catalog.catmode = dvo_catalog_catmode (CATMODE); // set the default catmode from config data 23 catalog.catflags = LOAD_AVES | LOAD_SECF | LOAD_MEAS | LOAD_STARPAR;23 catalog.catflags = LOAD_AVES | LOAD_SECF | LOAD_MEAS | LOAD_STARPAR; 24 24 catalog.Nsecfilt = GetPhotcodeNsecfilt (); 25 25 if (!dvo_catalog_open (&catalog, skylist[0].regions[i], VERBOSE, "r")) { … … 43 43 dvo_catalog_free (&catalog); 44 44 if (VERBOSE) MARKTIME ("save cpt: %f sec\n", dtime); RESETTIME; 45 46 45 } 47 46 48 47 exit (0); -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/fakestar_io.c
r37449 r37523 27 27 gfits_define_bintable_column (&theader, "D", "RA", "", "degree", 1.0, 0.0); 28 28 gfits_define_bintable_column (&theader, "D", "DEC", "", "degree", 1.0, 0.0); 29 gfits_define_bintable_column (&theader, " D", "GLON", "", "degree", 1.0, 0.0);30 gfits_define_bintable_column (&theader, " D", "GLAT", "", "degree", 1.0, 0.0);29 gfits_define_bintable_column (&theader, "E", "GLON", "", "degree", 1.0, 0.0); 30 gfits_define_bintable_column (&theader, "E", "GLAT", "", "degree", 1.0, 0.0); 31 31 gfits_define_bintable_column (&theader, "E", "Ebv", "", "", 1.0, 0.0); 32 32 gfits_define_bintable_column (&theader, "E", "dEbv", "", "", 1.0, 0.0); … … 44 44 double *ra = NULL; ALLOCATE (ra , double , Nstars); for (i = 0; i < Nstars; i++) ra [i] = stars[i].R ; 45 45 double *dec = NULL; ALLOCATE (dec , double , Nstars); for (i = 0; i < Nstars; i++) dec [i] = stars[i].D ; 46 double *glon = NULL; ALLOCATE (glon , double, Nstars); for (i = 0; i < Nstars; i++) glon [i] = stars[i].starpar.galLon ;47 double *glat = NULL; ALLOCATE (glat , double, Nstars); for (i = 0; i < Nstars; i++) glat [i] = stars[i].starpar.galLat ;46 float *glon = NULL; ALLOCATE (glon , float , Nstars); for (i = 0; i < Nstars; i++) glon [i] = stars[i].starpar.galLon ; 47 float *glat = NULL; ALLOCATE (glat , float , Nstars); for (i = 0; i < Nstars; i++) glat [i] = stars[i].starpar.galLat ; 48 48 float *Ebv = NULL; ALLOCATE (Ebv , float , Nstars); for (i = 0; i < Nstars; i++) Ebv [i] = stars[i].starpar.Ebv ; 49 49 float *dEbv = NULL; ALLOCATE (dEbv , float , Nstars); for (i = 0; i < Nstars; i++) dEbv [i] = stars[i].starpar.dEbv ; … … 135 135 GET_COLUMN(ra , "RA" , double); 136 136 GET_COLUMN(dec , "DEC" , double); 137 GET_COLUMN(glon , "GLON" , double);138 GET_COLUMN(glat , "GLAT" , double);137 GET_COLUMN(glon , "GLON" , float); 138 GET_COLUMN(glat , "GLAT" , float); 139 139 GET_COLUMN(Ebv , "Ebv" , float); 140 140 GET_COLUMN(dEbv , "dEbv" , float); … … 159 159 stars[i].R = ra [i]; 160 160 stars[i].D = dec [i]; 161 stars[i].starpar.R = ra [i]; 162 stars[i].starpar.D = dec [i]; 161 163 stars[i].starpar.galLon = glon [i]; 162 164 stars[i].starpar.galLat = glat [i]; -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/fit_fake_stars.c
r37478 r37523 12 12 if (Nstars > 225) order_use = 5; // 9 stars per cell 13 13 if (Nstars > 360) order_use = 6; // 10 stars per cell 14 if (order_use < 1) { 15 fprintf (stderr, "insufficient measurements (%d) for linear fit\n", Nstars); 16 image[0].flags |= ID_IMAGE_ASTROM_FEW; 17 return FALSE; 18 } 14 19 15 20 // I have Nstars with "reference" positions stars[].Rref,Dref and … … 19 24 20 25 int CHIPMAP = (image[0].coords.Npolyterms == -1); 21 image[0].coords.Npolyterms = CHIPMAP ? -1 : order_use;26 image[0].coords.Npolyterms = CHIPMAP ? 1 : order_use; 22 27 23 28 CoordFit *fit = fit_init (image[0].coords.Npolyterms); -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/make_2mass_measures.c
r37496 r37523 3 3 // region corresponds to the catalog 4 4 int make_2mass_measures (Catalog *catalog) { 5 6 int Nsecfilt = GetPhotcodeNsecfilt (); 5 7 6 8 Average *average = catalog->average; … … 9 11 Measure *measure = catalog->measure; 10 12 13 time_t timeRef = ohana_date_to_sec(FAKEASTRO_REF_EPOCH); 14 time_t tzero_2mass = ohana_date_to_sec(FAKEASTRO_2MASS_EPOCH); 15 16 // tzero, timeRef are in UNIX seconds, Toffset should be in years 17 double Toffset = (tzero_2mass - timeRef) / 365.25 / 86400.0; 18 19 // use photcode to get zero point 20 PhotCode *codeJ = GetPhotcodebyName ("2MASS_J"); 21 // PhotCode *codeH = GetPhotcodebyName ("2MASS_H"); 22 // PhotCode *codeK = GetPhotcodebyName ("2MASS_K"); 23 24 float ZP = 21.0; // this is chosen to give 16.0 mag stars a flux of 100.0 counts (crude, yes) 25 float SkyCts = 300.0; // this is chosen to make SN @ 16.0 = 5.0 ( 26 27 int Nmeasure = catalog->Nmeasure; 28 int NMEASURE = catalog->Nmeasure; 29 30 int Nsec = 4; // y-band 31 11 32 int i; 12 33 for (i = 0; i < catalog->Naverage; i++) { 13 34 14 int nStar = average[i].starparOffset; 35 if (Nmeasure >= NMEASURE) { 36 NMEASURE = Nmeasure + 1000; 37 REALLOCATE (catalog[0].measure, Measure, NMEASURE); 38 measure = catalog[0].measure; 39 } 15 40 16 // which filter? 17 double y_PS1 = secfilt[i*Nsecfilt + 4].M - ZP; 41 int Nstarpar = average[i].starparOffset; 42 43 // make a crude JHK color for now: 44 double J_PS1 = secfilt[i*Nsecfilt + Nsec].M - 1.0; // make all stars have y-J = 1.0 45 if (J_PS1 > 16.0) continue; // only generate 2MASS detections for objects with J_PS1 < 16.0 46 47 double Minst = J_PS1 - ZP; 48 18 49 double Counts = pow(10.0, -0.4*Minst); 19 50 … … 21 52 22 53 // true position from src catalog 23 // XXX need to save the true position somewhere... 24 double Rtru = average[i].R; 25 double Dtru = average[i].D; 54 double Rtru = starpar[Nstarpar].R; 55 double Dtru = starpar[Nstarpar].D; 26 56 27 57 // observed position is scattered from true position by: 28 58 // * proper motion 29 59 // * gaussian scatter (~ seeing) 30 double uR = starpar[ nStar].uRA; // starpar are in arcsec / year31 double uD = starpar[ nStar].uDEC;60 double uR = starpar[Nstarpar].uRA; // starpar are in arcsec / year 61 double uD = starpar[Nstarpar].uDEC; 32 62 33 // tzero, timeRef are in UNIX seconds, Toffset should be in years34 double Toffset = (tzero_2mass - timeRef) / 365.25 / 86400.0;35 36 63 // uR,uD in linear (arcsec / yr) 37 64 double dRpm = uR*Toffset; … … 48 75 double Dobs = Dtru + dDoff; 49 76 50 measure[nMeasure].M = Minst + ZP; 51 measure[nMeasure].dM = 1.0 / SN; 77 dvo_measure_init (&measure[Nmeasure]); 52 78 53 // stars[Nstars].measure.dMcal = ps1data[i].dMcal; 54 measure[nMeasure].Sky = sky[Nsec]; 55 measure[nMeasure].dSky = sqrt(sky[Nsec]); 56 measure[nMeasure].photFlags = 0; 57 measure[nMeasure].photFlags2 = 0; 58 measure[nMeasure].R = Robs; 59 measure[nMeasure].D = Dobs; 60 measure[nMeasure].airmass = airmass (image->secz, stars[Nstars].average.R, stars[Nstars].average.D, image->sidtime, image->latitude); 61 measure[nMeasure].az = azimuth (15.0*image->sidtime - stars[Nstars].average.R, stars[Nstars].average.D, image->latitude); 62 measure[nMeasure].Mcal = image->Mcal; 63 measure[nMeasure].t = image->tzero + 1e-4*stars[Nstars].measure.Yccd*image->trate; // trate is in 0.1 msec / row 64 measure[nMeasure].dt = Mtime; 79 measure[Nmeasure].R = Robs; 80 measure[Nmeasure].D = Dobs; 65 81 66 measure[nMeasure].imageID = 0; 82 measure[Nmeasure].M = J_PS1; 83 measure[Nmeasure].dM = 1.0 / SN; 84 85 measure[Nmeasure].Sky = SkyCts; 86 measure[Nmeasure].dSky = sqrt(SkyCts); 87 measure[Nmeasure].photFlags = 0; 88 measure[Nmeasure].photFlags2 = 0; 89 measure[Nmeasure].airmass = 1.0; 90 measure[Nmeasure].az = 0.0; // irrelevant 91 measure[Nmeasure].Mcal = 0.0; 92 measure[Nmeasure].t = tzero_2mass; 93 measure[Nmeasure].dt = 0.0; 94 measure[Nmeasure].photcode = codeJ->code; 95 96 measure[Nmeasure].averef = i; 97 measure[Nmeasure].objID = average[i].objID; 98 measure[Nmeasure].catID = average[i].catID; 99 100 measure[Nmeasure].imageID = 0; 67 101 68 102 // This is may optionally be replaced by the internal sequence (see FilterStars.c) 69 measure[ nMeasure].detID = Nstars + 1;70 N stars++;103 measure[Nmeasure].detID = Nmeasure; 104 Nmeasure ++; 71 105 } 106 107 if (VERBOSE) fprintf (stderr, "added %d 2mass entries to %d stars\n", (int) Nmeasure, (int) catalog->Naverage); 108 109 catalog->Nmeasure = Nmeasure; 110 return TRUE; 72 111 } -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/make_fake_stars_catalog.c
r37478 r37523 71 71 double Dtru = average[i].D; 72 72 73 stars[Nstars].starpar = starpar[nStar]; // keep this so we can save it on the generated stars 74 73 75 // XXX what is the epoch for the src catalog? J2000? 74 76 stars[Nstars].Rref = Rtru; // add in any deviations we want here … … 113 115 // stars[Nstars].measure.pltscale = ps1data[i].pltscale; 114 116 115 stars[Nstars].measure.M = Minst + ZP; 117 stars[Nstars].measure.M = Minst + ZP; // XX I need to compensate for the internal zero point of 25.0 116 118 stars[Nstars].measure.dM = 1.0 / SN; 117 119 -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/make_fakeqsos.c
r37481 r37523 36 36 stars[i].found = FALSE; 37 37 38 stars[i].starpar.R = R; 39 stars[i].starpar.D = D; 38 40 stars[i].starpar.galLon = NAN; 39 41 stars[i].starpar.galLat = NAN; -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/make_fakestars.c
r37478 r37523 96 96 stars[i].found = FALSE; 97 97 98 stars[i].starpar.R = R; 99 stars[i].starpar.D = D; 98 100 stars[i].starpar.galLon = L; 99 101 stars[i].starpar.galLat = B; -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/match_fake_stars.c
r37464 r37523 8 8 double dX, dY, dR; 9 9 off_t *N1, *N2; 10 off_t Nave, NAVE, Nmeas, NMEAS, N match;10 off_t Nave, NAVE, Nmeas, NMEAS, Nstarpar, NSTARPAR, Nmatch; 11 11 unsigned int objID, catID; 12 12 Coords tcoords; … … 35 35 Nmatch = 0; 36 36 NMEAS = Nmeas = catalog[0].Nmeasure; 37 NSTARPAR = Nstarpar = catalog[0].Nstarpar; 37 38 38 39 // current max obj ID for this catalog … … 221 222 REALLOCATE (catalog[0].measure, Measure, NMEAS); 222 223 } 224 /* make sure there is space for next entry */ 225 if (Nstarpar >= NSTARPAR - 1) { 226 NSTARPAR = Nstarpar + 1000; 227 REALLOCATE (catalog[0].starpar, StarPar, NSTARPAR); 228 } 223 229 if (Nave >= NAVE) { 224 230 NAVE = Nave + 1000; … … 231 237 catalog[0].average[Nave].D = stars[i].average.D; 232 238 239 catalog[0].average[Nave].Nstarpar = 1; 240 catalog[0].average[Nave].starparOffset = Nstarpar; 233 241 catalog[0].average[Nave].Nmeasure = 1; 234 242 catalog[0].average[Nave].measureOffset = Nmeas; … … 260 268 } 261 269 270 // supply the starpar values from this detection 271 dvo_starpar_init (&catalog[0].starpar[Nstarpar]); 272 catalog[0].starpar[Nstarpar] = stars[i].starpar; 273 Nstarpar ++; 274 262 275 /* next[Nmeas] should always be -1 in this context (it is always the only 263 276 measurement for the star) */ … … 269 282 REALLOCATE (catalog[0].average, Average, Nave); 270 283 REALLOCATE (catalog[0].measure, Measure, Nmeas); 284 REALLOCATE (catalog[0].starpar, StarPar, Nstarpar); 271 285 272 286 catalog[0].sorted = FALSE; … … 283 297 catalog[0].Naverage = Nave; 284 298 catalog[0].Nmeasure = Nmeas; 299 catalog[0].Nstarpar = Nstarpar; 285 300 catalog[0].Nsecf_mem = Nave*Nsecfilt; 286 301 if (VERBOSE) fprintf (stderr, "Nstars, Nave, Nmeas: "OFF_T_FMT" "OFF_T_FMT" "OFF_T_FMT", ("OFF_T_FMT" matches)\n", Nstars, Nave, Nmeas, Nmatch); -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/save_fake_stars.c
r37464 r37523 1 1 # include "fakeastro.h" 2 3 # define RESETTIME { gettimeofday (&startTimer, (void *) NULL); }4 2 5 3 int save_fake_stars (SkyTable *sky, Image *image, Stars *stars, int Nstars) { … … 25 23 catalog.catformat = dvo_catalog_catformat (CATFORMAT); // set the default catformat from config data 26 24 catalog.catmode = dvo_catalog_catmode (CATMODE); // set the default catmode from config data 27 catalog.catflags = LOAD_AVES | LOAD_SECF ;25 catalog.catflags = LOAD_AVES | LOAD_SECF | LOAD_MEAS | LOAD_STARPAR; 28 26 catalog.Nsecfilt = GetPhotcodeNsecfilt (); 29 27 … … 41 39 42 40 SetProtect (TRUE); 43 catalog.catflags = LOAD_AVES | LOAD_MEAS | LOAD_MISS | LOAD_SECF;44 41 dvo_catalog_update (&catalog, VERBOSE); 45 42 SetProtect (FALSE);
Note:
See TracChangeset
for help on using the changeset viewer.
