Exemple #1
0
        def __init__(self, parent=None):
            super().__init__(parent)
            self.setupUi(self)
            # Facade set up for the taxa dialog
            # box. These inputs will have been already
            # logged in the computer in order to
            # reach this phase
            self.facade = face.Facade()
            self.facade.input_register(metahandle)
            self.facade.meta_verify()
            self.facade.input_register(filehandle)
            self.facade.load_data()
            self.facade.input_register(sitehandle)
            sitelevels = self.facade._data['SITE'].drop_duplicates(
            ).values.tolist()
            self.facade.register_site_levels(sitelevels)
            self.facade.input_register(taxahandle)

            self.sitelabel = None

            # Actions
            self.btnAddsite.clicked.connect(self.submit_change)
            self.btnSaveClose.clicked.connect(self.submit_change)
            self.btnCancel.clicked.connect(self.close)

            # Update boxes/preview box
            self.message = QtGui.QMessageBox
            self.error = QtGui.QErrorMessage()
Exemple #2
0
        def __init__(self, parent=None):
            super().__init__(parent)
            self.setupUi(self)

            # Facade set up
            self.facade = face.Facade()
            self.facade.input_register(meta_handle_1_count)
            self.facade.meta_verify()
            self.facade.input_register(file_handle_split_columns)
            self.facade.load_data()

            self.previous_click = False
            # Place holders for user inputs
            self.splitcolumnlned = {}

            # Place holder: Data Model/ Data model view
            self.splitcolumnmodel = None
            self.viewEdit = view.PandasTableModelEdit(None)
            # Placeholders: Data tables
            self.splitcolumntable = None

            # Actions
            self.btnPreview.clicked.connect(self.submit_change)
            self.btnSaveClose.clicked.connect(self.submit_change)
            self.btnCancel.clicked.connect(self.close)

            # Update boxes/preview box
            self.message = QtGui.QMessageBox
            self.error = QtGui.QErrorMessage()
            self.preview = tprev.TablePreview()
Exemple #3
0
        def __init__(self, parent=None):
            super().__init__(parent)
            # attributes
            self.setupUi(self)

            # ------- SITE DIALOG CONSTRUCTOR ARGS ----- #
            self.facade = face.Facade()
            self.dsite = SiteDialog()
            # Actions
            self.actionSiteTable.triggered.connect(self.site_display)
            # Custom Signals
            self.dsite.site_unlocks.connect(self.site_complete_enable)
            self.dsite.update_data

            # ------ SESSION DIALOG CONSTRUCTOR ARGS ----- #
            # Dialog boxes for user feedback
            self.dsession = logicsess.SessionDialog()
            self.error = QtGui.QErrorMessage()
            self.message = QtGui.QMessageBox
            # Custom signals
            self.dsession.raw_data_model.connect(self.update_data_model)
            # actions
            self.actionStart_Session.triggered.connect(self.session_display)

            self.mdiArea.addSubWindow(self.subwindow_2)
            self.mdiArea.addSubWindow(self.subwindow_1)

            metadf = read_csv(rootpath + end + 'data' + end +
                              'Cataloged_Data_Current_sorted.csv',
                              encoding='iso-8859-11')
            metamodel = view.PandasTableModel(
                metadf[['global_id', 'lter', 'title', 'site_metadata']])
            self.tblViewMeta.setModel(metamodel)
Exemple #4
0
        def __init__(self, parent=None):
            super().__init__(parent)
            self.setupUi(self)
            # Facade set up for the taxa dialog
            # box. These inputs will have been already
            # logged in the computer in order to
            # reach this phase
            self.facade = face.Facade()
            self.facade.input_register(meta_handle_free)
            self.facade.meta_verify()
            self.facade.input_register(file_handle_free)
            self.facade.load_data()
            self.facade.input_register(site_handle_free)
            sitelevels = self.facade._data[site_handle_free.lnedentry[
                'study_site_key']].drop_duplicates().values.tolist()
            self.facade.register_site_levels(sitelevels)

            # Place holders for user inputs
            self.obslned = {}
            self.obsckbox = {}
            self.obsraw = {}
            self.available = None
            self.null = None
            # Place holder: Data Model/ Data model view
            self.obsmodel = None
            self.viewEdit = view.PandasTableModelEdit
            # Placeholders: Data tables
            self.obstable = None
            # Placeholder: Director (table builder), log
            self.obsdirector = None
            self._log = None
            # Placeholder for maindata Orms
            self.obsorms = {}
            # Actions
            self.btnPreview.clicked.connect(self.submit_change)
            self.btnSaveClose.clicked.connect(self.submit_change)
            self.btnCancel.clicked.connect(self.close)
            self.tablename = None
            self.table = None

            # Update boxes/preview box
            self.message = QtGui.QMessageBox
            self.error = QtGui.QErrorMessage()
            self.preview = prev.TablePreview()
