Changeset 3413
- Timestamp:
- Mar 12, 2005, 10:27:15 AM (21 years ago)
- Location:
- trunk/Ohana/src/gastro2
- Files:
-
- 2 added
- 3 edited
-
Makefile (modified) (1 diff)
-
include/gastro2.h (modified) (1 diff)
-
src/gstars2.c (modified) (3 diffs)
-
src/rfits.c (added)
-
src/rtext.c (added)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/gastro2/Makefile
r2833 r3413 46 46 $(SRC)/getusno.$(ARCH).o \ 47 47 $(SRC)/gcatalog.$(ARCH).o \ 48 $(SRC)/remove_clumps.$(ARCH).o 48 $(SRC)/remove_clumps.$(ARCH).o \ 49 $(SRC)/rfits.$(ARCH).o \ 50 $(SRC)/rtext.$(ARCH).o 49 51 50 52 OBJ = $(GASTRO) -
trunk/Ohana/src/gastro2/include/gastro2.h
r2442 r3413 11 11 int type; 12 12 } StarData; 13 14 typedef struct { 15 float X; 16 float Y; 17 float M; 18 float dM; 19 float Mgal; 20 float Map; 21 float sky; 22 float fx; 23 float fy; 24 float df; 25 char dophot; 26 char dummy[3]; 27 } Stars; 13 28 14 29 typedef struct { -
trunk/Ohana/src/gastro2/src/gstars2.c
r3390 r3413 1 1 # include "gastro2.h" 2 3 /* by necesity hard wired */ 4 # define D_NSTARS 1000 5 # define BYTES_STAR 66 6 # define BLOCK 1000 2 StarData *rtext (char *filename, Header *header, int *nstars); 3 StarData *rfits (char *filename, Header *header, int *nstars); 7 4 8 5 void gstars (char *filename, CmpCatalog *Target) { … … 12 9 char line[80], *buffer; 13 10 double dmag, type, det; 14 int NX, NY, FoundAstrom ;11 int NX, NY, FoundAstrom, extend; 15 12 16 13 FILE *f; … … 121 118 Target[0].Area = fabs (NX*NY*Target[0].coords.cdelt1*Target[0].coords.cdelt2*det); 122 119 123 /* allocate space for stars */ 124 Nstars = -1; 125 fits_scan (&Target[0].header, "NSTARS", "%d", 1, &Nstars); 126 if (Nstars == -1) { 127 fprintf (stderr, "ERROR: failed to find NSTARS\n"); 128 exit (1); 129 } 130 ALLOCATE (stars, StarData, MAX (Nstars, 1)); 131 Nbytes = Nstars*BYTES_STAR; 132 133 /* open file for stars */ 134 f = fopen (filename, "r"); 135 if (f == NULL) { 136 fprintf (stderr, "ERROR: can't open file to load stars\n"); 137 exit (1); 138 } 139 fseek (f, Target[0].header.size, SEEK_SET); 140 141 N = nstars = 0; 142 ALLOCATE (buffer, char, (BLOCK*BYTES_STAR)); 143 144 while ((nbytes = fread (buffer, 1, (BLOCK*BYTES_STAR), f)) != 0) { 145 Ninstar = nbytes / BYTES_STAR; 146 for (i = 0; i < Ninstar; i++, nstars++) { 147 dparse (&stars[N].X, 1, &buffer[i*BYTES_STAR]); 148 dparse (&stars[N].Y, 2, &buffer[i*BYTES_STAR]); 149 dparse (&stars[N].M, 3, &buffer[i*BYTES_STAR]); 150 dparse (&dmag, 4, &buffer[i*BYTES_STAR]); 151 dparse (&type, 5, &buffer[i*BYTES_STAR]); 152 153 /* hardwired dophot exclusions should eventually be encapsulated elsewhere */ 154 if ((type == 4) || (type == 6) || (type == 5) || (type == 9)) continue; 155 if (dmag > 1000*MAX_ERROR) continue; 156 stars[N].dM = 0.001 * dmag; 157 stars[N].type = type; 158 N++; 159 } 160 } 161 free (buffer); 162 fclose (f); 163 164 if (nstars != Nstars) { 165 fprintf (stderr, "WARNING: only read %d of %d stars\n", nstars, Nstars); 166 } 167 if (N < 5) { 168 fprintf (stderr, "ERROR: too few stars for reliable solution, only %d\n", N); 169 exit (1); 120 extend = FALSE; 121 fits_scan (&Target[0].header, "EXTEND", "%t", 1, &extend); 122 if (extend) { 123 stars = rfits (filename, &Target[0].header, &Nstars); 124 } else { 125 stars = rtext (filename, &Target[0].header, &Nstars); 170 126 } 171 127 172 stars = remove_clumps (stars, &N , NX, NY);128 stars = remove_clumps (stars, &Nstars, NX, NY); 173 129 174 sort_stars_mag (stars, N ); /* sorting by magnitude */130 sort_stars_mag (stars, Nstars); /* sorting by magnitude */ 175 131 Target[0].stars = stars; 176 Target[0].N = N ;132 Target[0].N = Nstars; 177 133 178 134 /* limit number of stars */
Note:
See TracChangeset
for help on using the changeset viewer.
