IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 29, 2019, 6:29:50 PM (7 years ago)
Author:
eugene
Message:

working on deimos

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ohana.20190329/src/opihi/cmd.data/medimage_commands.c

    r40654 r40661  
    1717  Buffer *image;
    1818
    19   if (argc != 3) {
    20     gprint (GP_ERR, "USAGE: medimage add (name) (image)\n");
     19  Buffer *var = NULL;
     20  if ((N = get_argument (argc, argv, "-var"))) {
     21    remove_argument (N, &argc, argv);
     22    if ((var = SelectBuffer (argv[N], OLDBUFFER, TRUE)) == NULL) return (FALSE);
     23    remove_argument (N, &argc, argv);
     24  }
     25
     26  if (argc != 3) {
     27    gprint (GP_ERR, "USAGE: medimage add (name) (image) [-var var]\n");
    2128    gprint (GP_ERR, "       add the given image to the set of images to be medianed\n");
     29    gprint (GP_ERR, "       optionally supply variance image (for weighted calculations)\n");
    2230    return FALSE;
    2331  }
    2432
    2533  if ((image = SelectBuffer (argv[2], OLDBUFFER, TRUE)) == NULL) return (FALSE);
     34
     35XXX: match dimensions wit var image
    2636
    2737  MedImageType *median = FindMedImage (argv[1]);
     
    4858  int Ninput = median->Ninput;
    4959  median->Ninput ++;
    50   REALLOCATE (median->buffers, float *, median->Ninput);
    51 
    52   ALLOCATE (median->buffers[Ninput], float, median->Nx*median->Ny);
    53   memcpy (median->buffers[Ninput], image->matrix.buffer, sizeof(float)*median->Nx*median->Ny);
     60  REALLOCATE (median->sig, float *, median->Ninput);
     61  REALLOCATE (median->var, float *, median->Ninput);
     62
     63  ALLOCATE (median->sig[Ninput], float, median->Nx*median->Ny);
     64  memcpy (median->sig[Ninput], image->matrix.buffer, sizeof(float)*median->Nx*median->Ny);
     65
     66  median->var[Ninput] = NULL;
     67  if (var) {
     68    ALLOCATE (median->var[Ninput], float, median->Nx*median->Ny);
     69    memcpy (median->var[Ninput], var->matrix.buffer, sizeof(float)*median->Nx*median->Ny);
     70  }
    5471
    5572  return TRUE;
     
    100117      int Npix = ix + Nx*iy;
    101118      for (n = 0; n < Ninput; n++) {
    102         float v = median->buffers[n][Npix];
     119        float v = median->sig[n][Npix];
    103120        if (!isfinite(v)) continue;
    104121        value[N] = v;
     
    106123      }
    107124      if (N == 0) continue;
     125
     126    XXXX: add in calc options:
     127      weighted mean
     128      irls
    108129
    109130      if (CALC_MEAN) {
Note: See TracChangeset for help on using the changeset viewer.