本文整理汇总了Python中pyFAI.azimuthalIntegrator.AzimuthalIntegrator.setFit2D方法的典型用法代码示例。如果您正苦于以下问题:Python AzimuthalIntegrator.setFit2D方法的具体用法?Python AzimuthalIntegrator.setFit2D怎么用?Python AzimuthalIntegrator.setFit2D使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyFAI.azimuthalIntegrator.AzimuthalIntegrator
的用法示例。
在下文中一共展示了AzimuthalIntegrator.setFit2D方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: scan_tilt
# 需要导入模块: from pyFAI.azimuthalIntegrator import AzimuthalIntegrator [as 别名]
# 或者: from pyFAI.azimuthalIntegrator.AzimuthalIntegrator import setFit2D [as 别名]
def scan_tilt(self, width=1.0, points=10):
"""
???
@param width: ???
@type width: float ???
@param points: ???
@type points: int ???
@return: ???
@rtype: ???
"""
f = self.ai.getFit2D()
out = []
for x in numpy.linspace(f["tilt"] - width / 2.0, f["tilt"] + width / 2.0, points):
ax = AzimuthalIntegrator()
fx = f.copy()
fx["tilt"] = x
ax.setFit2D(**fx)
# print ax
ref = Refinment2D(self.img, ax)
res = ref.diff_tth_tilt()
print "x= %.3f mean= %e" % (x, res)
out.append(res)
return numpy.linspace(f["tilt"] - width / 2.0, f["tilt"] + width / 2.0, points), out
示例2: scan_Fit2D
# 需要导入模块: from pyFAI.azimuthalIntegrator import AzimuthalIntegrator [as 别名]
# 或者: from pyFAI.azimuthalIntegrator.AzimuthalIntegrator import setFit2D [as 别名]
def scan_Fit2D(self, width=1.0, points=10, axis="tilt", dx=0.1):
"""
???
@param width: ???
@type width: float ???
@param points: ???
@type points: int ???
@param axis: ???
@type axis: str ???
@param dx: ???
@type dx: float ???
@return: ???
@rtype: ???
"""
logger.info("Scanning along axis %s" % axis)
f = self.ai.getFit2D()
out = []
meas_pts = numpy.linspace(f[axis] - width / 2.0, f[axis] + width / 2.0, points)
for x in meas_pts:
ax = AzimuthalIntegrator()
fx = f.copy()
fx[axis] = x
ax.setFit2D(**fx)
ref = Refinment2D(self.img, ax)
res = ref.diff_Fit2D(axis=axis, dx=dx)
print "x= %.3f mean= %e" % (x, res)
out.append(res)
return meas_pts, out
示例3: diff_tth_X
# 需要导入模块: from pyFAI.azimuthalIntegrator import AzimuthalIntegrator [as 别名]
# 或者: from pyFAI.azimuthalIntegrator.AzimuthalIntegrator import setFit2D [as 别名]
def diff_tth_X(self, dx=0.1):
"""
Jerome peux-tu décrire de quoi il retourne ???
@param dx: ???
@type: float ???
@return: ???
@rtype: ???
"""
f = self.ai.getFit2D()
fp = f.copy()
fm = f.copy()
fm["centerX"] -= dx / 2.0
fp["centerX"] += dx / 2.0
ap = AzimuthalIntegrator()
am = AzimuthalIntegrator()
ap.setFit2D(**fp)
am.setFit2D(**fm)
dtthX = (ap.twoThetaArray(self.shape) - am.twoThetaArray(self.shape))\
/ dx
tth, I = self.ai.xrpd(self.img, max(self.shape))
dI = SGModule.getSavitzkyGolay(I, npoints=5, degree=2, order=1)\
/ (tth[1] - tth[0])
dImg = self.reconstruct(tth, dI)
return (dtthX * dImg).sum()
示例4: diff_Fit2D
# 需要导入模块: from pyFAI.azimuthalIntegrator import AzimuthalIntegrator [as 别名]
# 或者: from pyFAI.azimuthalIntegrator.AzimuthalIntegrator import setFit2D [as 别名]
def diff_Fit2D(self, axis="all", dx=0.1):
"""
???
@param axis: ???
@type axis: ???
@param dx: ???
@type dx: ???
@return: ???
@rtype: ???
"""
tth, I = self.ai.xrpd(self.img, max(self.shape))
dI = SGModule.getSavitzkyGolay(I, npoints=5, degree=2, order=1) / (tth[1] - tth[0])
dImg = self.reconstruct(tth, dI)
f = self.ai.getFit2D()
tth2d_ref = self.ai.twoThetaArray(self.shape) # useless variable ???
keys = ["centerX", "centerY", "tilt", "tiltPlanRotation"]
if axis != "all":
keys = [i for i in keys if i == axis]
grad = {}
for key in keys:
fp = f.copy()
fp[key] += dx
ap = AzimuthalIntegrator()
ap.setFit2D(**fp)
dtth = (ap.twoThetaArray(self.shape) - self.ai.twoThetaArray(self.shape)) / dx
grad[key] = (dtth * dImg).sum()
if axis == "all":
return grad
else:
return grad[axis]
示例5: TestAzimPilatus
# 需要导入模块: from pyFAI.azimuthalIntegrator import AzimuthalIntegrator [as 别名]
# 或者: from pyFAI.azimuthalIntegrator.AzimuthalIntegrator import setFit2D [as 别名]
class TestAzimPilatus(unittest.TestCase):
img = UtilsTest.getimage("1884/Pilatus6M.cbf")
def setUp(self):
"""Download files"""
self.data = fabio.open(self.img).data
self.ai = AzimuthalIntegrator(detector="pilatus6m")
self.ai.setFit2D(300, 1326, 1303)
def test_separate(self):
bragg, amorphous = self.ai.separate(self.data)
self.assert_(amorphous.max() < bragg.max(), "bragg is more intense than amorphous")
self.assert_(amorphous.std() < bragg.std(), "bragg is more variatic than amorphous")
示例6: image_test_rings
# 需要导入模块: from pyFAI.azimuthalIntegrator import AzimuthalIntegrator [as 别名]
# 或者: from pyFAI.azimuthalIntegrator.AzimuthalIntegrator import setFit2D [as 别名]
def image_test_rings():
rings = 10
mod = 50
detector = detector_factory("Titan")
sigma = detector.pixel1 * 4
shape = detector.max_shape
ai = AzimuthalIntegrator(detector=detector)
ai.setFit2D(1000, 1000, 1000)
r = ai.rArray(shape)
r_max = r.max()
chi = ai.chiArray(shape)
img = numpy.zeros(shape)
modulation = (1 + numpy.sin(5 * r + chi * mod))
for radius in numpy.linspace(0, r_max, rings):
img += numpy.exp(-(r - radius) ** 2 / (2 * (sigma * sigma)))
return img * modulation
示例7: ObliqueAngleDetectorAbsorptionCorrectionTest
# 需要导入模块: from pyFAI.azimuthalIntegrator import AzimuthalIntegrator [as 别名]
# 或者: from pyFAI.azimuthalIntegrator.AzimuthalIntegrator import setFit2D [as 别名]
class ObliqueAngleDetectorAbsorptionCorrectionTest(unittest.TestCase):
def setUp(self):
# defining geometry
image_shape = [2048, 2048] # pixel
detector_distance = 200 # mm
wavelength = 0.31 # angstrom
center_x = 1024 # pixel
center_y = 1024 # pixel
self.tilt = 0 # degree
self.rotation = 0 # degree
pixel_size = 79 # um
dummy_tth = np.linspace(0, 35, 2000)
dummy_int = np.ones(dummy_tth.shape)
self.geometry = AzimuthalIntegrator()
self.geometry.setFit2D(directDist=detector_distance,
centerX=center_x,
centerY=center_y,
tilt=self.tilt,
tiltPlanRotation=self.rotation,
pixelX=pixel_size,
pixelY=pixel_size)
self.geometry.wavelength = wavelength / 1e10
self.dummy_img = self.geometry.calcfrom1d(dummy_tth, dummy_int, shape=image_shape, correctSolidAngle=True)
self.tth_array = self.geometry.twoThetaArray(image_shape)
self.azi_array = self.geometry.chiArray(image_shape)
def tearDown(self):
del self.azi_array
del self.tth_array
del self.dummy_img
del self.geometry
gc.collect()
def test_that_it_is_correctly_calculating(self):
oblique_correction = ObliqueAngleDetectorAbsorptionCorrection(
tth_array=self.tth_array,
azi_array=self.azi_array,
detector_thickness=40,
absorption_length=465.5,
tilt=self.tilt,
rotation=self.rotation
)
oblique_correction_data = oblique_correction.get_data()
self.assertGreater(np.sum(oblique_correction_data), 0)
self.assertEqual(oblique_correction_data.shape, self.dummy_img.shape)
del oblique_correction
示例8: CbnCorrectionTest
# 需要导入模块: from pyFAI.azimuthalIntegrator import AzimuthalIntegrator [as 别名]
# 或者: from pyFAI.azimuthalIntegrator.AzimuthalIntegrator import setFit2D [as 别名]
class CbnCorrectionTest(unittest.TestCase):
def setUp(self):
# defining geometry
image_shape = [2048, 2048] # pixel
detector_distance = 200 # mm
wavelength = 0.31 # angstrom
center_x = 1024 # pixel
center_y = 1024 # pixel
tilt = 0 # degree
rotation = 0 # degree
pixel_size = 79 # um
dummy_tth = np.linspace(0, 35, 2000)
dummy_int = np.ones(dummy_tth.shape)
self.geometry = AzimuthalIntegrator()
self.geometry.setFit2D(directDist=detector_distance,
centerX=center_x,
centerY=center_y,
tilt=tilt,
tiltPlanRotation=rotation,
pixelX=pixel_size,
pixelY=pixel_size)
self.geometry.wavelength = wavelength / 1e10
self.dummy_img = self.geometry.calcfrom1d(dummy_tth, dummy_int, shape=image_shape, correctSolidAngle=True)
self.tth_array = self.geometry.twoThetaArray(image_shape)
self.azi_array = self.geometry.chiArray(image_shape)
def tearDown(self):
del self.tth_array
del self.azi_array
del self.dummy_img
del self.geometry
gc.collect()
def test_that_it_is_calculating_correctly(self):
cbn_correction = CbnCorrection(self.tth_array, self.azi_array,
diamond_thickness=2.2,
seat_thickness=5.3,
small_cbn_seat_radius=0.4,
large_cbn_seat_radius=1.95,
tilt=0,
tilt_rotation=0)
cbn_correction.update()
cbn_correction_data = cbn_correction.get_data()
self.assertGreater(np.sum(cbn_correction_data), 0)
self.assertEqual(cbn_correction_data.shape, self.dummy_img.shape)
示例9: image_test_rings
# 需要导入模块: from pyFAI.azimuthalIntegrator import AzimuthalIntegrator [as 别名]
# 或者: from pyFAI.azimuthalIntegrator.AzimuthalIntegrator import setFit2D [as 别名]
def image_test_rings():
"Creating a test image containing gaussian spots on several rings"
rings = 10
mod = 50
detector = detector_factory("Titan")
sigma = detector.pixel1 * 4
shape = detector.max_shape
ai = AzimuthalIntegrator(detector=detector)
ai.setFit2D(1000, 1000, 1000)
r = ai.rArray(shape)
r_max = r.max()
chi = ai.chiArray(shape)
img = numpy.zeros(shape)
modulation = (1 + numpy.sin(5 * r + chi * mod))
for radius in numpy.linspace(0, r_max, rings):
img += numpy.exp(-(r - radius) ** 2 / (2 * (sigma * sigma)))
img *= modulation
img = add_noise(img, 0.0)
return img
示例10: diff_tth_tilt
# 需要导入模块: from pyFAI.azimuthalIntegrator import AzimuthalIntegrator [as 别名]
# 或者: from pyFAI.azimuthalIntegrator.AzimuthalIntegrator import setFit2D [as 别名]
def diff_tth_tilt(self, dx=0.1):
"""
idem ici ???
@param dx: ???
@type dx: float ???
@return: ???
@rtype: ???
"""
f = self.ai.getFit2D()
fp = f.copy()
fm = f.copy()
fm["tilt"] -= dx / 2.0
fp["tilt"] += dx / 2.0
ap = AzimuthalIntegrator()
am = AzimuthalIntegrator()
ap.setFit2D(**fp)
am.setFit2D(**fm)
dtthX = (ap.twoThetaArray(self.shape) - am.twoThetaArray(self.shape)) / dx
tth, I = self.ai.xrpd(self.img, max(self.shape))
dI = SGModule.getSavitzkyGolay(I, npoints=5, degree=2, order=1) / (tth[1] - tth[0])
dImg = self.reconstruct(tth, dI)
return (dtthX * dImg).sum()
示例11: AzimuthalIntegrator
# 需要导入模块: from pyFAI.azimuthalIntegrator import AzimuthalIntegrator [as 别名]
# 或者: from pyFAI.azimuthalIntegrator.AzimuthalIntegrator import setFit2D [as 别名]
detector_distance = 200 #mm
wavelength = 0.31 #angstrom
center_x = 1024 #pixel
center_y = 1024 #pixel
tilt = 0 #degree
rotation = 0 #degree
pixel_size = 79 #um
#some initialization
dummy_tth = np.linspace(0, 35, 2000)
dummy_int = np.ones(dummy_tth.shape)
geometry = AzimuthalIntegrator()
geometry.setFit2D(directDist=detector_distance,
centerX=center_x,
centerY=center_y,
tilt=tilt,
tiltPlanRotation=rotation,
pixelX=pixel_size,
pixelY=pixel_size)
geometry.wavelength = wavelength/1e10
dummy_img = geometry.calcfrom1d(dummy_tth, dummy_int, shape=image_shape, correctSolidAngle=True)
tth_array = geometry.twoThetaArray(image_shape)
azi_array = geometry.chiArray(image_shape)
cbn_correction = CbnCorrection(tth_array, azi_array,
diamond_thickness=2.2,
seat_thickness=5.3,
small_cbn_seat_radius=0.4,
示例12: CalibrationModel
# 需要导入模块: from pyFAI.azimuthalIntegrator import AzimuthalIntegrator [as 别名]
# 或者: from pyFAI.azimuthalIntegrator.AzimuthalIntegrator import setFit2D [as 别名]
#.........这里部分代码省略.........
def load(self, filename):
"""
Loads a calibration file and and sets all the calibration parameter.
:param filename: filename for a *.poni calibration file
"""
self.spectrum_geometry = AzimuthalIntegrator()
self.spectrum_geometry.load(filename)
self.orig_pixel1 = self.spectrum_geometry.pixel1
self.orig_pixel2 = self.spectrum_geometry.pixel2
self.calibration_name = get_base_name(filename)
self.filename = filename
self.is_calibrated = True
self.create_cake_geometry()
self.set_supersampling()
def save(self, filename):
"""
Saves the current calibration parameters into a a text file. Default extension is
*.poni
"""
self.cake_geometry.save(filename)
self.calibration_name = get_base_name(filename)
self.filename = filename
def create_file_header(self):
return self.cake_geometry.makeHeaders(polarization_factor=self.polarization_factor)
def set_fit2d(self, fit2d_parameter):
"""
Reads in a dictionary with fit2d parameters where the fields of the dictionary are:
'directDist', 'centerX', 'centerY', 'tilt', 'tiltPlanRotation', 'pixelX', pixelY',
'polarization_factor', 'wavelength'
"""
self.spectrum_geometry.setFit2D(directDist=fit2d_parameter['directDist'],
centerX=fit2d_parameter['centerX'],
centerY=fit2d_parameter['centerY'],
tilt=fit2d_parameter['tilt'],
tiltPlanRotation=fit2d_parameter['tiltPlanRotation'],
pixelX=fit2d_parameter['pixelX'],
pixelY=fit2d_parameter['pixelY'])
self.spectrum_geometry.wavelength = fit2d_parameter['wavelength']
self.create_cake_geometry()
self.polarization_factor = fit2d_parameter['polarization_factor']
self.orig_pixel1 = fit2d_parameter['pixelX'] * 1e-6
self.orig_pixel2 = fit2d_parameter['pixelY'] * 1e-6
self.is_calibrated = True
self.set_supersampling()
def set_pyFAI(self, pyFAI_parameter):
"""
Reads in a dictionary with pyFAI parameters where the fields of dictionary are:
'dist', 'poni1', 'poni2', 'rot1', 'rot2', 'rot3', 'pixel1', 'pixel2', 'wavelength',
'polarization_factor'
"""
self.spectrum_geometry.setPyFAI(dist=pyFAI_parameter['dist'],
poni1=pyFAI_parameter['poni1'],
poni2=pyFAI_parameter['poni2'],
rot1=pyFAI_parameter['rot1'],
rot2=pyFAI_parameter['rot2'],
rot3=pyFAI_parameter['rot3'],
pixel1=pyFAI_parameter['pixel1'],
pixel2=pyFAI_parameter['pixel2'])
self.spectrum_geometry.wavelength = pyFAI_parameter['wavelength']
self.create_cake_geometry()
self.polarization_factor = pyFAI_parameter['polarization_factor']
self.orig_pixel1 = pyFAI_parameter['pixel1']
示例13: CalibrationData
# 需要导入模块: from pyFAI.azimuthalIntegrator import AzimuthalIntegrator [as 别名]
# 或者: from pyFAI.azimuthalIntegrator.AzimuthalIntegrator import setFit2D [as 别名]
#.........这里部分代码省略.........
if center_x < width and center_x > 0:
side1 = np.max([abs(width - center_x), center_x])
else:
side1 = width
if center_y < height and center_y > 0:
side2 = np.max([abs(height - center_y), center_y])
else:
side2 = height
max_dist = np.sqrt(side1 ** 2 + side2 ** 2)
return int(max_dist * max_dist_factor)
def load(self, filename):
self.spectrum_geometry = AzimuthalIntegrator()
self.spectrum_geometry.load(filename)
self.orig_pixel1 = self.spectrum_geometry.pixel1
self.orig_pixel2 = self.spectrum_geometry.pixel2
self.calibration_name = get_base_name(filename)
self.filename = filename
self.is_calibrated = True
self.create_cake_geometry()
self.set_supersampling()
def save(self, filename):
self.cake_geometry.save(filename)
self.calibration_name = get_base_name(filename)
self.filename = filename
def create_file_header(self):
return self.cake_geometry.makeHeaders(polarization_factor=self.polarization_factor)
def set_fit2d(self, fit2d_parameter):
print fit2d_parameter
self.spectrum_geometry.setFit2D(directDist=fit2d_parameter['directDist'],
centerX=fit2d_parameter['centerX'],
centerY=fit2d_parameter['centerY'],
tilt=fit2d_parameter['tilt'],
tiltPlanRotation=fit2d_parameter['tiltPlanRotation'],
pixelX=fit2d_parameter['pixelX'],
pixelY=fit2d_parameter['pixelY'])
self.spectrum_geometry.wavelength = fit2d_parameter['wavelength']
self.create_cake_geometry()
self.polarization_factor = fit2d_parameter['polarization_factor']
self.orig_pixel1 = fit2d_parameter['pixelX'] * 1e-6
self.orig_pixel2 = fit2d_parameter['pixelY'] * 1e-6
self.is_calibrated = True
self.set_supersampling()
def set_pyFAI(self, pyFAI_parameter):
self.spectrum_geometry.setPyFAI(dist=pyFAI_parameter['dist'],
poni1=pyFAI_parameter['poni1'],
poni2=pyFAI_parameter['poni2'],
rot1=pyFAI_parameter['rot1'],
rot2=pyFAI_parameter['rot2'],
rot3=pyFAI_parameter['rot3'],
pixel1=pyFAI_parameter['pixel1'],
pixel2=pyFAI_parameter['pixel2'])
self.spectrum_geometry.wavelength = pyFAI_parameter['wavelength']
self.create_cake_geometry()
self.polarization_factor = pyFAI_parameter['polarization_factor']
self.orig_pixel1 = pyFAI_parameter['pixel1']
self.orig_pixel2 = pyFAI_parameter['pixel2']
self.is_calibrated = True
self.set_supersampling()
def set_supersampling(self, factor=None):