Source code for prsctrl.scripts.old_measurement_functions

# These were once in prsctrl_interactive but are not needed right now
[docs] def measure_InP(): lockin_params = { "time_constant_s": 3, "filter_slope": 12, "sensitivity_volt": 2e-3, # "frequency_Hz": 333, } measurement_params = { # "wavelengths_nm": np.arange(840, 1040.1, 0.1) "wavelengths_nm": list(range(550, 1100, 1)) # "wavelengths_nm": list(range(410, 800, 3)) + list(range(800, 1030, 1)) + list(range(1030, 1100, 2)), } measurement_params["wavelengths_nm"].reverse() print(f"Using wavelengths: {measurement_params['wavelengths_nm']}") time_est = 1.15 * get_time_estimate(lockin_params=lockin_params, measurement_params=measurement_params, offset_with_laser_only=True, extra_wait_time_s=10) print(f"Estimated time: {duration_to_string(time_est)}") laser.on() laser.set_power_mW(70) measure_spectrum(lockin_params=lockin_params, measurement_params=measurement_params, name=f"InP")
[docs] def sweep_ref(): wavelenghts = [500, 535, 565, 580, 700] frequencies = [451] + list(range(501, 1502, 40)) + list(range(1551, 5002, 160)) print(frequencies) lockin_params = { "time_constant_s": 10, } measurement_params = { "wavelengths_nm": wavelenghts, } time_est = 1.15 * len(frequencies) * get_time_estimate(lockin_params=lockin_params, measurement_params=measurement_params, offset_with_laser_only=True, extra_wait_time_s=10) print(f"Estimated time: {duration_to_string(time_est)}") t_start = time.time() for f in frequencies: dirname = f"2025-05-12_f-scan_f={f}_Hz" lockin_params["frequency_Hz"] = f measure_spectrum(lockin_params=lockin_params, measurement_params=measurement_params, dirname=dirname, name=f"Frequency scan $f = {f}$ Hz") plt.close('all') duration = time.time() - t_start print(f"Measurement took {duration_to_string(duration)} (estimate was {duration_to_string(time_est)})")
[docs] def sweep_filter(): wavelenghts = [500, 535, 565, 580, 700] filters = [6, 12, 18, 24] lockin_params = { "time_constant_s": 10, "frequency_Hz": 333, } measurement_params = { "wavelengths_nm": wavelenghts, } time_est = 1.15 * len(filters) * get_time_estimate(lockin_params=lockin_params, measurement_params=measurement_params, offset_with_laser_only=True, extra_wait_time_s=10) print(f"Estimated time: {duration_to_string(time_est)}") t_start = time.time() for f in filters: dirname = f"2025-05-09_filter-scan_slope={f}_dB_Oct" lockin_params["filter_slope"] = f measure_spectrum(lockin_params=lockin_params, measurement_params=measurement_params, dirname=dirname, name=f"Filter scan $f = {f}$ dB/Oct") plt.close('all') duration = time.time() - t_start print(f"Measurement took {duration_to_string(duration)} (estimate was {duration_to_string(time_est)})")
[docs] def sweep_time_constant(): wavelenghts = [500, 535, 565, 580, 700] time_constants = [100e-3, 300e-3, 1, 3, 10] print(time_constants) lockin_settings = { "frequency_Hz": 333 } measurement_params = { "wavelengths_nm": wavelenghts, # "energies_eV": wavelenghts, } all_lockin_settings = [] time_est = 0 for t in time_constants: all_lockin_settings.append(lockin_settings | {"time_constant_s": t}) time_est += get_time_estimate(lockin_settings=all_lockin_settings[-1], measurement_params=measurement_params, offset_with_laser_only=True, extra_wait_time_s=10) time_est *= 1.15 print(f"Estimated time: {duration_to_string(time_est)}") t_start = time.time() for i, lp in enumerate(all_lockin_settings): t = lp["time_constant_s"] dirname = f"2025-05-13_t-scan_t={t}_s" measure_spectrum(ref_lockin_settings=lp, measurement_settings=measurement_params, dirname=dirname, name=f"Time constant scan $t = {t}$ s", extra_wait_time_s=10) plt.close('all') duration = time.time() - t_start log.info(f"Measurement took {duration_to_string(duration)} (estimate was {duration_to_string(time_est)})")
[docs] def sweep_power(): target_laser_power_densities = np.array([0.5, 1, 4, 7, 10]) set_laser_powers = np.round(target_power_mWcm2_to_laser_power_mW(target_laser_power_densities), 2) set_led_currents = np.array([0.036, 0.053, 0.150, 0.247, 0.355]) print("Target laser powers (mW/cm^2):", [f"{v:.3f}" for v in target_laser_power_densities]) print("Setting laser powers (mW): ", [f"{v:.3f}" for v in set_laser_powers]) print("Setting LED currents (A): ", [f"{v:.3f}" for v in set_led_currents]) measurement_params = { "wavelengths_nm": list(range(410, 721, 2)), "amplifier_gain": 7, "monochromator_bandwidth_nm": 1.0, } lockin_settings = { "time_constant_s": 3, "filter_slope": 12, "sensitivity_volt": 500e-6, } etime = 5 time_est = 2 * len(target_laser_power_densities) * get_time_estimate(lockin_settings=lockin_settings, measurement_params=measurement_params, offset_with_laser_only=True, extra_wait_time_s=etime) print(f"Estimated time: {duration_to_string(time_est)}") if lockin is None: print("Not starting measurement since lock-in is None") return t_start = time.time() led.off() laser.on() lockin_settings["sensitivity_volt"] = 2e-3 for i, p_set in enumerate(set_laser_powers): dirname = f"2025-05-23_O-Ta3N5_Laser_P={target_laser_power_densities[i]}_mW_cm2" metadata = { "pump_power_density_sample_mW_cm2": target_laser_power_densities[i], "pump_power_laser_mW": set_laser_powers[i], } laser.set_power_mW(p_set) measure_spectrum(metadata=metadata, ref_lockin_settings=lockin_settings, measurement_settings=measurement_params, dirname=dirname, name=f"Pump Power Scan Laser $P = {target_laser_power_densities[i]}$ mW/cm$^2$", extra_wait_time_s=etime) plt.close('all') laser.off() led.set_mode("TTL") led.on() for i, p_set in enumerate(set_led_currents): dirname = f"2025-05-23_O-Ta3N5_LED_P={target_laser_power_densities[i]}_mW_cm2" metadata = { "pump_power_density_sample_mW_cm2": target_laser_power_densities[i], "pump_power_led_current_A": set_led_currents[i], } led.set_ttl(p_set) measure_spectrum(metadata=metadata, ref_lockin_settings=lockin_settings, measurement_settings=measurement_params, dirname=dirname, name=f"Pump Power Scan LED $P = {target_laser_power_densities[i]}$ mW/cm$^2$", extra_wait_time_s=etime) plt.close('all') duration = time.time() - t_start log.info(f"Measurement took {duration_to_string(duration)} (estimate was {duration_to_string(time_est)})")
[docs] def measure_TaN_led(): # single measurement version 0.5 lockin_settings = { # "time_constant_s": 2 if "7260" in str(lockin) else 3, "time_constant_s": 1, "filter_slope": 12, "sensitivity_volt": 500e-6, } measurement_params = { "wavelengths_nm": list(range(410, 721, 1)), # "wavelengths_nm": list(range(500, 550, 1)), "amplifier_gain": 7, "monochromator_bandwidth_nm": 1.0, "pump_source": "led", "pump_power_mW/cm^2": 5.00, } measurement_params["led_current_A"] = target_probe_power_mWcm2_to_led_current_A(measurement_params["pump_power_mW/cm^2"]) print(f"Using wavelengths: {get_wavelengths_from_measurement_settings(measurement_params)}") do_offset = True etime = 5 time_est = get_time_estimate(lockin_settings=lockin_settings, measurement_params=measurement_params, offset_with_laser_only=do_offset, extra_wait_time_s=etime) print(f"Estimated time: {duration_to_string(time_est)}") if ref_lockin is None: print("Not starting measurement since lock-in is None") return t_start = time.time() laser.off() led.set_mode("TTL") led_current_A = 0.165 led.set_ttl(led_current_A) metadata = {"led": led.get_led_name(), "led_current_A": led_current_A} aux = "Aux In 4" try: # import may fail if isinstance(ref_lockin, mod_lock_in.impl.model7260.Model7260): aux = "Aux In 1" except: pass measure_spectrum(ref_lockin_settings=lockin_settings, common_measurement_settings=measurement_params, name=f"O-Ta3O5-Transmission-LED", metadata=metadata, offset_with_laser_only=do_offset, extra_wait_time_s=etime) led.off() duration = time.time() - t_start log.info(f"Measurement took {duration_to_string(duration)} (estimate was {duration_to_string(time_est)})")