예제 #1
0
def test_delete_contours():
    module = ContourLinesModule(extent=extent)
    fig, ax = plt.subplots()
    module.plot_contour_lines(frame, ax)
    fig.show()
    module.delete_contourns(ax)
    fig.show()
예제 #2
0
 def load_modules(self, gempy_module: bool, **kwargs):
     from sandbox.modules import TopoModule, GradientModule, LoadSaveTopoModule, LandslideSimulation, SearchMethodsModule
     from sandbox.projector import ContourLinesModule, CmapModule
     self.Modules = {}
     self.Modules['ContourLinesModule'] = ContourLinesModule(
         extent=self.sensor.extent)
     self.Modules['CmapModule'] = CmapModule(extent=self.sensor.extent)
     self.Modules['TopoModule'] = TopoModule(extent=self.sensor.extent)
     self.Modules['GradientModule'] = GradientModule(
         extent=self.sensor.extent)
     self.Modules['LoadSaveTopoModule'] = LoadSaveTopoModule(
         extent=self.sensor.extent)
     self.Modules['LandslideSimulation'] = LandslideSimulation(
         extent=self.sensor.extent)
     self.Modules['SearchMethodsModule'] = SearchMethodsModule(
         extent=self.sensor.extent)
     self.Modules['SearchMethodsModule'].update_mesh(
         self.sensor.get_frame(),
         margins_crop=self.Modules['SearchMethodsModule'].margins_crop,
         fill_value=0)
     self.Modules['SearchMethodsModule'].activate_frame_capture = False
     if gempy_module:
         from sandbox.modules import GemPyModule
         geo_model = kwargs.get('geo_model')
         #load_example = kwargs.get('load_examples')
         #name_example = kwargs.get('name_example')
         self.Modules['GemPyModule'] = GemPyModule(
             geo_model=geo_model,
             extent=self.sensor.extent,
             box=self.sensor.physical_dimensions,
             #load_examples=load_example,
             #name_example=name_example,
             **kwargs)
예제 #3
0
def test_update_array():
    module = ContourLinesModule(extent=extent)
    fig, ax = plt.subplots()
    module.plot_contour_lines(frame, ax)
    fig.show()
    module.delete_contourns(ax)
    file = np.load(test_data['topo'] + "DEM2.npz")
    frame2 = file['arr_0']
    module.plot_contour_lines(frame2, ax)
    fig.show()
예제 #4
0
    def load_modules(self,
                     gempy_module: bool = False,
                     gimli_module: bool = False,
                     torch_module: bool = False,
                     devito_module: bool = False,
                     kwargs_gempy_module: dict = {},
                     ):
        from sandbox.modules import (TopoModule, GradientModule, LoadSaveTopoModule, LandslideSimulation,
                                     SearchMethodsModule)
        from sandbox.projector import ContourLinesModule, CmapModule
        self.Modules = {'ContourLinesModule': ContourLinesModule(extent=self.sensor.extent),
                        'CmapModule': CmapModule(extent=self.sensor.extent),
                        'TopoModule': TopoModule(extent=self.sensor.extent),
                        'GradientModule': GradientModule(extent=self.sensor.extent),
                        'LoadSaveTopoModule': LoadSaveTopoModule(extent=self.sensor.extent),
                        'LandslideSimulation': LandslideSimulation(extent=self.sensor.extent),
                        'SearchMethodsModule': SearchMethodsModule(extent=self.sensor.extent)}
        #self.Modules['SearchMethodsModule'].update_mesh(self.sensor.get_frame(),
        #                                                margins_crop=self.Modules['SearchMethodsModule'].margins_crop,
        #                                                fill_value=0)
        #self.Modules['SearchMethodsModule'].activate_frame_capture = False
        if gempy_module and self._gempy_import:
            from sandbox.modules.gempy import GemPyModule
            self.Modules['GemPyModule'] = GemPyModule(extent=self.sensor.extent,
                                                      box=self.sensor.physical_dimensions,
                                                      **kwargs_gempy_module)
        if devito_module and self._devito_import:
            from sandbox.modules.devito import SeismicModule
            self.Modules['SeismicModule'] = SeismicModule(extent=self.sensor.extent)

        if gimli_module and self._pygimli_import:
            from sandbox.modules.gimli import GeoelectricsModule
            self.Modules['GeoelectricsModule'] = GeoelectricsModule(extent=self.sensor.extent)

        if torch_module and self._torch_import:
            from sandbox.modules.pytorch import LandscapeGeneration
            self.Modules['LandscapeGeneration'] = LandscapeGeneration(extent=self.sensor.extent)
