MultiRegionScan: save into region-based subfolders

This commit is contained in:
x03daop
2017-06-06 11:19:22 +02:00
parent e7ae5290cc
commit 215dd495da

View File

@@ -21,14 +21,14 @@ class SpectrumReader(ReadonlyRegisterBase, ReadonlyRegisterArray):
self.scan_index = -1
def create_datasets(self):
path = get_exec_pars().scanPath
self.channel_begin_dataset_name = path + "region {0}/ScientaChannelBegin".format(self.region_index + 1)
self.channel_end_dataset_name = path + "region {0}/ScientaChannelEnd".format(self.region_index + 1)
self.pass_energy_dataset_name = path + "region {0}/ScientaPassEnergy".format(self.region_index + 1)
self.step_energy_dataset_name = path + "region {0}/ScientaStepEnergy".format(self.region_index + 1)
self.step_time_dataset_name = path + "region {0}/ScientaStepTime".format(self.region_index + 1)
self.iterations_dataset_name = path + "region {0}/ScientaIterations".format(self.region_index + 1)
path = get_exec_pars().scanPath + self.region_name + "/"
self.channel_begin_dataset_name = path + "ScientaChannelBegin"
self.channel_end_dataset_name = path + "ScientaChannelEnd"
self.pass_energy_dataset_name = path + "ScientaPassEnergy"
self.step_energy_dataset_name = path + "ScientaStepEnergy"
self.step_time_dataset_name = path + "ScientaStepTime"
self.iterations_dataset_name = path + "ScientaIterations"
create_dataset(self.channel_begin_dataset_name, 'd')
create_dataset(self.channel_end_dataset_name, 'd')
@@ -130,16 +130,17 @@ def do_scan(motors, positions, regions, latency):
for (index, region) in enumerate(regions):
reader = SpectrumReader()
reader.region_index = index
reader.region_name = "region{0}".format(index + 1)
reader.region = region
reader.initialize()
set_device_alias(reader, "region {0}/ScientaSpectrum".format(index + 1))
set_device_alias(reader, reader.region_name + "/ScientaSpectrum")
SENSORS.append(reader)
image = ImageReader()
image.region_index = index
image.region = region
image.initialize()
set_device_alias(image, "region {0}/ScientaImage".format(index + 1))
set_device_alias(image, reader.region_name + "/ScientaImage")
SENSORS.append(image)
SENSORS.append(SampleCurrent)
@@ -147,13 +148,13 @@ def do_scan(motors, positions, regions, latency):
adjust_sensors()
set_adc_averaging()
#vscan(motors, SENSORS, positions, True, latency,False, before_read=wait_beam, after_read = after_readout)
vscan(motors, SENSORS, positions, True, latency,False, after_read = after_readout)
vscan(motors, SENSORS, positions, True, latency,False, before_read=wait_beam, after_read = after_readout)
#vscan(motors, SENSORS, positions, True, latency,False, after_read = after_readout)
#for (index, region) in enumerate(regions):
# set_attribute(get_exec_pars().scanPath + "ScientaSpectrum{0}".format(index + 1), "RegionName", region['name'])
# set_attribute(get_exec_pars().scanPath + "ScientaImage{0}".format(index + 1), "RegionName", region['name'])
#set_attribute(get_exec_pars().scanPath, "Regions", [region['name'] for region in regions])
for (index, region) in enumerate(regions):
set_attribute(get_exec_pars().scanPath + "region{0}/ScientaSpectrum".format(index + 1), "RegionName", region['name'])
set_attribute(get_exec_pars().scanPath + "region{0}/ScientaImage".format(index + 1), "RegionName", region['name'])
set_attribute(get_exec_pars().scanPath, "Regions", [region['name'] for region in regions])
try:
setup_live_plots(REGIONS)