Changeset 5980 for trunk/psphot/src/psphotOutput.c
- Timestamp:
- Jan 13, 2006, 8:24:10 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/psphot/src/psphotOutput.c (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot/src/psphotOutput.c
r5837 r5980 65 65 } 66 66 67 float RADIUS = psMetadataLookupF32 (&status, config, " PSF_FIT_RADIUS");67 float RADIUS = psMetadataLookupF32 (&status, config, "AP_RADIUS"); 68 68 69 69 // write sources with models … … 116 116 } 117 117 118 float RADIUS = psMetadataLookupF32 (&status, config, " PSF_FIT_RADIUS");118 float RADIUS = psMetadataLookupF32 (&status, config, "AP_RADIUS"); 119 119 120 120 // write sources with models … … 162 162 163 163 // find config information for output header 164 float RADIUS = psMetadataLookupF32 (&status, config, " PSF_FIT_RADIUS");164 float RADIUS = psMetadataLookupF32 (&status, config, "AP_RADIUS"); 165 165 float ZERO_POINT = psMetadataLookupF32 (&status, config, "ZERO_POINT"); 166 166 if (!status) ZERO_POINT = 25.0; … … 171 171 psMetadataAdd (imdata->header, PS_LIST_TAIL, "ZERO_PT", PS_DATA_F32 | PS_META_REPLACE, "zero point", ZERO_POINT); 172 172 psMetadataAdd (imdata->header, PS_LIST_TAIL, "APMIFIT", PS_DATA_F32 | PS_META_REPLACE, "aperture residual", psf->ApResid); 173 psMetadataAdd (imdata->header, PS_LIST_TAIL, "dAPMIFIT", PS_DATA_F32 | PS_META_REPLACE, "ap residual scatter", psf->dApResid); 173 psMetadataAdd (imdata->header, PS_LIST_TAIL, "DAPMIFIT", PS_DATA_F32 | PS_META_REPLACE, "ap residual scatter", psf->dApResid); 174 psMetadataAdd (imdata->header, PS_LIST_TAIL, "NAPMIFIT", PS_DATA_S32 | PS_META_REPLACE, "ap residual scatter", psf->nApResid); 175 psMetadataAdd (imdata->header, PS_LIST_TAIL, "NPSFSTAR", PS_DATA_S32 | PS_META_REPLACE, "ap residual scatter", psf->nPSFstars); 174 176 psMetadataAdd (imdata->header, PS_LIST_TAIL, "SKYBIAS", PS_DATA_F32 | PS_META_REPLACE, "aperture sky bias", psf->skyBias); 177 psMetadataAdd (imdata->header, PS_LIST_TAIL, "SKYSAT", PS_DATA_F32 | PS_META_REPLACE, "aperture sky bias", psf->skySat); 175 178 psMetadataAdd (imdata->header, PS_LIST_TAIL, "PHOTCODE", PS_DATA_STRING | PS_META_REPLACE, "photometry code", PHOTCODE); 176 179 psMetadataAdd (imdata->header, PS_LIST_TAIL, "FWHM_X", PS_DATA_F32 | PS_META_REPLACE, "PSF FWHM X", 0.0); … … 250 253 251 254 // find config information for output header 252 float RADIUS = psMetadataLookupF32 (&status, config, " PSF_FIT_RADIUS");255 float RADIUS = psMetadataLookupF32 (&status, config, "AP_RADIUS"); 253 256 float ZERO_POINT = psMetadataLookupF32 (&status, config, "ZERO_POINT"); 254 257 char *PHOTCODE = psMetadataLookupPtr (&status, config, "PHOTCODE"); … … 367 370 bool status; 368 371 369 float RADIUS = psMetadataLookupF32 (&status, config, " PSF_FIT_RADIUS");372 float RADIUS = psMetadataLookupF32 (&status, config, "AP_RADIUS"); 370 373 371 374 f = fopen (filename, "w"); … … 400 403 fprintf (f, "%9.6f ", dPAR[j]); 401 404 } 402 fprintf (f, ": % 2d %#5x %7.3f %7.1f %7.2f %4d %2d\n",403 source[0]. type, source[0].mode,405 fprintf (f, ": %7.4f %2d %#5x %7.3f %7.1f %7.2f %4d %2d\n", 406 source[0].apMag, source[0].type, source[0].mode, 404 407 log10(model[0].chisq/model[0].nDOF), 405 408 source[0].moments->SN, … … 453 456 fprintf (f, "%9.6f ", dPAR[j]); 454 457 } 455 fprintf (f, ": %2d %#5x %7.3f %7.1f %7.2f %4d %2d\n", 458 fprintf (f, ": %7.4f %2d %#5x %7.3f %7.1f %7.2f %4d %2d\n", 459 source->apMag, 456 460 source[0].type, source[0].mode, 457 461 log10(model[0].chisq/model[0].nDOF), … … 694 698 } 695 699 700 psPolynomial4D *psPolynomial4DfromMD (psMetadata *folder) { 701 702 bool status; 703 char keyword[80]; 704 705 // get polynomial orders 706 // XXX add status failures tests 707 int nXorder = psMetadataLookupS32 (&status, folder, "NORDER_X"); 708 int nYorder = psMetadataLookupS32 (&status, folder, "NORDER_Y"); 709 int nZorder = psMetadataLookupS32 (&status, folder, "NORDER_Z"); 710 int nTorder = psMetadataLookupS32 (&status, folder, "NORDER_T"); 711 712 psPolynomial4D *poly = psPolynomial4DAlloc (nXorder, nYorder, nZorder, nTorder, PS_POLYNOMIAL_ORD); 713 714 for (int nx = 0; nx < poly->nX + 1; nx++) { 715 for (int ny = 0; ny < poly->nY + 1; ny++) { 716 for (int nz = 0; nz < poly->nZ + 1; nz++) { 717 for (int nt = 0; nt < poly->nT + 1; nt++) { 718 sprintf (keyword, "VAL_X%02d_Y%02d_Z%02d_T%02d", nx, ny, nz, nt); 719 poly->coeff[nx][ny][nz][nt] = psMetadataLookupF32 (&status, folder, keyword); 720 if (!status) poly->mask[nx][ny][nz][nt] = 1; 721 722 sprintf (keyword, "ERR_X%02d_Y%02d_Z%02d_T%02d", nx, ny, nz, nt); 723 poly->coeffErr[nx][ny][nz][nt] = psMetadataLookupF32 (&status, folder, keyword); 724 } 725 } 726 } 727 } 728 return (poly); 729 } 730 696 731 // XXX : these may need F64, or %g format for output 697 732 bool psPolynomial2DtoMD (psMetadata *md, psPolynomial2D *poly, char *format, ...) { … … 774 809 } 775 810 811 bool psPolynomial4DtoMD (psMetadata *md, psPolynomial4D *poly, char *format, ...) { 812 813 int Nbyte; 814 char tmp; 815 char *root; 816 va_list argp; 817 818 va_start (argp, format); 819 Nbyte = vsnprintf (&tmp, 0, format, argp); 820 va_end (argp); 821 822 if (!Nbyte) return false; 823 824 va_start (argp, format); 825 root = (char *) psAlloc (Nbyte + 1); 826 memset (root, 0, Nbyte + 1); 827 vsnprintf (root, Nbyte + 1, format, argp); 828 va_end (argp); 829 830 psMetadata *folder = psMetadataAlloc (); 831 psMetadataAdd (md, PS_LIST_TAIL, root, PS_DATA_METADATA, "folder for 4D polynomial", folder); 832 psFree (root); 833 834 // specify the polynomial orders 835 psMetadataAdd (folder, PS_LIST_TAIL, "NORDER_X", PS_DATA_S32, "number of x orders", poly->nX); 836 psMetadataAdd (folder, PS_LIST_TAIL, "NORDER_Y", PS_DATA_S32, "number of y orders", poly->nY); 837 psMetadataAdd (folder, PS_LIST_TAIL, "NORDER_Z", PS_DATA_S32, "number of z orders", poly->nZ); 838 psMetadataAdd (folder, PS_LIST_TAIL, "NORDER_T", PS_DATA_S32, "number of z orders", poly->nT); 839 840 // place polynomial entries on folder 841 for (int nx = 0; nx < poly->nX + 1; nx++) { 842 for (int ny = 0; ny < poly->nY + 1; ny++) { 843 for (int nz = 0; nz < poly->nZ + 1; nz++) { 844 for (int nt = 0; nt < poly->nT + 1; nt++) { 845 if (poly->mask[nx][ny][nz][nt]) continue; 846 psMetadataAdd (folder, PS_LIST_TAIL, "VAL_X%02d_Y%02d_Z%02d_T%02d", PS_DATA_F32, "polynomial coefficient", poly->coeff[nx][ny][nz][nt], nx, ny, nz, nt); 847 psMetadataAdd (folder, PS_LIST_TAIL, "ERR_X%02d_Y%02d_Z%02d_T%02d", PS_DATA_F32, "polynomial coeffficient error", poly->coeffErr[nx][ny][nz][nt], nx, ny, nz, nt); 848 } 849 } 850 } 851 } 852 return true; 853 } 854 776 855 bool psphotWritePSF (pmPSF *psf, char *filename) { 777 856 … … 788 867 psPolynomial2DtoMD (psfdata, poly, "PSF_PAR%02d", i); 789 868 } 790 psPolynomial 3DtoMD (psfdata, psf->ApTrend, "APTREND");869 psPolynomial4DtoMD (psfdata, psf->ApTrend, "APTREND"); 791 870 792 871 psMetadataAdd (psfdata, PS_LIST_TAIL, "PSF_AP_RESID", PS_DATA_F32, "aperture residual", psf->ApResid); … … 828 907 sprintf (keyword, "APTREND"); 829 908 psMetadata *folder = psMetadataLookupPtr (&status, psfdata, keyword); 830 psPolynomial 3D *poly = psPolynomial3DfromMD (folder);909 psPolynomial4D *poly = psPolynomial4DfromMD (folder); 831 910 psFree (psf->ApTrend); 832 911 psf->ApTrend = poly;
Note:
See TracChangeset
for help on using the changeset viewer.
