Wiki source code of IDL cheat sheet

Version 46.1 by fwilde on 2020/10/10 12:21

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 46.1 34 ##**s_pos_lateral, 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 46.1 147 ##**save_magn_set, 'dmm_11000ev_cmos_10x'**##
fwilde 45.1 148 )))|(((
149 save current magnification set
150 )))
151 |(((
fwilde 46.1 152 ##**restore_magn_set, 'dmm_11000ev_cmos_10x'**##
fwilde 45.1 153 )))|(((
154 restore magnification set with the name 'dmm_11000ev_cmos_10x'
155 )))
156
moosmanj 6.1 157 == {{id name="IDLcheatsheet-Detectorpositioning"/}}Detector positioning ==
158
moosmanj 12.1 159 (% class="wrapped fixed-table" %)
moosmanj 6.1 160 |=(((
moosmanj 7.1 161 IDL command
moosmanj 6.1 162 )))|=(((
163 description
164 )))|=(((
165 motion
166 )))
fwilde 3.1 167 |(((
fwilde 46.1 168 ##**pressure_on**##
fwilde 1.1 169 )))|(((
moosmanj 6.1 170 enable detector y movement
171 )))|(((
greving 5.1 172 \\
moosmanj 6.1 173 )))
174 |(((
fwilde 46.1 175 ##**o_ccd_dist, 5**##
fwilde 3.1 176 )))|(((
moosmanj 6.1 177 move detector in y direction
178 )))|(((
179 relative [ mm ]
180 )))
181 |(((
fwilde 46.1 182 ##**pressure_off**##
moosmanj 6.1 183 )))|(((
184 disable detector movement
185 )))|(((
fwilde 3.1 186 \\
fwilde 1.1 187 )))
fwilde 3.1 188
fwilde 45.1 189 == {{id name="IDLcheatsheet-Slitpositioning"/}}Slit positioning ==
190
191 (% class="wrapped" %)
192 |=(((
193 IDL command
194 )))|=(((
195 description
196 )))
197 |(((
fwilde 46.1 198 ##**slit_eh2, rx=1 (rz=1)**##
fwilde 45.1 199 )))|(((
200 moves eh2 slit aperture horizontally (vertically) by 1mm , **works analoguous for slit_oh and slit_ps2**
201 )))
202 |(((
fwilde 46.1 203 ##**slit_eh2, rdz=1 (rdz=1)**##
fwilde 45.1 204 )))|(((
205 opens eh2 the slit aperture horizontally (vertically) by 1 mm, **works analoguous for slit_oh and slit_ps2**
206 )))
207 |(((
fwilde 46.1 208 ##**slit_info**##
fwilde 45.1 209 )))|(((
210 show all slit positions
211 )))
212
213 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)
214
fwilde 34.1 215 == {{id name="IDLcheatsheet-Makeimages"/}}Make images ==
moosmanj 7.1 216
moosmanj 12.1 217 (% class="wrapped fixed-table" %)
moosmanj 7.1 218 |=(((
219 IDL command
220 )))|=(((
221 description
222 )))
223 |(((
fwilde 46.1 224 ##**i=quick(100) & tv_quick, i & draw_box, [ x1, x2 ,z1 ,z2 ]**##
moosmanj 7.1 225 )))|(((
226 make an image & show image & draw box
227 )))
228 |(((
fwilde 46.1 229 ##**a=quick_abs(100) & tv_quick, a & draw_box, [ x1, x2 ,z1 ,z2 ]**##
moosmanj 7.1 230 )))|(((
moosmanj 10.1 231 make an absorption image & show image & draw box
moosmanj 7.1 232 )))
fwilde 34.1 233 |(((
fwilde 46.1 234 ##**write_tiff, '/gpfs/current/raw/test.tif', i, /SHORT**##
fwilde 34.1 235 )))|(((
236 save i as 16-bit tiff in /gpfs/...
237 )))
moosmanj 7.1 238
moosmanj 6.1 239 == {{id name="IDLcheatsheet-Monochromatorpositioning"/}}Monochromator positioning ==
240
moosmanj 12.1 241 (% class="wrapped fixed-table" %)
fwilde 3.1 242 |=(((
243 IDL command
244 )))|=(((
245 description
246 )))|=(((
247 motion
248 )))
fwilde 1.1 249 |(((
fwilde 46.1 250 ##**calc_dcm_energy, 10000, /set**##
fwilde 3.1 251 )))|(((
252 set DCM and undulator to 10 keV
253 )))|(((
fwilde 1.1 254 \\
fwilde 3.1 255 )))
256 |(((
fwilde 46.1 257 ##**dcm_pitch, 0.00001**##
fwilde 1.1 258 )))|(((
fwilde 4.1 259 move 2nd crystal pitch by 0.00001 deg
fwilde 3.1 260 )))|(((
fwilde 4.1 261 relative [ deg ]
fwilde 3.1 262 )))
263 |(((
fwilde 46.1 264 ##**goto_dcm_pitch,  -0.03976**##
fwilde 3.1 265 )))|(((
fwilde 4.1 266 move 2nd crystal pitch to -0.03976 deg
fwilde 3.1 267 )))|(((
fwilde 4.1 268 absolute [ deg ]
fwilde 1.1 269 )))
fwilde 3.1 270 |(((
fwilde 46.1 271 ##**reflex_opt**##
fwilde 3.1 272 )))|(((
fwilde 4.1 273 move 2nd crystal pitch to optimal flux position
fwilde 3.1 274 )))|(((
275 \\
276 )))
fwilde 26.1 277 |(((
fwilde 46.1 278 ##**gap, 0.01**##
fwilde 26.1 279 )))|(((
fwilde 46.1 280 move undulator gap relative by 0.01 mm
fwilde 26.1 281 )))|(((
282 relative [ mm ]
283 )))
fwilde 46.1 284 |(((
285 ##**goto_gap, 10.0**##
286 )))|(((
287 move undulator gap absolute to 10.0 mm
288 )))|(((
289 absolute [ mm ]
290 )))
fwilde 14.1 291
fwilde 35.1 292 == {{id name="IDLcheatsheet-Generalsyntax"/}}General syntax ==
fwilde 27.1 293
fwilde 46.1 294 (% class="wrapped relative-table" style="width: 45.5603%;" %)
fwilde 27.1 295 |=(((
296 Functionality
297 )))|=(((
298 IDL syntax
299 )))
300 |(((
fwilde 46.1 301 chaining commands
fwilde 27.1 302 )))|(((
303 command_1 **&** command_2 **&** ...
304 )))
305 |(((
306 absolute movement
307 )))|(((
308 **goto_**//motor//, position
309 )))
310 |(((
311 relative movement
312 )))|(((
313 //motor//, position
314 )))
315 |(((
316 current motor position
317 )))|(((
318 **pos_**//motor//()
319 )))
fwilde 45.1 320
321 == {{id name="IDLcheatsheet-BeamshutterandInterlockcontrol"/}}Beamshutter and Interlock control ==
322
fwilde 46.1 323 (% class="wrapped relative-table" style="width: 75.0455%;" %)
fwilde 45.1 324 |=(((
325 IDL command
326 )))|=(((
327 description
328 )))
329 |(((
fwilde 46.1 330 ##**bs_info**##
fwilde 45.1 331 )))|(((
332 prints an overview of the beamline beamshutter status
333 )))
334 |(((
fwilde 46.1 335 ##**bsoh_open / bsoh_close**##
fwilde 45.1 336 )))|(((
337 opens / closes the optics hutch beamshutter. Closing the OH beamshutter will close all following beamshutters (EH1, EH2)
338 )))
339 |(((
fwilde 46.1 340 ##**bseh1_open / bseh1_close**##
fwilde 45.1 341 )))|(((
342 opens / closes the EH1 beamshutter. Opening will open the OH beamshutter as well. Closing the OH beamshutter will the EH2 beamshutter as well
343 )))
344 |(((
fwilde 46.1 345 ##**bseh2_open / bseh2_close**##
fwilde 45.1 346 )))|(((
347 opens / closes the EH2 beamshutter. Openening will open the OH and EH1 beamshutters as well.
348 )))
349 |(((
fwilde 46.1 350 ##**ics_info**##
fwilde 45.1 351 )))|(((
352 prints an overview of the beamline interlock status
353 )))
354 |(((
fwilde 46.1 355 ##**ics_break_oh**##
fwilde 45.1 356 )))|(((
357 closes all P05 beamshutters and breaks OH door interlock. P06 beamshutter must be closed for this command to work!
358 )))
359 |(((
fwilde 46.1 360 ##**ics_break_eh1**##
fwilde 45.1 361 )))|(((
362 closes EH1 beamshutter (and EH2 beamshutter  if open) and breaks EH1 door interlock
363 )))
364 |(((
fwilde 46.1 365 ##**ics_break_eh2**##
fwilde 45.1 366 )))|(((
367 closes EH2 beshutter and breaks EH2 door interlock
368 )))