added Unfinished Scan

This commit is contained in:
2024-06-24 17:29:31 +02:00
parent 688c6ed4c5
commit 29a122209a
2 changed files with 35 additions and 0 deletions

View File

@@ -21,3 +21,4 @@ from . import plot
from . import analysis
from . import image
from . import channels
from . import uscan

34
src/cristallina/uscan.py Normal file
View File

@@ -0,0 +1,34 @@
from sfdata import SFScanInfo
import sfdata.utils
from partialjson.json_parser import JSONParser
class UnfinishedScan(SFScanInfo):
"""
Represents an unfinished scan from SwissFEL data, mimicking a finished SFScanInfo. It tries
to parse a partial JSON file and extract the scan information.
Args:
fname (str): The filename of the JSON file to be processed for scan information.
"""
def __init__(self, fname):
self.fname = fname
self.fs = sfdata.utils.FileStatus(fname)
with open(fname) as f:
content = f.read()
parser = JSONParser()
self.info = info = parser.parse(content)
self.files = info["scan_files"]
self.parameters = info["scan_parameters"]
values = info["scan_values"]
values = [v for v in values if v]
readbacks = info["scan_readbacks"]
readbacks = [r for r in readbacks if r]
self.values = sfdata.utils.adjust_shape(values)
self.readbacks = sfdata.utils.adjust_shape(readbacks)