Exemple #5
0
        def __init__(self, parent=None):
            super().__init__(parent)
            # attributes
            self.setupUi(self)

            # ------- SITE DIALOG CONSTRUCTOR ARGS ----- #
            self.facade = face.Facade()
            self.dsite = s_.SiteDialog()
            self.climatesite = ClimateSite()
            self.climatesite.climatesite_unlocks.connect(
                self.climate_site_complete_enabled)

            # Actions
            self.actionSiteTable.triggered.connect(self.site_display)
            self.actionClimateSiteTable.triggered.connect(
                self.climate_site_display)
            # Custom Signals

            # ------ SESSION DIALOG CONSTRUCTOR ARGS ----- #
            # Dialog boxes for user feedback
            self.dsession = logicsess.SessionDialog()
            self.dsession.raw_data_model.connect(self.update_data_model)

            self.climatesession = logicsess.SessionDialog()
            self.climatesession.raw_data_model.connect(self.update_data_model)

            self.error = QtGui.QErrorMessage()
            self.message = QtGui.QMessageBox

            # actions
            self.actionStart_Session.triggered.connect(self.session_display)
            self.actionNew_Climate.triggered.connect(
                self.climate_session_display)

            self.mdiArea.addSubWindow(self.subwindow_2)
            self.mdiArea.addSubWindow(self.subwindow_1)

            # Dialog boxes for user feedback
            self.error = QtGui.QErrorMessage()
            self.message = QtGui.QMessageBox

            metadf = read_csv(metapath, encoding='iso-8859-11')
            metamodel = view.PandasTableModel(metadf)
            self.tblViewMeta.setModel(metamodel)
Exemple #6
0
        def __init__(self, parent=None):
            super().__init__(parent)
            # attributes
            self.setupUi(self)
            self.facade = face.Facade()
            self.dsession = SessionDialog()

            # Dialog boxes for user feedback
            self.error = QtGui.QErrorMessage()
            self.message = QtGui.QMessageBox

            # Custom signals
            self.dsession.raw_data_model.connect(self.update_data_model)

            # actions
            self.actionStart_Session.triggered.connect(self.session_display)

            self.mdiArea.addSubWindow(self.subwindow_2)
            self.mdiArea.addSubWindow(self.subwindow_1)
Exemple #7
0
        def __init__(self, parent=None):
            super().__init__(parent)
            self.setupUi(self)

            self.facade = face.Facade()
            self.facade.input_register(meta_handle7)
            self.facade.meta_verify()
            self.facade.input_register(file_handle5)
            self.facade.load_data()
            self.facade.input_register(site_handle5)
            sitelevels = self.facade._data[
                site_handle5.lnedentry['study_site_key']   
            ].drop_duplicates().values.tolist()
            self.facade.register_site_levels(sitelevels)
            self.facade.input_register(taxa_handle5)


            self.mainini = None
            # Place holder: Data Model/ Data model view
            self.mainmodel = None
            self.viewEdit = view.PandasTableModelEdit
            self.form_entries = None
            
            # Placeholders: Data tables
            self.project_table = None

            # Placeholder: Director (table builder), log
            self.maindirector = None
            self._log = None

            # Actions
            self.btnPreview.clicked.connect(self.submit_change)
            self.btnSaveClose.clicked.connect(self.submit_change)
            self.btnCancel.clicked.connect(self.close)

            self.preview = tprev.TablePreview()
            self.message = QtGui.QMessageBox
            self.error = QtGui.QErrorMessage()
