Beispiel #1
0
    def OnRenameObject(self, event):
        (node_type, node_main_info, node_extra_info) = self.popup_obj
        OM = ObjectManager()
        obj = OM.get(node_main_info)

        UIM = UIManager()
        dlg = UIM.create('dialog_controller', title='Rename object')
        #
        try:
            ctn_details = dlg.view.AddCreateContainer('StaticBox',
                                                      label='Object details',
                                                      orient=wx.VERTICAL,
                                                      proportion=0,
                                                      flag=wx.EXPAND | wx.TOP,
                                                      border=5)
            dlg.view.AddStaticText(ctn_details,
                                   proportion=0,
                                   flag=wx.EXPAND | wx.TOP,
                                   border=5,
                                   label='Name: ' + obj.name)
            #
            dlg.view.AddStaticText(ctn_details,
                                   proportion=0,
                                   flag=wx.EXPAND | wx.TOP,
                                   border=5,
                                   label='Type id: ' + obj.tid)
            dlg.view.AddStaticText(ctn_details,
                                   proportion=0,
                                   flag=wx.EXPAND | wx.TOP,
                                   border=5,
                                   label='Object id: ' + str(obj.oid))
            #
            ctn_new_name = dlg.view.AddCreateContainer('StaticBox',
                                                       label='New name',
                                                       orient=wx.VERTICAL,
                                                       proportion=0,
                                                       flag=wx.EXPAND | wx.TOP,
                                                       border=5)
            dlg.view.AddTextCtrl(ctn_new_name,
                                 proportion=0,
                                 flag=wx.EXPAND | wx.TOP,
                                 border=5,
                                 widget_name='new_name',
                                 initial=obj.name)
            #
            dlg.view.SetSize((300, 330))
            answer = dlg.view.ShowModal()
            #
            if answer == wx.ID_OK:
                results = dlg.get_results()
                new_name = results.get('new_name')
                obj.name = new_name
                UIM = UIManager()
                controller = UIM.get(self._controller_uid)
                controller.reload_object_node(obj.uid)
        except Exception as e:
            print('\nERROR OnRenameObject:', e)
            raise
        finally:
            UIM.remove(dlg.uid)
Beispiel #2
0
 def on_page_close(self, event):
     panel = self._notebook.GetPage(event.GetSelection())
     # Remove page without destruct
     self.remove_notebook_page(panel)
     # Remove from UIManager with Window destruction
     UIM = UIManager()
     UIM.remove(panel._controller_uid)
     # Line below must exist in order to prevent SystemError
     wx.CallAfter(self.adjust_background_panel)
Beispiel #3
0
 def OnUnitConvert(self, event):
     (node_type, node_main_info, node_extra_info) = self.popup_obj
     OM = ObjectManager()
     obj = OM.get(node_main_info)
     try:
         unit = uom.get_unit(obj.unit)
         dim = uom.get_unit_dimension(unit.dimension)
         qc = uom.get_quantity_class(dim.name)
         UNITS_OPTIONS = OrderedDict()
         for mu in qc.memberUnit:
             UNITS_OPTIONS[mu] = mu
     except:
         msg = 'Unit ' + obj.unit + ' cannot be converted.'
         wx.MessageBox(msg, 'Warning', wx.OK | wx.ICON_WARNING)
         return
         #
     UIM = UIManager()
     dlg = UIM.create('dialog_controller', title='Unit conversion')
     #
     try:
         ctn_details = dlg.view.AddCreateContainer('StaticBox', label='Object details', orient=wx.VERTICAL,
                                                   proportion=0, flag=wx.EXPAND | wx.TOP, border=5)
         dlg.view.AddStaticText(ctn_details, proportion=0, flag=wx.EXPAND | wx.TOP, border=5,
                                label='Name: ' + obj.name)
         #
         dlg.view.AddStaticText(ctn_details, proportion=0, flag=wx.EXPAND | wx.TOP, border=5,
                                label='Type id: ' + obj.tid)
         dlg.view.AddStaticText(ctn_details, proportion=0, flag=wx.EXPAND | wx.TOP, border=5,
                                label='Object id: ' + str(obj.oid))
         dlg.view.AddStaticText(ctn_details, proportion=0, flag=wx.EXPAND | wx.TOP, border=5,
                                label='Current unit: ' + obj.unit)
         #
         ctn_new_unit = dlg.view.AddCreateContainer('StaticBox', label='New unit', orient=wx.VERTICAL, proportion=0,
                                                    flag=wx.EXPAND | wx.TOP, border=5)
         dlg.view.AddChoice(ctn_new_unit, proportion=0, flag=wx.EXPAND | wx.TOP, border=5, widget_name='new_unit',
                            options=UNITS_OPTIONS)
         #    
         dlg.view.SetSize((300, 330))
         answer = dlg.view.ShowModal()
         #
         if answer == wx.ID_OK:
             results = dlg.get_results()
             new_unit_name = results.get('new_unit')
             new_data = uom.convert(obj.data, obj.unit, new_unit_name)
             obj._data = new_data
             obj.unit = new_unit_name
         #                UIM = UIManager()
     #                controller = UIM.get(self._controller_uid)
     #                controller.reload_object(obj.uid)
     except Exception:
         pass
     finally:
         UIM.remove(dlg.uid)
Beispiel #4
0
 def deactivatePlugin(self):
     if not self.is_activated:
         return
     if self._menu_item_uid:
         log.debug('Plugin {} will try to remove itself from Menu'.format(
             self.name))
         _UIM = UIManager()
         _UIM.remove(self._menu_item_uid)
         self._menu_item_uid = None
         log.debug('Plugin {} was removed from Menu'.format(self.name))
     self.plugin_object.deactivate()
     log.debug('Deactivated plugin: {}'.format(self.name))
Beispiel #5
0
 def remove_selected_tracks(self):
     """
     Remove selected :class:`~GRIPy-3.ui.mvc_classes.TrackController` on 
     :class:`WellPlot`.
     """
     UIM = UIManager()
     selected_tracks = UIM.exec_query('track_controller',
                                      self.uid,
                                      'selected=True',
                                      orderby='pos',
                                      reverse=True)
     for track in selected_tracks:
         UIM.remove(track.uid)
Beispiel #6
0
def create_properties_dialog(obj_uid, size=None):
    if not size:
        size = (300, 330)
    UIM = UIManager()
    try:
        dlg = UIM.create('object_properties_dialog_controller')
        # print(dlg)
        dlg.obj_uid = obj_uid
        dlg.view.SetSize(size)
        dlg.view.ShowModal()
    except Exception as e:
        print('\nERROR create_properties_dialog:', e)
        raise
    finally:
        UIM.remove(dlg.uid)
Beispiel #7
0
 def _set_float_mode(self, new_value, old_value):
     UIM = UIManager()
     controller = UIM.get(self._controller_uid)
     parent_uid = UIM._getparentuid(controller.uid)
     if new_value:
         controller.unsubscribe(self._set_title, 'change.title')
         controller.unsubscribe(self._set_pos, 'change.pos')
         fc = UIM.create('frame_controller',
                         parent_uid,
                         title=controller.title)
         UIM.reparent(self._controller_uid, fc.uid)
         fc.view.Show()
     else:
         mwc_uid = UIM._getparentuid(parent_uid)
         mwc = UIM.get(mwc_uid)
         UIM.reparent(self._controller_uid, mwc.uid)
         UIM.remove(parent_uid)
         controller.subscribe(self._set_title, 'change.title')
         controller.subscribe(self._set_pos, 'change.pos')
