diff --git a/src/dxtbx/boost_python/ext.cpp b/src/dxtbx/boost_python/ext.cpp index f95f9f96f..ce5bf2e91 100644 --- a/src/dxtbx/boost_python/ext.cpp +++ b/src/dxtbx/boost_python/ext.cpp @@ -195,35 +195,39 @@ namespace dxtbx { namespace boost_python { return PyBytes_FromStringAndSize(&*packed.begin(), packed.size()); } - double distance_between_points(scitbx::vec2 const& a, scitbx::vec2 const& b) { - return std::sqrt((std::pow(double(b[0]-a[0]),2)+std::pow(double(b[1]-a[1]),2))); + double distance_between_points(scitbx::vec2 const &a, + scitbx::vec2 const &b) { + return std::sqrt( + (std::pow(double(b[0] - a[0]), 2) + std::pow(double(b[1] - a[1]), 2))); } - void radial_average(scitbx::af::versa > & data, - scitbx::af::versa > & mask, - scitbx::vec2 const& beam_center, - scitbx::af::shared sums, - scitbx::af::shared sums_sq, - scitbx::af::shared counts, - double pixel_size, double distance, - scitbx::vec2 const& upper_left, - scitbx::vec2 const& lower_right) { + void radial_average(scitbx::af::versa > &data, + scitbx::af::versa > &mask, + scitbx::vec2 const &beam_center, + scitbx::af::shared sums, + scitbx::af::shared sums_sq, + scitbx::af::shared counts, + double pixel_size, + double distance, + scitbx::vec2 const &upper_left, + scitbx::vec2 const &lower_right) { std::size_t extent = sums.size(); double extent_in_mm = extent * pixel_size; - double extent_two_theta = std::atan(extent_in_mm/distance)*180/scitbx::constants::pi; - - for(std::size_t y = upper_left[1]; y < lower_right[1]; y++) { - for(std::size_t x = upper_left[0]; x < lower_right[0]; x++) { - double val = data(x,y); - if(val > 0 && mask(x,y)) { - scitbx::vec2 point((int)x,(int)y); - double d_in_mm = distance_between_points(point,beam_center) * pixel_size; - double twotheta = std::atan(d_in_mm/distance)*180/scitbx::constants::pi; - std::size_t bin = (std::size_t)std::floor(twotheta*extent/extent_two_theta); - if (bin >= extent) - continue; + double extent_two_theta = + std::atan(extent_in_mm / distance) * 180 / scitbx::constants::pi; + + for (std::size_t y = upper_left[1]; y < lower_right[1]; y++) { + for (std::size_t x = upper_left[0]; x < lower_right[0]; x++) { + double val = data(x, y); + if (val > 0 && mask(x, y)) { + scitbx::vec2 point((int)x, (int)y); + double d_in_mm = distance_between_points(point, beam_center) * pixel_size; + double twotheta = std::atan(d_in_mm / distance) * 180 / scitbx::constants::pi; + std::size_t bin = + (std::size_t)std::floor(twotheta * extent / extent_two_theta); + if (bin >= extent) continue; sums[bin] += val; - sums_sq[bin] += val*val; + sums_sq[bin] += val * val; counts[bin]++; } } @@ -261,11 +265,17 @@ namespace dxtbx { namespace boost_python { def("is_big_endian", is_big_endian); def("uncompress", &uncompress, (arg_("packed"), arg_("slow"), arg_("fast"))); def("compress", &compress); - def("radial_average", &radial_average, - (arg("data"), arg("beam_center"), arg("sums"), arg("sums_sq"), arg("counts"), - arg("pixel_size"), arg("distance"), - arg("upper_left"), arg("lower_right"))) - ; + def("radial_average", + &radial_average, + (arg("data"), + arg("beam_center"), + arg("sums"), + arg("sums_sq"), + arg("counts"), + arg("pixel_size"), + arg("distance"), + arg("upper_left"), + arg("lower_right"))); def("uncompress_rod_TY6", &uncompress_rod_TY6, (arg_("data"), arg_("offsets"), arg_("slow"), arg_("fast"))); diff --git a/src/dxtbx/command_line/detector_superpose.py b/src/dxtbx/command_line/detector_superpose.py index 6821d6722..b67273910 100644 --- a/src/dxtbx/command_line/detector_superpose.py +++ b/src/dxtbx/command_line/detector_superpose.py @@ -3,12 +3,13 @@ import math import sys +from serialtbx.detector import iterate_detector_at_level + from libtbx.phil import parse from libtbx.test_utils import approx_equal from scitbx.array_family import flex from scitbx.math.superpose import least_squares_fit from scitbx.matrix import col -from serialtbx.detector import iterate_detector_at_level import dials.util from dials.util.options import OptionParser diff --git a/src/dxtbx/command_line/image2pickle.py b/src/dxtbx/command_line/image2pickle.py index a3203a843..c3d6d6a38 100644 --- a/src/dxtbx/command_line/image2pickle.py +++ b/src/dxtbx/command_line/image2pickle.py @@ -12,13 +12,13 @@ import sys import numpy as np +import serialtbx.detector.cspad +import serialtbx.util import libtbx.option_parser from libtbx import easy_pickle from libtbx.utils import Usage -import serialtbx.util from scitbx.array_family import flex -import serialtbx.detector.cspad import dxtbx.util diff --git a/src/dxtbx/command_line/radial_average.py b/src/dxtbx/command_line/radial_average.py index ddf30af6c..70e950557 100644 --- a/src/dxtbx/command_line/radial_average.py +++ b/src/dxtbx/command_line/radial_average.py @@ -16,10 +16,10 @@ from libtbx.utils import Sorry, Usage from scitbx.array_family import flex from scitbx.matrix import col -from dxtbx.ext import radial_average import dxtbx import dxtbx.util +from dxtbx.ext import radial_average from dxtbx.model.experiment_list import ExperimentListFactory master_phil = iotbx.phil.parse( diff --git a/src/dxtbx/format/FormatCBFMultiTile.py b/src/dxtbx/format/FormatCBFMultiTile.py index a04517de6..89dfe26c2 100644 --- a/src/dxtbx/format/FormatCBFMultiTile.py +++ b/src/dxtbx/format/FormatCBFMultiTile.py @@ -8,8 +8,8 @@ import numpy import pycbf -from scitbx.array_family import flex from scitbx import matrix +from scitbx.array_family import flex from dxtbx.format.FormatCBF import FormatCBF from dxtbx.format.FormatCBFFull import FormatCBFFull diff --git a/src/dxtbx/format/FormatNexusJungfrauExt.py b/src/dxtbx/format/FormatNexusJungfrauExt.py index 11aab7d52..a9b2e82d1 100644 --- a/src/dxtbx/format/FormatNexusJungfrauExt.py +++ b/src/dxtbx/format/FormatNexusJungfrauExt.py @@ -4,11 +4,9 @@ import h5py import numpy as np - -from scitbx.array_family import flex - from serialtbx.detector.jungfrau import pad_stacked_format +from scitbx.array_family import flex from dxtbx.format.FormatNexus import FormatNexus from dxtbx.format.nexus import h5str diff --git a/src/dxtbx/format/FormatPYmultitile.py b/src/dxtbx/format/FormatPYmultitile.py index 8e39ef549..fb19e4623 100644 --- a/src/dxtbx/format/FormatPYmultitile.py +++ b/src/dxtbx/format/FormatPYmultitile.py @@ -5,11 +5,11 @@ from calendar import timegm from time import strptime +from serialtbx.detector.legacy_metrology.cspad_detector import CSPadDetector + from iotbx.detectors.npy import image_dict_to_unicode from scitbx.matrix import col -from serialtbx.detector.legacy_metrology.cspad_detector import CSPadDetector - from dxtbx.format.FormatPY import FormatPY from dxtbx.model import Detector diff --git a/src/dxtbx/format/FormatXTC.py b/src/dxtbx/format/FormatXTC.py index 364b06c06..d77539128 100644 --- a/src/dxtbx/format/FormatXTC.py +++ b/src/dxtbx/format/FormatXTC.py @@ -5,6 +5,8 @@ import time import numpy as np +import serialtbx.detector.xtc +import serialtbx.util from libtbx.phil import parse from scitbx.array_family import flex @@ -15,8 +17,6 @@ from dxtbx.format.FormatStill import FormatStill from dxtbx.model import Spectrum from dxtbx.util.rotate_and_average import rotate_and_average -import serialtbx.util -import serialtbx.detector.xtc try: import psana diff --git a/src/dxtbx/format/FormatXTCCspad.py b/src/dxtbx/format/FormatXTCCspad.py index a7719d375..586d393a1 100644 --- a/src/dxtbx/format/FormatXTCCspad.py +++ b/src/dxtbx/format/FormatXTCCspad.py @@ -3,14 +3,14 @@ import sys import numpy as np +import serialtbx.detector.cspad +from serialtbx.detector import cspad +from serialtbx.detector.xtc import env_distance from cctbx.eltbx import attenuation_coefficient from libtbx.phil import parse from scitbx.array_family import flex from scitbx.matrix import col -from serialtbx.detector import cspad -from serialtbx.detector.xtc import env_distance -import serialtbx.detector.cspad from dxtbx.format.FormatXTC import FormatXTC, locator_str from dxtbx.model import Detector, ParallaxCorrectedPxMmStrategy diff --git a/src/dxtbx/format/FormatXTCEpix.py b/src/dxtbx/format/FormatXTCEpix.py index bea3bcf44..f3cae2a10 100644 --- a/src/dxtbx/format/FormatXTCEpix.py +++ b/src/dxtbx/format/FormatXTCEpix.py @@ -62,7 +62,6 @@ def get_detector(self, index=None): def _detector(self, index=None): from PSCalib.SegGeometryStore import sgs - from serialtbx.detector.xtc import basis_from_geo run = self.get_run_from_index(index) diff --git a/src/dxtbx/format/FormatXTCJungfrau.py b/src/dxtbx/format/FormatXTCJungfrau.py index 6e7e8b9b1..02dee7e24 100644 --- a/src/dxtbx/format/FormatXTCJungfrau.py +++ b/src/dxtbx/format/FormatXTCJungfrau.py @@ -103,7 +103,6 @@ def get_detector(self, index=None): def _detector(self, index=None): from PSCalib.SegGeometryStore import sgs - from serialtbx.detector.xtc import basis_from_geo run = self.get_run_from_index(index) diff --git a/src/dxtbx/format/FormatXTCRayonix.py b/src/dxtbx/format/FormatXTCRayonix.py index cf3c2b260..d1bbcb907 100644 --- a/src/dxtbx/format/FormatXTCRayonix.py +++ b/src/dxtbx/format/FormatXTCRayonix.py @@ -15,13 +15,13 @@ raise psana = None +from serialtbx.detector import rayonix + from libtbx.phil import parse from scitbx.array_family import flex from dxtbx.format.FormatXTC import FormatXTC, locator_str -from serialtbx.detector import rayonix - rayonix_locator_str = """ rayonix { bin_size = None diff --git a/src/dxtbx/format/cbf_writer.py b/src/dxtbx/format/cbf_writer.py index a1a91a8ed..d200facd3 100644 --- a/src/dxtbx/format/cbf_writer.py +++ b/src/dxtbx/format/cbf_writer.py @@ -13,12 +13,12 @@ import sys import pycbf +from serialtbx.detector import basis -from dxtbx.format.FormatCBFMultiTile import cbf_wrapper from scitbx.array_family import flex -from serialtbx.detector import basis import dxtbx.format.Registry +from dxtbx.format.FormatCBFMultiTile import cbf_wrapper def add_frame_specific_cbf_tables( diff --git a/src/dxtbx/format/nxmx_writer.py b/src/dxtbx/format/nxmx_writer.py index 96adca876..87730551d 100644 --- a/src/dxtbx/format/nxmx_writer.py +++ b/src/dxtbx/format/nxmx_writer.py @@ -14,6 +14,7 @@ import h5py import numpy as np +from serialtbx.detector import basis from cctbx import factor_ev_angstrom from libtbx import easy_pickle @@ -21,7 +22,6 @@ from libtbx.utils import Sorry from scitbx import matrix from scitbx.array_family import flex -from serialtbx.detector import basis from dials.util.options import ArgumentParser, flatten_experiments