Exemple #8
0
        def __init__(self, parent=None):
            super().__init__(parent)
            self.setupUi(self)

            # Facade set up for the taxa dialog
            # box. These inputs will have been already
            # logged in the computer in order to
            # reach this phase
            self.facade = face.Facade()
            self.facade.input_register(meta_handle_free)
            self.facade.meta_verify()
            self.facade.input_register(file_handle_wide_to_long)
            self.facade.load_data()
            self.facade.input_register(site_handle_wide_to_long)
            sitelevels = self.facade._data[
                self.facade._inputs['siteinfo'].
                lnedentry['study_site_key']].drop_duplicates().values.tolist()
            self.facade.register_site_levels(sitelevels)

            # Place holders for user inputs
            self.widetolonglned = {}

            # Place holder: Data Model/ Data model view
            self.widetolongmodel = None
            self.viewEdit = view.PandasTableModel
            # Placeholders: Data tables
            self.widetolongtable = None

            # Actions
            self.btnPreview.clicked.connect(self.submit_change)
            self.btnSaveClose.clicked.connect(self.submit_change)
            self.btnCancel.clicked.connect(self.close)

            # Update boxes/preview box
            self.message = QtGui.QMessageBox
            self.error = QtGui.QErrorMessage()
            self.preview = tprev.TablePreview()
def test_site_in_project_key_number_two(MergeToUpload, site_handle2,
                                        file_handle2, meta_handle2,
                                        project_handle2, taxa_handle2,
                                        time_handle2, count_handle2,
                                        covar_handle2):
    facade = face.Facade()

    facade.input_register(meta_handle2)
    facade.meta_verify()

    facade.input_register(file_handle2)
    facade.load_data()

    facade.input_register(site_handle2)
    sitedirector = facade.make_table('siteinfo')
    study_site_table = sitedirector._availdf

    siteid = site_handle2.lnedentry['study_site_key']
    sitelevels = facade._data[siteid].drop_duplicates().values.tolist()
    facade.register_site_levels(sitelevels)
    print('test2 sitelevels: ', sitelevels)
    facade._valueregister['siteid'] = siteid

    print('study_site_table (test): ', study_site_table)

    facade.create_log_record('study_site_table')
    lter = meta_handle2.lnedentry['lter']
    ltercol = produce_null_df(1, ['lter_table_fkey'], len(study_site_table),
                              lter)
    study_site_table = concat([study_site_table, ltercol], axis=1)
    study_site_table_og_col = study_site_table.columns.values.tolist()

    study_site_table_single = study_site_table.iloc[0, :]

    study_site_table_single_df = DataFrame([study_site_table_single])
    study_site_table_single_df.columns = study_site_table_og_col

    print('study site single: ', study_site_table_single)

    study_site_table_single_df.loc[0, 'study_site_key'] = 'NULL'

    print('study_site_table: ', study_site_table_single_df)

    facade.push_tables['study_site_table'] = study_site_table_single_df

    facade.input_register(project_handle2)
    maindirector = facade.make_table('maininfo')
    project_table = maindirector._availdf.copy().reset_index(drop=True)
    orm.convert_types(project_table, orm.project_types)

    facade.push_tables['project_table'] = project_table
    facade.create_log_record('project_table')

    facade.input_register(taxa_handle2)
    taxadirector = facade.make_table('taxainfo')

    taxa_table = taxadirector._availdf
    facade.push_tables['taxa_table'] = taxa_table
    print('taxa columns after make taxa table: ', taxa_table.columns)

    facade.create_log_record('taxa_table')

    print('taxa columns before time_table: ', taxa_table.columns)

    facade.input_register(time_handle2)
    timetable = tparse.TimeParse(facade._data,
                                 time_handle2.lnedentry).formater()
    facade.push_tables['timetable'] = timetable
    facade.create_log_record('timetable')

    print('taxa columns before count_table: ', taxa_table.columns)
    facade.input_register(count_handle2)
    rawdirector = facade.make_table('rawinfo')
    rawtable = rawdirector._availdf
    print(rawtable)
    facade.push_tables[count_handle2.tablename] = rawtable
    facade.create_log_record(count_handle2.tablename)

    print('taxa columns before covar_table: ', taxa_table.columns)
    facade.input_register(covar_handle2)
    covartable = ddf.DictionaryDataframe(
        facade._data, covar_handle2.lnedentry['columns']).convert_records()
    facade.push_tables['covariates'] = covartable
    facade.create_log_record('covartable')

    facade._valueregister['globalid'] = meta_handle2.lnedentry['globalid']
    facade._valueregister['lter'] = meta_handle2.lnedentry['lter']
    facade._valueregister['siteid'] = siteid

    timetable_og_cols = timetable.columns.values.tolist()
    timetable.columns = [x + '_derived' for x in timetable_og_cols]
    observationdf = facade._data
    observation_time_df = concat([timetable, observationdf], axis=1)

    print('merge class obs_time columns: ', observation_time_df.columns)
    print('merge class project table: ', project_table)

    study_site_table.to_sql('study_site_table',
                            orm.conn,
                            if_exists='append',
                            index=False)
    project_table['lter_project_fkey'] = facade._valueregister['lter']
    project_table.to_sql('project_table',
                         orm.conn,
                         if_exists='append',
                         index=False)

    print('taxa columns before site_in_proj method: ', taxa_table.columns)

    merge_object = MergeToUpload()
    site_in_project_key_df = merge_object.site_in_proj_key_df(
        studysitetabledf=study_site_table,
        projecttabledf=project_table,
        observationtabledf=observation_time_df,
        lterlocation=facade._valueregister['lter'],
        studysitelabel=siteid,
        studysitelevels=sitelevels)

    print('taxa columns before user taxa merge method: ', taxa_table.columns)
    merge_object.merge_for_taxa_table_upload(
        formated_taxa_table=taxa_table,
        siteinprojkeydf=site_in_project_key_df,
        sitelabel=siteid)

    taxa_column_in_data = [
        x[0] for x in list(facade._inputs['taxainfo'].lnedentry.items())
    ]

    taxa_column_in_push_table = [
        x[1] for x in list(facade._inputs['taxainfo'].lnedentry.items())
    ]

    merge_object.merge_for_datatype_table_upload(
        raw_dataframe=observation_time_df,
        formated_dataframe=rawtable,
        formated_dataframe_name='{}'.format(
            re.sub('_table', '', facade._inputs['rawinfo'].tablename)),
        covariate_dataframe=covartable,
        siteinprojkeydf=site_in_project_key_df,
        raw_data_taxa_columns=taxa_column_in_data,
        uploaded_taxa_columns=taxa_column_in_push_table)
