Skip to content

Commit 42c0672

Browse files
authored
Merge pull request #597 from kif/596_eiger2crysalis
Implement Eiger2Crysalis with Eiger master file
2 parents c0b15f7 + f78e77a commit 42c0672

File tree

2 files changed

+24
-8
lines changed

2 files changed

+24
-8
lines changed

src/fabio/app/eiger2crysalis.py

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
__author__ = "Jerome Kieffer"
3939
__copyright__ = "European Synchrotron Radiation Facility, Grenoble, France"
4040
__licence__ = "MIT"
41-
__date__ = "15/03/2024"
41+
__date__ = "09/10/2024"
4242
__status__ = "production"
4343

4444
FOOTER = """To import your files as a project:
@@ -275,7 +275,22 @@ def common_headers(self):
275275
headers["dexposuretimeinsec"] = 1 # meaningfull value.
276276

277277
elif isinstance(source, eigerimage.EigerImage):
278-
raise NotImplementedError("Please implement Eiger detector data format parsing or at least open an issue")
278+
entry_name = source.h5.attrs.get("default")
279+
if entry_name is None:
280+
entry_name = "entry"
281+
entry = source.h5.get(entry_name)
282+
try:
283+
nxdetector = entry["instrument/detector"]
284+
except:
285+
logger.error("No detector definition in Eiger file, is this a master file ?")
286+
else:
287+
headers["drealpixelsizex"] = nxdetector["x_pixel_size"][()] * 1e3
288+
headers["drealpixelsizey"] = nxdetector["y_pixel_size"][()] * 1e3
289+
headers["dxorigininpix"] = nxdetector["beam_center_x"][()]
290+
headers["dyorigininpix"] = nxdetector["beam_center_y"][()]
291+
headers["ddistanceinmm"] = nxdetector["detector_distance"][()] * 1e3
292+
headers["dexposuretimeinsec"] = nxdetector["count_time"][()]
293+
wavelength = entry["instrument/beam/incident_wavelength"][()]
279294
else:
280295
raise NotImplementedError("Unsupported format: %s" % source.__class__.__name__)
281296
if self.mask is None:
@@ -324,7 +339,7 @@ def common_headers(self):
324339
value = numexpr.NumExpr(self.options.omega)
325340
self.scan_type = "omega"
326341
headers["dom_s"] = headers["dom_e"] = value
327-
342+
328343
return headers
329344

330345
def convert_one(self, input_filename, start_at=0):
@@ -453,13 +468,14 @@ def treat_mask(self, full=False):
453468
dend = self.headers["dph_s"](self.processed_frames)
454469
dphi = 0.0
455470
domega = self.headers["dom_s"]
456-
else: #Omega-scan
471+
elif self.scan_type=="omega":
457472
iscantype = xcaliburimage.SCAN_TYPE.Omega.value
458473
dstart = self.headers["dom_s"](0)
459474
dend = self.headers["dom_s"](self.processed_frames)
460475
dphi = self.headers["dph_s"]
461476
domega = 0.0
462-
477+
else:
478+
raise RuntimeError("This program only supports Omega and Phi scans, please provide the scan type in the command-line. See the output of the `--help` options.")
463479
oscil = (dend-dstart)/self.processed_frames
464480
sweep = xcaliburimage.Sweep(0,
465481
iscantype,

version.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
__contact__ = "[email protected]"
5959
__license__ = "MIT"
6060
__copyright__ = "European Synchrotron Radiation Facility, Grenoble, France"
61-
__date__ = "02/09/2024"
61+
__date__ = "09/10/2024"
6262
__status__ = "production"
6363
__docformat__ = 'restructuredtext'
6464
__all__ = ["date", "version_info", "strictversion", "hexversion", "debianversion",
@@ -76,8 +76,8 @@
7676
"candidate": "rc"}
7777

7878
MAJOR = 2024
79-
MINOR = 9
80-
MICRO = 1
79+
MINOR = 10
80+
MICRO = 0
8181
RELEV = "dev" # <16
8282
SERIAL = 0 # <16
8383
date = __date__

0 commit comments

Comments
 (0)