Skip to content

Commit 3f3fe94

Browse files
committed
FEAT: allow loading object
1 parent cfcb130 commit 3f3fe94

1 file changed

Lines changed: 32 additions & 6 deletions

File tree

scripts/scripted_format_conversion/convert_format.py

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,17 @@
44
55
Example usage:
66
python convert_format.py \
7-
--patterns "data/ptychoshelves/velo_19c2_Jun_IC_fly145/data_roi0_dp.hdf5" \
8-
--probe "data/ptychoshelves/velo_19c2_Jun_IC_fly145/Niter100.mat" \
9-
--probe-positions "data/ptychoshelves/velo_19c2_Jun_IC_fly145/data_roi0_para.hdf5" \
10-
--metadata "data/ptychoshelves/velo_19c2_Jun_IC_fly145/data_roi0_para.hdf5" \
7+
--patterns "data/ptychoshelves/data_roi0_dp.hdf5" \
8+
--probe "data/ptychoshelves/Niter100.mat" \
9+
--probe-positions "data/ptychoshelves/data_roi0_para.hdf5" \
10+
--object "data/ptychoshelves/Niter100.mat" \
11+
--metadata "data/ptychoshelves/data_roi0_para.hdf5" \
1112
--product-name "ptychodus" \
1213
--output-dir "outputs" \
1314
--diffraction-reader "PtychoShelves" \
1415
--probe-reader "PtychoShelves" \
15-
--probe-position-reader "PtychoShelves"
16-
16+
--probe-position-reader "PtychoShelves" \
17+
--object-reader "PtychoShelves"
1718
"""
1819
from __future__ import annotations
1920

@@ -99,12 +100,14 @@
99100
"CSV",
100101
"CXI",
101102
]
103+
ObjectReaderName = ProbeReaderName
102104
ProductWriterName = Literal["HDF5", "NPZ"]
103105

104106
DiffractionReaderChoices = list(DiffractionReaderName.__args__)
105107
DiffractionWriterChoices = list(DiffractionWriterName.__args__)
106108
ProbeReaderChoices = list(ProbeReaderName.__args__)
107109
ProbePositionReaderChoices = list(ProbePositionReaderName.__args__)
110+
ObjectReaderChoices = list(ObjectReaderName.__args__)
108111
ProductWriterChoices = list(ProductWriterName.__args__)
109112

110113

@@ -162,13 +165,15 @@ def convert_data(
162165
*,
163166
probe_path: Path | None,
164167
probe_position_path: Path | None,
168+
object_path: Path | None,
165169
metadata_path: Path | None,
166170
diffraction_output: Path,
167171
product_output: Path,
168172
product_name: str | None,
169173
diffraction_reader: DiffractionReaderName,
170174
probe_reader: ProbeReaderName | None,
171175
probe_position_reader: ProbePositionReaderName | None,
176+
object_reader: ObjectReaderName | None,
172177
diffraction_writer: DiffractionWriterName = "PtychoShelves",
173178
product_writer: ProductWriterName = "HDF5",
174179
settings_file: Optional[Path] = None,
@@ -187,6 +192,9 @@ def convert_data(
187192
probe_positions_path : Path or None
188193
Optional path to a scan or position file. When provided, it is opened
189194
with `probe_position_reader` before the probe/object builders are invoked.
195+
object_path : Path or None
196+
Optional path to a object file. When provided, it is opened
197+
with `object_reader` before the probe/object builders are invoked.
190198
metadata_path : Path or None
191199
Optional path to a metadata file. When provided, it is used to
192200
override the pixel size from data files.
@@ -260,6 +268,9 @@ def convert_data(
260268
if probe_path is not None:
261269
workflow_product.open_probe(probe_path, file_type=probe_reader or None)
262270

271+
if object_path is not None:
272+
workflow_product.open_object(object_path, file_type=object_reader or None)
273+
263274
model.diffraction.diffraction_api.save_patterns(diffraction_output, diffraction_writer)
264275
workflow_product.save_product(product_output, file_type=product_writer)
265276

@@ -339,6 +350,12 @@ def main(argv: list[str] | None = None) -> int:
339350
default=None,
340351
help="Optional probe positions file path required by many plugins.",
341352
)
353+
parser.add_argument(
354+
"--object",
355+
type=Path,
356+
default=None,
357+
help="Optional object file path required by many plugins.",
358+
)
342359
parser.add_argument(
343360
"--metadata",
344361
type=Path,
@@ -397,6 +414,12 @@ def main(argv: list[str] | None = None) -> int:
397414
choices=sorted(ProbePositionReaderChoices),
398415
help="Probe position reader plugin to use when a probe position file is provided.",
399416
)
417+
parser.add_argument(
418+
"--object-reader",
419+
default="PtychoShelves",
420+
choices=sorted(ObjectReaderChoices),
421+
help="Object reader plugin to use when a object file is provided.",
422+
)
400423
parser.add_argument(
401424
"--product-writer",
402425
default="HDF5",
@@ -422,6 +445,7 @@ def main(argv: list[str] | None = None) -> int:
422445
print("Diffraction writers : ", ", ".join(sorted(DiffractionWriterChoices)))
423446
print("Probe readers : ", ", ".join(sorted(ProbeReaderChoices)))
424447
print("Probe position readers: ", ", ".join(sorted(ProbePositionReaderChoices)))
448+
print("Object readers : ", ", ".join(sorted(ObjectReaderChoices)))
425449
print("Product writers : ", ", ".join(sorted(ProductWriterChoices)))
426450
return 0
427451

@@ -450,6 +474,7 @@ def main(argv: list[str] | None = None) -> int:
450474
args.patterns,
451475
probe_path=args.probe,
452476
probe_position_path=args.probe_positions,
477+
object_path=args.object,
453478
metadata_path=args.metadata,
454479
diffraction_output=diffraction_output,
455480
product_output=product_output,
@@ -458,6 +483,7 @@ def main(argv: list[str] | None = None) -> int:
458483
diffraction_writer=args.diffraction_writer,
459484
probe_reader=args.probe_reader,
460485
probe_position_reader=args.probe_position_reader,
486+
object_reader=args.object_reader,
461487
product_writer=args.product_writer,
462488
settings_file=args.settings,
463489
asserted_pixel_size=args.asserted_pixel_size,

0 commit comments

Comments
 (0)