Changeset 28449 for trunk/psModules/src/objects/pmPSF_IO.c
- Timestamp:
- Jun 24, 2010, 10:16:19 AM (16 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/objects/pmPSF_IO.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/objects/pmPSF_IO.c
r28420 r28449 182 182 pmReadout *ro = pmFPAviewThisReadout(roView, chip->parent); // Readout with analysis data 183 183 psFree(roView); 184 PM_ASSERT_READOUT_NON_NULL(ro, false); 185 186 if (!pmPSFmodelWrite(chip->analysis, ro->analysis, view, file, config)) { 184 185 if (!pmPSFmodelWrite(chip->analysis, ro ? ro->analysis : NULL, view, file, config)) { 187 186 psError(psErrorCodeLast(), false, "Failed to write PSF for chip"); 188 187 return false; … … 213 212 } 214 213 if (!roAnalysis) { 215 psError(PM_ERR_PROG, true, "No analysis metadata for readout."); 216 return false; 214 psWarning("No analysis metadata for PSF, clump parameters cannot be saved."); 217 215 } 218 216 … … 360 358 361 359 // we now save clump parameters for each region : need to save all of those 362 int nRegions = psMetadataLookupS32 (&status, roAnalysis, "PSF.CLUMP.NREGIONS"); 363 psMetadataAddS32 (header, PS_LIST_TAIL, "PSF_CLN", PS_META_REPLACE, "number of psf clump regions", nRegions); 364 for (int i = 0; i < nRegions; i++) { 365 char regionName[64]; 366 snprintf (regionName, 64, "PSF.CLUMP.REGION.%03d", i); 367 psMetadata *regionMD = psMetadataLookupPtr (&status, roAnalysis, regionName); 368 369 psfClump.X = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.X"); assert (status); 370 psfClump.Y = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.Y"); assert (status); 371 psfClump.dX = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.DX"); assert (status); 372 psfClump.dY = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.DY"); assert (status); 373 374 char key[16]; 375 snprintf (key, 9, "CLX_%03d", i); 376 psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump center", psfClump.X); 377 snprintf (key, 9, "CLY_%03d", i); 378 psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump center", psfClump.Y); 379 snprintf (key, 9, "CLDX_%03d", i); 380 psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump size", psfClump.dX); 381 snprintf (key, 9, "CLDY_%03d", i); 382 psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump size", psfClump.dY); 360 if (roAnalysis) { 361 int nRegions = psMetadataLookupS32 (&status, roAnalysis, "PSF.CLUMP.NREGIONS"); 362 psMetadataAddS32 (header, PS_LIST_TAIL, "PSF_CLN", PS_META_REPLACE, "number of psf clump regions", nRegions); 363 for (int i = 0; i < nRegions; i++) { 364 char regionName[64]; 365 snprintf (regionName, 64, "PSF.CLUMP.REGION.%03d", i); 366 psMetadata *regionMD = psMetadataLookupPtr (&status, roAnalysis, regionName); 367 368 psfClump.X = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.X"); assert (status); 369 psfClump.Y = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.Y"); assert (status); 370 psfClump.dX = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.DX"); assert (status); 371 psfClump.dY = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.DY"); assert (status); 372 373 char key[16]; 374 snprintf (key, 9, "CLX_%03d", i); 375 psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump center", psfClump.X); 376 snprintf (key, 9, "CLY_%03d", i); 377 psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump center", psfClump.Y); 378 snprintf (key, 9, "CLDX_%03d", i); 379 psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump size", psfClump.dX); 380 snprintf (key, 9, "CLDY_%03d", i); 381 psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump size", psfClump.dY); 382 } 383 383 } 384 384 … … 778 778 { 779 779 PS_ASSERT_METADATA_NON_NULL(chipAnalysis, false); 780 PS_ASSERT_METADATA_NON_NULL(roAnalysis, false);781 780 PS_ASSERT_PTR_NON_NULL(view, false); 782 781 PS_ASSERT_PTR_NON_NULL(file, false); … … 843 842 844 843 // read the psf clump data for each region 845 int nRegions = psMetadataLookupS32 (&status, header, "PSF_CLN"); 846 if (!status) { 847 // read old-style psf clump data 848 849 char regionName[64]; 850 snprintf (regionName, 64, "PSF.CLUMP.REGION.000"); 851 psMetadataAddS32 (roAnalysis, PS_LIST_TAIL, "PSF.CLUMP.NREGIONS", PS_META_REPLACE, "psf clump regions", 1); 852 853 psMetadata *regionMD = psMetadataLookupPtr (&status, roAnalysis, regionName); 854 if (!regionMD) { 855 regionMD = psMetadataAlloc(); 856 psMetadataAddMetadata (roAnalysis, PS_LIST_TAIL, regionName, PS_META_REPLACE, "psf clump region", regionMD); 857 psFree (regionMD); 858 } 859 860 // psf clump data 861 pmPSFClump psfClump; 862 863 psfClump.X = psMetadataLookupF32 (&status, header, "PSF_CLX" ); assert(status); 864 psfClump.Y = psMetadataLookupF32 (&status, header, "PSF_CLY" ); assert(status); 865 psfClump.dX = psMetadataLookupF32 (&status, header, "PSF_CLDX"); assert(status); 866 psfClump.dY = psMetadataLookupF32 (&status, header, "PSF_CLDY"); assert(status); 867 868 psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.X", PS_META_REPLACE, "psf clump center", psfClump.X); 869 psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.Y", PS_META_REPLACE, "psf clump center", psfClump.Y); 870 psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.DX", PS_META_REPLACE, "psf clump center", psfClump.dX); 871 psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.DY", PS_META_REPLACE, "psf clump center", psfClump.dY); 872 } else { 873 psMetadataAddS32 (roAnalysis, PS_LIST_TAIL, "PSF.CLUMP.NREGIONS", PS_META_REPLACE, "psf clump regions", nRegions); 874 875 for (int i = 0; i < nRegions; i++) { 876 char key[10]; 844 if (roAnalysis) { 845 int nRegions = psMetadataLookupS32 (&status, header, "PSF_CLN"); 846 if (!status) { 847 // read old-style psf clump data 848 877 849 char regionName[64]; 878 snprintf (regionName, 64, "PSF.CLUMP.REGION.%03d", i); 850 snprintf (regionName, 64, "PSF.CLUMP.REGION.000"); 851 psMetadataAddS32 (roAnalysis, PS_LIST_TAIL, "PSF.CLUMP.NREGIONS", PS_META_REPLACE, "psf clump regions", 1); 879 852 880 853 psMetadata *regionMD = psMetadataLookupPtr (&status, roAnalysis, regionName); … … 888 861 pmPSFClump psfClump; 889 862 890 snprintf (key, 9, "CLX_%03d", i); 891 psfClump.X = psMetadataLookupF32 (&status, header, key); assert(status); 892 snprintf (key, 9, "CLY_%03d", i); 893 psfClump.Y = psMetadataLookupF32 (&status, header, key); assert(status); 894 snprintf (key, 9, "CLDX_%03d", i); 895 psfClump.dX = psMetadataLookupF32 (&status, header, key); assert(status); 896 snprintf (key, 9, "CLDY_%03d", i); 897 psfClump.dY = psMetadataLookupF32 (&status, header, key); assert(status); 863 psfClump.X = psMetadataLookupF32 (&status, header, "PSF_CLX" ); assert(status); 864 psfClump.Y = psMetadataLookupF32 (&status, header, "PSF_CLY" ); assert(status); 865 psfClump.dX = psMetadataLookupF32 (&status, header, "PSF_CLDX"); assert(status); 866 psfClump.dY = psMetadataLookupF32 (&status, header, "PSF_CLDY"); assert(status); 898 867 899 868 psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.X", PS_META_REPLACE, "psf clump center", psfClump.X); … … 901 870 psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.DX", PS_META_REPLACE, "psf clump center", psfClump.dX); 902 871 psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.DY", PS_META_REPLACE, "psf clump center", psfClump.dY); 872 } else { 873 psMetadataAddS32 (roAnalysis, PS_LIST_TAIL, "PSF.CLUMP.NREGIONS", PS_META_REPLACE, "psf clump regions", nRegions); 874 875 for (int i = 0; i < nRegions; i++) { 876 char key[10]; 877 char regionName[64]; 878 snprintf (regionName, 64, "PSF.CLUMP.REGION.%03d", i); 879 880 psMetadata *regionMD = psMetadataLookupPtr (&status, roAnalysis, regionName); 881 if (!regionMD) { 882 regionMD = psMetadataAlloc(); 883 psMetadataAddMetadata (roAnalysis, PS_LIST_TAIL, regionName, PS_META_REPLACE, "psf clump region", regionMD); 884 psFree (regionMD); 885 } 886 887 // psf clump data 888 pmPSFClump psfClump; 889 890 snprintf (key, 9, "CLX_%03d", i); 891 psfClump.X = psMetadataLookupF32 (&status, header, key); assert(status); 892 snprintf (key, 9, "CLY_%03d", i); 893 psfClump.Y = psMetadataLookupF32 (&status, header, key); assert(status); 894 snprintf (key, 9, "CLDX_%03d", i); 895 psfClump.dX = psMetadataLookupF32 (&status, header, key); assert(status); 896 snprintf (key, 9, "CLDY_%03d", i); 897 psfClump.dY = psMetadataLookupF32 (&status, header, key); assert(status); 898 899 psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.X", PS_META_REPLACE, "psf clump center", psfClump.X); 900 psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.Y", PS_META_REPLACE, "psf clump center", psfClump.Y); 901 psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.DX", PS_META_REPLACE, "psf clump center", psfClump.dX); 902 psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.DY", PS_META_REPLACE, "psf clump center", psfClump.dY); 903 } 903 904 } 904 905 }
Note:
See TracChangeset
for help on using the changeset viewer.