Exemple #10
0
    def __init__(self, parent=None):
        super().__init__(parent)
        # attributes
        self.setupUi(self)
        self.facade = face.Facade()
        self._log = None
        self.dsite = sitelogic.SiteDialog()
        self.dsession = sesslogic.SessionDialog()
        self.dmain = mainlogic.MainDialog()
        self.dtaxa = taxalogic.TaxaDialog()
        self.dtime = timelogic.TimeDialog()
        self.draw = rawlogic.ObsDialog()
        self.dcovar = covarlogic.CovarDialog()
        self.dclimatesite = climsitelogic.ClimateSite()
        self.dclimatesession = sesslogic.SessionDialog()
        self.dwidetolong = widetolonglogic.WidetoLongDialog()
        self.dsplitcolumn = splitcolumnlogic.SplitColumnDialog()
        self.dreplacevalue = replacelogic.ReplaceValueDialog()
        self.dcbind = cbindlogic.CbindDialog()
        self.data_model = view.PandasTableModelEdit(None)
        self.data_model.log_change.connect(self.write_to_log)
        self.change_count = 0

        # Actions
        self.actionUndo.triggered.connect(self.undo_data_mod)
        self.actionCombine_Columns.triggered.connect(self.cbind_display)
        self.actionReplace.triggered.connect(self.replace_value_display)
        self.actionConvert_Wide_to_Long.triggered.connect(
            self.wide_to_long_display)
        self.actionSplit_Column_By.triggered.connect(self.split_column_display)
        self.actionSiteTable.triggered.connect(self.site_display)
        self.actionStart_Session.triggered.connect(self.session_display)
        self.actionEnd_Session.triggered.connect(self.end_session)
        self.actionMainTable.triggered.connect(self.main_display)
        self.actionTaxaTable.triggered.connect(self.taxa_display)
        self.actionTimeFormat.triggered.connect(self.time_display)
        self.actionRawTable.triggered.connect(self.obs_display)
        self.actionCovariates.triggered.connect(self.covar_display)
        self.actionCommit.triggered.connect(self.commit_data)
        self.actionClimateSiteTable.triggered.connect(
            self.climate_site_display)
        self.actionNew_Climate.triggered.connect(self.climate_session_display)

        self.mdiArea.addSubWindow(self.subwindow_2)
        self.mdiArea.addSubWindow(self.subwindow_1)

        # Custom Signals
        self.dsite.site_unlocks.connect(self.site_complete_enable)
        self.dwidetolong.update_data.connect(self.update_data_model)
        self.dsplitcolumn.update_data.connect(self.update_data_model)
        self.dreplacevalue.update_data.connect(self.update_data_model)
        self.dcbind.update_data.connect(self.update_data_model)
        self.dclimatesite.climatesite_unlocks.connect(
            self.climate_site_complete_enabled)
        self.dsession.raw_data_model.connect(self.update_data_model)
        self.dclimatesession.raw_data_model.connect(self.update_data_model)

        # Dialog boxes for user feedback
        self.error = QtGui.QErrorMessage()
        self.message = QtGui.QMessageBox

        metadf = read_csv(metapath, encoding='iso-8859-11')
        metamodel = view.PandasTableModel(
            metadf[['global_id', 'lter', 'title', 'site_metadata',
                    'temp_int']])

        self.tblViewMeta.setModel(metamodel)
        self.tblViewMeta.resizeColumnsToContents()
        self.tblViewRaw.horizontalHeader().sectionDoubleClicked.connect(
            self.changeHorizontalHeader)
        self.tblViewRaw.resizeColumnsToContents()
