Esempio n. 1
0
def delta_range_filter_handler(config):
    current_filter = config.matcher.delta_range_filter
    append = False
    print "Current delta range filter:", current_filter
    if current_filter is not None:
        append = sh.askbool("Do you want to add a new delta range filter to the existing one?")
    
    region = None
    if sh.askbool("Restrict delta range filter to a region?"):
        region_filename = uiutils.open_file()
        try:
            region = imgutils.Region(region_filename)
        except:
            print "Warning: opening region file failed"
    if region is not None:
        print "Delta range filter for region:", region.get_name()
    
    str2vector = lambda s: [float(k) for k in re.findall("[-0-9.]+", s)]
    check_vector = lambda s: len(str2vector(s)) == 2

    unit = u.Unit(sh.ask("Velocity unit:"))
    direction = str2vector(sh.ask("Direction vector (default=[1,0]):", check_fct=check_vector, default="1,0"))
    vx = str2vector(sh.ask("Velocity range in X direction:", check_fct=check_vector))
    vy = str2vector(sh.ask("Velocity range in Y direction:", check_fct=check_vector))
    
    range_filter = wise.DeltaRangeFilter(vxrange=vx, vyrange=vy, unit=unit, pix_limit=4, x_dir=direction)
    if region is not None:
        range_filter = wise.DeltaRegionFilter(wise.RegionFilter(region), range_filter)

    if append:
        range_filter = current_filter & range_filter

    print "Setting delta_range_filter to:", range_filter
    config.matcher.delta_range_filter = range_filter
Esempio n. 2
0
 def on_load_clicked(self, bn):
     filename = uiutils.open_file(parent=self, current_folder=self.current_folder)
     if filename is not None:
         try:
             poly_region = imgutils.PolyRegion.from_file(filename, self.img.get_coordinate_system())
             self.load_poly_region(poly_region)
         except Exception, e:
             msg = "Failed to load region %s\n%s" % (filename, e)
             print msg
             uiutils.error_msg(msg, self)
Esempio n. 3
0
 def on_load_clicked(self, bn):
     filename = uiutils.open_file(parent=self, current_folder=self.current_folder)
     if filename is not None:
         try:
             poly_region = imgutils.PolyRegion.from_file(filename, self.img.get_coordinate_system())
             self.load_poly_region(poly_region)
         except Exception, e:
             msg = "Failed to load region %s\n%s" % (filename, e)
             print msg
             uiutils.error_msg(msg, self)
Esempio n. 4
0
def delta_range_filter_handler(config):
    current_filter = config.matcher.delta_range_filter
    append = False
    print "Current delta range filter:", current_filter
    if current_filter is not None:
        append = sh.askbool(
            "Do you want to add a new delta range filter to the existing one?")

    region = None
    if sh.askbool("Restrict delta range filter to a region?"):
        region_filename = uiutils.open_file()
        try:
            region = imgutils.Region(region_filename)
        except:
            print "Warning: opening region file failed"
    if region is not None:
        print "Delta range filter for region:", region.get_name()

    str2vector = lambda s: [float(k) for k in re.findall("[-0-9.]+", s)]
    check_vector = lambda s: len(str2vector(s)) == 2

    unit = u.Unit(sh.ask("Velocity unit:"))
    direction = str2vector(
        sh.ask("Direction vector (default=[1,0]):",
               check_fct=check_vector,
               default="1,0"))
    vx = str2vector(
        sh.ask("Velocity range in X direction:", check_fct=check_vector))
    vy = str2vector(
        sh.ask("Velocity range in Y direction:", check_fct=check_vector))

    range_filter = wise.DeltaRangeFilter(vxrange=vx,
                                         vyrange=vy,
                                         unit=unit,
                                         pix_limit=4,
                                         x_dir=direction)
    if region is not None:
        range_filter = wise.DeltaRegionFilter(wise.RegionFilter(region),
                                              range_filter)

    if append:
        range_filter = current_filter & range_filter

    print "Setting delta_range_filter to:", range_filter
    config.matcher.delta_range_filter = range_filter