IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jul 30, 2010, 9:38:40 AM (16 years ago)
Author:
eugene
Message:

updates from trunk

Location:
branches/eam_branches/ipp-20100621/psModules
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20100621/psModules

  • branches/eam_branches/ipp-20100621/psModules/src/objects/pmPSF_IO.c

    r28643 r28796  
    191191    pmReadout *ro = pmFPAviewThisReadout(roView, chip->parent); // Readout with analysis data
    192192    psFree(roView);
    193     PM_ASSERT_READOUT_NON_NULL(ro, false);
    194 
    195     if (!pmPSFmodelWrite(chip->analysis, ro->analysis, view, file, config)) {
     193
     194    if (!pmPSFmodelWrite(chip->analysis, ro ? ro->analysis : NULL, view, file, config)) {
    196195        psError(psErrorCodeLast(), false, "Failed to write PSF for chip");
    197196        return false;
     
    222221    }
    223222    if (!roAnalysis) {
    224         psError(PM_ERR_PROG, true, "No analysis metadata for readout.");
    225         return false;
     223        psWarning("No analysis metadata for PSF, clump parameters cannot be saved.");
    226224    }
    227225
     
    369367
    370368        // we now save clump parameters for each region : need to save all of those
    371         int nRegions = psMetadataLookupS32 (&status, roAnalysis, "PSF.CLUMP.NREGIONS");
    372         psMetadataAddS32 (header, PS_LIST_TAIL, "PSF_CLN", PS_META_REPLACE, "number of psf clump regions", nRegions);
    373         for (int i = 0; i < nRegions; i++) {
    374             char regionName[64];
    375             snprintf (regionName, 64, "PSF.CLUMP.REGION.%03d", i);
    376             psMetadata *regionMD = psMetadataLookupPtr (&status, roAnalysis, regionName);
    377 
    378             psfClump.X  = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.X");   assert (status);
    379             psfClump.Y  = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.Y");   assert (status);
    380             psfClump.dX = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.DX");  assert (status);
    381             psfClump.dY = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.DY");  assert (status);
    382 
    383             char key[16];
    384             snprintf (key, 9, "CLX_%03d", i);
    385             psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump center", psfClump.X);
    386             snprintf (key, 9, "CLY_%03d", i);
    387             psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump center", psfClump.Y);
    388             snprintf (key, 9, "CLDX_%03d", i);
    389             psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump size", psfClump.dX);
    390             snprintf (key, 9, "CLDY_%03d", i);
    391             psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump size", psfClump.dY);
     369        if (roAnalysis) {
     370            int nRegions = psMetadataLookupS32 (&status, roAnalysis, "PSF.CLUMP.NREGIONS");
     371            psMetadataAddS32 (header, PS_LIST_TAIL, "PSF_CLN", PS_META_REPLACE, "number of psf clump regions", nRegions);
     372            for (int i = 0; i < nRegions; i++) {
     373                char regionName[64];
     374                snprintf (regionName, 64, "PSF.CLUMP.REGION.%03d", i);
     375                psMetadata *regionMD = psMetadataLookupPtr (&status, roAnalysis, regionName);
     376
     377                psfClump.X  = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.X");   assert (status);
     378                psfClump.Y  = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.Y");   assert (status);
     379                psfClump.dX = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.DX");  assert (status);
     380                psfClump.dY = psMetadataLookupF32 (&status, regionMD, "PSF.CLUMP.DY");  assert (status);
     381
     382                char key[16];
     383                snprintf (key, 9, "CLX_%03d", i);
     384                psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump center", psfClump.X);
     385                snprintf (key, 9, "CLY_%03d", i);
     386                psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump center", psfClump.Y);
     387                snprintf (key, 9, "CLDX_%03d", i);
     388                psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump size", psfClump.dX);
     389                snprintf (key, 9, "CLDY_%03d", i);
     390                psMetadataAddF32 (header, PS_LIST_TAIL, key, PS_META_REPLACE, "psf clump size", psfClump.dY);
     391            }
    392392        }
    393393
     
    787787{
    788788    PS_ASSERT_METADATA_NON_NULL(chipAnalysis, false);
    789     PS_ASSERT_METADATA_NON_NULL(roAnalysis, false);
    790789    PS_ASSERT_PTR_NON_NULL(view, false);
    791790    PS_ASSERT_PTR_NON_NULL(file, false);
     
    852851
    853852    // read the psf clump data for each region
    854     int nRegions = psMetadataLookupS32 (&status, header, "PSF_CLN");
    855     if (!status) {
    856         // read old-style psf clump data
    857 
    858         char regionName[64];
    859         snprintf (regionName, 64, "PSF.CLUMP.REGION.000");
    860         psMetadataAddS32 (roAnalysis, PS_LIST_TAIL, "PSF.CLUMP.NREGIONS",  PS_META_REPLACE, "psf clump regions", 1);
    861 
    862         psMetadata *regionMD = psMetadataLookupPtr (&status, roAnalysis, regionName);
    863         if (!regionMD) {
    864             regionMD = psMetadataAlloc();
    865             psMetadataAddMetadata (roAnalysis, PS_LIST_TAIL, regionName, PS_META_REPLACE, "psf clump region", regionMD);
    866             psFree (regionMD);
    867         }
    868 
    869         // psf clump data
    870         pmPSFClump psfClump;
    871 
    872         psfClump.X  = psMetadataLookupF32 (&status, header, "PSF_CLX" );  assert(status);
    873         psfClump.Y  = psMetadataLookupF32 (&status, header, "PSF_CLY" );  assert(status);
    874         psfClump.dX = psMetadataLookupF32 (&status, header, "PSF_CLDX");  assert(status);
    875         psfClump.dY = psMetadataLookupF32 (&status, header, "PSF_CLDY");  assert(status);
    876 
    877         psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.X",  PS_META_REPLACE, "psf clump center", psfClump.X);
    878         psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.Y",  PS_META_REPLACE, "psf clump center", psfClump.Y);
    879         psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.DX", PS_META_REPLACE, "psf clump center", psfClump.dX);
    880         psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.DY", PS_META_REPLACE, "psf clump center", psfClump.dY);
    881     } else {
    882         psMetadataAddS32 (roAnalysis, PS_LIST_TAIL, "PSF.CLUMP.NREGIONS",  PS_META_REPLACE, "psf clump regions", nRegions);
    883 
    884         for (int i = 0; i < nRegions; i++) {
    885             char key[10];
     853    if (roAnalysis) {
     854        int nRegions = psMetadataLookupS32 (&status, header, "PSF_CLN");
     855        if (!status) {
     856            // read old-style psf clump data
     857
    886858            char regionName[64];
    887             snprintf (regionName, 64, "PSF.CLUMP.REGION.%03d", i);
     859            snprintf (regionName, 64, "PSF.CLUMP.REGION.000");
     860            psMetadataAddS32 (roAnalysis, PS_LIST_TAIL, "PSF.CLUMP.NREGIONS",  PS_META_REPLACE, "psf clump regions", 1);
    888861
    889862            psMetadata *regionMD = psMetadataLookupPtr (&status, roAnalysis, regionName);
     
    897870            pmPSFClump psfClump;
    898871
    899             snprintf (key, 9, "CLX_%03d", i);
    900             psfClump.X  = psMetadataLookupF32 (&status, header, key);  assert(status);
    901             snprintf (key, 9, "CLY_%03d", i);
    902             psfClump.Y  = psMetadataLookupF32 (&status, header, key);  assert(status);
    903             snprintf (key, 9, "CLDX_%03d", i);
    904             psfClump.dX = psMetadataLookupF32 (&status, header, key);  assert(status);
    905             snprintf (key, 9, "CLDY_%03d", i);
    906             psfClump.dY = psMetadataLookupF32 (&status, header, key);  assert(status);
     872            psfClump.X  = psMetadataLookupF32 (&status, header, "PSF_CLX" );  assert(status);
     873            psfClump.Y  = psMetadataLookupF32 (&status, header, "PSF_CLY" );  assert(status);
     874            psfClump.dX = psMetadataLookupF32 (&status, header, "PSF_CLDX");  assert(status);
     875            psfClump.dY = psMetadataLookupF32 (&status, header, "PSF_CLDY");  assert(status);
    907876
    908877            psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.X",  PS_META_REPLACE, "psf clump center", psfClump.X);
     
    910879            psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.DX", PS_META_REPLACE, "psf clump center", psfClump.dX);
    911880            psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.DY", PS_META_REPLACE, "psf clump center", psfClump.dY);
     881        } else {
     882            psMetadataAddS32 (roAnalysis, PS_LIST_TAIL, "PSF.CLUMP.NREGIONS",  PS_META_REPLACE, "psf clump regions", nRegions);
     883
     884            for (int i = 0; i < nRegions; i++) {
     885                char key[10];
     886                char regionName[64];
     887                snprintf (regionName, 64, "PSF.CLUMP.REGION.%03d", i);
     888
     889                psMetadata *regionMD = psMetadataLookupPtr (&status, roAnalysis, regionName);
     890                if (!regionMD) {
     891                    regionMD = psMetadataAlloc();
     892                    psMetadataAddMetadata (roAnalysis, PS_LIST_TAIL, regionName, PS_META_REPLACE, "psf clump region", regionMD);
     893                    psFree (regionMD);
     894                }
     895
     896                // psf clump data
     897                pmPSFClump psfClump;
     898
     899                snprintf (key, 9, "CLX_%03d", i);
     900                psfClump.X  = psMetadataLookupF32 (&status, header, key);  assert(status);
     901                snprintf (key, 9, "CLY_%03d", i);
     902                psfClump.Y  = psMetadataLookupF32 (&status, header, key);  assert(status);
     903                snprintf (key, 9, "CLDX_%03d", i);
     904                psfClump.dX = psMetadataLookupF32 (&status, header, key);  assert(status);
     905                snprintf (key, 9, "CLDY_%03d", i);
     906                psfClump.dY = psMetadataLookupF32 (&status, header, key);  assert(status);
     907
     908                psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.X",  PS_META_REPLACE, "psf clump center", psfClump.X);
     909                psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.Y",  PS_META_REPLACE, "psf clump center", psfClump.Y);
     910                psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.DX", PS_META_REPLACE, "psf clump center", psfClump.dX);
     911                psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.DY", PS_META_REPLACE, "psf clump center", psfClump.dY);
     912            }
    912913        }
    913914    }
Note: See TracChangeset for help on using the changeset viewer.