예제 #5
0
    def __init__(self,
                 sensor: Sensor,
                 projector: Projector,
                 aruco: MarkerDetection = None,
                 modules: list = [],
                 crop: bool = True,
                 clip: bool = True,
                 check_change: bool = False,
                 **kwargs):
        """

        Args:
            sensor:
            projector:
            aruco:
            modules:
            crop:
            clip:
            check_change:
            **kwargs:
        """
        #TODO: in all the modules be carefull with zorder
        self.sensor = sensor
        self.projector = projector
        self.projector.clear_axes()
        self.contours = ContourLinesModule(extent=self.sensor.extent)
        self.cmap_frame = CmapModule(extent=self.sensor.extent)

        #start the modules
        #self.modules = collections.OrderedDict({'CmapModule': self.cmap_frame, 'ContourLinesModule': self.contours})
        self.modules = {
            'CmapModule': self.cmap_frame,
            'ContourLinesModule': self.contours
        }
        self._modules = {
            'CmapModule': self.cmap_frame,
            'ContourLinesModule': self.contours
        }  #cachee

        # threading
        self.lock = threading.Lock()
        self.thread = None
        self.thread_status = 'stopped'  # status: 'stopped', 'running', 'paused'

        # connect to ArucoMarker class
        # if CV2_IMPORT is True:
        self.Aruco = aruco
        self.ARUCO_ACTIVE = False
        if isinstance(self.Aruco, MarkerDetection):
            self.ARUCO_ACTIVE = True

        self.sb_params = {
            'frame': self.sensor.get_frame(),
            'ax': self.projector.ax,
            'extent': self.sensor.extent,
            'box_dimensions': self.sensor.physical_dimensions,
            'marker': pd.DataFrame(),
            'cmap': plt.cm.get_cmap('gist_earth'),
            'norm': None,
            'active_cmap': True,
            'active_contours': True,
            'same_frame': False,
            'lock_thread': self.lock,
            'trigger': self.projector.trigger
        }  #TODO: Carefull with this use because it can make to paint the figure incompletely

        #'freeze_frame': False}

        self.previous_frame = self.sb_params['frame']

        #To reduce the noise of the data
        self.check_change = check_change
        self._rtol = 0.2
        self._atol = 5
        # render the frame
        self.cmap_frame.render_frame(self.sb_params['frame'],
                                     self.sb_params['ax'])
        # plot the contour lines
        self.contours.plot_contour_lines(self.sb_params['frame'],
                                         self.sb_params['ax'])
        self.projector.trigger()

        self._create_widgets()
예제 #6
0
    def __init__(self, sensor: Sensor, projector: Projector, aruco: MarkerDetection = None,
                 check_change: bool = False, kwargs_contourlines: dict = {}, kwargs_cmap: dict = {},
                 **kwargs):
        """

        Args:
            sensor:
            projector:
            aruco:
            modules:
            crop:
            clip:
            check_change:
            **kwargs:
        """
        self._error_message = ''
        # TODO: in all the modules be carefull with zorder
        self.sensor = sensor
        self.projector = projector
        self.projector.clear_axes()
        self.contours = ContourLinesModule(extent=self.sensor.extent, **kwargs_contourlines)
        self.cmap_frame = CmapModule(extent=self.sensor.extent, **kwargs_cmap)

        # start the modules
        self.modules = collections.OrderedDict({'CmapModule': self.cmap_frame, 'ContourLinesModule': self.contours})
        self._modules = collections.OrderedDict({'CmapModule': self.cmap_frame, 'ContourLinesModule': self.contours})

        # threading
        self.lock = threading.Lock()
        self.thread = None
        self.thread_status = 'stopped'  # status: 'stopped', 'running', 'paused'
        self.main_task = None

        # connect to ArucoMarker class
        # if CV2_IMPORT is True:
        self.Aruco = aruco
        self.ARUCO_ACTIVE = False
        if isinstance(self.Aruco, MarkerDetection):
            self.ARUCO_ACTIVE = True

        self.sb_params = {'frame': self.sensor.get_frame(),
                          'ax': self.projector.ax,
                          'set_colorbar': self.projector.set_colorbar,
                          'set_legend': self.projector.set_legend,
                          'extent': self.sensor.extent,
                          'box_dimensions': self.sensor.physical_dimensions,
                          'marker': pd.DataFrame(),
                          'cmap': plt.cm.get_cmap('gist_earth'),
                          'norm': None,
                          'active_cmap': True,
                          'active_shading': True,
                          'active_contours': True,
                          'same_frame': False,
                          'lock_thread': self.lock,
                          'trigger': self.projector.trigger,
                          # TODO: Carefull with this use because it can make to paint the figure incompletely
                          'del_contour': True, }
        # 'freeze_frame': False}

        self.previous_frame = self.sb_params['frame']

        # To reduce the noise of the data
        self.check_change = check_change
        self._rtol = 0.07  # Widgets for this
        self._atol = 0.001
        # render the frame
        self.cmap_frame.render_frame(self.sb_params['frame'], self.sb_params['ax'])
        # plot the contour lines
        self.contours.plot_contour_lines(self.sb_params['frame'], self.sb_params['ax'])
        self.projector.trigger()

        self._create_widgets()

        self._loaded_frame = False
        self._error_message = ''
        self._widget_error_markdown = pn.pane.Markdown("<p>Open_AR_Sandbox</p>")
예제 #7
0
def test_create_widgets_plot():
    module = ContourLinesModule(extent=extent)
    widget = module.show_widgets()
    widget.show()
예제 #8
0
def test_update():
    module = ContourLinesModule(extent=extent)
    fig, ax = plt.subplots()

    sb_params = module.update(pytest.sb_params)
    fig.show()
예제 #9
0
def test_generating_all():
    module = ContourLinesModule(extent=extent)

    fig, ax = plt.subplots()
    module.plot_contour_lines(frame, ax)
    fig.show()
예제 #10
0
def test_init():
    module = ContourLinesModule(extent=extent)
    print(module)