Changeset 37477
- Timestamp:
- Oct 9, 2014, 3:44:07 PM (12 years ago)
- Location:
- branches/eam_branches/ipp-20140904/Ohana/src/fakeastro
- Files:
-
- 3 added
- 6 edited
-
Makefile (modified) (1 diff)
-
include/fakeastro.h (modified) (6 diffs)
-
src/AstromOffsetMapOps.c (added)
-
src/ConfigInit.c (modified) (1 diff)
-
src/fakeastro_images.c (modified) (3 diffs)
-
src/fakeastro_images_region.c (modified) (6 diffs)
-
src/fit_fake_stars.c (added)
-
src/fitpoly.c (added)
-
src/make_fake_stars_catalog.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/Makefile
r37471 r37477 42 42 $(SRC)/load_template_images.$(ARCH).o \ 43 43 $(SRC)/make_fake_images.$(ARCH).o \ 44 $(SRC)/fit_fake_stars.$(ARCH).o \ 45 $(SRC)/fitpoly.$(ARCH).o \ 46 $(SRC)/AstromOffsetMapOps.$(ARCH).o \ 44 47 $(SRC)/airmass.$(ARCH).o \ 45 48 $(SRC)/get_image_patch.$(ARCH).o \ -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/include/fakeastro.h
r37471 r37477 9 9 10 10 typedef struct { 11 int NfakeImage; 12 int NFAKEIMAGE; 13 Image *fakeImage; 14 15 int NtrueImage; 16 int NTRUEIMAGE; 17 Image *trueImage; 18 } ImageInfo; 19 20 typedef struct { 11 21 double R, D; 12 22 StarPar starpar; … … 16 26 17 27 typedef struct { 28 double Rref; // "reference" coordinate of the fake stars 29 double Dref; 18 30 Average average; 19 31 Measure measure; … … 21 33 int found; 22 34 } Stars; 35 36 // structure to hold coordinate fitting terms 37 typedef struct { 38 int Npts; 39 int Nterms; 40 int Norder; 41 int Nsums; 42 int Nelems; 43 double **sum; 44 double **xsum; 45 double **ysum; 46 double **xfit; 47 double **yfit; 48 } CoordFit; 23 49 24 50 /* used in find_matches, find_matches_refstars */ … … 33 59 # define DVO_MAX_PATH 1024 34 60 35 char ImageCat[DVO_MAX_PATH];36 61 char GSCFILE[DVO_MAX_PATH]; 37 62 char CATDIR[DVO_MAX_PATH]; … … 116 141 Image *make_fake_images (Image *image, int *nfakeImage); 117 142 118 Image *fakeastro_images_region (Image *image, int *nimage, int *NIMAGE, Image *refImage, int NrefImage, SkyTable *skyTableInput, SkyTable *skyTableOutput, SkyRegion *region);143 int fakeastro_images_region (ImageInfo *imageInfo, Image *refImage, int NrefImage, SkyTable *skyTableInput, SkyTable *skyTableOutput, SkyRegion *innerRegion); 119 144 120 145 SkyRegion *get_image_patch (Image *image); … … 135 160 float airmass (float secz_image, double ra, double dec, double st, double latitude); 136 161 float azimuth (double ha, double dec, double latitude); 162 163 int fit_fake_stars (Stars *stars, int Nstars, Image *image); 164 165 double **array_init (int Nx, int Ny); 166 void array_free (double **array, int Nx); 167 CoordFit *fit_init (int order); 168 void fit_free (CoordFit *fit); 169 void fit_add (CoordFit *fit, double x1, double y1, double x2, double y2, double wt); 170 int fit_eval (CoordFit *fit); 171 void fit_apply (CoordFit *fit, double *x2, double *y2, double x1, double y1); 172 double **poly2d_dx (double **poly, int Nx, int Ny); 173 double **poly2d_dy (double **poly, int Nx, int Ny); 174 double **poly2d_copy (double **poly, int Nx, int Ny); 175 double poly2d_eval (double **poly, int Nx, int Ny, double x, double y); 176 int fit_apply_coords (CoordFit *fit, Coords *coords, int keepRef); 177 178 int save_astrom_table (); 179 AstromOffsetTable *get_astrom_table (); -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/ConfigInit.c
r37463 r37477 25 25 strcpy (CATDIR, tmpcatdir); 26 26 free (tmpcatdir); 27 28 sprintf (ImageCat, "%s/Images.dat", CATDIR);29 27 } 30 28 -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/fakeastro_images.c
r37471 r37477 1 1 # include "fakeastro.h" 2 int open_image_db (FITS_DB *db, char *ImageName); 3 int save_image_db (FITS_DB *db, Image *image, int Nimage); 2 4 3 5 int fakeastro_images () { 4 6 7 FITS_DB dbfake, dbtrue; 5 8 6 FITS_DB db; 7 8 // we are creating a new image table (what about db ID?) 9 snprintf (ImageCat, DVO_MAX_PATH, "%s/Images.dat", CATDIR_OUTPUT); 10 11 /* setup image table format and lock */ 12 db.mode = dvo_catalog_catmode (CATMODE); 13 db.format = dvo_catalog_catformat (CATFORMAT); 14 int status = dvo_image_lock (&db, ImageCat, 3600.0, LCK_XCLD); // shorter timeout? 15 if (!status) Shutdown ("ERROR: failure to lock image catalog %s", db.filename); 16 17 /* load or create the image table */ 18 if (db.dbstate == LCK_EMPTY) { 19 if (VERBOSE) fprintf (stderr, "can't find %s, creating a new one\n", ImageCat); 20 dvo_image_create (&db, GetZeroPoint()); 21 } else { 22 if (!dvo_image_load (&db, VERBOSE, FALSE)) { 23 Shutdown ("can't read image catalog %s", db.filename); 24 } 25 } 9 open_image_db (&dbfake, "Images.dat"); 10 open_image_db (&dbtrue, "Images.true.dat"); 26 11 27 12 SkyTable *skyTableInput = SkyTableLoadOptimal (CATDIR_INPUT, SKY_TABLE, GSCFILE, TRUE, SKY_DEPTH, VERBOSE); … … 31 16 SkyTableSetFilenames (skyTableOutput, CATDIR_OUTPUT, "cpt"); 32 17 33 // subset out the DIS exposures here:34 35 18 IMAGE_ID = 1; 36 19 37 20 int NrefImage; 38 Image *refImage = load_template_images (&NrefImage); 21 Image *refImage = load_template_images (&NrefImage); // subset of the DIS exposures 39 22 40 int Nimage = 0; 41 int NIMAGE = 1000; 42 Image *image = NULL; 43 44 ALLOCATE (image, Image, NIMAGE); 23 ImageInfo imageInfo; 45 24 46 image = fakeastro_images_region (image, &Nimage, &NIMAGE, refImage, NrefImage, skyTableInput, skyTableOutput, &UserPatch); 25 imageInfo.NfakeImage = 0; 26 imageInfo.NFAKEIMAGE = 1000; 27 imageInfo.fakeImage = NULL; 28 ALLOCATE (imageInfo.fakeImage, Image, imageInfo.NFAKEIMAGE); 47 29 48 /* add the new image and save */ 49 dvo_image_addrows (&db, image, Nimage); 50 SetProtect (TRUE); 51 dvo_image_update (&db, VERBOSE); 52 SetProtect (FALSE); 53 dvo_image_unlock (&db); /* unlock? */ 30 imageInfo.NtrueImage = 0; 31 imageInfo.NTRUEIMAGE = 1000; 32 imageInfo.trueImage = NULL; 33 ALLOCATE (imageInfo.trueImage, Image, imageInfo.NTRUEIMAGE); 34 35 fakeastro_images_region (&imageInfo, refImage, NrefImage, skyTableInput, skyTableOutput, &UserPatch); 36 37 save_image_db (&dbfake, imageInfo.fakeImage, imageInfo.NfakeImage); 38 save_image_db (&dbtrue, imageInfo.trueImage, imageInfo.NtrueImage); 54 39 55 40 exit (0); … … 69 54 70 55 // -input catdir -output catdir -images images.fits 56 57 int open_image_db (FITS_DB *db, char *ImageName) { 58 59 char ImageCat[DVO_MAX_PATH]; 60 61 // we are creating a new image table (what about db ID?) 62 snprintf (ImageCat, DVO_MAX_PATH, "%s/%s", CATDIR_OUTPUT, ImageName); 63 64 /* setup image table format and lock */ 65 db->mode = dvo_catalog_catmode (CATMODE); 66 db->format = dvo_catalog_catformat (CATFORMAT); 67 int status = dvo_image_lock (db, ImageCat, 3600.0, LCK_XCLD); // shorter timeout? 68 if (!status) Shutdown ("ERROR: failure to lock image catalog %s", db->filename); 69 70 /* load or create the image table */ 71 if (db->dbstate != LCK_EMPTY) { 72 Shutdown ("image table %s exists, exiting", db->filename); 73 } 74 dvo_image_create (db, GetZeroPoint()); 75 76 return TRUE; 77 } 78 79 int save_image_db (FITS_DB *db, Image *image, int Nimage) { 80 81 /* add the new image and save */ 82 dvo_image_addrows (db, image, Nimage); 83 SetProtect (TRUE); 84 dvo_image_update (db, VERBOSE); 85 SetProtect (FALSE); 86 dvo_image_unlock (db); /* unlock? */ 87 88 return TRUE; 89 } 90 -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/fakeastro_images_region.c
r37464 r37477 1 1 # include "fakeastro.h" 2 2 3 Image *fakeastro_images_region (Image *image, int *nimage, int *NIMAGE, Image *refImage, int NrefImage, SkyTable *skyTableInput, SkyTable *skyTableOutput, SkyRegion *innerRegion) { 4 5 int Nimage = *nimage; 3 int fakeastro_images_region (ImageInfo *imageInfo, Image *refImage, int NrefImage, SkyTable *skyTableInput, SkyTable *skyTableOutput, SkyRegion *innerRegion) { 6 4 7 5 // extend the outer region by 2.0 degrees … … 14 12 Catalog *catalog = load_fake_stars (skyListInput, &Ncatalog); 15 13 16 int i ;14 int i, j; 17 15 for (i = 0; i < NrefImage; i++) { 18 16 … … 32 30 Image *fakeImage = make_fake_images (&refImage[i], &NfakeImage); 33 31 34 int j; 32 // save the new fake images with their true image parameters (not yet fitted to the data) 33 if (imageInfo->NtrueImage + NfakeImage >= imageInfo->NTRUEIMAGE) { 34 imageInfo->NTRUEIMAGE += 1000 + NfakeImage; 35 REALLOCATE (imageInfo->trueImage, Image, imageInfo->NTRUEIMAGE); 36 } 37 for (j = 0; j < NfakeImage; j++) { 38 memcpy (&imageInfo->trueImage[imageInfo->NtrueImage], &fakeImage[j], sizeof(Image)); 39 imageInfo->NtrueImage ++; 40 } 41 35 42 for (j = 0; j < NfakeImage; j++) { 36 43 37 // we only want to make fake stars for the fake chips 44 // we only want to make fake stars for the fake chips (not the PHU entries) 38 45 if (strcmp(&fakeImage[j].coords.ctype[4], "-WRP")) continue; 39 46 … … 41 48 Stars *fakeStars = make_fake_stars (catalog, Ncatalog, skyListInput, &fakeImage[j], &NfakeStars); 42 49 50 fit_fake_stars (fakeStars, NfakeStars, &fakeImage[j]); 51 43 52 save_fake_stars (skyTableOutput, &fakeImage[j], fakeStars, NfakeStars); 44 53 … … 46 55 } 47 56 48 if (Nimage + NfakeImage >= *NIMAGE) { 49 *NIMAGE += 1000 + NfakeImage; 50 REALLOCATE (image, Image, *NIMAGE); 57 // append the new fake images to the end of the full set: 58 if (imageInfo->NfakeImage + NfakeImage >= imageInfo->NFAKEIMAGE) { 59 imageInfo->NFAKEIMAGE += 1000 + NfakeImage; 60 REALLOCATE (imageInfo->fakeImage, Image, imageInfo->NFAKEIMAGE); 51 61 } 52 53 62 for (j = 0; j < NfakeImage; j++) { 54 memcpy (&image [Nimage], &fakeImage[j], sizeof(Image));55 Nimage ++;63 memcpy (&imageInfo->fakeImage[imageInfo->NfakeImage], &fakeImage[j], sizeof(Image)); 64 imageInfo->NfakeImage ++; 56 65 } 57 66 … … 61 70 SkyListFree (skyListInput); 62 71 63 64 72 for (i = 0; i < Ncatalog; i++) { 65 73 dvo_catalog_free (&catalog[i]); 66 74 } 67 75 68 *nimage = Nimage; 69 return (image); 76 return TRUE; 70 77 } 71 78 -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/make_fake_stars_catalog.c
r37471 r37477 37 37 float Mtime = 2.5*log10(image->exptime); 38 38 39 // XXX fix this!!39 // XXX hard-wired plateScale for now? 40 40 double plateScale = 0.257; 41 41 … … 70 70 double Rtru = average[i].R; 71 71 double Dtru = average[i].D; 72 73 // XXX what is the epoch for the src catalog? J2000? 74 stars[Nstars].Rref = Rtru; // add in any deviations we want here 75 stars[Nstars].Dref = Dtru; 72 76 73 77 // observed position is scattered from true position by:
Note:
See TracChangeset
for help on using the changeset viewer.
