Comments (8)
Aha! Simples just invert the direction for that instrument serial number
h5ls -rvd ../testlyso_D5-4_1_master.h5/entry/instrument/detector/detector_number
Opened "../testlyso_D5-4_1_master.h5" with sec2 driver.
entry/instrument/detector/detector_number Dataset {SCALAR}
Location: 1:271771
Links: 1
Modified: 2022-08-17 11:05:00 BST
Storage: 1 logical byte, 1 allocated byte, 100.00% utilization
Type: 1-byte null-terminated ASCII string
Data:
(0) ""
nope
from dxtbx.
OK, an afternoon of hacking later I think I have a reasonable logical check to see if your detector is upstream of the beam:
from dxtbx.model.experiment_list import ExperimentList
def is_detector_in_the_way(e):
d = e.detector
if len(d) != 1:
return False
b = e.beam
p = d[0]
n = p.get_normal()
x = b.get_sample_to_source_direction()
dot = sum(_n * _x for _n, _x in zip(n, x))
if abs(dot) > 0.99 and (b.get_wavelength() / d.get_max_resolution(b.get_s0())) > 1:
return True
return False
el = ExperimentList.from_file("imported.expt")
print(is_detector_in_the_way(el[0]))
from dxtbx.
Hang on, maybe I am not so happy with that solution after all π€
from dxtbx.
This one I am happy with -> now need to work out how to edit the detector model to compensate -
from dxtbx.model.experiment_list import ExperimentList
def is_detector_in_the_way(e):
d = e.detector
if len(d) != 1:
return False
b = e.beam
p = d[0]
n = p.get_normal()
o = p.get_origin()
x = b.get_sample_to_source_direction()
dot = sum(_n * _x for _n, _x in zip(n, x))
doto = sum(_o * _x for _o, _x in zip(o, x))
if abs(dot) > 0.99 and doto > 0:
return True
return False
el = ExperimentList.from_file("imported.expt")
print(is_detector_in_the_way(el[0]))
from dxtbx.
What is the best way to get around this issue?
I have data from the SLS / PXI and it took me quite some time to figure out why it didn't work π¬
Currently, I just invert the last value in the "origin" array manually, and then it seems to work.
from dxtbx.
What is the best way to get around this issue? I have data from the SLS / PXI and it took me quite some time to figure out why it didn't work π¬
Currently, I just invert the last value in the "origin" array manually, and then it seems to work.
OK, I could have sworn that a fix went out for this along the lines described above. Digging through the history to verify.
What version of DIALS are you using?
from dxtbx.
OK - @gebauer I added a fix for this in 8916daf which should have been in releases for last ~ 11 months? I am pretty sure it was back ported to pick up the CCP4 release series as well...
from dxtbx.
If you could confirm that this is indeed fixed I will close this issue (since it has been fixed, but seems impolite to close an issue when a user has just reported the problem)
from dxtbx.
Related Issues (20)
- EIGER X 16M at SPring-8 BL41XU HOT 9
- [3.17] seems incompatible with Python 3.12 HOT 5
- [3.17] error: βuint32_tβ does not name a type HOT 2
- [3.17] : DeprecationWarning: SelectableGroups dict interface is deprecated.
- [3.17] PytestUnknownMarkWarning: Unknown pytest.mark.regression
- Support for Rigaku Arc detectors HOT 5
- Generalise support for dynamic shadowing in dxtbx HOT 1
- NXmx bugs
- `FormatEigerNXmxFilewriter.get_raw_data` fails when number of linked data files is large HOT 3
- dxtbx.format.FormatNXmxDLS16M.FormatNXmxDLS16M no longer supports legacy data without VDS
- `FormatSMVADSCmlfsom` is too promiscuous HOT 1
- dlsnxs2cbf: produces invalid files from i04-1 Eiger 9M HOT 10
- More general support for handling of hit indices
- Define what we mean by array range HOT 11
- Treat everything internally as count-from-zero
- Figure out what is needed to remove image range
- Rename get_array_range -> get_z_range HOT 1
- Create branches in dxtbx and dials to explore impacts of removing image range etc. HOT 1
- Setting `geometry.goniometer.axis=` for a multi-axis goniometer should be disallowed
- FullCBFWriter shuffles multiple panels HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dxtbx.