1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| int Create_System(char *Dir, char ***list, double ***SD, double ***SW , int *Nb_files, double **M, double **Z, int *status)
{
fitsfile *fd, *fw;
char *filed, *filew;
int i,j;
char *comment,
*extweight=".weight.fits",
*extdata=".fits";
void *nulval=NULL;
int anynul;
long NAXIS1, NAXIS2,CRPIX1, CRPIX2;
RECT *R;
List_Files(Dir, list, Nb_files, status);
R=(RECT*)malloc(sizeof(RECT)*(*Nb_files));
*SD=(double**)malloc(sizeof(double*)*(*Nb_files));
*SW=(double**)malloc(sizeof(double*)*(*Nb_files));
for (i=0;i<(*Nb_files);i++)
{
Name_frame(Dir, (*list)[i], extdata,&filed);
Name_frame(Dir, (*list)[i], extweight,&filew);
printf("%s\n%s\n",filed, filew);
fits_open_file(&fd, filed,READONLY,status);
fits_open_file(&fw, filew,READONLY,status);
free(filed);
free(filew);
R[i]=Create_Rect(0,0,0,0);
fits_read_key(fw,TLONG, "NAXIS1" , &NAXIS1,comment, status);
fits_read_key(fw,TLONG, "NAXIS2" , &NAXIS2,comment, status);
fits_read_key(fw,TLONG, "CRPIX1" , &CRPIX1,comment, status);
fits_read_key(fw,TLONG, "CRPIX2" , &CRPIX2,comment, status);
R[i]->Xmin=(long)(CRPIX1-(long)(NAXIS1/2));
R[i]->Ymin=(long)(CRPIX2-(long)(NAXIS2/2));
R[i]->Xmax=R[i]->Xmin+NAXIS1;
R[i]->Ymax=R[i]->Ymin+NAXIS2;
(*SD)[i]=(double*)malloc(sizeof(double)*NAXIS1*NAXIS2);
(*SW)[i]=(double*)malloc(sizeof(double)*NAXIS1*NAXIS2);
long fpixel[2]={1,1};
long lpixel[2]={NAXIS1,NAXIS2};
long inc[2]={1,1};
fits_read_subset(fd, TDOUBLE, fpixel, lpixel, inc, nulval, (*SD)[i], &anynul, status);
fits_read_subset(fw, TDOUBLE, fpixel, lpixel, inc, nulval, (*SW)[i], &anynul, status);
fits_close_file(fd,status);
fits_close_file(fw,status);
if(*status)
printf("statut = %d erreur!!", *status);
else
printf(" %ld %ld %ld %ld\n", R[i]->Xmin, R[i]->Ymin, R[i]->Xmax, R[i]->Ymax);
}
....
} |
Partager