Exemple #11
0
def test_site_in_project_key(MergeToUpload, site_handle_corner_case,
                             file_handle_corner_case, meta_handle_corner_case,
                             project_handle_corner_case,
                             taxa_handle_corner_case, time_handle_corner_case,
                             percent_cover_handle_corner_case,
                             covar_handle_corner_case):
    facade = face.Facade()

    facade.input_register(meta_handle_corner_case)
    facade.meta_verify()

    facade.input_register(file_handle_corner_case)
    facade.load_data()

    siteid = site_handle_corner_case.lnedentry['study_site_key']

    facade._data[siteid].replace(
        {
            'C': 'site_jrn_zone_creosotebush',
            'G': 'site_jrn_zone_grassland'
        },
        inplace=True)

    facade.input_register(site_handle_corner_case)
    sitedirector = facade.make_table('siteinfo')
    study_site_table = sitedirector._availdf

    print('study_site_table (test): ', study_site_table)

    facade.create_log_record('study_site_table')
    lter = meta_handle_corner_case.lnedentry['lter']
    ltercol = produce_null_df(1, ['lter_table_fkey'], len(study_site_table),
                              lter)
    study_site_table = concat([study_site_table, ltercol], axis=1)
    print('study_site_table: ', study_site_table)
    facade.push_tables['study_site_table'] = study_site_table

    sitelevels = facade._data[siteid].drop_duplicates().values.tolist()
    facade.register_site_levels(sitelevels)
    facade._valueregister['siteid'] = siteid

    facade.input_register(project_handle_corner_case)
    maindirector = facade.make_table('maininfo')
    project_table = maindirector._availdf.copy().reset_index(drop=True)
    orm.convert_types(project_table, orm.project_types)

    facade.push_tables['project_table'] = project_table
    facade.create_log_record('project_table')

    facade.input_register(taxa_handle_corner_case)
    taxadirector = facade.make_table('taxainfo')
    taxa_table = taxadirector._availdf
    facade.push_tables['taxa_table'] = taxa_table
    facade.create_log_record('taxa_table')

    facade.input_register(time_handle_corner_case)
    timetable = tparse.TimeParse(facade._data,
                                 time_handle_corner_case.lnedentry).formater()
    facade.push_tables['timetable'] = timetable
    facade.create_log_record('timetable')

    facade.input_register(percent_cover_handle_corner_case)
    rawdirector = facade.make_table('rawinfo')
    rawtable = rawdirector._availdf
    print(rawtable)
    facade.push_tables[percent_cover_handle_corner_case.tablename] = rawtable
    facade.create_log_record(percent_cover_handle_corner_case.tablename)

    facade.input_register(covar_handle_corner_case)
    covartable = ddf.DictionaryDataframe(
        facade._data,
        covar_handle_corner_case.lnedentry['columns']).convert_records()
    facade.push_tables['covariates'] = covartable
    facade.create_log_record('covartable')

    facade._valueregister['globalid'] = meta_handle_corner_case.lnedentry[
        'globalid']
    facade._valueregister['lter'] = meta_handle_corner_case.lnedentry['lter']
    facade._valueregister['siteid'] = siteid

    timetable_og_cols = timetable.columns.values.tolist()
    timetable.columns = [x + '_derived' for x in timetable_og_cols]
    observationdf = facade._data
    observation_time_df = concat([timetable, observationdf], axis=1)

    print('merge class obs_time columns: ', observation_time_df.columns)
    print('merge class project table: ', project_table)

    #    try:
    #        study_site_table.to_sql(
    #            'study_site_table',
    #            orm.conn, if_exists='append', index=False)
    #    except Exception as e:
    #        print('Sites in db: ', str(e))
    project_table['lter_project_fkey'] = facade._valueregister['lter']
    project_table.to_sql('project_table',
                         orm.conn,
                         if_exists='append',
                         index=False)

    merge_object = MergeToUpload()
    site_in_project_key_df = merge_object.site_in_proj_key_df(
        studysitetabledf=study_site_table,
        projecttabledf=project_table,
        observationtabledf=observation_time_df,
        lterlocation=facade._valueregister['lter'],
        studysitelabel=siteid,
        studysitelevels=sitelevels)

    merge_object.merge_for_taxa_table_upload(
        formated_taxa_table=taxa_table,
        siteinprojkeydf=site_in_project_key_df,
        sitelabel=siteid)

    taxa_column_in_push_table = [
        x[0] for x in list(facade._inputs['taxainfo'].lnedentry.items())
    ]

    taxa_column_in_data = [
        x[1] for x in list(facade._inputs['taxainfo'].lnedentry.items())
    ]

    merge_object.merge_for_datatype_table_upload(
        raw_dataframe=observation_time_df,
        formated_dataframe=rawtable,
        formated_dataframe_name='{}'.format(
            re.sub('_table', '', facade._inputs['rawinfo'].tablename)),
        covariate_dataframe=covartable,
        siteinprojkeydf=site_in_project_key_df,
        raw_data_taxa_columns=taxa_column_in_data,
        uploaded_taxa_columns=taxa_column_in_push_table)

    obs_columns_in_data = [
        x[1] for x in list(facade._inputs['rawinfo'].lnedentry.items())
    ]
    obs_columns_in_push_table = [
        x[0] for x in list(facade._inputs['rawinfo'].lnedentry.items())
    ]
    merge_object.update_project_table(
        spatial_rep_columns_from_og_df=obs_columns_in_data,
        spatial_rep_columns_from_formated_df=obs_columns_in_push_table)
Exemple #12
0
        # Creating dictionaries for data from different tables
        site_dict = meta.table_data('sitetable').iloc[0]
        obs_dict = meta.table_data('rawtable').iloc[0]
        taxa_dict = meta.table_data('taxatable').iloc[0]
        main_dict = meta.table_data('maintable').iloc[0]  # Units and extent
        main_dict_updated = meta.table_data('maintable').iloc[
            1]  # Time & labels
        time_dict = meta.table_data('timetable').iloc[0]
        covar_dict = meta.table_data('covartable').iloc[0]

        sitecolumn = list(set(main_dict_updated['sp_rep1_label'][1]))[0]

        # -------------------------------------------------------------------
        # Begin concatenating data for reload to popler3
        # -------------------------------------------------------------------
        facade = face.Facade()

        # ---------------------
        # Create METADATA HANDLE
        # --------------------
        lentry = {
            'globalid':
            z,
            'metaurl':
            metadata_file[metadata_file['global_id'] == z]
            ['site_metadata'].iloc[0],
            'lter':
            metadata_file[metadata_file['global_id'] == z]['lter'].iloc[0]
        }
        ckentry = {}
        metainput = ini.InputHandler(name='metacheck',