Merge branch 'scan_name' into 'v3'
custom scan name from gui See merge request openflexure/openflexure-microscope-server!170
This commit is contained in:
commit
dd0a70c2b6
2 changed files with 29 additions and 5 deletions
|
|
@ -341,12 +341,24 @@ class SmartScanThing(Thing):
|
||||||
scan_name = self.latest_scan_name
|
scan_name = self.latest_scan_name
|
||||||
return os.path.join(self.scans_folder_path, scan_name)
|
return os.path.join(self.scans_folder_path, scan_name)
|
||||||
|
|
||||||
def new_scan_folder(self) -> str:
|
def new_scan_folder(self, scan_name: str="scan") -> str:
|
||||||
"""Create a new empty folder, into which we can save scan images"""
|
"""Create a new empty folder, into which we can save scan images
|
||||||
|
|
||||||
|
The folder will be named `{scan_name}_000001/` where the number is
|
||||||
|
zero-padded to be 6 digits long (to allow correct sorting if the
|
||||||
|
scans are ordered alphanumerically).
|
||||||
|
|
||||||
|
Note that if you have discontinuous numbering (e.g. you've got scans
|
||||||
|
numbered 1 through 10, but you deleted scan 5), then the gaps will
|
||||||
|
get filled in - so there's no guarantee, for now, that the numbers
|
||||||
|
will correspond to order of creation. This may change in the future.
|
||||||
|
"""
|
||||||
if not os.path.exists(self.scans_folder_path):
|
if not os.path.exists(self.scans_folder_path):
|
||||||
os.makedirs(self.scans_folder_path)
|
os.makedirs(self.scans_folder_path)
|
||||||
|
if not scan_name:
|
||||||
|
scan_name = "scan"
|
||||||
for j in range(999999):
|
for j in range(999999):
|
||||||
folder_path = os.path.join(self.scans_folder_path, f"scan_{j:06}")
|
folder_path = os.path.join(self.scans_folder_path, f"{scan_name}_{j:06}")
|
||||||
if not os.path.exists(folder_path):
|
if not os.path.exists(folder_path):
|
||||||
os.makedirs(folder_path)
|
os.makedirs(folder_path)
|
||||||
self._latest_scan_name = os.path.basename(folder_path)
|
self._latest_scan_name = os.path.basename(folder_path)
|
||||||
|
|
@ -364,6 +376,7 @@ class SmartScanThing(Thing):
|
||||||
csm: CSMDep,
|
csm: CSMDep,
|
||||||
background_detect: BackgroundDep,
|
background_detect: BackgroundDep,
|
||||||
recentre: RecentreStage,
|
recentre: RecentreStage,
|
||||||
|
scan_name: str="",
|
||||||
):
|
):
|
||||||
"""Move the stage to cover an area, taking images that can be tiled together.
|
"""Move the stage to cover an area, taking images that can be tiled together.
|
||||||
|
|
||||||
|
|
@ -441,7 +454,7 @@ class SmartScanThing(Thing):
|
||||||
ids = []
|
ids = []
|
||||||
start_time = time.strftime("%H_%M_%S-%d_%m_%Y")
|
start_time = time.strftime("%H_%M_%S-%d_%m_%Y")
|
||||||
|
|
||||||
scan_folder = self.new_scan_folder()
|
scan_folder = self.new_scan_folder(scan_name)
|
||||||
images_folder = os.path.join(scan_folder, "images")
|
images_folder = os.path.join(scan_folder, "images")
|
||||||
os.mkdir(images_folder)
|
os.mkdir(images_folder)
|
||||||
raw_images_folder = os.path.join(images_folder, "raw")
|
raw_images_folder = os.path.join(images_folder, "raw")
|
||||||
|
|
@ -832,7 +845,7 @@ class SmartScanThing(Thing):
|
||||||
self, logger: InvocationLogger, cmd: list[str],
|
self, logger: InvocationLogger, cmd: list[str],
|
||||||
) -> CompletedProcess:
|
) -> CompletedProcess:
|
||||||
"""Run a subprocess and log any output"""
|
"""Run a subprocess and log any output"""
|
||||||
logger.info(f"Running command in subprocess: `{' '.join(cmd)}")
|
logger.info(f"Running command in subprocess: `{' '.join(cmd)}`")
|
||||||
output = run(cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True)
|
output = run(cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True)
|
||||||
for pipe in [output.stdout, output.stderr]:
|
for pipe in [output.stdout, output.stderr]:
|
||||||
if pipe:
|
if pipe:
|
||||||
|
|
|
||||||
|
|
@ -46,10 +46,20 @@
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<label class="uk-form-label" for="form-stacked-text">Sample ID</label>
|
||||||
|
<div class="uk-form-controls">
|
||||||
|
<input
|
||||||
|
v-model="scan_name"
|
||||||
|
class="uk-input uk-form-small"
|
||||||
|
type="text"
|
||||||
|
name="Scan Name"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
<div class="uk-margin">
|
<div class="uk-margin">
|
||||||
<taskSubmitter
|
<taskSubmitter
|
||||||
ref="smartScanTaskSubmitter"
|
ref="smartScanTaskSubmitter"
|
||||||
:submit-url="smartScanUri"
|
:submit-url="smartScanUri"
|
||||||
|
:submit-data="{ scan_name: scan_name }"
|
||||||
submit-label="Start smart scan"
|
submit-label="Start smart scan"
|
||||||
:can-terminate="true"
|
:can-terminate="true"
|
||||||
@taskStarted="startScanning"
|
@taskStarted="startScanning"
|
||||||
|
|
@ -125,6 +135,7 @@ export default {
|
||||||
progress: null,
|
progress: null,
|
||||||
log: [],
|
log: [],
|
||||||
lastStitchedImage: null,
|
lastStitchedImage: null,
|
||||||
|
scan_name: ""
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue