From d18dc12aeb8bdfc77d6d84df24e4474b7c058a35 Mon Sep 17 00:00:00 2001 From: cheng-hung Date: Tue, 30 Jul 2024 19:27:36 -0400 Subject: [PATCH] organizing parameters in spreadsheets --- scripts/_LDRD_Kafka.py | 99 --------------------------- scripts/inputs_qserver_kafka_v2.xlsx | Bin 0 -> 24435 bytes 2 files changed, 99 deletions(-) create mode 100644 scripts/inputs_qserver_kafka_v2.xlsx diff --git a/scripts/_LDRD_Kafka.py b/scripts/_LDRD_Kafka.py index 2aadec4..39d0b80 100644 --- a/scripts/_LDRD_Kafka.py +++ b/scripts/_LDRD_Kafka.py @@ -108,102 +108,3 @@ def __init__(self, parameters_list, xlsx_fn, sheet_name='inputs'): pass - - - - - # def add_to_queue(self): - # sq.synthesis_queue( - # syringe_list=self.input_dic.syringe_list, - # pump_list=self.input_dic.pump_list, - # set_target_list=self.input_dic.set_target_list, - # target_vol_list=self.input_dic.target_vol_list, - # rate_list = self.input_dic.infuse_rates, - # syringe_mater_list=self.input_dic.syringe_mater_list, - # precursor_list=self.input_dic.precursor_list, - # mixer=self.input_dic.mixer, - # resident_t_ratio=self.input_dic.resident_t_ratio, - # prefix=self.input_dic.prefix[1:], - # sample=self.input_dic.sample, - # wash_tube=self.input_dic.wash_tube, - # name_by_prefix=bool(self.input_dic.prefix[0]), - # num_abs=self.input_dic.num_uvvis[0], - # num_flu=self.input_dic.num_uvvis[1], - # det1_time=self.input_dic.num_uvvis[2], - # zmq_control_addr=self.input_dic.zmq_control_addr, - # zmq_info_addr=self.input_dic.zmq_info_addr, - # ) - -''' -class kafka(): - def __init__(self): - self.rate_label_dic = {'CsPb':'infusion_rate_CsPb', - 'Br':'infusion_rate_Br', - 'ZnI':'infusion_rate_I2', - 'ZnCl':'infusion_rate_Cl'} - self.new_points_label = ['infusion_rate_CsPb', 'infusion_rate_Br', 'infusion_rate_I2', 'infusion_rate_Cl'] - - self.use_good_bad = True - self.post_dilute = True - - self.write_agent_data = True - self.agent_data_path = '/home/xf28id2/Documents/ChengHung/202405_halide_data/with_xray' - - self.USE_AGENT_iterate = False - self.peak_target = 515 - self.agent = build_agen(peak_target=self.peak_target, agent_data_path=self.agent_data_path) - - self.iq_to_gr = False - self.gr_path = '/home/xf28id2/Documents/ChengHung/pdfstream_test/' - self.cfg_fn = '/home/xf28id2/Documents/ChengHung/pdfstream_test/pdfgetx3.cfg' - self.iq_fn = glob.glob(os.path.join(gr_path, '**CsPb**.chi')) - # self.bkg_fn = glob.glob(os.path.join(gr_path, '**bkg**.chi')) - self.bkg_fn = ['/nsls2/data/xpd-new/legacy/processed/xpdUser/tiff_base/Toluene_OleAcid_mask/integration/Toluene_OleAcid_mask_20240602-122852_c49480_primary-1_mean_q.chi'] - - - - -USE_AGENT_iterate = False -peak_target = 515 -if USE_AGENT_iterate: - import torch - from prepare_agent_pdf import build_agen - agent = build_agen(peak_target=peak_target, agent_data_path=agent_data_path) - -iq_to_gr = True -if iq_to_gr: - from diffpy.pdfgetx import PDFConfig - global gr_path, cfg_fn, iq_fn, bkg_fn - gr_path = '/home/xf28id2/Documents/ChengHung/pdfstream_test/' - cfg_fn = '/home/xf28id2/Documents/ChengHung/pdfstream_test/pdfgetx3.cfg' - iq_fn = glob.glob(os.path.join(gr_path, '**CsPb**.chi')) - # bkg_fn = glob.glob(os.path.join(gr_path, '**bkg**.chi')) - bkg_fn = ['/nsls2/data/xpd-new/legacy/processed/xpdUser/tiff_base/Toluene_OleAcid_mask/integration/Toluene_OleAcid_mask_20240602-122852_c49480_primary-1_mean_q.chi'] - -search_and_match = True -if search_and_match: - from updated_pipeline_pdffit2 import Refinery - mystery_path = "/home/xf28id2/Documents/ChengHung/pdffit2_example/CsPbBr3" - # mystery_path = "'/home/xf28id2/Documents/ChengHung/pdfstream_test/gr" - results_path = "/home/xf28id2/Documents/ChengHung/pdffit2_example/results_CsPbBr_chemsys_search" - -fitting_pdf = False -if fitting_pdf: - global pdf_cif_dir, cif_list, gr_data - pdf_cif_dir = '/home/xf28id2/Documents/ChengHung/pdffit2_example/CsPbBr3/' - cif_list = [os.path.join(pdf_cif_dir, 'CsPbBr3_Orthorhombic.cif')] - gr_data = os.path.join(pdf_cif_dir, 'CsPbBr3.gr') - -global sandbox_tiled_client -use_sandbox = True -if use_sandbox: - sandbox_tiled_client = from_uri("https://tiled.nsls2.bnl.gov/api/v1/metadata/xpd/sandbox") - -write_to_sandbox = False -if write_to_sandbox: - sandbox_tiled_client = from_uri("https://tiled.nsls2.bnl.gov/api/v1/metadata/xpd/sandbox") -''' - - - - diff --git a/scripts/inputs_qserver_kafka_v2.xlsx b/scripts/inputs_qserver_kafka_v2.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7291fbcb93863a0be04fc143c41845f6124dbec5 GIT binary patch literal 24435 zcmeFY1D7pLw(nh4dzYWI0f4^k|KIi>{07Dox1@S$kp{0MJ%S6Gf{UBNDW?c>?vf#lD+r^owW<$k(7$X^Dehmc)c zwQcOprUDSx^A+@fdh7e)&1Ps8+8>-A`QLAgOA$8Sm!$LCjTr!@bC2F@`y`F& z`$};A%=s}Yl=1@wsZZ=jW}Bqo4F6=yb@rxT5g{8#xAesiOgR&_(UOA97dWTZxA&5% zs18SwkfR+JAIp5j1u9{_ZGONunKH=W41$7#5so18DCA=Ojsr}8D(Ob;vH9e?=R3M* z5CDL$uO9$1|ILvRwK@%fz8!h%+fO0C9a-DX(88XE`XBrM=fMBLUi&Y9y*yS@{0ALe z(3Rg8-gpPc8ae)~1&!dbq`?OuUCM_JOG&KH2uR~5Fwp)6YbEa#`gHdgsOCFrN z6GEaOxL>-_T$@s__(yXyD14lqP{g@NuP?qu=~>wWLj?Ij&hi6SX!&k#05#E<52~ZE z(tzLZ77bHYl>|FfwRZmtW

Svo5*vL+(HX3Mg)!ltYw|4c9uP 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 cQoH|elC?5pq`pzU&%wNa73y5