Codebase list xrayutilities / a4424a3
Imported Upstream version 1.0.2 Eugen Wintersberger 10 years ago
41 changed file(s) with 2529 addition(s) and 19 deletion(s). Raw diff Collapse all Expand all
0 v1.0.2, 2013-09-17
1
2 * add documentation source to tarball
3 * generate info file from documentation
4 * make c extension work with python3, and in general make XU more python3
5 friendly
6 * fix bug in SiGe materials lattice_const_AB function
7
08 v1.0.1, 2013-09-14
19
210 * new way of parsing motor positions and counter values from EDF files
00 Metadata-Version: 1.1
11 Name: xrayutilities
2 Version: 1.0.1
2 Version: 1.0.2
33 Summary: package for x-ray diffraction data evaluation
44 Home-page: http://xrayutilities.sourceforge.net
55 Author: Dominik Kriegner
6363 refer to your operating system documentation to find out how to install
6464 those packages. On Microsoft Windows refer to the Documentation for the
6565 easiest way of the installation (python(x,y)).
66
67 On Microsoft Windows with python(x,y) it is furthermore necessary to manually
68 specify the C compiler used for building the extension modules using
69
70 $> python setup.py build -c mingw32
71
72 before the installation can be performed as described above.
73
74 Installation for Python-3.X
75 ===========================
76
77 The current developement is still focues mainly on Python-2.7, however
78 xrayutilies can be used with Python-3.X versions when the 2to3 tool is used to
79 patch the Python sources. We suggest to use
80
81 $> 2to3 -p xrayutilities >> xrayutilities-python3.patch
82
83 to create the necessary patch. or
84
85 $> 2to3 -p -w xrayutilities
86
87 to change the source tree directly for use with Python3.X.
6688
6789 The python package configuration
6890 ================================
141163
142164 in any web-browser, after the installation is finished.
143165
166 To build the PDF documentation from the sources use sphinx:
167
168 sphinx-build -b latex doc/source doc/latex
169 cd doc/latex; make
170
171 or generate a texinfo file using
172
173 sphinx-build -b texinfo doc/source doc/texinfo
174 cd doc/texinfo; make
175
144176
145177 PACKAGING
146178 =========
5555 refer to your operating system documentation to find out how to install
5656 those packages. On Microsoft Windows refer to the Documentation for the
5757 easiest way of the installation (python(x,y)).
58
59 On Microsoft Windows with python(x,y) it is furthermore necessary to manually
60 specify the C compiler used for building the extension modules using
61
62 $> python setup.py build -c mingw32
63
64 before the installation can be performed as described above.
65
66 Installation for Python-3.X
67 ===========================
68
69 The current developement is still focues mainly on Python-2.7, however
70 xrayutilies can be used with Python-3.X versions when the 2to3 tool is used to
71 patch the Python sources. We suggest to use
72
73 $> 2to3 -p xrayutilities >> xrayutilities-python3.patch
74
75 to create the necessary patch. or
76
77 $> 2to3 -p -w xrayutilities
78
79 to change the source tree directly for use with Python3.X.
5880
5981 The python package configuration
6082 ================================
133155
134156 in any web-browser, after the installation is finished.
135157
158 To build the PDF documentation from the sources use sphinx:
159
160 sphinx-build -b latex doc/source doc/latex
161 cd doc/latex; make
162
163 or generate a texinfo file using
164
165 sphinx-build -b texinfo doc/source doc/texinfo
166 cd doc/texinfo; make
167
136168
137169 PACKAGING
138170 =========
0 # -*- coding: utf-8 -*-
1 #
2 # xrayutilities documentation build configuration file, created by
3 # sphinx-quickstart on Sat Mar 2 11:39:01 2013.
4 #
5 # This file is execfile()d with the current directory set to its containing dir.
6 #
7 # Note that not all possible configuration values are present in this
8 # autogenerated file.
9 #
10 # All configuration values have a default; values that are commented out
11 # serve to show the default.
12
13 import sys, os
14
15 # If extensions (or modules to document with autodoc) are in another directory,
16 # add these directories to sys.path here. If the directory is relative to the
17 # documentation root, use os.path.abspath to make it absolute, like shown here.
18 #sys.path.insert(0, os.path.abspath('.'))
19
20 # -- General configuration -----------------------------------------------------
21
22 # If your documentation needs a minimal Sphinx version, state it here.
23 #needs_sphinx = '1.0'
24
25 # Add any Sphinx extension module names here, as strings. They can be extensions
26 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
27 extensions = ['sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.pngmath', 'sphinx.ext.mathjax', 'sphinx.ext.viewcode']
28
29 # Add any paths that contain templates here, relative to this directory.
30 templates_path = ['_templates']
31
32 # The suffix of source filenames.
33 source_suffix = '.rst'
34
35 # The encoding of source files.
36 #source_encoding = 'utf-8-sig'
37
38 # The master toctree document.
39 master_doc = 'index'
40
41 # General information about the project.
42 project = u'xrayutilities'
43 copyright = u'2013, Dominik Kriegner, Eugen Wintersberger'
44
45 # The version info for the project you're documenting, acts as replacement for
46 # |version| and |release|, also used in various other places throughout the
47 # built documents.
48 #
49 # The short X.Y version.
50 version = '1.0'
51 # The full version, including alpha/beta/rc tags.
52 release = '1.0.2'
53
54 # The language for content autogenerated by Sphinx. Refer to documentation
55 # for a list of supported languages.
56 #language = None
57
58 # There are two options for replacing |today|: either, you set today to some
59 # non-false value, then it is used:
60 #today = ''
61 # Else, today_fmt is used as the format for a strftime call.
62 #today_fmt = '%B %d, %Y'
63
64 # List of patterns, relative to source directory, that match files and
65 # directories to ignore when looking for source files.
66 exclude_patterns = []
67
68 # The reST default role (used for this markup: `text`) to use for all documents.
69 #default_role = None
70
71 # If true, '()' will be appended to :func: etc. cross-reference text.
72 #add_function_parentheses = True
73
74 # If true, the current module name will be prepended to all description
75 # unit titles (such as .. function::).
76 #add_module_names = True
77
78 # If true, sectionauthor and moduleauthor directives will be shown in the
79 # output. They are ignored by default.
80 #show_authors = False
81
82 # The name of the Pygments (syntax highlighting) style to use.
83 pygments_style = 'sphinx'
84
85 # A list of ignored prefixes for module index sorting.
86 #modindex_common_prefix = []
87
88
89 # -- Options for HTML output ---------------------------------------------------
90
91 # The theme to use for HTML and HTML Help pages. See the documentation for
92 # a list of builtin themes.
93 html_theme = 'nature'
94
95 # Theme options are theme-specific and customize the look and feel of a theme
96 # further. For a list of options available for each theme, see the
97 # documentation.
98 html_theme_options = {'sidebarwidth':280}
99
100 # Add any paths that contain custom themes here, relative to this directory.
101 #html_theme_path = []
102
103 # The name for this set of Sphinx documents. If None, it defaults to
104 # "<project> v<release> documentation".
105 #html_title = None
106
107 # A shorter title for the navigation bar. Default is the same as html_title.
108 #html_short_title = None
109
110 # The name of an image file (relative to this directory) to place at the top
111 # of the sidebar.
112 html_logo = 'pics/xray-logo.png'
113
114 # The name of an image file (within the static path) to use as favicon of the
115 # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
116 # pixels large.
117 html_favicon = 'favicon.ico'
118
119 # Add any paths that contain custom static files (such as style sheets) here,
120 # relative to this directory. They are copied after the builtin static files,
121 # so a file named "default.css" will overwrite the builtin "default.css".
122 html_static_path = ['_static']
123
124 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
125 # using the given strftime format.
126 #html_last_updated_fmt = '%b %d, %Y'
127
128 # If true, SmartyPants will be used to convert quotes and dashes to
129 # typographically correct entities.
130 #html_use_smartypants = True
131
132 # Custom sidebar templates, maps document names to template names.
133 #html_sidebars = {}
134
135 # Additional templates that should be rendered to pages, maps page names to
136 # template names.
137 #html_additional_pages = {}
138
139 # If false, no module index is generated.
140 #html_domain_indices = True
141
142 # If false, no index is generated.
143 #html_use_index = True
144
145 # If true, the index is split into individual pages for each letter.
146 #html_split_index = False
147
148 # If true, links to the reST sources are added to the pages.
149 #html_show_sourcelink = True
150
151 # If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
152 #html_show_sphinx = True
153
154 # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
155 #html_show_copyright = True
156
157 # If true, an OpenSearch description file will be output, and all pages will
158 # contain a <link> tag referring to it. The value of this option must be the
159 # base URL from which the finished HTML is served.
160 #html_use_opensearch = ''
161
162 # This is the file name suffix for HTML files (e.g. ".xhtml").
163 #html_file_suffix = None
164
165 # Output file base name for HTML help builder.
166 htmlhelp_basename = 'xrayutilitiesdoc'
167
168
169 # -- Options for LaTeX output --------------------------------------------------
170
171 latex_elements = {
172 # The paper size ('letterpaper' or 'a4paper').
173 'papersize': 'a4paper',
174
175 # The font size ('10pt', '11pt' or '12pt').
176 #'pointsize': '10pt',
177
178 # Additional stuff for the LaTeX preamble.
179 'preamble': '\\usepackage{enumitem}\n\setlistdepth{15}',
180 }
181
182 # Grouping the document tree into LaTeX files. List of tuples
183 # (source start file, target name, title, author, documentclass [howto/manual]).
184 latex_documents = [
185 ('index', 'xrayutilities.tex', u'xrayutilities Documentation',
186 u'Dominik Kriegner \\and Eugen Wintersberger', 'manual'),
187 ]
188
189 # The name of an image file (relative to this directory) to place at the top of
190 # the title page.
191 #latex_logo = None
192
193 # For "manual" documents, if this is true, then toplevel headings are parts,
194 # not chapters.
195 #latex_use_parts = False
196
197 # If true, show page references after internal links.
198 #latex_show_pagerefs = False
199
200 # If true, show URL addresses after external links.
201 #latex_show_urls = False
202
203 # Documents to append as an appendix to all manuals.
204 #latex_appendices = []
205
206 # If false, no module index is generated.
207 #latex_domain_indices = True
208
209
210 # -- Options for manual page output --------------------------------------------
211
212 # One entry per manual page. List of tuples
213 # (source start file, name, description, authors, manual section).
214 man_pages = [
215 ('index', 'xrayutilities', u'xrayutilities Documentation',
216 [u'Dominik Kriegner, Eugen Wintersberger'], 1)
217 ]
218
219 # If true, show URL addresses after external links.
220 #man_show_urls = False
221
222
223 # -- Options for Texinfo output ------------------------------------------------
224
225 # Grouping the document tree into Texinfo files. List of tuples
226 # (source start file, target name, title, author,
227 # dir menu entry, description, category)
228 texinfo_documents = [
229 ('index', 'xrayutilities', u'xrayutilities Documentation',
230 u'Dominik Kriegner, Eugen Wintersberger', 'xrayutilities', 'a Python package for diffraction physicists',
231 'Miscellaneous'),
232 ]
233
234 # Documents to append as an appendix to all manuals.
235 #texinfo_appendices = []
236
237 # If false, no module index is generated.
238 #texinfo_domain_indices = True
239
240 # How to display URL addresses: 'footnote', 'no', or 'inline'.
241 #texinfo_show_urls = 'footnote'
242
243
244 # my additions for pre-processing the docstring
245 # parameter list of functions should be found and changed to be properly formated in the output
246 import re
247 def process_docstring(app, what, name, obj, options, lines):
248 # highlight parameters names
249 # insert section highlighting
250 for i in xrange(len(lines)):
251 # replace/protect * character
252 lines[i] = re.sub(r'\*',r'\\*',lines[i])
253 # insert note block
254 lines[i] = re.sub(r'^\s*Note:',r'.. note:: Note:',lines[i])
255 # parameter names
256 lines[i] = re.sub(r'^(\s*)([\w,()]+)(\s*:|\s{2,}|\s\.{1,}\s)',r'\1:\2: ',lines[i])
257 # section names (multiline matching)
258 if re.match('^\s*-{3,}\s*$',lines[i]):
259 try:
260 lines[i] = re.sub(r'^([a-zA-Z0-9_,:\s]*)',r'\1:',lines[i-1])
261 lines[i] = ' '
262 except: pass
263
264 def setup(app):
265 app.connect('autodoc-process-docstring', process_docstring)
266
267
0 """
1 example script to show the detector parameter determination for area detectors from images recorded in the primary beam
2 """
3
4 import xrayutilities as xu
5 import os
6
7 en=10300.0 #eV
8 datadir = os.path.join("data","wire_") # data path for CCD files
9 filetmp = os.path.join(datadir,"wire_12_%05d.edf.gz") # template for the CCD file names
10
11 ## manually selected images
12 # select images which have the primary beam fully on the CCD
13 imagenrs = [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]
14
15 images = []
16 ang1 = []
17 ang2 = []
18
19 # read images and angular positions from the data file
20 # this might differ for data taken at different beamlines since
21 # they way how motor positions are stored is not always consistent
22 for imgnr in imagenrs:
23 filename = filetmp%imgnr
24 edf = xu.io.EDFFile(filename)
25 images.append(edf.data)
26 ang1.append(float(edf.header['ESRF_ID01_PSIC_NANO_NU']))
27 ang2.append(float(edf.header['ESRF_ID01_PSIC_NANO_DEL']))
28
29
30 # call the fit for the detector parameters
31 # detector arm rotations and primary beam direction need to be given
32 # in total 8 parameters are fitted, however the 4 misalignment parameters can be fixed
33 # they are the detector tilt azimuth, the detector tilt angle, the detector rotation around the primary beam and the outer angle offset
34 param,eps = xu.analysis.sample_align.area_detector_calib(ang1,ang2,images,['z+','y-'],'x+',start=(45,0,-0.7,0),fix=(False,False,False,False),wl=xu.lam2en(en))
35
0 """
1 example script to show the detector parameter determination for area detectors from images recorded in the primary beam
2 and at known symmetric coplanar Bragg reflections of a reference crystal
3 """
4
5 import xrayutilities as xu
6 import os
7 import numpy
8
9 Si = xu.materials.Si
10
11 datadir = 'data'
12 specfile = "si_align.spec"
13
14 en=15000 #eV
15 wl = xu.lam2en(en)
16 imgdir = os.path.join(datadir,"si_align_") # data path for CCD files
17 filetmp = "si_align_12_%04d.edf.gz"
18
19 qconv = xu.QConversion(['z+','y-'],['z+','y-'],[1,0,0])
20 hxrd = xu.HXRD(Si.Q(1,1,-2),Si.Q(1,1,1),wl=wl,qconv=qconv)
21
22 ## manually selected images
23
24 s = xu.io.SPECFile(specfile,path=datadir)
25 for num in [61,62,63,20,21,26,27,28]:
26 s[num].ReadData()
27 try:
28 imagenrs = numpy.append(imagenrs,s[num].data['ccd_n'])
29 except:
30 imagenrs = s[num].data['ccd_n']
31
32 # avoid images which do not have to full beam on the detector as well as other which show signal due to cosmic radiation
33 avoid_images = [37,57,62,63,65,87,99,106,110,111,126,130,175,181,183,185,204,206,207,208,211,212,233,237,261,275,290]
34
35 images = []
36 ang1 = [] # outer detector angle
37 ang2 = [] # inner detector angle
38 sang = [] # sample rocking angle
39 hkls = [] # Miller indices of the reference reflections
40
41 def hotpixelkill(ccd):
42 """
43 function to remove hot pixels from CCD frames
44 ADD REMOVE VALUES IF NEEDED!
45 """
46 ccd[304,97] = 0
47 ccd[303,96] = 0
48 return ccd
49
50 # read images and angular positions from the data file
51 # this might differ for data taken at different beamlines since
52 # they way how motor positions are stored is not always consistent
53 for imgnr in numpy.sort(list(set(imagenrs)-set(avoid_images))[::4]):
54 filename = os.path.join(imgdir,filetmp%imgnr)
55 edf = xu.io.EDFFile(filename)
56 ccd = hotpixelkill(edf.data)
57 images.append(ccd)
58 ang1.append(float(edf.header['motor_pos'].split()[4]))
59 ang2.append(float(edf.header['motor_pos'].split()[3]))
60 sang.append(float(edf.header['motor_pos'].split()[1]))
61 if imgnr > 1293.:
62 hkls.append((0,0,0))
63 elif imgnr < 139:
64 hkls.append((0,0,numpy.sqrt(27))) #(3,3,3))
65 else:
66 hkls.append((0,0,numpy.sqrt(75))) #(5,5,5))
67
68 # call the fit for the detector parameters
69 # detector arm rotations and primary beam direction need to be given
70 # in total 8 detector parameters + 2 additional parameters for the reference crystal orientation and the wavelength are fitted,
71 # however the 4 misalignment parameters of the detector and the 3 other parameters can be fixed
72 # the fixable parameters are detector tilt azimuth, the detector tilt angle, the detector rotation around the primary beam, the outer angle offset
73 # sample tilt, sample tilt azimuth and the x-ray wavelength
74 param,eps = xu.analysis.area_detector_calib_hkl(sang,ang1,ang2,images,hkls,hxrd,Si,['z+','y-'],'x+',start=(45,1.69,-0.55,-1.0,1.3,60.,wl),fix=(False,False,False,False,False,False,False),plot=True)
75
76 # Following is an example of the output of the summary of the area_detector_calib_hkl function
77 #total time needed for fit: 624.51sec
78 #fitted parameters: epsilon: 9.9159e-08 (2,['Parameter convergence'])
79 #param: (cch1,cch2,pwidth1,pwidth2,tiltazimuth,tilt,detrot,outerangle_offset,sampletilt,stazimuth,wavelength)
80 #param: 367.12 349.27 6.8187e-05 6.8405e-05 131.4 2.87 -0.390 -0.061 1.201 318.44 0.8254
81 #please check the resulting data (consider setting plot=True)
82 #detector rotation axis / primary beam direction (given by user): ['z+', 'y-'] / x+
83 #detector pixel directions / distance: z- y+ / 1
84 # detector initialization with: init_area('z-','y+',cch1=367.12,cch2=349.27,Nch1=516,Nch2=516, pwidth1=6.8187e-05,pwidth2=6.8405e-05,distance=1.,detrot=-0.390,tiltazimuth=131.4,tilt=2.867)
85 #AND ALWAYS USE an (additional) OFFSET of -0.0611deg in the OUTER DETECTOR ANGLE!
86
87 #param,eps = xu.analysis.area_detector_calib(ang1,ang2,images,['z+','y-'],'x+',start=(45,0,0,0),fix=(False,False,False,False),plot=True,wl=wl)
88
0 """
1 example script to show how the detector parameters
2 such as pixel width, center channel and detector tilt
3 can be determined for a linear detector.
4 """
5
6 import xrayutilities as xu
7 import os
8
9 # load any data file with with the detector spectra of a reference scan
10 # in the primary beam, here I use spectra measured with a Seifert XRD
11 # diffractometer
12 dfile = os.path.join("data","primarybeam_alignment20130403_2_dis350.nja")
13 s = xu.io.SeifertScan(dfile)
14
15 ang = s.axispos["T"] # detector angles during the scan
16 spectra = s.data[:,:,1] # detector spectra aquired
17
18 # determine detector parameters
19 # this function accepts some optional arguments to describe the goniometer
20 # see the API documentation
21 pwidth,cch,tilt = xu.analysis.linear_detector_calib(ang,spectra,usetilt=True)
22
0 """
1 Example script to show how to use xrayutilities to read and plot
2 reciprocal space map scans from a spec file created at the ESRF/ID10B
3
4 for details about the measurement see:
5 D Kriegner et al. Nanotechnology 22 425704 (2011)
6 http://dx.doi.org/10.1088/0957-4484/22/42/425704
7 """
8
9 import numpy
10 import matplotlib.pyplot as plt
11 import xrayutilities as xu
12 import os
13
14 # global setting for the experiment
15 sample = "test" # sample name used also as file name for the data file
16 energy = 8042.5 # x-ray energy in eV
17 center_ch = 715.9 # center channel of the linear detector
18 chpdeg = 345.28 # channels per degree of the linear detector
19 roi=[100,1340] # region of interest of the detector
20 nchannel = 1500 # number of channels of the detector
21
22 # intensity normalizer function responsible for count time and absorber correction
23 absfun = lambda d: d["detcorr"]/d["psd2"].astype(numpy.float)
24 normalizer_detcorr = xu.IntensityNormalizer("MCA",mon="Monitor",time="Seconds",absfun=absfun)
25
26 # substrate material used for Bragg peak calculation to correct for experimental offsets
27 InP = xu.materials.InP
28
29 # initialize experimental class to specify the reference directions of your crystal
30 # 11-2: inplane reference
31 # 111: surface normal
32 hxrd = xu.HXRD(InP.Q(1,1,-2),InP.Q(1,1,1),en=energy)
33
34 # configure linear detector
35 # detector direction + parameters need to be given
36 # mounted along z direction, which corresponds to twotheta
37 hxrd.Ang2Q.init_linear('z-',center_ch,nchannel,chpdeg=chpdeg,roi=roi)
38
39 # read spec file and save to HDF5-file
40 # since reading is much faster from HDF5 once the data are transformed
41 h5file = os.path.join("data",sample+".h5")
42 try: s # try if spec file object already exist ("run -i" in ipython)
43 except NameError: s = xu.io.SPECFile(sample+".spec",path="data")
44 else: s.Update()
45 s.Save2HDF5(h5file)
46
47 #################################
48 # InP (333) reciprocal space map
49 omalign = 43.0529 # experimental aligned values
50 ttalign = 86.0733
51 [omnominal,dummy,dummy,ttnominal] = hxrd.Q2Ang(InP.Q(3,3,3)) # nominal values of the substrate peak
52
53 # read the data from the HDF5 file
54 #(scan number:36, names of motors in spec file: omega= sample rocking, gamma = twotheta)
55 [om,tt],MAP = xu.io.geth5_scan(h5file,36,'omega','gamma')
56 # normalize the intensity values (absorber and count time corrections)
57 psdraw = normalizer_detcorr(MAP)
58 # remove unusable detector channels/regions (no averaging of detector channels)
59 psd = xu.blockAveragePSD(psdraw, 1, roi=roi)
60
61 # convert angular coordinates to reciprocal space + correct for offsets
62 [qx,qy,qz] = hxrd.Ang2Q.linear(om,tt,delta=[omalign-omnominal, ttalign-ttnominal])
63
64 # calculate data on a regular grid of 200x201 points
65 gridder = xu.Gridder2D(200,201)
66 gridder(qy,qz,psd)
67 # maplog function limits the shown dynamic range to 8 orders of magnitude from the maxium
68 INT = xu.maplog(gridder.gdata.transpose(),8.,0)
69
70 # plot the intensity as contour plot using matplotlib
71 plt.figure()
72 cf = plt.contourf(gridder.xaxis, gridder.yaxis,INT,100,extend='min')
73 plt.xlabel(r'$Q_{[11\bar2]}$ ($\AA^{-1}$)')
74 plt.ylabel(r'$Q_{[\bar1\bar1\bar1]}$ ($\AA^{-1}$)')
75 cb = plt.colorbar(cf)
76 cb.set_label(r"$\log($Int$)$ (cps)")
0 .. highlight:: python
1 :linenothreshold: 5
2
3 .. _examplespage:
4
5 Examples
6 ========
7
8 In the following a few code-snippets are shown which should help you getting started with *xrayutilities*. Not all of the codes shown in the following will be run-able as stand-alone script. For fully running scripts look in the ``examples`` directory in the download found `here <https://sourceforge.net/projects/xrayutilities>`_.
9
10
11 Reading data from data files
12 ----------------------------
13
14 The ``io`` submodule provides classes for reading x-ray diffraction data in
15 various formats. In the following few examples are given.
16
17 Reading SPEC files
18 ^^^^^^^^^^^^^^^^^^
19
20 Working with spec files in *xrayutilities* can be done in two distinct ways.
21 1. parsing the spec file for scan headers; and parsing the data only when needed
22 2. parsing the spec file for scan headers; parsing all data and dump them to an HDF5 file; reading the data from the HDF5 file.
23
24 Both methods have their pros and cons. For example when you parse the spec-files over a network connection you need to re-read the data again over the network if using method 1) whereas you can dump them to a local file with method 2). But you will parse data of the complete file while dumping it to the HDF5 file.
25
26 Both methods work incremental, so they do not start at the beginning of the file when you reread it, but start from the last position they were reading and work with files including data from linear detectors.
27
28 An working example for both methods is given in the following.::
29
30 import tables
31 import xrayutilities as xu
32 import os
33
34 # open spec file or use open SPECfile instance
35 try: s
36 except NameError:
37 s = xu.io.SPECFile("sample_name.spec",path="./specdir")
38
39 # method (1)
40 scan10 = s[9] # Returns a SPECScan class, note 9 because the list starts at 0
41 scan10.ReadData()
42 scan10data = scan10.data
43
44 # method (2)
45 h5file = os.path.join("h5dir","h5file.h5")
46 s.Save2HDF5(h5file) # save content of SPEC file to HDF5 file
47 # read data from HDF5 file
48 [angle1,angle2],scan10data = xu.io.geth5_scan(h5file,[10], "motorname1", "motorname2")
49
50
51 .. seealso::
52 the fully working example :ref:`helloworld`
53
54 In the following it is shown how to re-parsing the SPEC file for new scans and reread the scans (1) or update the HDF5 file(2)
55
56 ::
57
58 s.Update() # reparse for new scans in open SPECFile instance
59
60 # reread data method (1)
61 scan10 = s[9] # Returns a SPECScan class
62 scan10.ReadData()
63 scan10data = scan10.data
64
65 # reread data method (2)
66 s.Save2HDF5(h5) # save content of SPEC file to HDF5 file
67 # read data from HDF5 file
68 [angle1,angle2],scan10data = xu.io.geth5_scan(h5file,[10], "motorname1", "motorname2")
69
70
71 Reading EDF files
72 ^^^^^^^^^^^^^^^^^
73
74 EDF files are mostly used to store CCD frames at ESRF recorded from various different detectors. This format is therefore used in combination with SPEC files. In an example the EDFFile class is used to parse the data from EDF files and store them to an HDF5 file. HDF5 if perfectly suited because it can handle large amount of data and compression.::
75
76 import tables
77 import xrayutilities as xu
78 import numpy
79
80 specfile = "specfile.spec"
81 h5file = "h5file.h5"
82 h5 = tables.openFile(h5file,mode='a')
83
84 s = xu.io.SPECFile(specfile,path=specdir)
85 s.Save2HDF5(h5) # save to hdf5 file
86
87 # read ccd frames from EDF files
88 for i in range(1,1000,1):
89 efile = "edfdir/sample_%04d.edf" %i
90 e = xu.io.edf.EDFFile(efile,path=specdir)
91 e.ReadData()
92 g5 = h5.createGroup(h5.root,"frelon_%04d" %i)
93 e.Save2HDF5(h5,group=g5)
94
95 h5.close()
96
97 .. seealso::
98 the fully working example provided in the ``examples`` directory perfectly suited for reading data from beamline ID01
99
100
101 Other formats
102 ^^^^^^^^^^^^^
103
104 Other formats which can be read include
105
106 * files recorded from `Panalytical <http://www.panalytical.com>`_ diffractometers in the ``.xrdml`` format.
107 * files produces by the experimental control software at Hasylab/Desy (spectra).
108 * ccd images in the tiff file format produced by RoperScientific CCD cameras and Perkin Elmer detectors.
109 * files from recorded by Seifert diffractometer control software (``.nja``)
110 * basic support is also provided for reading of ``cif`` files from structure database to extract unit cell parameters
111
112 See the ``examples`` directory for more information and working example scripts.
113
114 Angle calculation using ``experiment`` and ``material`` classes
115 ---------------------------------------------------------------
116
117 Methods for high angle x-ray diffraction experiments. Mostly for experiments performed in coplanar scattering geometry. An example will be given for the calculation of the position of Bragg reflections.
118
119 ::
120
121 import xrayutilities as xu
122 Si = xu.materials.Si # load material from materials submodule
123
124 # initialize experimental class with directions from experiment
125 hxrd = xu.HXRD(Si.Q(1,1,-2),Si.Q(1,1,1))
126 # calculate angles of Bragg reflections and print them to the screen
127 om,chi,phi,tt = hxrd.Q2Ang(Si.Q(1,1,1))
128 print("Si (111)")
129 print("om,tt: %8.3f %8.3f" %(om,tt))
130 om,chi,phi,tt = hxrd.Q2Ang(Si.Q(2,2,4))
131 print("Si (224)")
132 print("om,tt: %8.3f %8.3f" %(om,tt))
133
134 Note that on line 5 the ``HXRD`` class is initialized without specifying the energy used in the experiment. It will use the default energy stored in the configuration file, which defaults to CuK :math:`\alpha_1`.
135
136 One could also call::
137
138 hxrd = xu.HXRD(Si.Q(1,1,-2),Si.Q(1,1,1),en=10000) # energy in eV
139
140 to specify the energy explicitly.
141 The ``HXRD`` class by default describes a four-circle goniometer as described in more detail `here <http://www.certif.com/spec_manual/fourc_4_1.html>`_.
142
143 Similar functions exist for other experimental geometries. For grazing incidence diffraction one might use::
144
145 gid = xu.GID(Si.Q(1,-1,0),Si.Q(0,0,1))
146 # calculate angles and print them to the screen
147 (alphai,azimuth,tt,beta) = gid.Q2Ang(Si.Q(2,-2,0))
148 print("azimuth,tt: %8.3f %8.3f" %(azimuth,tt))
149
150 There are two implementations for GID experiments. Both describe 2S+2D diffractometers.
151 They differ by the order of the detector circles. One describes a setup as available at ID10B/ESRF.
152
153 There exists also a powder diffraction class, which is able to convert powder scans from angular to reciprocal space and furthermore powder scans of materials can be simulated in a very primitive way, which should only be used to get an idea of the peak positions expected from a certain material.
154
155 ::
156
157 import xrayutilities as xu
158 import matplotlib.pyplot as plt
159
160 energy = (2*8048 + 8028)/3. # copper k alpha 1,2
161
162 # creating Indium powder
163 In_powder = xu.Powder(xu.materials.In,en=energy)
164 # calculating the reflection strength for the powder
165 In_powder.PowderIntensity()
166
167 # convoluting the peaks with a gaussian in q-space
168 peak_width = 0.01 # in q-space
169 resolution = 0.0005 # resolution in q-space
170 In_th,In_int = In_powder.Convolute(resolution,peak_width)
171
172 plt.figure()
173 plt.xlabel(r"2Theta (deg)"); plt.ylabel(r"Intensity")
174 # plot the convoluted signal
175 plt.plot(In_th*2,In_int/In_int.max(),'k-',label="Indium powder convolution")
176 # plot each peak in a bar plot
177 plt.bar(In_powder.ang*2, In_powder.data/In_powder.data.max(), width=0.3, bottom=0,
178 linewidth=0, color='r',align='center', orientation='vertical',label="Indium bar plot")
179
180 plt.legend(); plt.set_xlim(15,100); plt.grid()
181
182 One can also print the peak positions and other informations of a powder by
183
184 >>> print In_powder
185 Powder diffraction object
186 -------------------------
187 Material: In
188 Lattice:
189 a1 = (3.252300 0.000000 0.000000), 3.252300
190 a2 = (0.000000 3.252300 0.000000), 3.252300
191 a3 = (0.000000 0.000000 4.946100), 4.946100
192 alpha = 90.000000, beta = 90.000000, gamma = 90.000000
193 Lattice base:
194 Base point 0: In (49) (0.000000 0.000000 0.000000) occ=1.00 b=0.00
195 Base point 1: In (49) (0.500000 0.500000 0.500000) occ=1.00 b=0.00
196 Reflections:
197 --------------
198 h k l | tth | |Q| | Int | Int (%)
199 ---------------------------------------------------------------
200 [-1, 0, -1] 32.9611 2.312 217.75 100.00
201 [0, 0, -2] 36.3267 2.541 41.80 19.20
202 [-1, -1, 0] 39.1721 2.732 67.72 31.10
203 [-1, -1, -2] 54.4859 3.731 50.75 23.31
204 ....
205
206
207 Using the ``material`` class
208 ----------------------------
209
210 *xrayutilities* provides a set of python classes to describe crystal lattices and
211 materials.
212
213 Examples show how to define a new material by defining its lattice and deriving a new material, furthermore materials can be used to calculate the structure factor of a Bragg reflection for an specific energy or the energy dependency of its structure factor for anomalous scattering. Data for this are taken from a database which is included in the download.
214
215 First defining a new material from scratch is shown. This consists of an lattice with base and the type of atoms with elastic constants of the material::
216
217 import xrayutilities as xu
218
219 # defining a ZincBlendeLattice with two types of atoms and lattice constant a
220 def ZincBlendeLattice(aa,ab,a):
221 #create lattice base
222 lb = xu.materials.LatticeBase()
223 lb.append(aa,[0,0,0])
224 lb.append(aa,[0.5,0.5,0])
225 lb.append(aa,[0.5,0,0.5])
226 lb.append(aa,[0,0.5,0.5])
227 lb.append(ab,[0.25,0.25,0.25])
228 lb.append(ab,[0.75,0.75,0.25])
229 lb.append(ab,[0.75,0.25,0.75])
230 lb.append(ab,[0.25,0.75,0.75])
231
232 #create lattice vectors
233 a1 = [a,0,0]
234 a2 = [0,a,0]
235 a3 = [0,0,a]
236
237 l = xu.materials.Lattice(a1,a2,a3,base=lb)
238 return l
239
240 # defining InP, no elastic properties are given,
241 # helper functions exist to create the (6,6) elastic tensor for cubic materials
242 atom_In = xu.materials.elements.In
243 atom_P = xu.materials.elements.P
244 elastictensor = xu.materials.CubicElasticTensor(10.11e+10,5.61e+10,4.56e+10)
245 InP = xu.materials.Material("InP",ZincBlendeLattice(atom_In, atom_P ,5.8687), elastictensor)
246
247 InP is of course already included in the xu.materials module and can be loaded by::
248
249 InP = xu.materials.InP
250
251 like many other materials.
252
253
254 Using the material properties the calculation of the reflection strength of a Bragg reflection can be done as follows::
255
256 import xrayutilities as xu
257 import numpy
258
259 # defining material and experimental setup
260 InAs = xu.materials.InAs
261 energy= 8048 # eV
262
263 # calculate the structure factor for InAs (111) (222) (333)
264 hkllist = [[1,1,1],[2,2,2],[3,3,3]]
265 for hkl in hkllist:
266 qvec = InAs.Q(hkl)
267 F = InAs.StructureFactor(qvec,energy)
268 print(" |F| = %8.3f" %numpy.abs(F))
269
270
271 Similar also the energy dependence of the structure factor can be determined::
272
273 import matplotlib.pyplot as plt
274
275 energy= numpy.linspace(500,20000,5000) # 500 - 20000 eV
276 F = InAs.StructureFactorForEnergy(InAs.Q(1,1,1),energy)
277
278 plt.figure(); plt.clf()
279 plt.plot(energy,F.real,'k-',label='Re(F)')
280 plt.plot(energy,F.imag,'r-',label='Imag(F)')
281 plt.xlabel("Energy (eV)"); plt.ylabel("F"); plt.legend()
282
283
284
285 It is also possible to calculate the components of the structure factor of atoms, which may be needed for input into XRD simulations.::
286
287 # f = f0(|Q|) + f1(en) + j * f2(en)
288 import xrayutilities as xu
289 import numpy
290
291 Fe = xu.materials.elements.Fe # iron atom
292 Q = numpy.array([0,0,1.9],dtype=numpy.double)
293 en = 10000 # energy in eV
294
295 print "Iron (Fe): E: %9.1f eV" % en
296 print "f0: %8.4g" % Fe.f0(numpy.linalg.norm(Q))
297 print "f1: %8.4g" % Fe.f1(en)
298 print "f2: %8.4g" % Fe.f2(en)
299
300
301 User-specific config file
302 -------------------------
303
304 Several options of *xrayutilities* can be changed by options in a config file. This includes the default x-ray energy as well as parameters to set the number of threads used by the parallel code and the verbosity of the output.
305
306 The default options are stored inside the installad Python module and should not be changed. Instead it is suggested to use a user-specific config file
307 '~/.xrayutilities.conf' or a 'xrayutilities.conf' file in the working directory.
308
309 An example of such a user config file is shown below:
310
311 .. code-block:: python
312
313 # begin of xrayutilities configuration
314 [xrayutilities]
315
316 # verbosity level of information and debugging outputs
317 # 0: no output
318 # 1: very import notes for users
319 # 2: less import notes for users (e.g. intermediate results)
320 # 3: debuging output (e.g. print everything, which could be interesing)
321 # levels can be changed in the config file as well
322 verbosity = 1
323
324 # default wavelength in Angstrom,
325 wavelength = MoKa1 # Molybdenum K alpha1 radiation (17479.374eV)
326
327 # default energy in eV
328 # if energy is given wavelength settings will be ignored
329 #energy = 10000 #eV
330
331 # number of threads to use in parallel sections of the code
332 nthreads = 1
333 # 0: the maximum number of available threads will be used (as returned by omp_get_max_threads())
334 # n: n-threads will be used
335
336
337
338 Determining detector parameters
339 -------------------------------
340
341 In the following three examples of how to determine the detector parameters for linear and area detectors is given.
342 The procedure we use is in more detail described in this `article <http://arxiv.org/abs/1304.1732>`_.
343
344 Linear detectors
345 ^^^^^^^^^^^^^^^^
346
347 To determine the detector parameters of a linear detector one needs to perform a scan with the detector angle through the primary beam and aquire a detector spectrum at any point.
348
349 Using the following script determines the parameters necessary for the detector initialization, which are:
350
351 * pixelwidth of one channel
352 * the center channel
353 * and the detector tilt (optional)
354
355 .. literalinclude:: example_xu_linear_detector_parameters.py
356 :linenos:
357 :language: python
358
359
360 Area detector (Variant 1)
361 ^^^^^^^^^^^^^^^^^^^^^^^^^
362
363 To determine the detector parameters of a area detector one needs to perform scans with the detector angles through the primary beam and aquire a detector images at any position.
364 For the area detector at least two scans (one with the outer detector and and one with the inner detector angle) are required.
365
366 Using the following script determines the parameters necessary for the detector initialization from such scans in the primary beam only. Further down we discuss an other variant which is also able to use additionally detector images recorded at the Bragg reflection of a known reference crystal.
367
368 The determined detector parameters are:
369
370 * pixelwidth of the channels in both directions (2 parameters)
371 * center channels: position of the primary beam at the true zero position of the goniometer (considering the outer angle offset) (2 parameters)
372 * detector tilt azimuth in degree from 0 to 360
373 * detector tilt angle in degree (>0deg)
374 * detector rotation around the primary beam in degree
375 * outer angle offset, which describes a offset of the outer detector angle from its true zero position
376
377 The misalignment parameters can be fixed during the fitting.
378
379 .. literalinclude:: example_xu_ccd_parameter.py
380 :linenos:
381 :language: python
382
383 Area detector (Variant 2)
384 ^^^^^^^^^^^^^^^^^^^^^^^^^
385
386 In addition to scans in the primary beam this variant enables also the use of detector images recorded in scans at Bragg reflections of a known reference materials. However this also required that the sample orientation and x-ray wavelength need to be fit.
387 To keep the additional parameters as small as possible we only implemented this for symmetric coplanar diffractions.
388
389 The advantage of this method is that it is more sensitive to the outer angle offset also at large detector distances.
390 The additional parameters are:
391
392 * sample tilt angle in degree
393 * sample tilt azimuth in degree
394 * and the x-ray wavelength in Angstrom
395
396 .. literalinclude:: example_xu_ccd_parameter_hkl.py
397 :linenos:
398 :language: python
399
0 .. xrayutilities documentation master file, created by
1 sphinx-quickstart on Sat Mar 2 11:39:01 2013.
2 You can adapt this file completely to your liking, but it should at least
3 contain the root `toctree` directive.
4
5 Welcome to xrayutilities's documentation!
6 =========================================
7
8 If you look for downloading the package go to `Sourceforge <https://sourceforge.net/projects/xrayutilities>`_ (source distribution) or the `Python package index <https://pypi.python.org/pypi/xrayutilities>`_ (MS Windows binary).
9 Installation instructions you find further down `Installation`_.
10
11 Read more about *xrayutilities* below or in `Journal of Applied Crystallography 2013, Volume 46, 1162-1170 <http://dx.doi.org/10.1107/S0021889813017214>`_
12
13
14 Introduction
15 ============
16
17 *xrayutilities* is a collection of scripts used to analyze x-ray diffraction data. It consists of a python package and several routines coded in C.
18 It especially useful for the reciprocal space conversion of diffraction data taken with linear and area detectors.
19
20 In the following two concepts of usage for the *xrayutilities* package will be described.
21 First one should get a brief idea of how to analyze x-ray diffraction data with *xrayutilities*.
22 After that the concept of how angular coordinates of Bragg reflections are calculated is presented.
23
24 Concept of usage
25 ----------------
26
27 .. image:: pics/xu_usage.png
28 :width: 400px
29 :align: right
30 :alt: Flow diagram showing how to analyze x-ray diffraction data using xrayutilities
31
32 *xrayutilities* provides a set of functions to read experimental data from various data file formats.
33 All of them are gathered in the :mod:`io`-subpackage.
34 After reading data with a function from the io-submodule the data might be corrected for monitor counts and/or absorption factor of a beam attenuator.
35 A special set of functions is provided to perform this for point, linear and area detectors.
36
37 Since the amount of data taken with modern detectors often is too large to be able to work with them properly, a functions for reducing the data from linear and area detectors are provided.
38 They use block-averaging to reduce the amount of data.
39 Use those carefully not to loose the features you are interested in in your measurements.
40
41 After the pre-treatment of the data, the core part of the package is the transformation of the angular data to reciprocal space.
42 This is done as described in more detail below using the :mod:`experiment`-module`.
43 The classes provided within the experiment module provide routines to help performing X-ray diffraction experiments.
44 This includes methods to calculate the diffraction angles (described below) needed to align crystalline samples and to convert data between angular and reciprocal space.
45 The conversion from angular to reciprocal space is implemented very general for various goniometer geometries.
46 It is especially useful in combination with linear and area detectors as described in this `article <http://dx.doi.org/10.1107/S0021889813017214>`_.
47 In standard cases, Users will only need the initialized routines, which predefine a certain goniometer geometry like the popular four-cirlce and six-circle geometries.
48
49 After the conversion to reciprocal space, it is convenient to transform the data to a regular grid for visualization.
50 For this purpose the :mod:`gridder`-module has been included into *xrayutilities*.
51 For the visualization of the data in reciprocal space the usage of `matplotlib <http://matplotlib.org>`_ is recommended.
52
53 A practical example showing the usage is given below.
54
55 Angle calculation using the material classes
56 --------------------------------------------
57
58 .. image:: pics/xu_usage_planning.png
59 :width: 400px
60 :align: right
61 :alt: Flow diagram showing how to calculate angular positions of Bragg reflection using xrayutilities
62
63 Calculation of angles needed to align Bragg reflections in various diffraction geometries is done using the Materials defined in the :mod:`materials`-package.
64 This package provides a set of classes to describe crystal lattices and materials.
65 Once such a material is properly defined one can calculate its properties, which includes the reciprocal lattice points, optical properties like
66 the refractive index, the structure factor (including the atomic scattering factor) and the complex polarizability.
67 These atomic properties are extracted from a database included in *xrayutilities*.
68
69 Using such a material and an experimental class from the :mod:`experiment`-module describing the experimental setup the needed diffraction angles can be calculated for certain coplanar diffraction (high, low incidence), grazing incidence diffraction and also special non-coplanar diffraction geometries.
70
71 .. _helloworld:
72
73 hello world
74 -----------
75
76 A first example with step by step explanation is shown in the following.
77 It showcases the use of *xrayutilities* to calculate angles and read a scan recorded with a linear detector from `spec <http://www.certif.com>`_-file and plots
78 the result as reciprocal space map using matplotlib.
79
80 .. literalinclude:: example_xu_read_spec_easy.py
81 :linenos:
82 :language: python
83
84
85 More such examples can be found on the :ref:`examplespage` page.
86
87 xrayutilities Python package
88 ============================
89
90 .. automodule:: xrayutilities
91 :members:
92 :undoc-members:
93 :show-inheritance:
94
95 for more details see the full API documentation of :mod:`xrayutilities` found here: :ref:`expapi`.
96
97 Installation
98 ============
99
100 Express instructions
101 --------------------
102
103 * install the dependencies (Windows: `pythonxy <http://www.pythonxy.com>`_; Linux/Unix: see below for dependencies).
104 * download *xrayutilities* from `here <https://sourceforge.net/projects/xrayutilities>`_ or use git to check out the `latest <https://sourceforge.net/p/xrayutilities/code/>`_ version.
105 * open a command line and navigate to the downloaded sources and execute:
106
107 .. code-block:: bash
108
109 > python setup.py install
110
111 which will install *xrayutilities* to the default directory. It should be possible to use it (*import xrayutilities*) from now on in python scripts.
112
113 .. note:: The python package of *xrayutilities* was formerly called ''xrutils''
114
115 Detailed instructions
116 ---------------------
117
118 Installing *xrayutilities* is done using Python's distutils
119
120 The package can be installed on Linux, Mac OS X and Microsoft Windows, however it is mostly tested on Linux/Unix platforms.
121 Please inform one of the authors in case the installation fails!
122
123 Required third party software
124 -----------------------------
125
126 To keep the coding effort as small as possible *xrayutilities* depends on a
127 large number of third party libraries and Python modules.
128
129 The needed dependencies are:
130 * **GCC** Gnu Compiler Collection or any compatible C compiler. On windows you most probably should use MinGW or CygWin. Others might work but are untested.
131 * **HDF5** a versatile binary data format (library is implemented in C).
132 Although the library is not called directly, it is needed by the pytables Python
133 module (see below).
134 * **Python** the scripting language in which most of *xrayutilities* code is written in.
135 * **git** a version control system used to keep track on the *xrayutilities* development. (only needed for development)
136
137 Additionally, the following Python modules are needed in order to make *xrayutilities* work as intended:
138 * **Numpy** a Python module providing numerical array objects
139 * **Scipy** a Python module providing standard numerical routines, which is heavily using numpy arrays
140 * **Python-Tables** a powerful Python interface to HDF5.
141 * **Matplotlib** a Python module for high quality 1D and 2D plotting (optionally)
142 * **IPython** although not a dependency of *xrayutilities* the IPython shell is perfectly suited for the interactive use of the *xrayutilities* python package.
143
144 After installing all required packages you can continue with installing and
145 building the C library.
146
147 Building and installing the library and python package
148 ------------------------------------------------------
149
150 *xrayutilities* uses the distutils packaging system to build and install all of its components. You can perform the installation by executing
151
152 .. code-block:: bash
153
154 >python setup.py install
155
156 or
157
158 .. code-block:: bash
159
160 >python setup.py install --prefix=INSTALLPATH
161
162 in the root directory of the source distribution.
163
164 The *--prefix* option sets the root directory for the installation. If it is omitted
165 the libary is installed under /usr/lib/ on Unix systems or in the Python installation directory on Windows.
166
167 Setup of the Python package
168 ---------------------------
169
170 You need to make your Python installation aware of where to look for the module.
171 This is usually only needed when installing in non-standard *<install path>* locations.
172 For this case append the installation directory to your *PYTHONPATH* environment variable by
173
174 .. code-block:: bash
175
176 >export PYTHONPATH=$PYTHONPATH:<local install path>/lib64/python2.7/site-packages
177
178 on a Unix/Linux terminal. Or, to make this configuration persistent append this line to
179 your local *.bashrc* file in your home directory.
180 On MS Windows you would like to create a environment variable in the
181 system preferences under system in the advanced tab (Using pythonxy this is done automatically).
182 Be sure to use the correct directory which might be similar to
183
184 .. code-block:: bash
185
186 <local install path>/Lib/site-packages
187
188 on Windows systems.
189
190 Notes for installing on Windows
191 -------------------------------
192
193 Since there is no packages manager on Windows the packages need to be installed manual
194 (including all the dependecies) or a pre-packed solution needs to be used. We strongly suggest to
195 use the `pyhton(x,y) <https://code.google.com/p/pythonxy/>`_ python distribution,
196 which includes already all of the needed dependencies for installing *xrayutilities*.
197
198 The setup of the environment variables is also done by the python(x,y) installation.
199 One can proceed with the installation of *xrayutilities* directly!
200 The easiest way to do this on windows is to use the binaries distributed on the `Python package index <https://pypi.python.org/pypi/xrayutilities>`_, otherwise one can follow the general installation instructions.
201 Depending on your compiler on Microsoft Windows it might be necessary to perform the building of the Python extension separately and specify the compiler manually.
202 This is done by
203
204 .. code-block:: bash
205
206 python setup.py build -c <compiler_name>
207
208 Using Python(x,y) you want to specify "mingw32" as compiler name.
209
210 In case you want to do it the hard way install all of the following (versions in brackets indicate the tested set of versions by the author (2.3.2012)):
211 * MinGW (0.4alpha)
212 * Python (2.7.2)
213 * numpy (1.6.1)
214 * scipy (0.10.1)
215 * numexpr (1.4.2) needed for pytables
216 * pytables (2.3.1)
217 * matplotlib (1.1.0)
218 * ipython (0.12)
219
220 It is suggested to add the MinGW binary directory, as well as the Python and Python-scripts directory
221 to the Path environment variable as described above! Installation is done as described above.
222
223 .. _expapi:
224
225 Examples and API-documentation
226 ==============================
227
228 .. toctree::
229 :maxdepth: 2
230
231 examples
232 xrayutilities
233 xrayutilities.analysis
234 xrayutilities.io
235 xrayutilities.materials
236 xrayutilities.math
237 modules
238
239
240 Indices and tables
241 ==================
242
243 * :ref:`genindex`
244 * :ref:`modindex`
245 * :ref:`search`
246
0 xrayutilities
1 =============
2
3 .. toctree::
4 :maxdepth: 4
5
6 xrayutilities
0 P6
1 # CREATOR: GIMP PNM Filter Version 1.1
2 32 32
3 255
4 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøøøêêêòòòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿéééÙÙÙ×××ÔÔÔÙÙÙâââêêêñññøøøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿéééÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙØØØÔÔÔÒÒÒÙÙÙççç÷÷÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿéééØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØ××ÖÕÕÕÕÕÕÚÚÚáááçççðððøøøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿééé××××××××××××××××××××××××××××××××××××××××××××××××ÔÔÔäääûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿééè×ÖÖÖÖÕÖÖÕÖÖÕÖÖÕÖÖÕÖÖÕÖÖÕÖÖÕÖÖÕÖÖÕÖÖÕÖÖÕÖÖÕÖÖÕÖÖÕ××ÖéééûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèèèÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕØØØéééüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿêêêÔÓÓÔÓÓÔÓÓÔÓÓÔÓÓÔÓÓÔÓÓÔÓÓÔÓÓÔÓÓÔÓÓÔÓÓÔÓÓÔÓÓÔÓÓÔÓÓØØØéééýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿêééÓÒÒÓÒÒÓÒÒÓÒÒÓÒÒÓÒÒÓÒÒÓÒÒÓÒÒÓÒÒÓÒÒÓÒÒÓÒÒÓÒÒÓÒÒÓÒÒ××ÖéééýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿéééÑÐÐÑÐÐÑÐÐÑÐÐÑÐÐÑÐÐÑÐÐÑÐÐÑÐÐÑÐÐÑÐÐÑÐÐÑÐÐÑÐÐÑÐÐÑÐÐÕÕÕéééýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿéèèÐÏÏÐÏÏÐÏÏÐÏÏÐÏÏÐÏÏÐÏÏÐÏÏÐÏÏÐÏÏÐÏÏÐÏÏÐÏÏÐÏÏÐÏÏÐÏÏÕÔÓéééýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèèèÎÍÌÎÍÌÎÍÌÎÍÌÎÍÌÎÍÌÎÍËÎÍËÍÍËÆÆÃÊÊÇÎÍÌÎÍÌÎÍÌÎÍÌÎÍÌÓÒÒéééþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþþþþÿÿÿÿÿÿèèèÌËÊÍÌËÅη¸Ê «Å‹ŸÀv”»c‰µP³?z°4r§.ºÁ¯ÌËÊÌËÊÌËÊÌËÊÒÑÐéééþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýüüüÿÿÿÿÿÿçççËÊÊÂȸw­2h¥i¦i§j¨k¨k¨k¨f«² ËÊÉËÊÉËÊÉËÊÉÑÐÏéééþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüýýýÿÿÿÿÿÿçææÊÈÈÂÅ»ek¨k¨k¨k¨k¨k¨j§c‹-º¸¸ÉÈÇÉÈÇÉÈÇÉÈÇÐÏÎéééÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿæææÈÇÅÈÇƓ­qe k¨k¨k¨k¨k¨a›–Ÿ„¼¹¸ÈÇÅÈÇÆÈÇÅÈÇÅÏÎÎéééÿÿÿÿÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæååÆÅÃÆÅÃÇÇÄ{­<j§k¨k¨k¨j§h“0¹¶¶¼»¹ÅÄÃÆÅÃÆÅÃÆÅÃÎÍÌéééÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿååäÅÃÂÃÈ·–¾dk§i¥j§k¨k¨h¤Šžlº¸·¾¼ºÃÂÀÅÃÂÅÃÂÅÃÂÍÌËéééÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿååå»É§z®7j¦f k:b›k¨k¨^“­¯¤¼º¸¾½»ÂÀ¿ÃÁÀÃÁÀÃÁÀÎÍÌéééÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùû÷²ÎŽt­.i¦]“ŠžkÄÀØ­{f¡g£s‘IÁ½À½¼º¾½»À¾½Â¿¿Á¿¾Á¿¾ÍÌÌéééÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿîôæšÀij§h¤`‘ ¤«—Á¿¾À¾½À¾½y˜M_‡*¹¹³¿¾¼¾½»¾¼»¿½¼À¾½À¾½À¾½ÍÌËéééÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔäÀ³Bi¦d oB²´«À¾¾¾¼»¾¼»½¼ºÀ½¾Á½À¾»»¾¼»¾¼»¾¼»¾¼»¾¼»¾¼»¾¼»ÌËÊìììÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿÿÿÿùûö¹Ò˜p©(i¦b™…œeþ½»º½»º½»º½»º½»¹¼º¹½»¹½»¹½»º½»º½»º½»º½»º½»º½»ºÎÍÌìììÿÿÿÿÿÿÿÿÿ¤Åyÿÿÿÿÿþÿÿÿíó嗿dm¨"i¥XˆÙáÍãá⻺¸»º¸»º¸»º¸»º¸»º¸»º¸»º¸»º¸»º¸»º¸»º¸»º¸»º¸»º¸»º¸ÎÍÌìììÿÿÿÿÿÿÿÿÿl§!¹\íôåÙçdžµJh¦ež}¢MôöòÿÿÿûûûßÞÝÊÉǾ¼º»¸¶»¹·»¹·»¹·»¹·»¹·»¹·»¹·»¹·»¹·»¹·»¹·»¹·ÎÍÌíííÿÿÿÿÿÿÿÿÿh£k§x­5p©'j¦cš«¾þþþÿÿÿÿÿÿÿÿÿÿÿÿþþþýýýêêéÄÂÁ¹·µ¹·µ¹·µ¹·µ¹·µ¹·µ¹·µ¹·µ¹·µ¹·µ¹·µÎÍÌïïïÿÿÿÿÿÿÿÿÿ”¶hfŸk§i¥h—+ÆѶÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø÷÷àßßÍËʺ¸¶¸¶³¸¶³¸¶³¸¶³¸¶³¸¶³¸¶³ÎÍÌïïïÿÿÿÿÿÿÿÿÿÿÿÿ¯Å‘^‘eŒ0õöóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèèçÁ¿¾¸¶´·µ³·µ³·µ³·µ³ÏÍÌïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôõòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷÷÷åääÎÍ̸¶´¶´±ÎÎÌðððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãââÛÚÙúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
0 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
1 <!-- Created with Inkscape (http://www.inkscape.org/) -->
2
3 <svg
4 xmlns:dc="http://purl.org/dc/elements/1.1/"
5 xmlns:cc="http://creativecommons.org/ns#"
6 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
7 xmlns:svg="http://www.w3.org/2000/svg"
8 xmlns="http://www.w3.org/2000/svg"
9 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
10 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
11 width="619.27765"
12 height="571.82245"
13 id="svg2"
14 version="1.1"
15 inkscape:version="0.48.4 r9939"
16 sodipodi:docname="xu_usage.svg"
17 inkscape:export-filename="/home/dk/devel/xrutils/doc/source/pics/xu_usage.png"
18 inkscape:export-xdpi="99.987465"
19 inkscape:export-ydpi="99.987465">
20 <defs
21 id="defs4">
22 <marker
23 inkscape:stockid="Arrow1Lend"
24 orient="auto"
25 refY="0"
26 refX="0"
27 id="Arrow1Lend"
28 style="overflow:visible">
29 <path
30 id="path3978"
31 d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
32 style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
33 transform="matrix(-0.8,0,0,-0.8,-10,0)" />
34 </marker>
35 <marker
36 inkscape:stockid="Arrow2Mend"
37 orient="auto"
38 refY="0"
39 refX="0"
40 id="Arrow2Mend"
41 style="overflow:visible">
42 <path
43 id="path4002"
44 style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
45 d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
46 transform="scale(-0.6,-0.6)" />
47 </marker>
48 <inkscape:perspective
49 sodipodi:type="inkscape:persp3d"
50 inkscape:vp_x="0 : 526.18109 : 1"
51 inkscape:vp_y="0 : 1000 : 0"
52 inkscape:vp_z="744.09448 : 526.18109 : 1"
53 inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
54 id="perspective10" />
55 <inkscape:perspective
56 id="perspective2868"
57 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
58 inkscape:vp_z="1 : 0.5 : 1"
59 inkscape:vp_y="0 : 1000 : 0"
60 inkscape:vp_x="0 : 0.5 : 1"
61 sodipodi:type="inkscape:persp3d" />
62 <inkscape:perspective
63 id="perspective3666"
64 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
65 inkscape:vp_z="1 : 0.5 : 1"
66 inkscape:vp_y="0 : 1000 : 0"
67 inkscape:vp_x="0 : 0.5 : 1"
68 sodipodi:type="inkscape:persp3d" />
69 <inkscape:perspective
70 id="perspective3697"
71 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
72 inkscape:vp_z="1 : 0.5 : 1"
73 inkscape:vp_y="0 : 1000 : 0"
74 inkscape:vp_x="0 : 0.5 : 1"
75 sodipodi:type="inkscape:persp3d" />
76 <inkscape:perspective
77 id="perspective3697-7"
78 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
79 inkscape:vp_z="1 : 0.5 : 1"
80 inkscape:vp_y="0 : 1000 : 0"
81 inkscape:vp_x="0 : 0.5 : 1"
82 sodipodi:type="inkscape:persp3d" />
83 <inkscape:perspective
84 id="perspective3728"
85 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
86 inkscape:vp_z="1 : 0.5 : 1"
87 inkscape:vp_y="0 : 1000 : 0"
88 inkscape:vp_x="0 : 0.5 : 1"
89 sodipodi:type="inkscape:persp3d" />
90 <inkscape:perspective
91 id="perspective3753"
92 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
93 inkscape:vp_z="1 : 0.5 : 1"
94 inkscape:vp_y="0 : 1000 : 0"
95 inkscape:vp_x="0 : 0.5 : 1"
96 sodipodi:type="inkscape:persp3d" />
97 <inkscape:perspective
98 id="perspective3753-1"
99 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
100 inkscape:vp_z="1 : 0.5 : 1"
101 inkscape:vp_y="0 : 1000 : 0"
102 inkscape:vp_x="0 : 0.5 : 1"
103 sodipodi:type="inkscape:persp3d" />
104 <inkscape:perspective
105 id="perspective3791"
106 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
107 inkscape:vp_z="1 : 0.5 : 1"
108 inkscape:vp_y="0 : 1000 : 0"
109 inkscape:vp_x="0 : 0.5 : 1"
110 sodipodi:type="inkscape:persp3d" />
111 <inkscape:perspective
112 id="perspective3823"
113 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
114 inkscape:vp_z="1 : 0.5 : 1"
115 inkscape:vp_y="0 : 1000 : 0"
116 inkscape:vp_x="0 : 0.5 : 1"
117 sodipodi:type="inkscape:persp3d" />
118 <inkscape:perspective
119 id="perspective3823-6"
120 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
121 inkscape:vp_z="1 : 0.5 : 1"
122 inkscape:vp_y="0 : 1000 : 0"
123 inkscape:vp_x="0 : 0.5 : 1"
124 sodipodi:type="inkscape:persp3d" />
125 <inkscape:perspective
126 id="perspective3823-7"
127 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
128 inkscape:vp_z="1 : 0.5 : 1"
129 inkscape:vp_y="0 : 1000 : 0"
130 inkscape:vp_x="0 : 0.5 : 1"
131 sodipodi:type="inkscape:persp3d" />
132 <inkscape:perspective
133 id="perspective3914"
134 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
135 inkscape:vp_z="1 : 0.5 : 1"
136 inkscape:vp_y="0 : 1000 : 0"
137 inkscape:vp_x="0 : 0.5 : 1"
138 sodipodi:type="inkscape:persp3d" />
139 <inkscape:perspective
140 id="perspective3914-7"
141 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
142 inkscape:vp_z="1 : 0.5 : 1"
143 inkscape:vp_y="0 : 1000 : 0"
144 inkscape:vp_x="0 : 0.5 : 1"
145 sodipodi:type="inkscape:persp3d" />
146 <inkscape:perspective
147 id="perspective3914-4"
148 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
149 inkscape:vp_z="1 : 0.5 : 1"
150 inkscape:vp_y="0 : 1000 : 0"
151 inkscape:vp_x="0 : 0.5 : 1"
152 sodipodi:type="inkscape:persp3d" />
153 </defs>
154 <sodipodi:namedview
155 id="base"
156 pagecolor="#ffffff"
157 bordercolor="#666666"
158 borderopacity="1.0"
159 inkscape:pageopacity="0.0"
160 inkscape:pageshadow="2"
161 inkscape:zoom="0.7"
162 inkscape:cx="266.31689"
163 inkscape:cy="359.79824"
164 inkscape:document-units="px"
165 inkscape:current-layer="g3878"
166 showgrid="false"
167 inkscape:window-width="1366"
168 inkscape:window-height="709"
169 inkscape:window-x="1920"
170 inkscape:window-y="459"
171 inkscape:window-maximized="1" />
172 <metadata
173 id="metadata7">
174 <rdf:RDF>
175 <cc:Work
176 rdf:about="">
177 <dc:format>image/svg+xml</dc:format>
178 <dc:type
179 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
180 <dc:title></dc:title>
181 </cc:Work>
182 </rdf:RDF>
183 </metadata>
184 <g
185 inkscape:label="Layer 1"
186 inkscape:groupmode="layer"
187 id="layer1"
188 transform="translate(-42.518438,-47.270547)">
189 <g
190 id="g3873"
191 transform="translate(-9.009489,-18.182746)">
192 <rect
193 ry="19.192898"
194 rx="19.192898"
195 y="66.453293"
196 x="102.64687"
197 height="59.598999"
198 width="146.07556"
199 id="rect2858"
200 style="color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
201 <text
202 sodipodi:linespacing="125%"
203 id="text2882"
204 y="102.81879"
205 x="175.84323"
206 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
207 xml:space="preserve"><tspan
208 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
209 y="102.81879"
210 x="175.84323"
211 id="tspan2884"
212 sodipodi:role="line">xrayutilities.io</tspan></text>
213 </g>
214 <text
215 xml:space="preserve"
216 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
217 x="318.36639"
218 y="72.418152"
219 id="text2882-0"
220 sodipodi:linespacing="125%"><tspan
221 sodipodi:role="line"
222 x="318.36639"
223 y="72.418152"
224 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
225 id="tspan3683">File IO</tspan><tspan
226 sodipodi:role="line"
227 x="318.36639"
228 y="92.418152"
229 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
230 id="tspan3687">read from various data files</tspan></text>
231 <g
232 id="g3878"
233 transform="translate(-76.771593,-7.7588988)">
234 <rect
235 ry="19.192898"
236 rx="19.192898"
237 y="155.85181"
238 x="141.7186"
239 height="59.598999"
240 width="204.17061"
241 id="rect2858-9"
242 style="color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
243 <text
244 sodipodi:linespacing="125%"
245 id="text2882-1"
246 y="180.606"
247 x="244.96979"
248 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
249 xml:space="preserve"><tspan
250 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
251 y="180.606"
252 x="244.96979"
253 id="tspan2884-2"
254 sodipodi:role="line">xrayutilities.</tspan><tspan
255 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
256 y="200.606"
257 x="244.96979"
258 sodipodi:role="line"
259 id="tspan3048">IntensityNormalizer</tspan></text>
260 </g>
261 <g
262 id="g3885"
263 transform="translate(-58.08378,5.1903581)">
264 <rect
265 ry="19.192898"
266 rx="19.192898"
267 y="242.7249"
268 x="121.30019"
269 height="59.599014"
270 width="206.9175"
271 id="rect2858-1"
272 style="color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
273 <text
274 sodipodi:linespacing="125%"
275 id="text2882-5"
276 y="268.48926"
277 x="228.5486"
278 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
279 xml:space="preserve"><tspan
280 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
281 y="268.48926"
282 x="228.5486"
283 id="tspan2884-5"
284 sodipodi:role="line">xrayutilities.</tspan><tspan
285 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
286 y="288.48926"
287 x="228.5486"
288 sodipodi:role="line"
289 id="tspan3050">blockAverage*</tspan></text>
290 </g>
291 <text
292 xml:space="preserve"
293 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
294 x="319.45233"
295 y="171.70253"
296 id="text2882-2"
297 sodipodi:linespacing="125%"><tspan
298 sodipodi:role="line"
299 id="tspan2884-53"
300 x="319.45233"
301 y="171.70253"
302 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">Normalize Intensities </tspan><tspan
303 sodipodi:role="line"
304 x="319.45233"
305 y="191.70253"
306 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
307 id="tspan3781">for count time and monitor and absorber</tspan></text>
308 <text
309 xml:space="preserve"
310 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
311 x="319.38983"
312 y="270.0455"
313 id="text2882-2-6"
314 sodipodi:linespacing="125%"><tspan
315 sodipodi:role="line"
316 x="319.38983"
317 y="270.0455"
318 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
319 id="tspan3781-0">average Intensities </tspan><tspan
320 sodipodi:role="line"
321 x="319.38983"
322 y="290.0455"
323 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
324 id="tspan3813">to reduce data size (PSD,CCD)</tspan></text>
325 <g
326 id="g3890"
327 transform="translate(-62.629473,-9.1345549)">
328 <rect
329 ry="19.192898"
330 rx="19.192898"
331 y="356.87216"
332 x="133.92711"
333 height="59.59903"
334 width="190.75505"
335 id="rect2858-1-2"
336 style="color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
337 <text
338 sodipodi:linespacing="125%"
339 id="text2882-5-5"
340 y="381.3508"
341 x="181.22382"
342 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
343 xml:space="preserve"><tspan
344 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
345 y="381.3508"
346 x="181.22382"
347 id="tspan2884-5-1"
348 sodipodi:role="line">xrayutilities.</tspan><tspan
349 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
350 y="401.3508"
351 x="181.22382"
352 sodipodi:role="line"
353 id="tspan3052">Experiment</tspan></text>
354 </g>
355 <g
356 id="g3895"
357 transform="translate(2.0202924,-28.510196)">
358 <rect
359 ry="19.192898"
360 rx="19.192898"
361 y="476.07016"
362 x="86.449928"
363 height="59.59903"
364 width="156.40988"
365 id="rect2858-1-1"
366 style="color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
367 <text
368 sodipodi:linespacing="125%"
369 id="text2882-5-3"
370 y="501.8345"
371 x="166.52255"
372 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
373 xml:space="preserve"><tspan
374 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
375 y="501.8345"
376 x="166.52255"
377 id="tspan2884-5-7"
378 sodipodi:role="line">xrayutilities.</tspan><tspan
379 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
380 y="521.83447"
381 x="166.52255"
382 sodipodi:role="line"
383 id="tspan3054">Gridder*</tspan></text>
384 </g>
385 <g
386 id="g3900"
387 transform="translate(9.0913678,-79.200534)">
388 <rect
389 ry="19.192898"
390 rx="19.192898"
391 y="615.47119"
392 x="88.470238"
393 height="81.822357"
394 width="138.22711"
395 id="rect2858-1-12"
396 style="color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
397 <text
398 sodipodi:linespacing="125%"
399 id="text2882-5-1"
400 y="651.23553"
401 x="155.59364"
402 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
403 xml:space="preserve"><tspan
404 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
405 y="651.23553"
406 x="155.59364"
407 id="tspan2884-5-0"
408 sodipodi:role="line">matplotlib</tspan><tspan
409 id="tspan3869"
410 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
411 y="671.23553"
412 x="155.59364"
413 sodipodi:role="line">visualization</tspan></text>
414 </g>
415 <text
416 xml:space="preserve"
417 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
418 x="318.93671"
419 y="378.72049"
420 id="text2882-2-6-3"
421 sodipodi:linespacing="125%"><tspan
422 sodipodi:role="line"
423 x="318.93671"
424 y="378.72049"
425 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
426 id="tspan3813-2">conversion to momentum space (Ang2Q)</tspan></text>
427 <text
428 xml:space="preserve"
429 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
430 x="318.31171"
431 y="468.00488"
432 id="text2882-2-6-2"
433 sodipodi:linespacing="125%"><tspan
434 sodipodi:role="line"
435 x="318.31171"
436 y="468.00488"
437 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
438 id="tspan3813-5">Bin experimental intensities to regular grid</tspan><tspan
439 sodipodi:role="line"
440 x="318.31171"
441 y="488.00488"
442 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
443 id="tspan3964">in reciprocal space</tspan></text>
444 <text
445 xml:space="preserve"
446 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
447 x="319.34296"
448 y="567.28925"
449 id="text2882-2-6-1"
450 sodipodi:linespacing="125%"><tspan
451 sodipodi:role="line"
452 x="319.34296"
453 y="567.28925"
454 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
455 id="tspan3813-8">visualization of measured data using </tspan><tspan
456 sodipodi:role="line"
457 x="319.34296"
458 y="587.28925"
459 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
460 id="tspan3968">something like matplotlib</tspan></text>
461 <path
462 style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
463 d="m 166.67516,107.86955 0,40.22336"
464 id="path3970"
465 inkscape:connector-type="polyline"
466 inkscape:connection-start="#g3873"
467 inkscape:connection-end="#g3878"
468 inkscape:connection-start-point="d4"
469 inkscape:connection-end-point="d4"
470 inkscape:connector-curvature="0" />
471 <path
472 style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
473 d="m 166.67516,207.69191 0,40.22335"
474 id="path4608"
475 inkscape:connector-type="polyline"
476 inkscape:connection-start="#g3878"
477 inkscape:connection-end="#g3885"
478 inkscape:connection-start-point="d4"
479 inkscape:connection-end-point="d4"
480 inkscape:connector-curvature="0" />
481 <path
482 style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
483 d="m 166.67516,307.51427 0,40.22334"
484 id="path4796"
485 inkscape:connector-type="polyline"
486 inkscape:connection-start="#g3885"
487 inkscape:connection-end="#g3890"
488 inkscape:connection-start-point="d4"
489 inkscape:connection-end-point="d4"
490 inkscape:connector-curvature="0" />
491 <path
492 style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
493 d="m 166.67516,407.33664 0,40.22332"
494 id="path4984"
495 inkscape:connector-type="polyline"
496 inkscape:connection-start="#g3890"
497 inkscape:connection-end="#g3895"
498 inkscape:connection-start-point="d4"
499 inkscape:connection-end-point="d4"
500 inkscape:connector-curvature="0" />
501 <path
502 style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
503 d="m 166.67516,507.15899 0,29.11167"
504 id="path5172"
505 inkscape:connector-type="polyline"
506 inkscape:connection-start="#g3895"
507 inkscape:connection-end="#g3900"
508 inkscape:connection-start-point="d4"
509 inkscape:connection-end-point="d4"
510 inkscape:connector-curvature="0" />
511 </g>
512 </svg>
0 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
1 <!-- Created with Inkscape (http://www.inkscape.org/) -->
2
3 <svg
4 xmlns:dc="http://purl.org/dc/elements/1.1/"
5 xmlns:cc="http://creativecommons.org/ns#"
6 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
7 xmlns:svg="http://www.w3.org/2000/svg"
8 xmlns="http://www.w3.org/2000/svg"
9 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
10 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
11 width="591.2016"
12 height="316.23358"
13 id="svg2"
14 version="1.1"
15 inkscape:version="0.48.4 r9939"
16 sodipodi:docname="xu_usage_planning.svg"
17 inkscape:export-filename="/home/dk/devel/xrutils/doc/source/pics/xu_usage_planning.png"
18 inkscape:export-xdpi="100.01665"
19 inkscape:export-ydpi="100.01665">
20 <defs
21 id="defs4">
22 <marker
23 inkscape:stockid="Arrow1Lend"
24 orient="auto"
25 refY="0"
26 refX="0"
27 id="Arrow1Lend"
28 style="overflow:visible">
29 <path
30 id="path3978"
31 d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
32 style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
33 transform="matrix(-0.8,0,0,-0.8,-10,0)" />
34 </marker>
35 <marker
36 inkscape:stockid="Arrow2Mend"
37 orient="auto"
38 refY="0"
39 refX="0"
40 id="Arrow2Mend"
41 style="overflow:visible">
42 <path
43 id="path4002"
44 style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
45 d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
46 transform="scale(-0.6,-0.6)" />
47 </marker>
48 <inkscape:perspective
49 sodipodi:type="inkscape:persp3d"
50 inkscape:vp_x="0 : 526.18109 : 1"
51 inkscape:vp_y="0 : 1000 : 0"
52 inkscape:vp_z="744.09448 : 526.18109 : 1"
53 inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
54 id="perspective10" />
55 <inkscape:perspective
56 id="perspective2868"
57 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
58 inkscape:vp_z="1 : 0.5 : 1"
59 inkscape:vp_y="0 : 1000 : 0"
60 inkscape:vp_x="0 : 0.5 : 1"
61 sodipodi:type="inkscape:persp3d" />
62 <inkscape:perspective
63 id="perspective3666"
64 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
65 inkscape:vp_z="1 : 0.5 : 1"
66 inkscape:vp_y="0 : 1000 : 0"
67 inkscape:vp_x="0 : 0.5 : 1"
68 sodipodi:type="inkscape:persp3d" />
69 <inkscape:perspective
70 id="perspective3697"
71 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
72 inkscape:vp_z="1 : 0.5 : 1"
73 inkscape:vp_y="0 : 1000 : 0"
74 inkscape:vp_x="0 : 0.5 : 1"
75 sodipodi:type="inkscape:persp3d" />
76 <inkscape:perspective
77 id="perspective3697-7"
78 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
79 inkscape:vp_z="1 : 0.5 : 1"
80 inkscape:vp_y="0 : 1000 : 0"
81 inkscape:vp_x="0 : 0.5 : 1"
82 sodipodi:type="inkscape:persp3d" />
83 <inkscape:perspective
84 id="perspective3728"
85 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
86 inkscape:vp_z="1 : 0.5 : 1"
87 inkscape:vp_y="0 : 1000 : 0"
88 inkscape:vp_x="0 : 0.5 : 1"
89 sodipodi:type="inkscape:persp3d" />
90 <inkscape:perspective
91 id="perspective3753"
92 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
93 inkscape:vp_z="1 : 0.5 : 1"
94 inkscape:vp_y="0 : 1000 : 0"
95 inkscape:vp_x="0 : 0.5 : 1"
96 sodipodi:type="inkscape:persp3d" />
97 <inkscape:perspective
98 id="perspective3753-1"
99 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
100 inkscape:vp_z="1 : 0.5 : 1"
101 inkscape:vp_y="0 : 1000 : 0"
102 inkscape:vp_x="0 : 0.5 : 1"
103 sodipodi:type="inkscape:persp3d" />
104 <inkscape:perspective
105 id="perspective3791"
106 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
107 inkscape:vp_z="1 : 0.5 : 1"
108 inkscape:vp_y="0 : 1000 : 0"
109 inkscape:vp_x="0 : 0.5 : 1"
110 sodipodi:type="inkscape:persp3d" />
111 <inkscape:perspective
112 id="perspective3823"
113 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
114 inkscape:vp_z="1 : 0.5 : 1"
115 inkscape:vp_y="0 : 1000 : 0"
116 inkscape:vp_x="0 : 0.5 : 1"
117 sodipodi:type="inkscape:persp3d" />
118 <inkscape:perspective
119 id="perspective3823-6"
120 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
121 inkscape:vp_z="1 : 0.5 : 1"
122 inkscape:vp_y="0 : 1000 : 0"
123 inkscape:vp_x="0 : 0.5 : 1"
124 sodipodi:type="inkscape:persp3d" />
125 <inkscape:perspective
126 id="perspective3823-7"
127 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
128 inkscape:vp_z="1 : 0.5 : 1"
129 inkscape:vp_y="0 : 1000 : 0"
130 inkscape:vp_x="0 : 0.5 : 1"
131 sodipodi:type="inkscape:persp3d" />
132 <inkscape:perspective
133 id="perspective3914"
134 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
135 inkscape:vp_z="1 : 0.5 : 1"
136 inkscape:vp_y="0 : 1000 : 0"
137 inkscape:vp_x="0 : 0.5 : 1"
138 sodipodi:type="inkscape:persp3d" />
139 <inkscape:perspective
140 id="perspective3914-7"
141 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
142 inkscape:vp_z="1 : 0.5 : 1"
143 inkscape:vp_y="0 : 1000 : 0"
144 inkscape:vp_x="0 : 0.5 : 1"
145 sodipodi:type="inkscape:persp3d" />
146 <inkscape:perspective
147 id="perspective3914-4"
148 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
149 inkscape:vp_z="1 : 0.5 : 1"
150 inkscape:vp_y="0 : 1000 : 0"
151 inkscape:vp_x="0 : 0.5 : 1"
152 sodipodi:type="inkscape:persp3d" />
153 <inkscape:perspective
154 id="perspective5414"
155 inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
156 inkscape:vp_z="1 : 0.5 : 1"
157 inkscape:vp_y="0 : 1000 : 0"
158 inkscape:vp_x="0 : 0.5 : 1"
159 sodipodi:type="inkscape:persp3d" />
160 </defs>
161 <sodipodi:namedview
162 id="base"
163 pagecolor="#ffffff"
164 bordercolor="#666666"
165 borderopacity="1.0"
166 inkscape:pageopacity="0.0"
167 inkscape:pageshadow="2"
168 inkscape:zoom="0.98994949"
169 inkscape:cx="255.70087"
170 inkscape:cy="147.89902"
171 inkscape:document-units="px"
172 inkscape:current-layer="layer1"
173 showgrid="false"
174 inkscape:window-width="1366"
175 inkscape:window-height="709"
176 inkscape:window-x="1920"
177 inkscape:window-y="459"
178 inkscape:window-maximized="1" />
179 <metadata
180 id="metadata7">
181 <rdf:RDF>
182 <cc:Work
183 rdf:about="">
184 <dc:format>image/svg+xml</dc:format>
185 <dc:type
186 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
187 <dc:title></dc:title>
188 </cc:Work>
189 </rdf:RDF>
190 </metadata>
191 <g
192 inkscape:label="Layer 1"
193 inkscape:groupmode="layer"
194 id="layer1"
195 transform="translate(-52.297636,-148.10306)">
196 <g
197 id="g3878"
198 transform="translate(-24.060915,-6.7487463)">
199 <rect
200 ry="19.192898"
201 rx="19.192898"
202 y="155.85181"
203 x="120.29003"
204 height="59.598999"
205 width="161.46063"
206 id="rect2858-9"
207 style="color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
208 <text
209 sodipodi:linespacing="125%"
210 id="text2882-1"
211 y="182.606"
212 x="200.36266"
213 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
214 xml:space="preserve"><tspan
215 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
216 y="182.606"
217 x="200.36266"
218 id="tspan2884-2"
219 sodipodi:role="line">xrayutilities.</tspan><tspan
220 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
221 y="202.606"
222 x="200.36266"
223 sodipodi:role="line"
224 id="tspan3033">Materials</tspan></text>
225 </g>
226 <g
227 id="g3885"
228 transform="translate(-35.677676,-8.7436629)">
229 <rect
230 ry="19.192898"
231 rx="19.192898"
232 y="242.7249"
233 x="121.30019"
234 height="59.599014"
235 width="182.67383"
236 id="rect2858-1"
237 style="color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
238 <text
239 sodipodi:linespacing="125%"
240 id="text2882-5"
241 y="268.48926"
242 x="211.37282"
243 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
244 xml:space="preserve"><tspan
245 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
246 y="268.48926"
247 x="211.37282"
248 id="tspan2884-5"
249 sodipodi:role="line">xrayutilities.</tspan><tspan
250 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
251 y="288.48926"
252 x="211.37282"
253 sodipodi:role="line"
254 id="tspan3035">Experiment</tspan></text>
255 </g>
256 <text
257 xml:space="preserve"
258 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
259 x="318.93671"
260 y="171.70256"
261 id="text2882-2"
262 sodipodi:linespacing="125%"><tspan
263 sodipodi:role="line"
264 x="318.93671"
265 y="171.70256"
266 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
267 id="tspan3781">Materials in experiment</tspan><tspan
268 sodipodi:role="line"
269 x="318.93671"
270 y="191.70256"
271 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
272 id="tspan5404">for which Bragg peak position is needed</tspan></text>
273 <text
274 xml:space="preserve"
275 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
276 x="317.79608"
277 y="256.70853"
278 id="text2882-2-6"
279 sodipodi:linespacing="125%"><tspan
280 sodipodi:role="line"
281 x="317.79608"
282 y="256.70853"
283 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
284 id="tspan3781-0">Experimental geometry</tspan><tspan
285 sodipodi:role="line"
286 x="317.79608"
287 y="276.70853"
288 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
289 id="tspan3813">in which Bragg peaks are measured</tspan></text>
290 <g
291 id="g3890"
292 transform="translate(-80.629473,46.865445)">
293 <rect
294 ry="19.192898"
295 rx="19.192898"
296 y="356.87216"
297 x="157.16061"
298 height="59.59903"
299 width="202.87688"
300 id="rect2858-1-2"
301 style="color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
302 <text
303 sodipodi:linespacing="125%"
304 id="text2882-5-5"
305 y="382.63651"
306 x="259.43643"
307 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
308 xml:space="preserve"><tspan
309 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
310 y="382.63651"
311 x="259.43643"
312 id="tspan2884-5-1"
313 sodipodi:role="line">xrayutilities.</tspan><tspan
314 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
315 y="402.63651"
316 x="259.43643"
317 sodipodi:role="line"
318 id="tspan3039">Experiment.Q2Ang</tspan></text>
319 </g>
320 <text
321 xml:space="preserve"
322 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
323 x="318.93671"
324 y="426.72049"
325 id="text2882-2-6-3"
326 sodipodi:linespacing="125%"><tspan
327 sodipodi:role="line"
328 x="318.93671"
329 y="426.72049"
330 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
331 id="tspan3813-2">conversion of Q to angular coordinates</tspan><tspan
332 sodipodi:role="line"
333 x="318.93671"
334 y="446.72049"
335 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
336 id="tspan5448">for the specified experimental geometry </tspan></text>
337 <g
338 id="g3878-2"
339 transform="translate(-32.647219,163.00763)">
340 <rect
341 ry="19.192898"
342 rx="19.192898"
343 y="155.85181"
344 x="120.29003"
345 height="59.598999"
346 width="178.63324"
347 id="rect2858-9-3"
348 style="color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
349 <text
350 sodipodi:linespacing="125%"
351 id="text2882-1-8"
352 y="180.606"
353 x="210.36266"
354 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
355 xml:space="preserve"><tspan
356 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
357 y="180.606"
358 x="210.36266"
359 id="tspan2884-2-3"
360 sodipodi:role="line">xrayutilities.</tspan><tspan
361 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
362 y="200.606"
363 x="210.36266"
364 sodipodi:role="line"
365 id="tspan3037">Materials.Q</tspan></text>
366 </g>
367 <text
368 xml:space="preserve"
369 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Tymes;-inkscape-font-specification:Tymes"
370 x="318.42108"
371 y="341.71454"
372 id="text2882-2-1"
373 sodipodi:linespacing="125%"><tspan
374 sodipodi:role="line"
375 x="318.42108"
376 y="341.71454"
377 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
378 id="tspan5404-8">calculation of Q for Bragg reflection</tspan><tspan
379 sodipodi:role="line"
380 x="318.42108"
381 y="361.71454"
382 style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
383 id="tspan5450">of the given materials </tspan></text>
384 <path
385 style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
386 d="m 176.95943,208.70206 0,25.27918"
387 id="path5452"
388 inkscape:connector-type="polyline"
389 inkscape:connection-start="#g3878"
390 inkscape:connection-end="#g3885"
391 inkscape:connection-start-point="d4"
392 inkscape:connection-end-point="d4"
393 inkscape:connector-curvature="0" />
394 <path
395 style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
396 d="m 176.95943,293.58025 0,25.27919"
397 id="path5640"
398 inkscape:connector-type="polyline"
399 inkscape:connection-start="#g3885"
400 inkscape:connection-end="#g3878-2"
401 inkscape:connection-start-point="d4"
402 inkscape:connection-end-point="d4"
403 inkscape:connector-curvature="0" />
404 <path
405 style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
406 d="m 176.95943,378.45844 0,25.27917"
407 id="path5828"
408 inkscape:connector-type="polyline"
409 inkscape:connection-start="#g3878-2"
410 inkscape:connection-end="#g3890"
411 inkscape:connection-start-point="d4"
412 inkscape:connection-end-point="d4"
413 inkscape:connector-curvature="0" />
414 </g>
415 </svg>
0 analysis Package
1 ================
2
3 :mod:`analysis` Package
4 -----------------------
5
6 .. automodule:: xrayutilities.analysis
7 :members:
8 :undoc-members:
9 :show-inheritance:
10
11 :mod:`line_cuts` Module
12 -----------------------
13
14 .. automodule:: xrayutilities.analysis.line_cuts
15 :members:
16 :undoc-members:
17 :show-inheritance:
18
19 :mod:`line_cuts3d` Module
20 -------------------------
21
22 .. automodule:: xrayutilities.analysis.line_cuts3d
23 :members:
24 :undoc-members:
25 :show-inheritance:
26
27 :mod:`misc` Module
28 ------------------
29
30 .. automodule:: xrayutilities.analysis.misc
31 :members:
32 :undoc-members:
33 :show-inheritance:
34
35 :mod:`sample_align` Module
36 --------------------------
37
38 .. automodule:: xrayutilities.analysis.sample_align
39 :members:
40 :undoc-members:
41 :show-inheritance:
42
0 io Package
1 ==========
2
3 :mod:`io` Package
4 -----------------
5
6 .. automodule:: xrayutilities.io
7 :members:
8 :undoc-members:
9 :show-inheritance:
10
11 :mod:`edf` Module
12 -----------------
13
14 .. automodule:: xrayutilities.io.edf
15 :members:
16 :undoc-members:
17 :show-inheritance:
18
19 :mod:`imagereader` Module
20 -------------------------
21
22 .. automodule:: xrayutilities.io.imagereader
23 :members:
24 :undoc-members:
25 :show-inheritance:
26
27 :mod:`panalytical_xml` Module
28 -----------------------------
29
30 .. automodule:: xrayutilities.io.panalytical_xml
31 :members:
32 :undoc-members:
33 :show-inheritance:
34
35 :mod:`radicon` Module
36 ---------------------
37
38 .. automodule:: xrayutilities.io.radicon
39 :members:
40 :undoc-members:
41 :show-inheritance:
42
43 :mod:`rotanode_alignment` Module
44 --------------------------------
45
46 .. automodule:: xrayutilities.io.rotanode_alignment
47 :members:
48 :undoc-members:
49 :show-inheritance:
50
51 :mod:`seifert` Module
52 ---------------------
53
54 .. automodule:: xrayutilities.io.seifert
55 :members:
56 :undoc-members:
57 :show-inheritance:
58
59 :mod:`spec` Module
60 ------------------
61
62 .. automodule:: xrayutilities.io.spec
63 :members:
64 :undoc-members:
65 :show-inheritance:
66
67 :mod:`spectra` Module
68 ---------------------
69
70 .. automodule:: xrayutilities.io.spectra
71 :members:
72 :undoc-members:
73 :show-inheritance:
74
0 materials Package
1 =================
2
3 :mod:`materials` Package
4 ------------------------
5
6 .. automodule:: xrayutilities.materials
7 :members:
8 :undoc-members:
9 :show-inheritance:
10
11 :mod:`_create_database` Module
12 ------------------------------
13
14 .. automodule:: xrayutilities.materials._create_database
15 :members:
16 :undoc-members:
17 :show-inheritance:
18
19 :mod:`_create_database_alt` Module
20 ----------------------------------
21
22 .. automodule:: xrayutilities.materials._create_database_alt
23 :members:
24 :undoc-members:
25 :show-inheritance:
26
27 :mod:`cif` Module
28 -----------------
29
30 .. automodule:: xrayutilities.materials.cif
31 :members:
32 :undoc-members:
33 :show-inheritance:
34
35 :mod:`database` Module
36 ----------------------
37
38 .. automodule:: xrayutilities.materials.database
39 :members:
40 :undoc-members:
41 :show-inheritance:
42
43 :mod:`elements` Module
44 ----------------------
45
46 .. automodule:: xrayutilities.materials.elements
47 :members:
48 :undoc-members:
49 :show-inheritance:
50
51 :mod:`lattice` Module
52 ---------------------
53
54 .. automodule:: xrayutilities.materials.lattice
55 :members:
56 :undoc-members:
57 :show-inheritance:
58
59 :mod:`material` Module
60 ----------------------
61
62 .. automodule:: xrayutilities.materials.material
63 :members:
64 :undoc-members:
65 :show-inheritance:
66
67 :mod:`predefined_materials` Module
68 ----------------------------------
69
70 .. automodule:: xrayutilities.materials.predefined_materials
71 :members:
72 :undoc-members:
73 :show-inheritance:
74
0 math Package
1 ============
2
3 :mod:`math` Package
4 -------------------
5
6 .. automodule:: xrayutilities.math
7 :members:
8 :undoc-members:
9 :show-inheritance:
10
11 :mod:`fit` Module
12 -----------------
13
14 .. automodule:: xrayutilities.math.fit
15 :members:
16 :undoc-members:
17 :show-inheritance:
18
19 :mod:`functions` Module
20 -----------------------
21
22 .. automodule:: xrayutilities.math.functions
23 :members:
24 :undoc-members:
25 :show-inheritance:
26
27 :mod:`transforms` Module
28 ------------------------
29
30 .. automodule:: xrayutilities.math.transforms
31 :members:
32 :undoc-members:
33 :show-inheritance:
34
35 :mod:`vector` Module
36 --------------------
37
38 .. automodule:: xrayutilities.math.vector
39 :members:
40 :undoc-members:
41 :show-inheritance:
42
0 xrayutilities Package
1 =====================
2
3 :mod:`xrayutilities` Package
4 ----------------------------
5
6 .. automodule:: xrayutilities.__init__
7 :members:
8 :undoc-members:
9 :show-inheritance:
10
11 :mod:`config` Module
12 --------------------
13
14 .. automodule:: xrayutilities.config
15 :members:
16 :undoc-members:
17 :show-inheritance:
18
19 :mod:`exception` Module
20 -----------------------
21
22 .. automodule:: xrayutilities.exception
23 :members:
24 :undoc-members:
25 :show-inheritance:
26
27 :mod:`experiment` Module
28 ------------------------
29
30 .. automodule:: xrayutilities.experiment
31 :members:
32 :undoc-members:
33 :show-inheritance:
34
35 :mod:`gridder` Module
36 ---------------------
37
38 .. automodule:: xrayutilities.gridder
39 :members:
40 :undoc-members:
41 :show-inheritance:
42
43 :mod:`gridder2d` Module
44 -----------------------
45
46 .. automodule:: xrayutilities.gridder2d
47 :members:
48 :undoc-members:
49 :show-inheritance:
50
51 :mod:`gridder3d` Module
52 -----------------------
53
54 .. automodule:: xrayutilities.gridder3d
55 :members:
56 :undoc-members:
57 :show-inheritance:
58
59 :mod:`normalize` Module
60 -----------------------
61
62 .. automodule:: xrayutilities.normalize
63 :members:
64 :undoc-members:
65 :show-inheritance:
66
67 :mod:`utilities` Module
68 -----------------------
69
70 .. automodule:: xrayutilities.utilities
71 :members:
72 :undoc-members:
73 :show-inheritance:
74
75 :mod:`utilities_noconf` Module
76 ------------------------------
77
78 .. automodule:: xrayutilities.utilities_noconf
79 :members:
80 :undoc-members:
81 :show-inheritance:
82
83 Subpackages
84 -----------
85
86 .. toctree::
87
88 xrayutilities.analysis
89 xrayutilities.io
90 xrayutilities.materials
91 xrayutilities.math
92
Binary diff not shown
5555 def build_extensions(self):
5656 c = self.compiler.compiler_type
5757 # set custom compiler options
58 if copt.has_key(c):
58 if c in list(copt.keys()):
5959 for e in self.extensions:
6060 e.extra_compile_args = copt[ c ]
61 if lopt.has_key(c):
61 if c in list(lopt.keys()):
6262 for e in self.extensions:
6363 e.extra_link_args = lopt[ c ]
6464 build_ext.build_extensions(self)
7676 define_macros = user_macros)
7777
7878 setup(name="xrayutilities",
79 version="1.0.1",
79 version="1.0.2",
8080 author="Eugen Wintersberger, Dominik Kriegner",
8181 description="package for x-ray diffraction data evaluation",
8282 classifiers=["Topic :: Scientific/Engineering :: Physics",
446446 qpos = cxrayutilities.ang2q_conversion(sAngles, dAngles, self.r_i,sAxis, dAxis, self._kappa_dir,
447447 UB, wl, config.NTHREADS)
448448
449 return qpos[:,0],qpos[:,1],qpos[:,2]
449 if Npoints==1:
450 return ( qpos[0,0], qpos[0,1], qpos[0,2] )
451 else:
452 return qpos[:,0],qpos[:,1],qpos[:,2]
450453
451454 def init_linear(self,detectorDir,cch,Nchannel,distance=None,pixelwidth=None,chpdeg=None,tilt=0,**kwargs):
452455 """
152152 self.header[key] = value
153153
154154 # try to parse motor positions and counters from header into separate dictionary
155 if self.header.has_key('motor_mne'):
155 if 'motor_mne' in self.header.keys():
156156 tkeys = self.header['motor_mne'].split()
157157 try:
158158 tval = numpy.array(self.header['motor_pos'].split(),dtype=numpy.double)
160160 except:
161161 print("XU.io.EDFFile.ReadData: Warning: header conversion of motor positions failed")
162162
163 if self.header.has_key('counter_mne'):
163 if 'counter_mne' in self.header.keys():
164164 tkeys = self.header['counter_mne'].split()
165165 try:
166166 tval = numpy.array(self.header['counter_pos'].split(),dtype=numpy.double)
170170 el = re.sub(r"([1-9])",r"",a[0])
171171 el = re.sub(r"\(\w*\)",r"",el)
172172 for symop in self.symops:
173 exec("pos = numpy.array("+ symop+ ")")
173 pos = eval("numpy.array("+ symop+ ")")
174174 # check that position is within unit cell
175175 pos = pos - pos//1
176176 # check if position is unique
180180 unique = False
181181 if unique:
182182 unique_pos.append(pos)
183 exec("element = elements."+el)
183 element = eval("elements."+el)
184184 self.unique_positions.append((element, unique_pos))
185185
186186 def Lattice(self):
781781 Material.__init__(self,"None",copy.copy(matA.lattice),matA.cij)
782782 self.matA = matA
783783 self.matB = matB
784 self.xb = 0
784 self._xb = 0
785785 self._setxb(x)
786786
787787 def lattice_const_AB(self, latA, latB, x):
792792 return (latB-latA)*x + latA
793793
794794 def _getxb(self):
795 return self.xb
795 return self._xb
796796
797797 def _setxb(self,x):
798 self.xb = x
798 self._xb = x
799799 self.name = "%s(%2.2f)%s(%2.2f)" %(self.matA.name,1.-x,self.matB.name,x)
800800 #modify the lattice
801801 self.lattice.a1 = self.lattice_const_AB(self.matA.lattice.a1, self.matB.lattice.a1, x)
10691069 """
10701070 This function returns a material whos lattice is pseudomorphic on a
10711071 particular substrate material.
1072 This function works meanwhile only for cubic materials.
1072 This function works meanwhile only for cubic materials on (001) substrates
10731073
10741074 required input arguments:
10751075 submat .................... substrate material
9393 method to calculate the lattice parameter of the SiGe alloy with composition
9494 Si_{1-x}Ge_x
9595 """
96 return latA+ (0.2*x+0.027*x**2)*latA/numpy.abs(latA)
96 return latA+ (0.2*x+0.027*x**2)*latA/numpy.linalg.norm(latA)
9797
9898 def _setxb(self,x):
9999 """
260260 {NULL, NULL, 0, NULL} /* Sentinel */
261261 };
262262
263 #if PY_MAJOR_VERSION >= 3
264 static struct PyModuleDef moduledef = {
265 PyModuleDef_HEAD_INIT,
266 "cxrayutilities", /* m_name */
267 "Python C extension including performance critical parts\n"
268 "of xrayutilities (gridder, qconversion, block-averageing)\n", /* m_doc */
269 -1, /* m_size */
270 XRU_Methods, /* m_methods */
271 NULL, /* m_reload */
272 NULL, /* m_traverse */
273 NULL, /* m_clear */
274 NULL, /* m_free */
275 };
276 #endif
263277
264278 PyMODINIT_FUNC
265 initcxrayutilities(void) {
279 #if PY_MAJOR_VERSION >= 3
280 PyInit_cxrayutilities(void)
281 #else
282 initcxrayutilities(void)
283 #endif
284 {
266285 PyObject *m;
267286
287 #if PY_MAJOR_VERSION >= 3
288 m = PyModule_Create(&moduledef);
289 #else
268290 m = Py_InitModule3("cxrayutilities", XRU_Methods,
269291 "Python C extension including performance critical parts\n"
270292 "of xrayutilities (gridder, qconversion, block-averageing)\n");
271 if (m == NULL)
272 return;
293 #endif
273294
274295 import_array();
296
297 #if PY_MAJOR_VERSION >= 3
298 return m;
299 #endif
275300 }
xrayutilities/tests/test_blockaverage.pyc less more
Binary diff not shown
xrayutilities/tests/test_gridder1d.pyc less more
Binary diff not shown
xrayutilities/tests/test_gridder2d.pyc less more
Binary diff not shown
xrayutilities/tests/test_gridder3d.pyc less more
Binary diff not shown
1313 ang = self.hxrd.Q2Ang(self.mat.Q(self.hklsym))
1414 qout = self.hxrd.Ang2HKL(ang[0],ang[3],mat=self.mat)
1515 for i in range(3):
16 self.assertAlmostEqual(qout[i][0], self.hklsym[i], places=10)
16 self.assertAlmostEqual(qout[i], self.hklsym[i], places=10)
1717
1818 def test_qconversion_point_asym(self):
1919 ang = self.hxrd.Q2Ang(self.mat.Q(self.hklasym))
2020 qout = self.hxrd.Ang2HKL(ang[0],ang[3],mat=self.mat)
2121 for i in range(3):
22 self.assertAlmostEqual(qout[i][0], self.hklasym[i], places=10)
22 self.assertAlmostEqual(qout[i], self.hklasym[i], places=10)
2323
2424 if __name__ == '__main__':
2525 unittest.main()
xrayutilities/tests/test_qconversion.pyc less more
Binary diff not shown
xrayutilities/tests/test_qconversion_area.pyc less more
Binary diff not shown
xrayutilities/tests/test_qconversion_linear.pyc less more
Binary diff not shown
Binary diff not shown