diff --git a/docs/_static/Binder-instructions.pdf b/docs/_static/Binder-instructions.pdf index fba78da..6475354 100644 Binary files a/docs/_static/Binder-instructions.pdf and b/docs/_static/Binder-instructions.pdf differ diff --git a/docs/automation.rst b/docs/automation.rst index 61a80af..1f9b365 100644 --- a/docs/automation.rst +++ b/docs/automation.rst @@ -325,6 +325,7 @@ explicit arguments for the filled-in spreadsheet cells. yield from xafs('MnFewheel.ini', filename='Fe-Spessartine', sample='Mn3Al2(SiO4)3', comment='Grants Mining District; New Mexico') close_last_plot() +.. _auto_linkam: Linkam stage automation ----------------------- @@ -375,6 +376,8 @@ names. using the Linkam stage. Link to the `Linkam spreadsheet `_ +.. _auto_lakeshore: + LakeShore/Displex automation ---------------------------- @@ -438,6 +441,8 @@ cryostat. There are three power settings. The CSS screen for the LakeShore 331. +.. _auto_ga: + Glancing angle stage automation ------------------------------- diff --git a/docs/before.rst b/docs/before.rst index a0a05b3..8d9ce3b 100644 --- a/docs/before.rst +++ b/docs/before.rst @@ -182,9 +182,9 @@ knowledge of the equipment coming to the beamline. experiment. Equipment that cannot pass EEI may not be used at NSLS-II. -Note that some pre-approved electrical equipment (e.g., potentiostat, -heaters, temperature meters, and controllers) is available at the -beamline. +Note that some already-approved electrical equipment (e.g., +potentiostat, heaters, cryostats, temperature controllers, sample +spinners, and more) is available at the beamline. Research Equipment Pool diff --git a/docs/cheatsheet.rst b/docs/cheatsheet.rst index 3bba406..932a618 100644 --- a/docs/cheatsheet.rst +++ b/docs/cheatsheet.rst @@ -49,10 +49,10 @@ Most common commands Move TO an energy value ``RE(mv(xafs_y, ))`` - Move any named motor TO a position (``xafs_y`` is an example) + Move any named motor TO a position (``xafs_y`` is an example,see :numref:`Section %s `) ``RE(mvr(xafs_y, ))`` - Move any named motor BY an amount (``xafs_y`` is an example) + Move any named motor BY an amount (``xafs_y`` is an example, see :numref:`Section %s `) ``RE(change_edge('Xx'))`` setup beamline for an absorption edge, ``Xx`` = 1- or 2-letter symbol, @@ -185,10 +185,12 @@ engine will complain with this hint: +------------------------------------------+----------------------------------------------------------------------------+ | |mquad| |mquad| |mquad| |mquad| |mquad| **Glancing angle stage** | +------------------------------------------+----------------------------------------------------------------------------+ - | ``RE(ga.to(N))`` | move glancing angle stage to sample N (1 |le| N |le| 8) + start spinner | + | ``RE(ga.to(N))`` | move stage to sample N (1 |le| N |le| 8) + start spinner | +------------------------------------------+----------------------------------------------------------------------------+ | ``RE(ga.auto_align(pitch))`` | automatically align glancing angle stage and move to pitch | +------------------------------------------+----------------------------------------------------------------------------+ + | ``RE(ga.flatten())`` | return to the flat position found during ``auto_align()`` | + +------------------------------------------+----------------------------------------------------------------------------+ | |mquad| |mquad| |mquad| |mquad| |mquad| **Linkam stage** | +------------------------------------------+----------------------------------------------------------------------------+ | ``RE(mv(linkam, T))`` | move Linkam stage to temperature T | @@ -213,7 +215,7 @@ engine will complain with this hint: +------------------------------------------+----------------------------------------------------------------------------+ | |mquad| |mquad| |mquad| |mquad| |mquad| **Reference wheel** | +------------------------------------------+----------------------------------------------------------------------------+ - | ``RE(reference('Xx'))`` | Move to reference 'Xx' | + | ``RE(reference('Xx'))`` | Move to reference element 'Xx' | +------------------------------------------+----------------------------------------------------------------------------+ | |mquad| |mquad| |mquad| |mquad| |mquad| **Get help** | +------------------------------------------+----------------------------------------------------------------------------+ @@ -267,11 +269,10 @@ Vertical center ``slits3.vcenter`` (nominally 0 mm) The vertical center should never be changed. Instead, align the - slits using ``dm3_bct`` and the ``slit_height()`` plan + slits by moving ``dm3_bct`` or running the ``slit_height()`` plan (:numref:`Section %s `) - Example movement: ``RE(mv(slits3.vsize, 0.5))`` Individual slits are named ``slits3.top``, ``slits3.bottom``, diff --git a/docs/data.rst b/docs/data.rst index ff2fca9..0cf82fb 100644 --- a/docs/data.rst +++ b/docs/data.rst @@ -22,42 +22,84 @@ Yubi key. The beamline operator account does not have access to user's data. -This section of the beamline manual explains how to access you data +This section of the beamline manual explains how to access your data during and after your experiment. Downloading data ---------------- -You will need an sftp client. The recommendation of BMM staff is to -use `FileZilla `__. This is a free -program available for Windows, Apple, and Linux. The explanation -below will be made using FileZilla. +SFTP Client +~~~~~~~~~~~ -:Windows users: Another option is `WinSCP - `__. Be careful at - the WinSCP website. You will see multiple pop-up adds - with download links to other software packages. Be - sure to click on the link to the WinSCP package. +You will need an sftp client. -:Mac users: Another options are `Termius - `__ - and `Flow `__. ++ **Cross-platform:** `FileZilla `__. + This is a free program available for Windows, Apple, and Linux. The + explanation below will be made using FileZilla. -:Linux users: Your desktop file manager likely has an sftp client - built in. Try typing - ``sftp://@sftp.nsls2.bnl.gov`` into your file - manager. ++ **Windows users:** A popular option is `WinSCP + `__. Be careful at the WinSCP + website. You will see multiple pop-up adds with download links to + other software packages. Be careful to click on the link to the + WinSCP package. -.. admonition:: The short version ++ **Mac users:** Other options are `Termius + `__ + and `Flow `__. - #. Connect to sftp://sftp.nsls2.bnl.gov ++ **Linux users:** Your desktop file manager likely has an sftp client + built in. Try typing + ``sftp://@sftp.nsls2.bnl.gov`` into your file + manager or creat a new network drive using ``ssh`` and + ``sftp.nsls2.bnl.gov``. + + `sshfs `__ is an + excellent solution. ``sshfs`` allows you to easily + mount the remote sftp site to a local mount point, + allowing you to browse the remote site as if it were a + local folder. For example, I do the following to mount + the data folder locally on my laptop: + + .. code-block:: bash + + sshfs bravel@sftp.nsls2.bnl.gov:/nsls2/data/bmm ~/mnt/bmm -o follow_symlinks + + and this to unmount the data folder + + .. code-block:: bash + + fusermount -u mnt/bmm + + + +The Short Version +~~~~~~~~~~~~~~~~~ + + +.. admonition:: Executive Summary + + #. Connect to sftp.nsls2.bnl.gov in your sftp client #. Authenticate using your BNL username/password and DUO two-factor authentication #. Navigate to ``/nsls2/data/bmm/proposals/``, then to the cycle folder corresponding to the date of your experiment, then to the - folder with your proposal number. + folder with your proposal number. So, something like + ``/nsls2/data/bmm/proposals/2024-2/pass-333333``. #. Transfer your data to your local computer. +If you preserve the folder structure from the remote host, the +:numref:`the dossier files (Section %s) ` will work as +expected. + +The ``assets`` folder contains raw image and HDF5 from your +experiment. Those files will have database-friendly but +user-unfriendly names. The HDF5 files are rather large and will take +some time to download. The can skip downloading the ``assets`` folder +if you do not plan on using the HDF5 files directly. + + +A Guide with Pictures +~~~~~~~~~~~~~~~~~~~~~ What follows is a guide with screenshots of using FileZilla to connect to the SFTP download site and begin downloading data. @@ -179,25 +221,64 @@ Your data is now on your computer. Yay! Using the VDI virtual Desktop ----------------------------- -.. todo:: Need to flesh this out. +.. todo:: Details needed Accessing data from the beamline computers ------------------------------------------ -In a terminal window ``su - ``, enter password and respond -to DUO push. +Under the new data security regime, the beamline computer does not +have normal access to your data. This is because all users run their +experiment as the beamline operator. If the beamline operator |nd| +``xf06bm`` |nd| could see data, than any could look at anyone's data. + +Instead, data are stored on central storage with read permission +granted to everyone named on the user proposal. In this way, data are +secured from other users and access to the data requires +authentication. + +To look at your data while at the beamline, do the following + ++ Open a terminal window. Normally a terminal window with a white + background is open on screen and intended for this purpose. + ``bsui`` is typically run from a window with a black background, so + the white background is meant as a visual cue indicating that it is + the place for data access. + ++ In that terminal window type + + .. code-block:: bash -``cd`` to ``/nsls2/data3/bmm/proposals/2024-2/pass-123456``, replacing -``2024-2`` with the cycle of your visit and ``123456`` with your -proposal number. + ``su - `` -``dathena`` at the command line to use Athena. Or use jupyter. + replacing ```` with your actual user name. Enter your + password and respond to DUO push. ++ ``cd`` to ``/nsls2/data3/bmm/proposals/2024-2/pass-123456``, replacing + ``2024-2`` with the cycle of your visit and ``123456`` with your + proposal number. + +Athena can be launched from the command line. The best way to do this +is to type + +.. code-block:: bash + + dathena 2&>1 & + +at the command line. That incantation will suppress spurious screen +messages and put Athena into the background so you can continue using +the command line. From there, simply use `Athena's File menu +`__ +to load data from your proposal folder. Accessing data via Tiled ------------------------ -.. todo:: Need to flesh this out. +.. todo:: Details needed + +Accessing data via Jupyter +-------------------------- + +.. todo:: Details needed diff --git a/docs/instruments.rst b/docs/instruments.rst index 10d2aa8..8606271 100644 --- a/docs/instruments.rst +++ b/docs/instruments.rst @@ -78,15 +78,19 @@ is available. Please note: -+ BMM offers only limited integration of data output into the beamline - workflow. ++ BMM offers only limited integration of data output into the XAS end + station workflow. + BMM has limited options for mounting and integrating the Pilatus into your experiments. + This Pilatus has a rather small detection area and a rather large pixel size (about 170 microns). -BMM does not have access to a larger/better/faster detector and has no -plans of getting a new area detector in the near future. +BMM does not currently have access to a larger/better/faster detector. + +Using CHIPS Act funding, we are in the process of procuring a new +large area detector for use with the XRD end station. This detector +will eventually become available for experiments at the XAS end +station, perhaps by 2026. .. _sample-wheel: @@ -151,6 +155,12 @@ from a glove box during sample preparation. +We consider these *ex situ* holders to be consumable items. We will +happily mail several of them to you prior to your experiment so that +you can arrive with samples pre-mounted and ready to be measured. You +may keep the sample holders to use again the next time you visit BMM. + + Electrochemistry ---------------- @@ -172,14 +182,22 @@ into and out of the beam. The BioLogic VSP-300 Potentiostat We run the vendor-supplied control software on a Windows 10 instance -running in a virtual container. +running in a virtual container. Your electrochemical data will be +saved to the ``assets/vsp300-1/`` folder in your :numref:`proposal +folder (Section %s) `. + +.. note:: -We do not, at this time, have full EPICS-level control of the -potentiostat, limiting the level of automation and integration with -the rest of the beamline. + We do not, at this time, have EPICS-level control of the + potentiostat. This limits the level of automation and integration + with the rest of the beamline. -Also, BMM does not provide electrochemical cells. The user is -expected to bring their own cells. + We hope to implement external triggering and collection of current + and voltage values over the August 2024 shutdown. This may become + available in the 2024-3 cycle. + +BMM does not provide electrochemical cells. The user is expected to +bring their own cells. Temperature control @@ -218,6 +236,9 @@ about 14 hours and is the standard choice. The advantage of the smaller dewar is that it is smaller and might be needed for complicated setups were space is at a premium. +Extensive :numref:`automation (Section %s) ` is available +for the Linkam stage. + Displex Cryostat ~~~~~~~~~~~~~~~~ @@ -248,20 +269,23 @@ due to the construction of the vacuum shroud. used to control temperature for the cryostat shown to the left. +Extensive :numref:`automation (Section %s) ` is available +for the Displex using the LakeShore 331 temperature controller.. .. _glancing-angle-stage: Glancing angle and thin film stage ---------------------------------- -We use this glancing angle stage for high throughput studies of thin +We use this glancing angle stage for high-throughput studies of thin film and other flat samples. The apparatus shown below rests on a rotation stage for moving up to 8 samples into and out of the beam. The rotation stage sits on a tilt stage, allowing fine control of the incident angle. Each sample position is a spinner, which is used to suppress diffraction from the substrate. -In most cases, sample translation and sample alignment is fully -automated. + +In most cases, sample translation and sample alignment is +:numref:`fully automated (Section %s) ` .. _fig-glancinganglestageINST: .. figure:: _images/glancing_angle_stage.jpg @@ -278,17 +302,36 @@ which the point of the shallow angle is to spread the beam out over the full length of the sample. This significantly increases the number of atoms involved in the measurement. + .. _tilt-stage: Tilt and rotation stages ------------------------ -`Huber 2-Circle Segment 5203.10 `__ +Also available are a `Huber pitch and roll stage +`__ +in the form of an Eulerian cradle and a `compact rotary stage +`__. + +.. subfigure:: AB + :layout-sm: AB + :subcaptions: above + :gap: 8px + :name: fig-pitchroll_rotation + :class-grid: outline + + .. image:: _images/dummy.png + + .. image:: _images/dummy.png + + (Left) The pitch and roll stage. (Right) The small rotation stage + -Tilt stage mechanical drawing: :download:`PDF <_static/5203_10--32263_131839.pdf>` +Here are mechanical drawings, including bolt hole patterns. Consult +these if designing an instrument intended to be mounted for rotation, +pitch, or roll. ++ Tilt stage mechanical drawing: :download:`PDF <_static/5203_10--32263_131839.pdf>` -`Newmark RT-2 Motorized Rotary Stage -`__ ++ Rotation stage mechanical drawing: :download:`JPG <_static/RT-2-11-DIMENSIONS.JPG>` -Rotation stage mechanical drawing: :download:`JPG <_static/RT-2-11-DIMENSIONS.JPG>` diff --git a/docs/intro.rst b/docs/intro.rst index eb2516d..bbb0e7d 100644 --- a/docs/intro.rst +++ b/docs/intro.rst @@ -196,7 +196,7 @@ physically at the beamline. The measured data along with the entire contents of the :numref:`measurement dossier (Section %s) ` will be synched to Google Drive. At the beginning of the experiment (in fact, when -the ``start_experiment()`` command described in the next session is +the ``begin_experiment()`` command described in the next session is run), a folder for the experiment will be created on Google Drive. The contents of the user's data folder will be synched frequently to that folder throughout the course of the experiment, including @@ -224,7 +224,7 @@ an invitation to share the Google Drive. electrochemistry experiments using the BioLogic potentiostat. When starting a new experiment, do this:: - BMMuser.start_experiment(name='Betty Cooper', date='2019-02-29', gup=123456, saf=654321, echem=True) + BMMuser.begin_experiment(name='Betty Cooper', date='2019-02-29', gup=123456, saf=654321, echem=True) The ``echem`` argument, when set to ``True`` tells the system to look for data from the potentiostat in the appropriate place on the Windows diff --git a/docs/linescans.rst b/docs/linescans.rst index af2905e..d36211d 100644 --- a/docs/linescans.rst +++ b/docs/linescans.rst @@ -34,16 +34,7 @@ this:: The arguments are: #. The motor axis to be scanned. This can be either the motor's - BlueSky name or the nickname string from :numref:`Table %s - `. So, these are equivalent:: - - RE(linescan('x', 'it', -4, 4, 81)) - RE(linescan('xafs', it_x, -4, 4, 81)) - - For a motor that does not have a nickname, you must use the ophyd - symbol, as in:: - - RE(linescan(slits3.outboard, 'i0', -1, 1, 21)) + name in Bluesky. #. A string indicating the detector for the plotted signal. The choices are: @@ -71,12 +62,16 @@ will sort it out for you. These are equivalent:: At the end of the scan, you are prompted with the following question:: - Pluck motor position from the plot? [Yn] + Pluck motor position from the plot? yes: y the Enter (or just Enter), no: n then Enter If you answer :key:`y` then :key:`Enter`, or simply hit :key:`Enter`, you will be prompted to single click the left mouse -button :mark:`leftclick,.` on the plot. The motor that was scanned -will then move to the motor position you clicked on. +button :mark:`leftclick,.` on the plot. + +You will then be prompted a second time with the value you selected. + +The motor that was scanned will then move to the motor position you +clicked on. You can skip the "click for motor position" step by typing :key:`n` and hitting :key:`Enter`. @@ -102,6 +97,10 @@ subsequent motion on the most recent plot. Revisit a line scan ~~~~~~~~~~~~~~~~~~~ +.. admonition:: Needs to be verified + + Does this still work post-data-security? + Retrieve data from the database using the database key or scan ID:: ls2dat('/path/to/output.file', '') @@ -288,6 +287,10 @@ then do a movement command:: Revisit an area scan ~~~~~~~~~~~~~~~~~~~~ +.. admonition:: Needs to be verified + + Does this still work post-data-security? + Retrieve data from the database using the database key or scan ID:: as2dat('/path/to/output.file', '') diff --git a/docs/log.rst b/docs/log.rst index 5bc90a2..85b4060 100644 --- a/docs/log.rst +++ b/docs/log.rst @@ -30,7 +30,7 @@ Log file At the beginning of a user experiment, run something like this command:: - BMMuser.start_experiment('Betty Cooper', date='2019-02-28', gup=123456, saf=654321) + BMMuser.begin_experiment('Betty Cooper', date='2019-02-28', gup=123456, saf=654321) Among other things, this instruments the logger to maintain a log file specifically for the current experiment. The logger also maintains a @@ -141,7 +141,7 @@ function for each available camera. These are recorded to the scan's Recording videos ---------------- -.. todo:: Does this actually work? +.. caution:: Does this actually work? The USB cameras can be used to record short videos of whatever they are pointing at. The resulting video will be saved to a `.avi diff --git a/docs/manage.rst b/docs/manage.rst index 29b28ea..8e479f4 100644 --- a/docs/manage.rst +++ b/docs/manage.rst @@ -25,7 +25,7 @@ Starting and ending an experiment When a new experiment begins, run the command:: - BMMuser.start_experiment(name='Betty Cooper', date='2019-02-29', gup=123456, saf=654321) + BMMuser.begin_experiment(name='Betty Cooper', date='2019-02-29', gup=123456, saf=654321) This will create that data folder and populate it with an :numref:`experimental log (Section %s) `, write a template for a @@ -36,13 +36,6 @@ set up :numref:`snapshot (Section %s) ` and :numref:`dossier (Section %s) ` folders, and perform other experiment start-up chores. -.. note:: - - In the near future, the ``start_experiment()`` command will grab - metadata from PASS (or UPS, or whatever) and set access permissions - on data. When that happens, the only argument needed will be the - SAF number. - The ``name`` should be the PI's full name, preferably transliterated into normal ASCII. The ``date`` should be the starting day of the experiment in the ``YYYY-MM-DD`` format. The ```GUP`` and ``SAF`` @@ -549,18 +542,8 @@ Starting the virtual machine Transferring echem data ~~~~~~~~~~~~~~~~~~~~~~~ -The VM is on the INST network, thus data must be transferred to a -machine on the INST network. This means an IOC server needs to be used -for data transfer. Here is how this can be done using the bravel -account. - -+ Open a CMD window on the VM -+ cd to the location of the current user's Echem data -+ do something like ``scp * bravel@10.68.42.26:/nsls2/users/bravel/temp_folder`` -+ on IOC2, zip up the temp_folder and transfer the file to the xf06bm - user via the ``/tmp/`` folder. - -Obviously, this needs streamlining. +.. todo:: Document connecting VM to central storage in the + post-data-sec era Calibrate the mono @@ -731,23 +714,19 @@ Things to install from git Also do ``cd ~/bin`` and ``ln -s ~/.ipython/profile_collection/startup/consumer/run-consumer`` -Data collection folders -~~~~~~~~~~~~~~~~~~~~~~~ +Workspace folders +~~~~~~~~~~~~~~~~~ Make the local data collection folders. The -:numref:`BMMuser.start_experiment() command (Section %s) ` +:numref:`BMMuser.begin_experiment() command (Section %s) ` will make symlinks under those folders to the correct place on central storage. .. code-block:: text - mkdir ~/Data - mkdir ~/Data/Visitors - mkdir ~/Data/Staff - -Next need to recreate historical symlinks using the correct tool. + mkdir ~/Workspace + mkdir ~/Workspace/Visitors + mkdir ~/Workspace/Staff -.. todo:: capture the ``make_links.py`` script and the ``ls-lR`` - files. Also need to automate generating the ``ls-lR`` files. diff --git a/docs/motors.rst b/docs/motors.rst index 39a9d0a..fae8f51 100644 --- a/docs/motors.rst +++ b/docs/motors.rst @@ -59,9 +59,10 @@ the bsui command line. Here is an example: Sample stages ------------- -These stages sit on top of the XAFS optical table. The nickname is a -short string that can be used in the ``linescan()`` plan and certain -other places instead of writing out the BlueSky name for the motor. +.. |widdershins| replace:: `widdershins `__ + + +These stages sit on top of the XAFS optical table. .. table:: XAFS sample stages :name: xafs-stages @@ -73,14 +74,14 @@ other places instead of writing out the BlueSky name for the motor. ``xafs_x`` linear mm main sample stage |plus| outboard, - inboard ``xafs_y`` linear mm main sample stage |plus| up, - down ``xafs_det`` linear mm detector mount |plus| away from sample, - closer - ``xafs_wheel`` rotary degrees *ex situ* sample wheel |plus| clockwise, - widdershins + ``xafs_wheel`` rotary degrees *ex situ* sample wheel |plus| clockwise, - |widdershins| ``xafs_linxs`` linear mm ref wheel vertical |plus| up, - down - ``xafs_ref`` rotary degrees reference stage |plus| clockwise, - widdershins + ``xafs_ref`` rotary degrees reference stage |plus| clockwise, - |widdershins| ``xafs_refx`` linear mm reference stage |plus| outboard, - inboard ``xafs_refy`` linear mm reference stage |plus| up, - down ``xafs_pitch`` tilt degrees Huber tilt stage |plus| more positive ``xafs_roll`` tilt degrees Huber tilt stage |plus| more positive - ``xafs_rots`` rotary degrees small rotary stage + ``xafs_rots`` rotary degrees small rotary stage |plus| clockwise, - |widdershins| ============== =========== ========= ======================= ===================================== Configuration and position of the motors can be queried easily. In @@ -88,7 +89,7 @@ the following examples, the ``xafs_y`` motor is used. The commands are the same for all sample stage motors. **Querying position** - The position of any motor can be queried with a command line like :: + The position of a motor can be queried with a command line like :: %w xafs_y @@ -111,7 +112,7 @@ are the same for all sample stage motors. is the absolute move command. The numerical argument is the position to which the motor will move. - All movements are logged in the :numref:`experimental log (Section %s) ` +.. All movements are logged in the :numref:`experimental log (Section %s) ` **Moving to a new position in a plan** To move a sample stage as part of a :numref:`macro (Section %s) @@ -158,6 +159,8 @@ are the same for all sample stage motors. (A few of these |nd| Ba, Os, Ir |nd| are missing as of 2 November, 2023. We are working to obtain the missing ones.) + :numref:`See Section %s for a full explanation of the the reference wheel contents. ` + `Here is a complete list of standards `__ in BMM's collection. These standards are mounted on sample wheels diff --git a/docs/pds.rst b/docs/pds.rst index bbf362b..673201d 100644 --- a/docs/pds.rst +++ b/docs/pds.rst @@ -187,13 +187,19 @@ where, ``True``: optimize slit height; ``False``: skip ``slit_hight()`` scan. Default is ``True``. Skipping this is rarely a good idea. +``no_ref`` + ``True``: skip moving to the correct reference foil. Default is + ``False``. Used when the reference stages have been repurposed + for other use in an experiment. + ``calibrating`` ``True``: used when performing beamline maintenance. Default is ``False``. Rarely used. ``target`` The energy above e0 at which to perform the rocking curve scan. - Default is 300. + Default is 300. Care is taken not to exceed an L\ :sub:`2` edge + energy (or L\ :sub:`1` when measuring L\ :sub:`2`). Except for ``edge`` and ``focus``, most of those parameters are rarely diff --git a/docs/xafs.rst b/docs/xafs.rst index 91ffa87..5790779 100644 --- a/docs/xafs.rst +++ b/docs/xafs.rst @@ -175,7 +175,7 @@ More options There are several aspects of the XAFS scan plan that can be enabled or disabled from the INI file. The sample INI file written by the -:numref:`BMMuser.start_experiment() command (Section %s) ` +:numref:`BMMuser.begin_experiment() command (Section %s) ` does not include these options, but they can be added to the INI file if needed. @@ -253,9 +253,10 @@ second integration at k=10). .. code-block:: ini - bounds = -200 -30 -2 15.5 25, '14k' - steps = 10 2 0.3 0.3 '0.05k' - times = 0.5 0.5 0.5 '0.25k' '0.25k' + # 1/2 sec base, k/4 time + bounds = -200 -30 -2 15.5 25 14k + steps = 10 2 0.3 0.3 0.05k + times = 0.5 0.5 0.5 0.25k 0.25k Here are parameters for a 1 second base integration time transitioning into k-weighted integration multiplied by 1/4 (e.g. 2.5 second @@ -265,9 +266,10 @@ between good statistics and reasonable scan time (about 17 minutes). .. code-block:: ini - bounds = -200 -30 -2 25 61 '14k' - steps = 10 2 0.3 '0.05k' '0.05k' - times = 1 1 1 1 '0.25k' + # 1 sec base, k/2 time + bounds = -200 -30 -2 25 61 14k + steps = 10 2 0.3 0.05k 0.05k + times = 1 1 1 1 0.25k Here are parameters for a 1/2 second base integration time transitioning into k-weighted integration multiplied by 1/2 (e.g. 5 @@ -277,9 +279,10 @@ low-concentration or otherwise noisy EXAFS data.. .. code-block:: ini - bounds = -200 -30 -2 3.81 25 '14k' - steps = 10 2 0.3 0.3 '0.05k' - times = 0.5 0.5 0.5 '0.5k' '0.5k' + # 1/2 sec base, k/2 time + bounds = -200 -30 -2 3.81 25 14k + steps = 10 2 0.3 0.3 0.05k + times = 0.5 0.5 0.5 0.5k 0.5k Here are parameters for a 1 second base integration time transitioning into k-weighted integration multiplied by 1/2 (e.g. 5 second @@ -289,9 +292,10 @@ otherwise noisy EXAFS data.. .. code-block:: ini - bounds = -200 -30 -2 15.3 25 '14k' - steps = 10 2 0.3 0.3 '0.05k' - times = 1 1 1 '0.5k' '0.5k' + # 1 sec base, k/2 time + bounds = -200 -30 -2 15.3 25 14k + steps = 10 2 0.3 0.3 0.05k + times = 1 1 1 0.5k 0.5k @@ -572,6 +576,10 @@ BlueSky Revisit an XAFS scan -------------------- +.. admonition:: Needs to be verified + + Does this still work post-data-security? + Grab a database entry and write it to an XDI file:: db2xdi('/path/to/data/file', '') @@ -753,14 +761,14 @@ elsewhere is captured in the output XDI file. .. todo:: Document use of ``XDI_record`` dictionary to control which xafs motors and/or temperatures get recorded in the XDI header -.. admonition:: New as of 27 February, 2024 +.. admonition:: New as of 27 February, 2024 (broken 22 July) - There is a new XDI header in use in BMM's datafiles: - ``Scan.hdf5file``. This captures the name of the - associated HDF5 file for fluorescence XAS measurements. + There is a new XDI header in use in BMM's datafiles: + ``Scan.hdf5file``. This captures the name of the associated HDF5 + file for fluorescence XAS measurements. - The path and file name are given relative to the assets - location on central storage: ``/nsls2/data3/bmm/assets/xspress3/``. + The path and file name are given relative to the assets location on + central storage: ``/nsls2/data3/bmm/assets/xspress3/``. .. code-block:: text @@ -1119,32 +1127,32 @@ sample being measured, of course). The reference wheel at BMM -.. |Gaoxide| replace:: Ga\ :sub:`2`\ O\ :sub:`3` -.. |Geoxide| replace:: GeO\ :sub:`2` -.. |Asoxide| replace:: As\ :sub:`2`\ O\ :sub:`3` -.. |Bioxide| replace:: BiO\ :sub:`2` -.. |Yoxide| replace:: Y\ :sub:`2`\ O\ :sub:`3` -.. |Srtitanate| replace:: SrTiO\ :sub:`3` -.. |Csnitrate| replace:: CsNO\ :sub:`3` +.. |Gaoxide| replace:: Ga\ :sub:`2`\ O\ :sub:`3` +.. |Geoxide| replace:: GeO\ :sub:`2` +.. |Asoxide| replace:: As\ :sub:`2`\ O\ :sub:`3` +.. |Bioxide| replace:: BiO\ :sub:`2` +.. |Yoxide| replace:: Y\ :sub:`2`\ O\ :sub:`3` +.. |Srtitanate| replace:: SrTiO\ :sub:`3` +.. |Csnitrate| replace:: CsNO\ :sub:`3` .. |Lahydroxide| replace:: La(OH)\ :sub:`3` -.. |Ceoxide| replace:: Ce\ :sub:`2`\ O\ :sub:`3` -.. |Proxide| replace:: Pr\ :sub:`6`\ O\ :sub:`11` -.. |Ndoxide| replace:: Nd\ :sub:`2`\ O\ :sub:`3` -.. |Smoxide| replace:: Sm\ :sub:`2`\ O\ :sub:`3` -.. |Euoxide| replace:: Eu\ :sub:`2`\ O\ :sub:`3` -.. |Gdoxide| replace:: Gd\ :sub:`2`\ O\ :sub:`3` -.. |Tboxide| replace:: Tb\ :sub:`4`\ O\ :sub:`9` -.. |Dyoxide| replace:: Dy\ :sub:`2`\ O\ :sub:`3` -.. |Hooxide| replace:: Ho\ :sub:`2`\ O\ :sub:`3` -.. |Eroxide| replace:: Er\ :sub:`2`\ O\ :sub:`3` -.. |Tmoxide| replace:: Tm\ :sub:`2`\ O\ :sub:`3` -.. |Yboxide| replace:: Yb\ :sub:`2`\ O\ :sub:`3` -.. |Luoxide| replace:: Lu\ :sub:`2`\ O\ :sub:`3` +.. |Ceoxide| replace:: Ce\ :sub:`2`\ O\ :sub:`3` +.. |Proxide| replace:: Pr\ :sub:`6`\ O\ :sub:`11` +.. |Ndoxide| replace:: Nd\ :sub:`2`\ O\ :sub:`3` +.. |Smoxide| replace:: Sm\ :sub:`2`\ O\ :sub:`3` +.. |Euoxide| replace:: Eu\ :sub:`2`\ O\ :sub:`3` +.. |Gdoxide| replace:: Gd\ :sub:`2`\ O\ :sub:`3` +.. |Tboxide| replace:: Tb\ :sub:`4`\ O\ :sub:`9` +.. |Dyoxide| replace:: Dy\ :sub:`2`\ O\ :sub:`3` +.. |Hooxide| replace:: Ho\ :sub:`2`\ O\ :sub:`3` +.. |Eroxide| replace:: Er\ :sub:`2`\ O\ :sub:`3` +.. |Tmoxide| replace:: Tm\ :sub:`2`\ O\ :sub:`3` +.. |Yboxide| replace:: Yb\ :sub:`2`\ O\ :sub:`3` +.. |Luoxide| replace:: Lu\ :sub:`2`\ O\ :sub:`3` .. |Rbcarbonate| replace:: RbCO\ :sub:`3` -.. |Hfoxide| replace:: HfO\ :sub:`2` -.. |Taoxide| replace:: Ta\ :sub:`2`\ O\ :sub:`5` -.. |Reoxide| replace:: ReO\ :sub:`2` -.. |Ruoxide| replace:: RuO\ :sub:`2` +.. |Hfoxide| replace:: HfO\ :sub:`2` +.. |Taoxide| replace:: Ta\ :sub:`2`\ O\ :sub:`5` +.. |Reoxide| replace:: ReO\ :sub:`2` +.. |Ruoxide| replace:: RuO\ :sub:`2`