Wiki source code of IDL cheat sheet

Version 52.1 by fwilde on 2023/02/21 18:16

Hide last authors
fwilde 22.1 1 == {{id name="IDLcheatsheet-Coordinatesystem"/}}Coordinate system ==
2
fwilde 23.1 3 Right-handed coordinate system with y-direction along the x-ray beam.
4
fwilde 25.1 5 [[image:attach:p05_uct.png||width="700"]]
6
moosmanj 6.1 7 == {{id name="IDLcheatsheet-Samplepositioning"/}}Sample positioning ==
8
fwilde 31.1 9 === {{id name="IDLcheatsheet-Relativemovement"/}}Relative movement ===
10
moosmanj 12.1 11 (% class="wrapped fixed-table" %)
fwilde 1.1 12 |=(((
13 IDL command
14 )))|=(((
15 description
fwilde 3.1 16 )))|=(((
17 motion
fwilde 1.1 18 )))
19 |(((
fwilde 46.1 20 ##**s_stage_x/z, 1**##
fwilde 1.1 21 )))|(((
fwilde 15.1 22 move rotation stage in x/z-direction by 1 mm
fwilde 3.1 23 )))|(((
24 relative [ mm ]
fwilde 1.1 25 )))
26 |(((
fwilde 46.1 27 ##**s_pos_x/y/z, 1**##
fwilde 1.1 28 )))|(((
fwilde 45.1 29 move sample stage in x/y/z-direction by 1 mm (caution with directions: stage mount on rotation axis)
fwilde 3.1 30 )))|(((
31 relative [ mm ]
fwilde 1.1 32 )))
33 |(((
fwilde 52.1 34 ##**s_pos, 1**##
fwilde 18.1 35 )))|(((
36 move sample stage in x-direction by 1 mm, regardless of position of rotation axis
37 )))|(((
38 relative [ mm ]
39 )))
40 |(((
fwilde 46.1 41 ##**s_angle, 90**##
fwilde 3.1 42 )))|(((
moosmanj 9.1 43 rotate sample around z axis
fwilde 3.1 44 )))|(((
moosmanj 9.1 45 relative [ deg ]
fwilde 3.1 46 )))
moosmanj 6.1 47
fwilde 31.1 48 === {{id name="IDLcheatsheet-Absolutemovement"/}}Absolute movement ===
49
fwilde 46.1 50 (% class="relative-table wrapped" style="width: 67.0892%;" %)
fwilde 15.1 51 |=(((
52 IDL command
53 )))|=(((
54 description
55 )))|=(((
56 motion
57 )))
58 |(((
fwilde 46.1 59 ##**goto_s_stage_x/z, 1**##
fwilde 15.1 60 )))|(((
61 move rotation stage in x/z-direction to 1 mm
62 )))|(((
63 absolute [ mm ]
64 )))
65 |(((
fwilde 46.1 66 ##**goto_s_pos_x/y/z, 1**##
fwilde 15.1 67 )))|(((
fwilde 45.1 68 move sample stage in x/y/z-direction to 1  mm
fwilde 15.1 69 )))|(((
70 absolute [ mm ]
71 )))
72 |(((
fwilde 46.1 73 ##**goto_s_angle, 90**##
fwilde 15.1 74 )))|(((
fwilde 46.1 75 rotate sample around z axis to 90° (**alias command: s_rot**)
fwilde 15.1 76 )))|(((
77 absolute [ deg ]
78 )))
79
fwilde 32.1 80 === {{id name="IDLcheatsheet-Getcurrentposition"/}}Get current position ===
fwilde 31.1 81
fwilde 46.1 82 (% class="relative-table wrapped" style="width: 54.0627%;" %)
fwilde 15.1 83 |=(((
84 IDL command
85 )))|=(((
86 description
87 )))
88 |(((
fwilde 46.1 89 ##**pos_s_stage_x/z()**##
fwilde 15.1 90 )))|(((
91 return current rotation stage in x/z position
92 )))
93 |(((
fwilde 46.1 94 ##**pos_s_pos_x/y/z()**##
fwilde 15.1 95 )))|(((
fwilde 45.1 96 return current sample stage in x/y/z position
fwilde 15.1 97 )))
98 |(((
fwilde 46.1 99 ##**pos_s_angle()**##
fwilde 15.1 100 )))|(((
101 return current rotation stage angle
102 )))
103
fwilde 31.1 104 === {{id name="IDLcheatsheet-Predefinedpositions"/}}Predefined positions ===
105
fwilde 45.1 106 (% class="relative-table wrapped" style="width: 55.721%;" %)
fwilde 31.1 107 |=(((
108 IDL command
109 )))|=(((
110 description
111 )))
112 |(((
fwilde 46.1 113 ##**s_in**##
fwilde 31.1 114 )))|(((
115 move sample to "in" position
116 )))
117 |(((
fwilde 46.1 118 ##**s_out**##
fwilde 31.1 119 )))|(((
120 move sample to "out" position
121 )))
122 |(((
fwilde 46.1 123 ##**s_change**##
fwilde 31.1 124 )))|(((
125 move sample to "change" position
126 )))
127 |(((
fwilde 46.1 128 ##**set_s_in_pos, 0**##
fwilde 31.1 129 )))|(((
130 set s_in position to 0.0 mm
131 )))
132 |(((
fwilde 46.1 133 ##**set_s_out_dist, 10**##
fwilde 31.1 134 )))|(((
135 set s_out distance to 10.0 mm
136 )))
137
fwilde 45.1 138 === {{id name="IDLcheatsheet-Magnificationsets"/}}Magnification sets ===
139
140 (% class="wrapped" %)
141 |=(((
142 IDL command
143 )))|=(((
144 description
145 )))
146 |(((
fwilde 51.1 147 ##**save_magn_set(, name_add)
148 **##
fwilde 45.1 149 )))|(((
fwilde 51.1 150 save current magnification set, optionally add something to the automatically generated name
fwilde 45.1 151 )))
152 |(((
fwilde 51.1 153 ##**restore_magn_set(, name)
154 **##
fwilde 45.1 155 )))|(((
fwilde 51.1 156 restore last magnification set, or optionally load a file with a specific name
fwilde 45.1 157 )))
158
moosmanj 6.1 159 == {{id name="IDLcheatsheet-Detectorpositioning"/}}Detector positioning ==
160
moosmanj 12.1 161 (% class="wrapped fixed-table" %)
moosmanj 6.1 162 |=(((
moosmanj 7.1 163 IDL command
moosmanj 6.1 164 )))|=(((
165 description
166 )))|=(((
167 motion
168 )))
fwilde 3.1 169 |(((
fwilde 50.1 170 ##**o_ccd_dist, 5**##
fwilde 1.1 171 )))|(((
fwilde 50.1 172 move detector in y direction relative by 5 mm
moosmanj 6.1 173 )))|(((
fwilde 50.1 174 relative [ mm ]
moosmanj 6.1 175 )))
176 |(((
fwilde 50.1 177 ##**goto_o_ccd_dist, 30**##
fwilde 3.1 178 )))|(((
fwilde 50.1 179 move detector in y direction absoilute to 30 mm
moosmanj 6.1 180 )))|(((
fwilde 50.1 181 \\
moosmanj 6.1 182 )))
183 |(((
fwilde 50.1 184 ##**pos_o_ccd_dist()**##
moosmanj 6.1 185 )))|(((
fwilde 50.1 186 return current of the camera stage distance
moosmanj 6.1 187 )))|(((
fwilde 3.1 188 \\
fwilde 1.1 189 )))
fwilde 3.1 190
fwilde 45.1 191 == {{id name="IDLcheatsheet-Slitpositioning"/}}Slit positioning ==
192
193 (% class="wrapped" %)
194 |=(((
195 IDL command
196 )))|=(((
197 description
198 )))
199 |(((
fwilde 47.1 200 ##**slit_oh, rx=1 (rz=1)**##
201 )))|(((
202 moves oh slit aperture horizontally (vertically) by 1mm
203 )))
204 |(((
205 ##**slit_oh, rdx=1 (rdz=1)**##
206 )))|(((
207 opens oh the slit aperture horizontally (vertically) by 1 mm
208 )))
209 |(((
fwilde 46.1 210 ##**slit_eh2, rx=1 (rz=1)**##
fwilde 45.1 211 )))|(((
fwilde 47.1 212 moves eh2 slit aperture horizontally (vertically) by 1 mm
fwilde 45.1 213 )))
214 |(((
fwilde 47.1 215 ##**slit_eh2, rdx=1 (rdz=1)**##
fwilde 45.1 216 )))|(((
fwilde 47.1 217 opens eh2 the slit aperture horizontally (vertically) by 1 mm
fwilde 45.1 218 )))
219 |(((
fwilde 46.1 220 ##**slit_info**##
fwilde 45.1 221 )))|(((
222 show all slit positions
223 )))
224
225 rx, rdx, rz and rdz can be concatenated in one command (e.g. slit_oh, rx=1, rz=-2, rdx=0.5, rdz=0.5)
226
fwilde 47.1 227 == {{id name="IDLcheatsheet-Makeandsaveimages"/}}Make and save images ==
moosmanj 7.1 228
moosmanj 12.1 229 (% class="wrapped fixed-table" %)
moosmanj 7.1 230 |=(((
231 IDL command
232 )))|=(((
233 description
234 )))
235 |(((
fwilde 47.1 236 ##**i=quick(100) & display_image, BYSTCL(i, 0, 4096)
237 **##
moosmanj 7.1 238 )))|(((
fwilde 47.1 239 make an image & scale image (eg. from 0 to 4096, usually from 0 to maximum value the camera can do)
moosmanj 7.1 240 )))
241 |(((
fwilde 47.1 242 ##**a=quick_abs(100) & display_image, BYTSCL(a, 0, 2)**##
moosmanj 7.1 243 )))|(((
fwilde 47.1 244 make an absorption image & scale image (usually from 0 to to 2)
moosmanj 7.1 245 )))
fwilde 34.1 246 |(((
fwilde 47.1 247 ##**write_tiff, '/gpfs/current/raw/test_projection.tif', i, /SHORT**##
fwilde 34.1 248 )))|(((
fwilde 47.1 249 save i as 16-bit integer tiff in /gpfs/...
fwilde 34.1 250 )))
fwilde 47.1 251 |(((
252 ##**write_tiff, '/gpfs/current/raw/test_absorption.tif', a, /FLOAT**##
253 )))|(((
254 save a as 32-bit float tiff in /gpfs/...
255 )))
moosmanj 7.1 256
fwilde 49.1 257 \\
258
259 \\
260
261 {{info title="Monochromator positioning"}}
262 ATTENTION: Setting up a Monochromator as well as positioning front end slits is **only** done by the beamline staff!
263
264 The commands above may be used by users to realign the beam should it beam profile drift with time.
265 {{/info}}
266
fwilde 47.1 267 == {{id name="IDLcheatsheet-DCMpositioning"/}}DCM positioning ==
moosmanj 6.1 268
moosmanj 12.1 269 (% class="wrapped fixed-table" %)
fwilde 3.1 270 |=(((
271 IDL command
272 )))|=(((
273 description
274 )))|=(((
275 motion
276 )))
fwilde 1.1 277 |(((
fwilde 46.1 278 ##**dcm_pitch, 0.00001**##
fwilde 1.1 279 )))|(((
fwilde 4.1 280 move 2nd crystal pitch by 0.00001 deg
fwilde 3.1 281 )))|(((
fwilde 4.1 282 relative [ deg ]
fwilde 3.1 283 )))
284 |(((
fwilde 46.1 285 ##**goto_dcm_pitch,  -0.03976**##
fwilde 3.1 286 )))|(((
fwilde 4.1 287 move 2nd crystal pitch to -0.03976 deg
fwilde 3.1 288 )))|(((
fwilde 4.1 289 absolute [ deg ]
fwilde 1.1 290 )))
fwilde 3.1 291 |(((
fwilde 51.1 292 ##**reflex_opt_single**##
fwilde 3.1 293 )))|(((
fwilde 4.1 294 move 2nd crystal pitch to optimal flux position
fwilde 3.1 295 )))|(((
296 \\
297 )))
fwilde 47.1 298
299 == {{id name="IDLcheatsheet-DMMpositioning"/}}DMM positioning ==
300
fwilde 48.1 301 (% class="fixed-table wrapped" %)
fwilde 47.1 302 |=(((
303 IDL command
304 )))|=(((
305 description
306 )))|=(((
307 motion
308 )))
fwilde 26.1 309 |(((
fwilde 47.1 310 ##**dmm_x2_rot, 0.001**##
311 )))|(((
312 move 2nd crystal pitch by 0.00001 deg
313 )))|(((
314 relative [ deg ]
315 )))
316 |(((
317 ##**goto_dmm_x2_rot,  0.8923
318 **##
319 )))|(((
320 move 2nd crystal pitch to 0.8923 deg
321 )))|(((
322 absolute [ deg ]
323 )))
fwilde 14.1 324
fwilde 47.1 325 \\
326
fwilde 35.1 327 == {{id name="IDLcheatsheet-Generalsyntax"/}}General syntax ==
fwilde 27.1 328
fwilde 46.1 329 (% class="wrapped relative-table" style="width: 45.5603%;" %)
fwilde 27.1 330 |=(((
331 Functionality
332 )))|=(((
333 IDL syntax
334 )))
335 |(((
fwilde 46.1 336 chaining commands
fwilde 27.1 337 )))|(((
338 command_1 **&** command_2 **&** ...
339 )))
340 |(((
341 absolute movement
342 )))|(((
343 **goto_**//motor//, position
344 )))
345 |(((
346 relative movement
347 )))|(((
348 //motor//, position
349 )))
350 |(((
351 current motor position
352 )))|(((
353 **pos_**//motor//()
354 )))
fwilde 45.1 355
356 == {{id name="IDLcheatsheet-BeamshutterandInterlockcontrol"/}}Beamshutter and Interlock control ==
357
fwilde 46.1 358 (% class="wrapped relative-table" style="width: 75.0455%;" %)
fwilde 45.1 359 |=(((
360 IDL command
361 )))|=(((
362 description
363 )))
364 |(((
fwilde 46.1 365 ##**bs_info**##
fwilde 45.1 366 )))|(((
367 prints an overview of the beamline beamshutter status
368 )))
369 |(((
fwilde 46.1 370 ##**bsoh_open / bsoh_close**##
fwilde 45.1 371 )))|(((
372 opens / closes the optics hutch beamshutter. Closing the OH beamshutter will close all following beamshutters (EH1, EH2)
373 )))
374 |(((
fwilde 46.1 375 ##**bseh1_open / bseh1_close**##
fwilde 45.1 376 )))|(((
377 opens / closes the EH1 beamshutter. Opening will open the OH beamshutter as well. Closing the OH beamshutter will the EH2 beamshutter as well
378 )))
379 |(((
fwilde 46.1 380 ##**bseh2_open / bseh2_close**##
fwilde 45.1 381 )))|(((
382 opens / closes the EH2 beamshutter. Openening will open the OH and EH1 beamshutters as well.
383 )))
384 |(((
fwilde 46.1 385 ##**ics_info**##
fwilde 45.1 386 )))|(((
387 prints an overview of the beamline interlock status
388 )))
389 |(((
fwilde 51.1 390 ##**oh_break_ics**##
fwilde 45.1 391 )))|(((
392 closes all P05 beamshutters and breaks OH door interlock. P06 beamshutter must be closed for this command to work!
393 )))
394 |(((
fwilde 51.1 395 ##**eh1_break_ics**##
fwilde 45.1 396 )))|(((
397 closes EH1 beamshutter (and EH2 beamshutter  if open) and breaks EH1 door interlock
398 )))
399 |(((
fwilde 51.1 400 ##**eh2_break_ics**##
fwilde 45.1 401 )))|(((
402 closes EH2 beshutter and breaks EH2 door interlock
403 )))