added Unfinished Scan
This commit is contained in:
@@ -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
34
src/cristallina/uscan.py
Normal 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)
|
||||
Reference in New Issue
Block a user