Beispiel #8
0
 def on_change_plottype(self, new_value, old_value):
     UIM = UIManager()
     repr_ctrl = self.get_representation()
     label = self.get_label()
     #
     if repr_ctrl:
         UIM.remove(repr_ctrl.uid) 
     if label:
         label.destroy()
     #    
     if new_value is not None:
         repr_tid = _PLOTTYPES_REPRESENTATIONS.get(new_value)
         try:
             #
             track_ctrl_uid = UIM._getparentuid(self.uid)
             track_ctrl =  UIM.get(track_ctrl_uid)
             #
             if not track_ctrl.overview:
                 label = track_ctrl._append_track_label(
                                                     toc_uid=track_ctrl_uid
                 )
                 #
                 data_obj = self.get_data_object()
                 label.set_title(data_obj.name)
                 label.set_subtitle(data_obj.datatype)
                 #
                 self._label = label
                 #
             else:
                 self._label = None  
             #
             # TODO: rever linha abaixo
             state = self._get_log_state()                
             repr_ctrl = UIM.create(repr_tid, self.uid, **state)
             repr_ctrl.draw()
             #
         except Exception as e:
             print ('ERROR on_change_plottype', e)
             self.plottype = None    
             raise
Beispiel #9
0
    def GrainEntry(self):
        UIM = UIManager()
        dlg = UIM.create('dialog_controller', title='Rock creator')
        cont_grain = dlg.view.AddCreateContainer('StaticBox',
                                                 label='Grain Parts',
                                                 orient=wx.VERTICAL,
                                                 proportion=0,
                                                 flag=wx.EXPAND | wx.TOP,
                                                 border=5)
        cont_matr = dlg.view.AddCreateContainer('StaticBox',
                                                label='Matrix Parts',
                                                orient=wx.VERTICAL,
                                                proportion=0,
                                                flag=wx.EXPAND | wx.TOP,
                                                border=5)

        json_file = '\\Temp\\min.json'
        #        fullpath_json = 'C:\\Users\\rtabelini\\Documents\\Github\\GRIPy'+json_file
        fullpath_json = cwd() + json_file

        dictmin = app.app_utils.read_json_file(fullpath_json)

        def on_change_mineral(name, old_value, new_value, **kwargs):
            print('new\n', name, new_value, new_value['name'],
                  dictmin.iterkeys())
            if name == 'mineralgrain':
                textctrl_k = dlg.view.get_object('kmod1')
                textctrl_g = dlg.view.get_object('gmod1')
                textctrl_rho = dlg.view.get_object('dens1')
            elif name == 'mineralmatrix':
                textctrl_k = dlg.view.get_object('kmod2')
                textctrl_g = dlg.view.get_object('gmod2')
                textctrl_rho = dlg.view.get_object('dens2')

            if new_value['name'] in dictmin.iterkeys():
                textctrl_k.set_value(new_value['K'])
                textctrl_g.set_value(new_value['G'])
                textctrl_rho.set_value(new_value['Dens'])

        dlg.view.AddChoice(cont_grain,
                           widget_name='mineralgrain',
                           options=dictmin,
                           flag=wx.EXPAND)
        choice_grain = dlg.view.get_object('mineralgrain')
        choice_grain.set_trigger(on_change_mineral)

        dlg.view.AddChoice(cont_matr,
                           widget_name='mineralmatrix',
                           options=dictmin,
                           flag=wx.EXPAND)
        choice_matrix = dlg.view.get_object('mineralmatrix')
        choice_matrix.set_trigger(on_change_mineral)

        gr_frac = dlg.view.AddCreateContainer('BoxSizer',
                                              cont_grain,
                                              orient=wx.HORIZONTAL,
                                              proportion=1,
                                              flag=wx.EXPAND | wx.ALL,
                                              border=5)
        dlg.view.AddStaticText(gr_frac,
                               proportion=1,
                               initial='Fraction ',
                               flag=wx.ALIGN_RIGHT)
        dlg.view.AddTextCtrl(gr_frac,
                             proportion=1,
                             widget_name='frac1',
                             initial='0.8',
                             flag=wx.ALIGN_RIGHT)

        gr_poro = dlg.view.AddCreateContainer('BoxSizer',
                                              cont_grain,
                                              orient=wx.HORIZONTAL,
                                              proportion=1,
                                              flag=wx.EXPAND | wx.ALL,
                                              border=5)
        dlg.view.AddStaticText(gr_poro,
                               proportion=1,
                               initial='Porosity ',
                               flag=wx.ALIGN_RIGHT)
        dlg.view.AddTextCtrl(gr_poro,
                             proportion=1,
                             widget_name='poro1',
                             initial='0.20',
                             flag=wx.ALIGN_RIGHT)

        gr_kmod = dlg.view.AddCreateContainer('BoxSizer',
                                              cont_grain,
                                              orient=wx.HORIZONTAL,
                                              proportion=1,
                                              flag=wx.EXPAND | wx.ALL,
                                              border=5)
        dlg.view.AddStaticText(gr_kmod,
                               proportion=1,
                               widget_name='K_Modulus',
                               initial='K Modulus (GPa) ',
                               flag=wx.ALIGN_RIGHT)
        dlg.view.AddTextCtrl(gr_kmod,
                             proportion=1,
                             widget_name='kmod1',
                             initial='36.5',
                             flag=wx.ALIGN_RIGHT)

        gr_gmod = dlg.view.AddCreateContainer('BoxSizer',
                                              cont_grain,
                                              orient=wx.HORIZONTAL,
                                              proportion=1,
                                              flag=wx.EXPAND | wx.ALL,
                                              border=5)
        dlg.view.AddStaticText(gr_gmod,
                               proportion=1,
                               widget_name='G_Modulus',
                               initial='G Modulus (GPa) ',
                               flag=wx.ALIGN_RIGHT)
        dlg.view.AddTextCtrl(gr_gmod,
                             proportion=1,
                             widget_name='gmod1',
                             initial='78.6',
                             flag=wx.ALIGN_RIGHT)

        gr_dens = dlg.view.AddCreateContainer('BoxSizer',
                                              cont_grain,
                                              orient=wx.HORIZONTAL,
                                              proportion=1,
                                              flag=wx.EXPAND | wx.ALL,
                                              border=5)
        dlg.view.AddStaticText(gr_dens,
                               proportion=1,
                               widget_name='Density',
                               initial='Density (g/cc) ',
                               flag=wx.ALIGN_RIGHT)
        dlg.view.AddTextCtrl(gr_dens,
                             proportion=1,
                             widget_name='dens1',
                             initial='2.65',
                             flag=wx.ALIGN_RIGHT)

        mtr_frac = dlg.view.AddCreateContainer('BoxSizer',
                                               cont_matr,
                                               orient=wx.HORIZONTAL,
                                               proportion=1,
                                               flag=wx.EXPAND | wx.ALL,
                                               border=5)
        dlg.view.AddStaticText(mtr_frac,
                               proportion=1,
                               widget_name='fraction2',
                               initial='Fraction ',
                               flag=wx.ALIGN_RIGHT)
        dlg.view.AddTextCtrl(mtr_frac,
                             proportion=1,
                             widget_name='frac2',
                             initial='0.2',
                             flag=wx.ALIGN_LEFT)

        mtr_poro = dlg.view.AddCreateContainer('BoxSizer',
                                               cont_matr,
                                               orient=wx.HORIZONTAL,
                                               proportion=1,
                                               flag=wx.EXPAND | wx.ALL,
                                               border=5)
        dlg.view.AddStaticText(mtr_poro,
                               proportion=1,
                               initial='Porosity ',
                               flag=wx.ALIGN_RIGHT)
        dlg.view.AddTextCtrl(mtr_poro,
                             proportion=1,
                             widget_name='poro2',
                             initial='0.10',
                             flag=wx.ALIGN_RIGHT)

        mtr_kmod = dlg.view.AddCreateContainer('BoxSizer',
                                               cont_matr,
                                               orient=wx.HORIZONTAL,
                                               proportion=1,
                                               flag=wx.EXPAND | wx.ALL,
                                               border=5)
        dlg.view.AddStaticText(mtr_kmod,
                               proportion=1,
                               widget_name='K_Modulus2',
                               initial='K Modulus (GPa) ',
                               flag=wx.ALIGN_RIGHT)
        dlg.view.AddTextCtrl(mtr_kmod,
                             proportion=1,
                             widget_name='kmod2',
                             initial='36.5',
                             flag=wx.ALIGN_LEFT)

        mtr_gmod = dlg.view.AddCreateContainer('BoxSizer',
                                               cont_matr,
                                               orient=wx.HORIZONTAL,
                                               proportion=1,
                                               flag=wx.EXPAND | wx.ALL,
                                               border=5)
        dlg.view.AddStaticText(mtr_gmod,
                               proportion=1,
                               widget_name='G_Modulus2',
                               initial='G Modulus (GPa) ',
                               flag=wx.ALIGN_RIGHT)
        dlg.view.AddTextCtrl(mtr_gmod,
                             proportion=1,
                             widget_name='gmod2',
                             initial='78.6',
                             flag=wx.ALIGN_LEFT)

        mtr_dens = dlg.view.AddCreateContainer('BoxSizer',
                                               cont_matr,
                                               orient=wx.HORIZONTAL,
                                               proportion=1,
                                               flag=wx.EXPAND | wx.ALL,
                                               border=5)
        dlg.view.AddStaticText(mtr_dens,
                               proportion=1,
                               widget_name='Density2',
                               initial='Density (g/cc) ',
                               flag=wx.ALIGN_RIGHT)
        dlg.view.AddTextCtrl(mtr_dens,
                             proportion=1,
                             widget_name='dens2',
                             initial='2.65',
                             flag=wx.ALIGN_LEFT)
        #
        try:
            if dlg.view.ShowModal() == wx.ID_OK:
                results = dlg.get_results()
                gr_f = results.get('frac1')
                mtr_f = results.get('frac2')
                ngrain = results.get('mineralgrain')['name']
                nmatrix = results.get('mineralmatrix')['name']
                gr_phi = results.get('poro1')
                gr_k = results.get('kmod1')
                gr_mi = results.get('gmod1')
                gr_rho = results.get('dens1')
                mtr_phi = results.get('poro2')
                mtr_k = results.get('kmod2')
                mtr_mi = results.get('gmod2')
                mtr_rho = results.get('dens2')
                #                kk = RP.VRHill (gr_k, gr_f, mtr_k)
                #                g = RP.VRHill (gr_mi, gr_f, mtr_mi)
                print('\ngrd', gr_k, gr_f, mtr_k, type(float(mtr_k)))
                rocktype = self.OM.new(
                    'rocktype',
                    fracgrain=gr_f,
                    fracmatrix=mtr_f,
                    grain=ngrain,
                    matrix=nmatrix,
                    k=10,
                    mi=20)  #vp=vp, vs=vs, rho = rho, k=k, mi=mi, poi=poi
                return rocktype

        except Exception as e:
            print('ERROR:', str(e))
        finally:
            UIM.remove(dlg.uid)
