Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

a generic class for CrtystFEL geometry #64

Open
3 of 5 tasks
kirienko opened this issue Apr 15, 2021 · 3 comments
Open
3 of 5 tasks

a generic class for CrtystFEL geometry #64

kirienko opened this issue Apr 15, 2021 · 3 comments
Assignees

Comments

@kirienko
Copy link
Contributor

kirienko commented Apr 15, 2021

At the moment, extra-geom can read CrystFEL geom files and produce valid geometries for several types of detectors. However, there are cases when one may need more generic representation than a predefined detector (e.g. for simulation purposes, or for the detector that is not yes supported by extra-geom). That's why it might be useful to have a generic class geometry loaded from an arbitrary CrystFEL file.

What is needed:

  • Detecting how many tiles per module
  • Finding data shapes (frag_ss_pixels, frag_fs_pixels, expected_data_shape)
  • Defining 3 methods which are not implemented in the base class (split_tiles, _tile_slice, _module_coords_to_tile)
  • Possibly, retrieving additional information like:
    • an arbitrary pixel size (res[olution] in CrystFEL terms)
    • an arbitrary data storage source (other than /entry_1/instrument_1/detector_1/data)
    • detector distance (clen in CrystFEL terms)
    • photon_energy
  • reading from an arbitrary CrystFEL .geom file with from_crystfel_geom must return meaningful information. In case of known detectors (i.e. already supported by extra-geom) it should produce an equal geometry object.
@takluyver
Copy link
Member

an arbitrary data storage source (other than /entry_1/instrument_1/detector_1/data)

This is one place where there's a conceptual difference - .geom files describe how to load the data from a file, whereas EXtra-geom doesn't deal with loading data.

@JunCEEE
Copy link
Contributor

JunCEEE commented Apr 30, 2021

Hi, how is this coming along? Related to #66 (comment), I guess this generic class is exactly what I need.

Can we also implement a method in this class to create an instance directly from a python list or dict of:

  • pixel size of each panel
  • center positions of pixels on each panel
  • clen

I need this badly for SimEx-Lite, please let me know where I can help to implement this class ASAP.

@takluyver
Copy link
Member

Just to record: the initial version of this was released in version 1.3 (docs). Reading CrystFEL geometry files into this generic class has been postponed for now. We'll leave this issue open for that.

I've separately started work on preserving extra info when reading a .geom file and writing it back (branch crystfel-geom-metadata) - I need to get back to this and finish it up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants