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()
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()
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)
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()
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)
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)
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()
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)
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()
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)
# 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',