Beispiel #10
0
 def _remove_object_helper(self, *args, **kwargs):
     UIM = UIManager()
     UIM.remove(args[0])
Beispiel #11
0
def do_STFT(*args, **kwargs):
    toc = kwargs.get('toc')
    if not toc:
        raise Exception('Trabalhando somente com o TrackObjectController.')
    #
    OM = ObjectManager()
    UIM = UIManager()
    dlg = UIM.create('dialog_controller', title='Short Time Fourier Transform')
    #
    try:
        ctn_spec_type = dlg.view.AddCreateContainer('StaticBox',
                                                    label='Spectrogram type',
                                                    orient=wx.VERTICAL,
                                                    proportion=0,
                                                    flag=wx.EXPAND | wx.TOP,
                                                    border=5)
        dlg.view.AddChoice(ctn_spec_type,
                           proportion=0,
                           flag=wx.EXPAND | wx.TOP,
                           border=5,
                           widget_name='spectrogram_type',
                           options=SPECGRAM_TYPES)
        #
        ctn_win_size = dlg.view.AddCreateContainer(
            'StaticBox',
            label='Window size (samples)',
            orient=wx.VERTICAL,
            proportion=0,
            flag=wx.EXPAND | wx.TOP,
            border=5)
        dlg.view.AddSpinCtrl(ctn_win_size,
                             proportion=0,
                             flag=wx.EXPAND,
                             widget_name='window_size',
                             max=1024,
                             initial=256)
        #
        ctn_overlap_size = dlg.view.AddCreateContainer(
            'StaticBox',
            label='Overlap size (samples)',
            orient=wx.VERTICAL,
            proportion=0,
            flag=wx.EXPAND | wx.TOP,
            border=5)
        dlg.view.AddSpinCtrl(ctn_overlap_size,
                             proportion=0,
                             flag=wx.EXPAND,
                             widget_name='noverlap',
                             max=512,
                             initial=128)
        #
        dlg.view.SetSize((230, 260))
        result = dlg.view.ShowModal()
        #
        if result == wx.ID_OK:
            results = dlg.get_results()
            if results.get('spectrogram_type'):
                #
                print('\ndo_STFT:', toc.get_data_object_uid())
                #
                di_uid, di_data = toc.get_last_dimension_index()
                data_index = OM.get(di_uid)

                unit = uom.get_unit(data_index.unit)
                dim = uom.get_unit_dimension(unit.dimension)

                print(unit.dimension, dim, dim.name)
                if dim.name == 'time':
                    print('\nConvertendo {} de {} para {}.'.format(
                        dim.name, data_index.unit, 's'))
                    di_data = uom.convert(di_data, data_index.unit, 's')

                elif dim.name == 'length':
                    print('\nConvertendo {} de {} para {}.'.format(
                        dim.name, data_index.unit, 'm'))
                    di_data = uom.convert(di_data, data_index.unit, 'm')

                else:
                    print('\nNao converteu')
                # new_data = uom.convert(obj.data, obj.unit, new_unit_name)

                #
                start_value = di_data[0]
                step_value = di_data[1] - di_data[0]
                #
                print('start_value: {} - step_value: {}'.format(
                    start_value, step_value))
                #
                dm_data = toc.get_filtered_data()
                #
                # STFT(x, window_size, noverlap, time_start, Ts, mode='psd'):
                #                print('start_value, step_value:', start_value, step_value)

                spec_type = results.get('spectrogram_type')

                stft_data, freq_values, index_values = STFT(
                    dm_data,
                    results.get('window_size'),
                    results.get('noverlap'),
                    start_value,
                    step_value,
                    mode=spec_type)
                #                freq_values *= 1000

                #
                #                print ('\n\nRetornou')
                data_out = np.zeros((len(di_data), len(freq_values)))
                stft_index_step = index_values[1] - index_values[0]
                stft_index_start = index_values[0] - (stft_index_step / 2)
                stft_index_end = index_values[-1] + (stft_index_step / 2)
                #
                #                print('Orig shape:', dm_data.shape)
                #                print('Freq Index Shape:', len(freq_values), len(index_values), stft_data.shape)
                #                print('Freqs:', np.nanmin(freq_values), np.nanmax(freq_values))
                #                print('Indexes:', index_values)
                #
                #                print ('\n\n', stft_index_start, stft_index_end)

                for idx, time in enumerate(di_data):
                    if time >= stft_index_start and time < stft_index_end:
                        stft_index_idx = int(
                            (time - stft_index_start) // stft_index_step)
                        #                        print(idx, time, stft_index_start, stft_index_step, stft_index_idx)

                        data_out[idx] = stft_data[stft_index_idx]

                # print '\n\n'

                data_out = data_out.T

                #                print()
                #                print('data_out.shape:', data_out.shape)
                #                print()

                #
                if spec_type == 'PHASE':
                    spec_type = 'PHASE_UNWRAPPED'
                elif spec_type == 'ANGLE':
                    spec_type = 'PHASE'
                #

                spectogram = OM.new('spectogram',
                                    data_out,
                                    name=toc.get_data_name() + '_STFT',
                                    datatype=results.get('spectrogram_type'))
                if not OM.add(spectogram, toc.get_data_object_uid()):
                    msg = 'Object was not added. tid={\'spectogram\'}'
                    raise Exception(msg)
                    #
                freq_index = OM.new('data_index',
                                    freq_values,
                                    name='Frequency',
                                    unit='Hz',
                                    datatype='FREQUENCY')
                if not OM.add(freq_index, spectogram.uid):
                    raise Exception('Frequency Index was not added.')
                    #
                spectogram._create_data_index_map([freq_index.uid], [di_uid])
    except Exception as e:
        print('ERROR:', e)
        # pass
    finally:
        UIM.remove(dlg.uid)
Beispiel #12
0
def do_CWT(*args, **kwargs):
    toc = kwargs.get('toc')
    if not toc:
        raise Exception('Trabalhando somente com o TrackObjectController.')
    #

    #    obj = args[0]
    UIM = UIManager()
    dlg = UIM.create('dialog_controller', title='Continuous Wavelet Transform')
    #
    try:
        ctn_wavelet = dlg.view.AddCreateContainer('StaticBox',
                                                  label='Wavelet',
                                                  orient=wx.VERTICAL,
                                                  proportion=0,
                                                  flag=wx.EXPAND | wx.TOP,
                                                  border=5)
        dlg.view.AddChoice(ctn_wavelet,
                           proportion=0,
                           flag=wx.EXPAND | wx.TOP,
                           border=5,
                           widget_name='wavelet',
                           options=WAVELET_TYPES)
        #
        ctn_scale_res = dlg.view.AddCreateContainer('StaticBox',
                                                    label='Scale resolution',
                                                    orient=wx.VERTICAL,
                                                    proportion=0,
                                                    flag=wx.EXPAND | wx.TOP,
                                                    border=5)
        dlg.view.AddTextCtrl(ctn_scale_res,
                             proportion=0,
                             flag=wx.EXPAND | wx.TOP,
                             border=5,
                             widget_name='dj',
                             initial='0.125')
        #
        dlg.view.SetSize((230, 260))
        result = dlg.view.ShowModal()
        if result == wx.ID_OK:
            results = dlg.get_results()
            print(results)
            dj = None
            try:
                dj = float(results.get('dj'))
            except:
                pass
            if dj is None:
                return
            wavelet = results.get('wavelet')
            if wavelet == 'morlet':
                func = MorletWavelet()
            elif wavelet == 'ricker':
                func = RickerWavelet()
            elif wavelet == 'dog3':
                func = DOGWavelet(m=3)
            elif wavelet == 'dog4':
                func = DOGWavelet(m=4)
            elif wavelet == 'dog5':
                func = DOGWavelet(m=5)
            elif wavelet == 'dog6':
                func = DOGWavelet(m=6)
            elif wavelet == 'paul2':
                func = PaulWavelet(m=2)
            elif wavelet == 'paul3':
                func = PaulWavelet(m=3)
            elif wavelet == 'paul4':
                func = PaulWavelet(m=4)
            elif wavelet == 'paul5':
                func = PaulWavelet(m=5)
            elif wavelet == 'paul6':
                func = PaulWavelet(m=6)
            else:
                raise Exception()

                # TODO: Rever tudo isso abaixo
            valid_data = obj.data[np.isfinite(obj.data)]
            valid_index_data = obj.get_indexes().data[np.isfinite(obj.data)]

            #
            wt = WaveletTransform(valid_data,
                                  dj=dj,
                                  wavelet=func,
                                  dt=obj.step,
                                  time=valid_index_data)
            #
            OM = ObjectManager()
            seismic = OM.new('scalogram',
                             wt.wavelet_power,
                             name=obj.name + '_CWT',
                             unit='m',
                             domain='depth',
                             sample_rate=wt.time[1] - wt.time[0],
                             datum=wt.time[0],
                             samples=len(wt.time),
                             frequencies=wt.fourier_frequencies,
                             periods=wt.fourier_periods,
                             scales=wt.scales)
            OM.add(seismic)
            print(wt.wavelet_transform.shape)
            #
    except Exception:
        pass
    finally:
        UIM.remove(dlg.uid)