Example #1
0
    def __init__(self, *args, **kwargs):
        super(RefinementResultsController, self).__init__(*args, **kwargs)
        self.parspace_gen = ParameterSpaceGenerator()

        density = 199
        for var, val in self.model.options.iteritems():
            if var == "num_samples":
                density = val

        self.parspace_gen.initialize(self.model.ranges, density)
Example #2
0
    def generate_images(self, output_dir="", density=200):
        """
            Generate the parameter space plots
        """
        samples = self.refiner.get_plot_samples()
        labels = self.refiner.get_plot_labels()
        truths = self.refiner.history.best_solution

        psg = ParameterSpaceGenerator()
        psg.initialize(self.refiner.ranges, 199)
        for sample in samples:
            psg.record(sample[:-1], sample[-1])
        psg.plot_images(self.view.figure, truths, labels[:-1])
 def generate_images(self, output_dir="", density=200):
     """
         Generate the parameter space plots
     """
     samples = self.refiner.get_plot_samples()
     labels = self.refiner.get_plot_labels()
     truths = self.refiner.history.best_solution
    
     psg = ParameterSpaceGenerator()
     psg.initialize(self.refiner.ranges, 199)
     for sample in samples:
         psg.record(sample[:-1], sample[-1])
     psg.plot_images(self.view.figure, truths, labels[:-1])
Example #4
0
class RefinementResultsController(DialogController):
    """
        A controller for a RefinementContext object that keeps track
        of the solutions and residuals generated by the refinement
        algorithm. This allows to show a nice dialog with the end
        results and some graphs about the parameter space.
    """

    register_lazy = False
    auto_adapt = True
    auto_adapt_included = [
        "initial_residual",
        "last_residual",
        "best_residual"
    ]
    solutions = None

    # ------------------------------------------------------------
    #      Initialisation and other internals
    # ------------------------------------------------------------
    def __init__(self, *args, **kwargs):
        super(RefinementResultsController, self).__init__(*args, **kwargs)
        self.parspace_gen = ParameterSpaceGenerator()

        density = 199
        for var, val in self.model.options.iteritems():
            if var == "num_samples":
                density = val

        self.parspace_gen.initialize(self.model.ranges, density)

    # ------------------------------------------------------------
    #      Notifications of observable properties
    # ------------------------------------------------------------
    @Controller.observe("solution_added", signal=True)
    def notif_solution_added(self, model, prop_name, info):
        if self.model.mixture.refiner.make_psp_plots:
            new_solution, new_residual = info.arg
            self.parspace_gen.record(new_solution, new_residual)

    # ------------------------------------------------------------
    #      GTK Signal handlers
    # ------------------------------------------------------------
    def on_cancel(self):
        self.view.hide()
        self.parent.parent.view.parent.show()

    def on_btn_initial_clicked(self, event):
        self.model.apply_initial_solution()
        self.model.mixture.refiner.delete_context()
        self.on_cancel()
        return True

    def on_btn_best_clicked(self, event):
        self.model.apply_best_solution()
        self.model.mixture.refiner.delete_context()
        self.on_cancel()
        return True

    def on_btn_last_clicked(self, event):
        self.model.apply_last_solution()
        self.model.mixture.refiner.delete_context()
        self.on_cancel()
        return True

    # ------------------------------------------------------------
    #      Methods & Functions
    # ------------------------------------------------------------
    def generate_images(self, output_dir="", density=200):
        """
            Generate the parameter space plots
        """
        self.parspace_gen.plot_images(
            figure=self.view.figure,
            centroid=self.model.best_solution,
            labels=[ref_prop.title for ref_prop in self.model.ref_props],
            density=density
        )

    def clear_images(self):
        self.parspace_gen.clear_image(figure=self.view.figure)

    pass # end of class