def view_to_model(self):
    """
    Update model to match view
    """
    self.model.dataset_name = self.view.dataset_name.GetValue()
    self.model.dispersive_direction = self.view.panel.filter_panel.dispersive_direction.GetSelection()

    # get energies and exposures
    valid, energies, exposure_files = self.view.exposure_list.GetData()
    self.exposure_list_valid = valid

    self.model.energies = energies
    self.model.exposure_files = exposure_files

    # get filters
    self.model.filters = []
    filters = self.view.get_filters()
    for (name, enabled, val) in filters:
      if enabled:
        fltr = get_filter_by_name(name)
        fltr.set_val(val)
        self.model.filters.append( fltr )

    # get xtals (and convert to int)
    self.model.xtals = [
        [[int(round(x1)),int(round(y1))],[int(round(x2)),int(round(y2))]]
        for (x1,y1),(x2,y2) in self.range_tool.rects
        ]
  def ApplyFilters(self, energy, exposure):
    min_vis = None
    max_vis = None

    # apply each filter to exposure
    filters = self.view.get_filters()
    for (name, enabled, val) in filters:
      if enabled:
        #XXX these should be instantiated once and updated when view changes
        fltr = get_filter_by_name(name)
        fltr.set_val(val)
        fltr.filter(exposure.pixels, energy)

        # these two are handled specially
        if fltr.name == 'Min Visible':
          min_vis = fltr.get_val()
        elif fltr.name == 'Max Visible':
          max_vis = fltr.get_val()

    # normalize pixels values
    p = exposure.pixels
    if min_vis is None: min_vis = p.min()
    if max_vis is None: max_vis = p.max()
    p = colors.Normalize(min_vis, max_vis)(p)
    return p
Example #3
0
  import os, sys
  from minixs.calibrate import Calibration
  from minixs.misc import read_scan_info
  import minixs.filter as filter
  from minixs.constants import *

  c = Calibration()

  c.dataset = dataset
  c.exposure_files = [os.path.abspath(e) for e in exposures]
  c.energies = read_scan_info(scan_file, [energy_col])[0]
  c.dispersive_direction = DIRECTION_NAMES.index(dispersive_direction)

  # load up filters
  for name, val in filters:
    f = filter.get_filter_by_name(name)
    if f is None:
      print "Unknown filter: %s" % name
      exit(1)

    f.set_val(val)
    c.filters.append(f)

  # convert xtal format to that used by rest of code
  c.xtals = [ ((x1,y1),(x2,y2)) for x1,y1,x2,y2 in xtal_boundaries ]

  # calibrate
  print "Calibrating...",
  sys.stdout.flush()
  c.calibrate()
  print "Finished\n"
Example #4
0
    import os, sys
    from minixs.calibrate import Calibration
    from minixs.misc import read_scan_info
    import minixs.filter as filter
    from minixs.constants import *

    c = Calibration()

    c.dataset = dataset
    c.exposure_files = [os.path.abspath(e) for e in exposures]
    c.energies = read_scan_info(scan_file, [energy_col])[0]
    c.dispersive_direction = DIRECTION_NAMES.index(dispersive_direction)

    # load up filters
    for name, val in filters:
        f = filter.get_filter_by_name(name)
        if f is None:
            print "Unknown filter: %s" % name
            exit(1)

        f.set_val(val)
        c.filters.append(f)

    # convert xtal format to that used by rest of code
    c.xtals = [((x1, y1), (x2, y2)) for x1, y1, x2, y2 in xtal_boundaries]

    # calibrate
    print "Calibrating...",
    sys.stdout.flush()
    c.calibrate()
    print "Finished\n"