IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 9585


Ignore:
Timestamp:
Oct 16, 2006, 2:41:05 PM (20 years ago)
Author:
magnier
Message:

adding MANAPLOT type to pmFPAfile

Location:
trunk/psModules/src/camera
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/camera/Makefile.am

    r9584 r9585  
    1717        pmHDUGenerate.c \
    1818        pmFPA_JPEG.c \
     19        pmFPA_MANAPLOT.c \
    1920        pmFPAview.c \
    2021        pmFPAfile.c \
     
    3940        pmHDUGenerate.h \
    4041        pmFPA_JPEG.h \
     42        pmFPA_MANAPLOT.h \
    4143        pmFPAview.h \
    4244        pmFPAfile.h \
  • trunk/psModules/src/camera/pmFPA_JPEG.c

    r8935 r9585  
    55 *  @author EAM, IfA
    66 *
    7  *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
    8  *  @date $Date: 2006-09-25 20:23:10 $
     7 *  @version $Revision: 1.10 $ $Name: not supported by cvs2svn $
     8 *  @date $Date: 2006-10-17 00:41:05 $
    99 *
    1010 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    124124    PS_ASSERT_PTR_NON_NULL(file, false);
    125125
    126     switch (file->type) {
    127     case PM_FPA_FILE_JPEG: {
    128             // XXX we need to decide where the scale will come from in the long term
    129             psRandom *rng = psRandomAlloc(PS_RANDOM_TAUS, 0);
    130             psStats *stats = psImageBackground(readout->image, NULL, 0, 0.25, 0.75, 10000, rng);
    131             psFree(rng);
     126    if (file->type != PM_FPA_FILE_JPEG) {
     127        psError(PS_ERR_UNKNOWN, true, "warning: type mismatch");
     128        return false;
     129    }
    132130
    133             if (!isfinite(stats->robustMedian) || !isfinite(stats->robustUQ) || !isfinite(stats->robustLQ)) {
    134                 psError(PS_ERR_UNKNOWN, false, "Unable to measure statistics for image.\n");
    135                 psFree(stats);
    136                 return false;
    137             }
    138             float delta = stats->robustUQ - stats->robustLQ; // Inter-quartile range
    139             float min, max;                 // Minimum and maximum for stretch
     131    // XXX we need to decide where the scale will come from in the long term
     132    psRandom *rng = psRandomAlloc(PS_RANDOM_TAUS, 0);
     133    psStats *stats = psImageBackground(readout->image, NULL, 0, 0.25, 0.75, 10000, rng);
     134    psFree(rng);
    140135
    141             psString mode = pmFPAfileNameFromRule (file->extrule, file, view);
    142             psString word = pmFPAfileNameFromRule (file->extxtra, file, view);
    143             psArray *range = psStringSplitArray (word, ":", false);
     136    if (!isfinite(stats->robustMedian) || !isfinite(stats->robustUQ) || !isfinite(stats->robustLQ)) {
     137        psError(PS_ERR_UNKNOWN, false, "Unable to measure statistics for image.\n");
     138        psFree(stats);
     139        return false;
     140    }
     141    float delta = stats->robustUQ - stats->robustLQ; // Inter-quartile range
     142    float min, max;                 // Minimum and maximum for stretch
    144143
    145             if (!strcasecmp (mode, "RANGE") && range) {
    146                 float fmin = atof(range->data[0]);
    147                 float fmax = atof(range->data[1]);
    148                 min = stats->robustMedian + fmin*delta;
    149                 max = stats->robustMedian + fmax*delta;
    150             } else if (!strcasecmp (mode, "FRACTION")) {
    151                 float fmin = atof(range->data[0]);
    152                 float fmax = atof(range->data[1]);
    153                 min = fmin*stats->robustMedian;
    154                 max = fmax*stats->robustMedian;
    155             } else {
    156                 min = stats->robustMedian - 3*delta;
    157                 max = stats->robustMedian + 6*delta;
    158             }
    159             psFree(mode);
    160             psFree(word);
    161             psFree(range);
    162             psFree(stats);
     144    psString mode = pmFPAfileNameFromRule (file->extrule, file, view);
     145    psString word = pmFPAfileNameFromRule (file->extxtra, file, view);
     146    psArray *range = psStringSplitArray (word, ":", false);
    163147
    164             if (!isfinite(min) || !isfinite(max)) {
    165                 psError(PS_ERR_UNKNOWN, true, "The stretch parameters are not both finite.\n");
    166                 return false;
    167             }
     148    if (!strcasecmp (mode, "RANGE") && range) {
     149        float fmin = atof(range->data[0]);
     150        float fmax = atof(range->data[1]);
     151        min = stats->robustMedian + fmin*delta;
     152        max = stats->robustMedian + fmax*delta;
     153    } else if (!strcasecmp (mode, "FRACTION")) {
     154        float fmin = atof(range->data[0]);
     155        float fmax = atof(range->data[1]);
     156        min = fmin*stats->robustMedian;
     157        max = fmax*stats->robustMedian;
     158    } else {
     159        min = stats->robustMedian - 3*delta;
     160        max = stats->robustMedian + 6*delta;
     161    }
     162    psFree(mode);
     163    psFree(word);
     164    psFree(range);
     165    psFree(stats);
    168166
    169             psString name = pmFPAfileNameFromRule (file->filerule, file, view);
    170             psString mapname = pmFPAfileNameFromRule (file->filextra, file, view);
    171             psImageJpegColormap *map = psImageJpegColormapSet (NULL, mapname);
    172             psFree(mapname);
    173             if (!map) {
    174                 map = psImageJpegColormapSet (NULL, "-greyscale");
    175             }
     167    if (!isfinite(min) || !isfinite(max)) {
     168        psError(PS_ERR_UNKNOWN, true, "The stretch parameters are not both finite.\n");
     169        return false;
     170    }
    176171
    177             psImageJpeg (map, readout->image, name, min, max);
    178             psFree(name);
    179             psFree(map);
     172    psString name = pmFPAfileNameFromRule (file->filerule, file, view);
     173    psString mapname = pmFPAfileNameFromRule (file->filextra, file, view);
     174    psImageJpegColormap *map = psImageJpegColormapSet (NULL, mapname);
     175    psFree(mapname);
     176    if (!map) {
     177        map = psImageJpegColormapSet (NULL, "-greyscale");
     178    }
    180179
    181             return true;
    182         }
    183     default:
    184         fprintf (stderr, "warning: type mismatch\n");
    185         break;
    186     }
    187     return false;
     180    psImageJpeg (map, readout->image, name, min, max);
     181    psFree(name);
     182    psFree(map);
     183
     184    return true;
    188185}
  • trunk/psModules/src/camera/pmFPAfile.h

    r7727 r9585  
    77*  @author EAM, IfA
    88*
    9 *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
    10 *  @date $Date: 2006-06-28 19:22:11 $
     9*  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
     10*  @date $Date: 2006-10-17 00:41:05 $
    1111*
    1212*  Copyright 2004-2005 Institute for Astronomy, University of Hawaii
     
    3636    PM_FPA_FILE_PSF,
    3737    PM_FPA_FILE_JPEG,
     38    PM_FPA_FILE_MANAPLOT,
    3839} pmFPAfileType;
    3940
  • trunk/psModules/src/camera/pmFPAfileIO.c

    r9511 r9585  
    2727#include "pmPSF_IO.h"
    2828#include "pmFPA_JPEG.h"
    29 # include "pmDetrendDB.h"
     29#include "pmFPA_MANAPLOT.h"
     30#include "pmDetrendDB.h"
    3031
    3132// open file (if not already opened)
     
    232233    case PM_FPA_FILE_PSF:
    233234    case PM_FPA_FILE_JPEG:
     235    case PM_FPA_FILE_MANAPLOT:
    234236        psTrace ("pmFPAfile", 5, "defer opening %s\n", file->filename);
    235237        break;
     
    315317
    316318    case PM_FPA_FILE_JPEG:
     319    case PM_FPA_FILE_MANAPLOT:
    317320        break;
    318321
     
    375378    case PM_FPA_FILE_PSF:
    376379    case PM_FPA_FILE_JPEG:
     380    case PM_FPA_FILE_MANAPLOT:
    377381        break;
    378382
     
    454458    case PM_FPA_FILE_JPEG:
    455459        pmFPAviewWriteJPEG (view, file);
    456         psTrace ("pmFPAfile", 5, "wrote PSF %s (fpa: %p)\n", file->filename, file->fpa);
     460        psTrace ("pmFPAfile", 5, "wrote JPEG %s (fpa: %p)\n", file->filename, file->fpa);
     461        break;
     462
     463    case PM_FPA_FILE_MANAPLOT:
     464        pmFPAviewWriteMANAPLOT (view, file);
     465        psTrace ("pmFPAfile", 5, "wrote MANAPLOT %s (fpa: %p)\n", file->filename, file->fpa);
    457466        break;
    458467
     
    517526    case PM_FPA_FILE_PSF:
    518527    case PM_FPA_FILE_JPEG:
     528    case PM_FPA_FILE_MANAPLOT:
    519529        break;
    520530
     
    573583    case PM_FPA_FILE_PSF:
    574584    case PM_FPA_FILE_JPEG:
     585    case PM_FPA_FILE_MANAPLOT:
    575586        break;
    576587
Note: See TracChangeset for help on using the changeset viewer.