{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Output scan(s) to a SPEC data file." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One of the common concerns is how to access data from bluesky's database. The standard way is to replay the document stream from each of the scans through a bluesky callback that writes the data to the desired file format. Here, we write data to the SPEC file format.\n", "\n", "## Setup\n", "\n", "First, we must setup a bluesky session. We create a [temporary catalog](https://blueskyproject.io/databroker/how-to/file-backed-catalog.html?highlight=temporary#temporary-catalog) to store the data from this notebook's data collection." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "plt.ion()\n", "\n", "from bluesky import RunEngine, plans as bp\n", "from bluesky.callbacks.best_effort import BestEffortCallback\n", "import databroker\n", "\n", "cat = databroker.temp()\n", "RE = RunEngine({})\n", "RE.subscribe(cat.v1.insert)\n", "RE.subscribe(BestEffortCallback())" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "SPEC data files usually contain a list of all the motor positions at the start of each scan. Starting with apstools release 1.6.11, it became possible to have the list of all ophyd-labeled `motor` devices logged to a separate stream at the start of every scan. The next configuration will create a `label_start_motor` stream with the positions. The `SpecWriterCallback` will find this stream and record the motor names and values in the `#O` and `#P` control lines, respectively." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from apstools.plans import label_stream_wrapper\n", "\n", "def motor_start_preprocessor(plan):\n", " return label_stream_wrapper(plan, \"motor\", when=\"start\")\n", "\n", "RE.preprocessors.append(motor_start_preprocessor)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We need to create some scan data. We'll use Gaussian peak profile calculated in a _userCalc_ (`swait` record) and a motor from our EPICS IOC simulator `gp:`. Initialize the peak computation with some randomized parameters. The peak will be at some `motor` position between -1 .. +1. Print the actual values for our reference later on." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "calc = D*(0.95+E*RNDM)/exp(((A-b)/c)^2)\n", "A: x = gp:m1.RBV\n", "B: center = 0.21141204623628096\n", "C: width = 0.04939034587707944\n", "D: scale = 102214.12035478499\n", "E: noise= 0.05216222581266805\n" ] } ], "source": [ "from apstools.devices import UserCalcN, setup_gaussian_swait\n", "import numpy as np\n", "from ophyd import EpicsMotor, EpicsSignal\n", "\n", "IOC = \"gp:\"\n", "motor = EpicsMotor(f\"{IOC}m1\", name=\"motor\", labels=[\"motor\"])\n", "# define some extra motors to demonstrate #O & #P lines\n", "omega = EpicsMotor(f\"{IOC}m2\", name=\"omega\", labels=[\"motor\"])\n", "chi = EpicsMotor(f\"{IOC}m3\", name=\"chi\", labels=[\"motor\"])\n", "phi = EpicsMotor(f\"{IOC}m4\", name=\"phi\", labels=[\"motor\"])\n", "ttheta = EpicsMotor(f\"{IOC}m5\", name=\"ttheta\", labels=[\"motor\"])\n", "atth = EpicsMotor(f\"{IOC}m6\", name=\"atth\", labels=[\"motor\"])\n", "mx = EpicsMotor(f\"{IOC}m7\", name=\"mx\", labels=[\"motor\"])\n", "my = EpicsMotor(f\"{IOC}m8\", name=\"my\", labels=[\"motor\"])\n", "mz = EpicsMotor(f\"{IOC}m9\", name=\"mz\", labels=[\"motor\"])\n", "swait = UserCalcN(f\"{IOC}userCalc1\", name=\"swait\")\n", "det = EpicsSignal(swait.calculated_value.pvname, name=\"det\")\n", "\n", "motor.wait_for_connection()\n", "swait.wait_for_connection()\n", "det.wait_for_connection()\n", "\n", "setup_gaussian_swait(\n", " swait, motor.user_readback, \n", " center=-0.5 + np.random.uniform(), \n", " width=0.01 + 0.2*np.random.uniform(), \n", " noise=0.05*(.95 + .1*np.random.uniform()),\n", " scale=100_000*(.95 + .1*np.random.uniform()), \n", " )\n", "\n", "print(f\"calc = {swait.calculation.get()}\")\n", "print(f\"A: x = {swait.channels.A.input_pv.get()}\")\n", "print(f\"B: center = {swait.channels.B.input_value.get()}\")\n", "print(f\"C: width = {swait.channels.C.input_value.get()}\")\n", "print(f\"D: scale = {swait.channels.D.input_value.get()}\")\n", "print(f\"E: noise= {swait.channels.E.input_value.get()}\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, run the scan with the RunEngine:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "Transient Scan ID: 1 Time: 2023-02-14 13:16:56\n", "Persistent Unique Scan ID: '3df743d0-0768-467a-b5e8-1a4f84ad9c3d'\n", "New stream: 'label_start_motor'\n", "New stream: 'primary'\n", "+-----------+------------+------------+------------+\n", "| seq_num | time | motor | det |\n", "+-----------+------------+------------+------------+\n", "| 1 | 13:17:00.7 | -1.20000 | 0.00000 |\n", "| 2 | 13:17:01.1 | -1.14000 | 0.00000 |\n", "| 3 | 13:17:01.4 | -1.08000 | 0.00000 |\n", "| 4 | 13:17:01.7 | -1.02000 | 0.00000 |\n", "| 5 | 13:17:02.0 | -0.96000 | 0.00000 |\n", "| 6 | 13:17:02.3 | -0.90000 | 0.00000 |\n", "| 7 | 13:17:02.6 | -0.84000 | 0.00000 |\n", "| 8 | 13:17:02.9 | -0.78000 | 0.00000 |\n", "| 9 | 13:17:03.2 | -0.72000 | 0.00000 |\n", "| 10 | 13:17:03.5 | -0.66000 | 0.00000 |\n", "| 11 | 13:17:03.8 | -0.60000 | 0.00000 |\n", "| 12 | 13:17:04.1 | -0.54000 | 0.00000 |\n", "| 13 | 13:17:04.4 | -0.48000 | 0.00000 |\n", "| 14 | 13:17:04.7 | -0.42000 | 0.00000 |\n", "| 15 | 13:17:05.0 | -0.36000 | 0.00000 |\n", "| 16 | 13:17:05.3 | -0.30000 | 0.00000 |\n", "| 17 | 13:17:05.6 | -0.24000 | 0.00000 |\n", "| 18 | 13:17:05.9 | -0.18000 | 0.00000 |\n", "| 19 | 13:17:06.2 | -0.12000 | 0.00000 |\n", "| 20 | 13:17:06.5 | -0.06000 | 0.00000 |\n", "| 21 | 13:17:06.8 | 0.00000 | 0.00110 |\n", "| 22 | 13:17:07.1 | 0.06000 | 8.35809 |\n", "| 23 | 13:17:07.4 | 0.12000 | 3215.35530 |\n", "| 24 | 13:17:07.7 | 0.18000 | 66230.81346 |\n", "| 25 | 13:17:08.0 | 0.24000 | 73111.10621 |\n", "| 26 | 13:17:08.3 | 0.30000 | 4062.48995 |\n", "| 27 | 13:17:08.6 | 0.36000 | 11.45303 |\n", "| 28 | 13:17:08.9 | 0.42000 | 0.00181 |\n", "| 29 | 13:17:09.2 | 0.48000 | 0.00000 |\n", "| 30 | 13:17:09.5 | 0.54000 | 0.00000 |\n", "| 31 | 13:17:09.8 | 0.60000 | 0.00000 |\n", "| 32 | 13:17:10.1 | 0.66000 | 0.00000 |\n", "| 33 | 13:17:10.4 | 0.72000 | 0.00000 |\n", "| 34 | 13:17:10.7 | 0.78000 | 0.00000 |\n", "| 35 | 13:17:11.0 | 0.84000 | 0.00000 |\n", "| 36 | 13:17:11.3 | 0.90000 | 0.00000 |\n", "| 37 | 13:17:11.6 | 0.96000 | 0.00000 |\n", "| 38 | 13:17:11.9 | 1.02000 | 0.00000 |\n", "| 39 | 13:17:12.2 | 1.08000 | 0.00000 |\n", "| 40 | 13:17:12.5 | 1.14000 | 0.00000 |\n", "| 41 | 13:17:12.8 | 1.20000 | 0.00000 |\n", "+-----------+------------+------------+------------+\n", "generator scan ['3df743d0'] (scan num: 1)\n", "\n", "\n", "\n" ] }, { "data": { "text/plain": [ "('3df743d0-0768-467a-b5e8-1a4f84ad9c3d',)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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9FFRUZGGDRsmSaqvr9eOHTv061//WpK0YMECTZs2ze24wYMH65lnntHtt9/+XaYGAAAAAAAAAOggvNpIb6mEhATdcsstevDBB7VmzRpJ0kMPPaQf/ehHuvrqq11x8fHxysvL049//GNZLBbNnTtXS5Ys0ZVXXqkrr7xSS5YsUbdu3TRhwgRJZ59ab+4FozExMYqLi2ubyQEAAAAAAAAA2jWfaKRL0osvvqg5c+YoPT1dknTHHXdo5cqVbjEHDhyQw+Fwff6v//ovnT59WjNmzNCXX36pESNGaPv27erRo0eb5g4AAAAAAAAA8F0WwzAMbyfh65xOp2w2mxwOh0JCQrydDgCgnaNutE/cFwCAJ6gb7RP3BQDgCU/qRpc2ygkAAAAAAPiQ/Px8xcXFKTAwUElJSSouLr5gbElJidLS0hQaGqqgoCDFx8frmWeecYt59dVXlZycrJ49eyo4OFhDhw7VCy+84BazaNEiWSwWt625JVkBAGhrPrO0CwAAAAAAaBubN2/W3LlzlZ+fr7S0NK1Zs0YZGRnav3+/YmJimsQHBwdr1qxZGjJkiIKDg1VSUqLp06crODhYDz30kCSpV69eWrhwoeLj4xUQEKC//vWvmjx5ssLDwzVmzBjXua699lq98cYbrs9+fn6Xf8IAAFwES7tcAvx0DADgCepG+8R9AQB4oqPXjREjRmj48OFavXq1aywhIUFjx45VXl5ei85x1113KTg4uMlT5982fPhw3XbbbXr88cclnX0i/c9//rP27dvXqrw7+n0BAFxaLO0CAAAAAABapb6+Xnv27FF6errbeHp6ukpLS1t0jr1796q0tFSjRo1qdr9hGHrzzTd14MAB3XjjjW77Dh06pL59+youLk7jxo1TeXn5Ba9TV1cnp9PptgEAcDnQSAcAAAAAAC41NTVqaGhQRESE23hERITsdrvpsf369ZPValVycrJmzpypadOmue13OBzq3r27AgICdNttt+m3v/2tbr75Ztf+ESNGaNOmTXr99de1bt062e12paamqra2ttnr5eXlyWazubbo6OhWzhoAAHOskQ4AAAAAAJqwWCxunw3DaDJ2vuLiYp06dUq7d+/WggULNGjQII0fP961v0ePHtq3b59OnTqlN998U9nZ2RowYIBGjx4tScrIyHDFDh48WCkpKRo4cKB+97vfKTs7u8n1cnJy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2Ww22Ww2TZw4USdOnDA9xjAMLVq0SH379lVQUJBGjx6tf/7zn03idu3ape9///sKDg5Wz549NXr0aJ0+ffoyzQQAAAAAAAAA4Et8ppE+YcIE7du3T9u2bdO2bdu0b98+TZw40fSYpUuXavny5Vq5cqXee+899enTRzfffLNOnjzpitm1a5duueUWpaen691339V7772nWbNmqUsXn/mfBgAAAAAAAABwGfnEGullZWXatm2bdu/erREjRkiS1q1bp5SUFB04cEBXX311k2MMw9CKFSu0cOFC3XXXXZKk3/3ud4qIiNAf/vAH1zpt8+bN05w5c7RgwQLXsVdeeaVpPnV1dW5vHnc4HJLO/hQAAICLOVcvWF2tfTl3P6jnAICWoJ63T9RzAIAnPKnnPtFI37Vrl2w2m6uJLkk33HCDbDabSktLm22kV1RUyG63Kz093TVmtVo1atQolZaWavr06aqurtY777yj++67T6mpqfrXv/6l+Ph4Pfnkk/re9753wXzy8vK0ePHiJuPR0dHfcaYAgM7k5MmTstls3k4D/9e5X6xRzwEAnqCety/UcwBAa7SknvtEI91utys8PLzJeHh4uOx2+wWPkaSIiAi38YiICH322WeSpPLycknSokWLtGzZMg0dOlSbNm3SD37wA3300UcXfDI9JydH2dnZrs+NjY06fvy4QkNDZbFYPJ9gM5xOp6Kjo3X48GGffEGKL+fvy7lLvp2/L+cu+Xb+vpy75Hv5G4ahkydPqm/fvt5OBd/St29fHT58WD169KCe/1++nL8v5y75dv6+nLvk2/n7cu6S7+VPPW+fqOdNkb/3+HLukm/n78u5S76dv6/l7kk992ojfdGiRc0+2f1t7733niQ1WwANw7hoYTx//7ePaWxslCRNnz5dkydPliQNGzZMb775pgoKCpSXl9fsOa1Wq6xWq9tYz549TfNorZCQEJ/4j+5CfDl/X85d8u38fTl3ybfz9+XcJd/KnyfX2p8uXbqoX79+l+XcvvTfZnN8OX9fzl3y7fx9OXfJt/P35dwl38qfet7+UM8vjPy9x5dzl3w7f1/OXfLt/H0p95bWc6820mfNmqVx48aZxvTv318ffvihjh071mTfF1980eSJ83P69Okj6eyT6ZGRka7x6upq1zHnxq+55hq3YxMSElRZWdnyiQAAAAAAAAAAOiyvNtLD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p3LZZZdlp526dD9TAAAAAADYLnQpSP/2t7+dSy65JJ/61Kdy1FFHpVKpZOHChfnOd76TL37xi3nuuedy9dVXp76+PhdffPGWrhkAAAAAALaZLgXp3/nOd/L3f//3+cQnPtE2dtJJJ+Wwww7LN77xjfzoRz/K4MGD83d/93eCdAAAAAAAqlqXrrvS1NSUI444osP4EUcckaampiTJe9/73ixfvvztVQcAAAAAAN2sS0H6O9/5zsycObPD+MyZMzNo0KAkyfPPP5/dd9/97VUHAHSLV155pbtLAAAAgO1Gly7tcvXVV+fjH/94/vu//zt//ud/nrq6uixcuDC/+tWv8oMf/CBJsnDhwowdO3aLFgsAbDnHHHNM/uVf/iXvfOc7240/8MADGTduXJ544oluqgwAeCuPPPJIDj300Oy000555JFHinMPP/zwbVQVAOy4uhSkn3TSSXn88cdz880354knnkilUskJJ5yQu+66K/vuu2+S5G//9m+3ZJ0AwBbWt2/fHH744bnxxhtz6qmnZsOGDbn88sszffr0nH/++d1dHgBQ8K53vSvNzc3p379/3vWud6Wuri6VSqXt+Y2P6+rqsn79+m6sFAB2DF26tEuS7Lvvvvna176Wf//3f8+dd96Z6dOnt4XoW9ONN96YIUOGpHfv3hk2bFjuu+++4vx77703w4YNS+/evbPffvvl5ptv7jDnjjvuyCGHHJL6+voccsghufPOO7dW+QCw3Zg9e3auuOKKnH322Tn99NPz3ve+N9/61rfyX//1X7n66qu36nvr5wDw9ixbtix77bVX279/+9vfZtmyZW3Hxse//e1vt1oN+jkAtaTLQfp9992XM844I6NGjcrTTz+dJPnnf/7n/PSnP91ixf2x22+/PRMnTswll1ySxYsXZ/To0TnhhBPe9Kamy5Yty4knnpjRo0dn8eLFufjiizNhwoTccccdbXOampoyduzYjBs3Lg8//HDGjRuXT3ziE3nggQe22j4AYHsxfvz4nH/++bntttuyaNGi/Ou//ms+8IEPbNX31M8B4O3bZ599UldX1/bv0rE16OcA1Jq6yh/+9msT3XHHHRk3blz++q//Ov/8z/+cX/7yl9lvv/1y44035j//8z8zZ86crVFrRowYkSOPPDI33XRT29jQoUNz8sknZ/r06R3mT5kyJbNnz87SpUvbxsaPH5+HH344TU1NSZKxY8emtbU1//3f/9025/jjj8/uu++eW2+9dZPqam1tTUNDQ1paWtK3b9+ubg+AGrG99I0XX3wxZ599dn70ox/l61//eu69997cddddueqqq/LZz352q72vfg7AjmB76xtPPPFE7rnnnqxatSobNmxo99yXvvSlLf5++jkAO4LN6RtdOiP9q1/9am6++ebccsst6dmzZ9v4qFGj8vOf/7wrL/mW1q1bl4ceeihjxoxpNz5mzJjcf//9na5pamrqMP+4447LokWL8tprrxXnvNlrJsnatWvT2tra7gCAanPooYfm2WefzeLFi3POOefkX/7lXzJz5sxceuml+eAHP7hV3lM/B4At75ZbbskhhxySL33pS/nBD36QO++8s+246667tvj76ecA1KIuBemPP/543ve+93UY79u3b1566aW3W1OnVq9enfXr16exsbHdeGNjY5qbmztd09zc3On8119/PatXry7OebPXTJLp06enoaGh7Rg0aFBXtgQA3Wr8+PH5yU9+kiFDhrSNjR07Ng8//HDWrVu3Vd5TPweALe+rX/1q/u7v/i7Nzc1ZsmRJFi9e3HZsjZPd9HMAalGXgvS99947v/nNbzqM//SnP81+++33tosq2XgNuI023oV8c+b/8fjmvubUqVPT0tLSdqxYsWKT6weA7cWll16adevW5cEHH8x//ud/Zvbs2Zk9e3Z+/vOf57zzztuq762fA8CW8+KLL+bjH//4Nn9f/RyAWtKjK4vOPffcfP7zn8+sWbNSV1eXZ555Jk1NTbngggu2yrXXkqRfv37ZeeedO3wTvWrVqg7fWG80YMCATuf36NEje+65Z3HOm71mktTX16e+vr4r2wCA7cYPf/jDnHHGGXn++ec7PFdXV5f169dv8ffUzwFgy/v4xz+eefPmZfz48dvk/fRzAGpRl4L0Cy+8MC0tLXn/+9+f3//+93nf+96X+vr6XHDBBVvtDLZevXpl2LBhmT9/fj760Y+2jc+fPz8f+chHOl0zcuTI/N//+3/bjc2bNy/Dhw9vu7b7yJEjM3/+/EyaNKndnFGjRm2FXQDA9uNzn/tcPvGJT+RLX/pS8Q/ULUk/B4At4/rrr2/79wEHHJBLL700CxYsyGGHHdbuXmZJMmHChC363vo5ADWp8ja8/PLLlYULF1YeeOCBypo1a97OS22S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+/fvMN6/f/80Nze/6ZokaWxsbDfe2NiYp556Kkny29/+Nkkybdq0XH311XnXu96V7373u/nLv/zLPProoznwwAM7fe2pU6dm8uTJbY83bNiQF154IXvuuWfq6uo2f4Od2PhtSLV+i17N9Vdz7Ul111/NtSfVXX81155UX/2VSiVr1qzJwIEDu7uUbUo/3/7/v/nHqrn+aq49qe76q7n2pLrrr+bak+qrXz9vTz/ffqm/+1Rz7Ul111/NtSfVXX+11b45/bxbg/Rp06bly1/+cnHOwoULk6TTBlipVN6yMf7x83+4ZsOGDUmSc889N5/+9KeTJEcccUR+9KMfZdasWZk+fXqnr1lfX5/6+vp2Y7vttluxjq7q27dvVfyf7s1Uc/3VXHtS3fVXc+1JdddfzbUn1VX/jvQTcP38rVXT/zc7U831V3PtSXXXX821J9VdfzXXnlRX/fr5/59+vv1Tf/ep5tqT6q6/mmtPqrv+aqp9U/t5twbp5513Xk499dTinH333TePPPJInn322Q7PPffccx2+0d5owIABSd745nvvvfduG1+1alXbmo3jhxxySLu1Q4cOzfLlyzd9IwBQw/RzAKh++jkAlHVrkN6vX7/069fvLeeNHDkyLS0tefDBB3PUUUclSR544IG0tLRk1KhRna4ZMmRIBgwYkPnz5+eII45Ikqxbty733ntvrrzyyiRv/EfAwIED8/jjj7db+8QTT+SEE054O1sDgJqhnwNA9dPPAaBsp+4uYFMMHTo0xx9/fM4555wsWLAgCxYsyDnnnJMPfehD7e4IfvDBB+fOO+9M8sZPxiZOnJgrrrgid955Zx599NF86lOfSp8+fXL66ae3zfn//r//L9dff31+8IMf5De/+U0uvfTS/OpXv8pZZ53VLXvdqL6+PpdddlmHn6hVi2quv5prT6q7/mquPanu+qu59qT6668V+nn1qeb6q7n2pLrrr+bak+quv5prT6q//lqhn1cf9Xefaq49qe76q7n2pLrrr+ba30pdpVKpdHcRm+KFF17IhAkTMnv27CTJSSedlBkzZrS79lldXV3+6Z/+KZ/61KeSvHG9tS9/+cv5xje+kRdffDEjRozIDTfckEMPPbTda3/ta1/LDTfckBdeeCF/9md/lquuuirvfe97t9XWAKBm6OcAUP30cwBqUdUE6QAAAAAA0B2q4tIu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AQDd6pFHHmn79/nnn58vfOELaW5uzmGHHZaePXu2m3v44Ydv8ffXzwEAAKhGXbpG+uc+97l8/OMfz8qVK7Nhw4Z2x9a6MVmvXr0ybNiwzJ8/v934/PnzM2rUqE7XjBw5ssP8efPmZfjw4W1hwZvNebPXBIBq9q53vStHHHFE3vWud+WUU07J0qVL85nPfCZ//ud/3u65I444Yqu8v34OAABANerSGemrVq3K5MmTi2d5bQ2TJ0/OuHHjMnz48IwcOTLf/OY3s3z58owfPz7JGz/Rfvrpp/Pd7343yRs3UZsxY0YmT56cc845J01NTZk5c2ZuvfXWttf8/Oc/n/e973258sor85GPfCT/8R//kf/5n//JT3/60226NwDYFpYtW9bdJejnAAAAVJ0uBekf+9jHcs8992T//fff0vUUjR07Ns8//3wuv/zyrFy5MoceemjmzJmTffbZJ0mycuXKLF++vG3+kCFDMmfOnEyaNCk33HBDBg4cmOuvvz6nnHJK25xRo0bltttuyxe/+MVceuml2X///XP77bdnxIgR23RvALAtbOyZyRs322xsbMxnPvOZdnNmzZqV5557LlOmTNkqNejnAAAAVJu6ysa7dW2GV155JR//+Mez1157dXpN1QkTJmyxAqtBa2trGhoa0tLSkr59+3Z3OQBs57aXvrHvvvvm+9//fofLnzzwwAM59dRTt4uz17el7eVzAaA66BsAUFu6dEb697///fzwhz/MLrvsknvuuSd1dXVtz9XV1dVckA4A1ai5uTl77713h/G99torK1eu7IaKAAAAYPvUpSD9i1/8Yi6//PJcdNFF2WmnLt2vFADoZoMGDcrPfvazDBkypN34z372swwcOLCbqgIAAIDtT5eC9HXr1mXs2LFCdACoYmeffXYmTpyY1157LX/xF3+RJPnRj36UCy+8MF/4whe6uToAAADYfnQpSP/kJz+Z22+/PRdffPGWrgcA2EYuvPDCvPDCC/nsZz+bdevWJUl69+6dKVOmZOrUqd1cHQAAAGw/uhSkr1+/PldddVV++MMf5vDDD+9ws9FrrrlmixQHAGw9dXV1ufLKK3PppZdm6dKl2WWXXXLggQemvr6+u0sDAACA7UqXgvRf/OIXOeKII5Ikjz76aLvn/vDGowDA9u9P//RP8+d//ufdXQYAAABst7oUpP/4xz/e0nUA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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "RE(bp.scan([det], motor, -1.2, 1.2, 41))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## get the most recent scan, by steps\n", "\n", "The databroker instance, `cat`, provides access to its scans by several means. One way is to consider `cat` as a list and retrieve the last item from the list. This will return a *run*, the common reference to be used.\n", "\n", "For this first example, we'll work through the steps one by one. The `cat.v2` interface is the easiest to use (at this writing)." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "BlueskyRun\n", " uid='3df743d0-0768-467a-b5e8-1a4f84ad9c3d'\n", " exit_status='success'\n", " 2023-02-14 13:16:56.441 -- 2023-02-14 13:17:12.871\n", " Streams:\n", " * label_start_motor\n", " * primary\n" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "run = cat.v2[-1]\n", "run" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As shown, the run has one data stream, name `primary`. The databroker provides a simple table view of this run:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset>\n",
       "Dimensions:              (time: 41)\n",
       "Coordinates:\n",
       "  * time                 (time) float64 1.676e+09 1.676e+09 ... 1.676e+09\n",
       "Data variables:\n",
       "    motor                (time) float64 -1.2 -1.14 -1.08 -1.02 ... 1.08 1.14 1.2\n",
       "    motor_user_setpoint  (time) float64 -1.2 -1.14 -1.08 -1.02 ... 1.08 1.14 1.2\n",
       "    det                  (time) float64 0.0 0.0 ... 3.032e-149 1.012e-169
" ], "text/plain": [ "\n", "Dimensions: (time: 41)\n", "Coordinates:\n", " * time (time) float64 1.676e+09 1.676e+09 ... 1.676e+09\n", "Data variables:\n", " motor (time) float64 -1.2 -1.14 -1.08 -1.02 ... 1.08 1.14 1.2\n", " motor_user_setpoint (time) float64 -1.2 -1.14 -1.08 -1.02 ... 1.08 1.14 1.2\n", " det (time) float64 0.0 0.0 ... 3.032e-149 1.012e-169" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "run.primary.read()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Support function: `specfile_example()`\n", "\n", "We need to call the `apstools.callbacks.SpecWriterCallback()` callback with the run's documents.\n", "\n", "Here, `specfile_example()` is a support function that can be used with one or more runs to create a SPEC data file (one Bluesky run will become one SPEC scan in the same file)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "from apstools.callbacks import SpecWriterCallback\n", "from databroker._drivers.mongo_normalized import BlueskyMongoCatalog\n", "from databroker._drivers.msgpack import BlueskyMsgpackCatalog\n", "import warnings\n", "\n", "DEMO_SPEC_FILE = \"test_specdata.txt\"\n", "\n", "def specfile_example(runs, filename=DEMO_SPEC_FILE):\n", " \"\"\"write one or more headers (scans) to a SPEC data file\"\"\"\n", " if isinstance(runs, databroker.core.BlueskyRun):\n", " runs = [runs]\n", " if not isinstance(runs, (list, BlueskyMsgpackCatalog, BlueskyMongoCatalog)):\n", " raise TypeError(\"Must give run object or list of run objects.\")\n", " if len(runs) == 0:\n", " raise ValueError(\"Must provide one or more runs.\")\n", "\n", " specwriter = SpecWriterCallback(filename=filename, auto_write=True)\n", " for uid in runs:\n", " if isinstance(uid, str):\n", " run = runs[uid]\n", " else:\n", " run = uid\n", " if not isinstance(run, databroker.core.BlueskyRun):\n", " warnings.warn(f\"Skipping {run=}, it is not a BlueskyRun object.\")\n", " continue\n", " # to get the raw document stream, need the v1 interface\n", " h = run.catalog_object.v1[run.name] # header\n", " for key, doc in h.db.get_documents(h):\n", " specwriter.receiver(key, doc)\n", " # lines = specwriter.prepare_scan_contents()\n", " print(f\"Look at SPEC data file: {specwriter.spec_filename}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Write the run as SPEC data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's write it as a SPEC data file (namely: `spec1.dat`):" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Look at SPEC data file: spec1.dat\n" ] } ], "source": [ "import pathlib\n", "\n", "spec1_dat = pathlib.Path(\"spec1.dat\")\n", "if spec1_dat.exists(): # re-write the file\n", " spec1_dat.unlink() # delete the existing file\n", "\n", "specfile_example(run, filename=spec1_dat)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's view file `spec1.dat` from disk storage (using the [pycat](https://ipython.readthedocs.io/en/stable/interactive/magics.html?highlight=pycat#magic-pycat) IPython magic function):" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;31m#F spec1.dat\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#E 1676402235\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#D Tue Feb 14 13:17:15 2023\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#C Bluesky user = prjemian host = zap\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#O0 atth chi motor mx my mz omega phi\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#O1 ttheta\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#o0 atth chi motor mx my mz omega phi\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#o1 ttheta\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#S 1 scan(detectors=['det'], num=41, args='['motor', -1.2, 1.2]', per_step='None')\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#D Tue Feb 14 13:16:56 2023\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#C Tue Feb 14 13:16:56 2023. plan_type = generator\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#C Tue Feb 14 13:16:56 2023. uid = 3df743d0-0768-467a-b5e8-1a4f84ad9c3d\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD uid = 3df743d0-0768-467a-b5e8-1a4f84ad9c3d\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD detectors = ['det']\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD motors = ['motor']\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD num_intervals = 40\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD num_points = 41\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD plan_pattern = inner_product\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD plan_pattern_args = {'num': 41, 'args': [\"EpicsMotor(prefix='gp:m1', name='motor', settle_time=0.0, timeout=None, read_attrs=['user_readback', 'user_setpoint'], configuration_attrs=['user_offset', 'user_offset_dir', 'velocity', 'acceleration', 'motor_egu'])\", -1.2, 1.2]}\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD plan_pattern_module = bluesky.plan_patterns\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD versions = {'ophyd': '1.7.0', 'bluesky': '1.10.0'}\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#P0 0.35000000000000003 0.0 1.2 0.0 0.0 0.0 0.0 0.0\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#P1 0.65\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#N 5\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#L motor Epoch_float Epoch motor_user_setpoint det\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1.2\u001b[0m \u001b[0;36m4.340043544769287\u001b[0m \u001b[0;36m4\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1.2\u001b[0m \u001b[0;36m0.0\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1.1400000000000001\u001b[0m \u001b[0;36m4.667514085769653\u001b[0m \u001b[0;36m5\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1.14\u001b[0m \u001b[0;36m0.0\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1.08\u001b[0m \u001b[0;36m4.9651477336883545\u001b[0m \u001b[0;36m5\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1.08\u001b[0m \u001b[0;36m1.2328856838278386e-292\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1.02\u001b[0m \u001b[0;36m5.271295547485352\u001b[0m \u001b[0;36m5\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1.02\u001b[0m \u001b[0;36m1.059088566676546e-265\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.96\u001b[0m \u001b[0;36m5.566334247589111\u001b[0m \u001b[0;36m6\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.96\u001b[0m \u001b[0;36m4.968042135382428e-240\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.9\u001b[0m \u001b[0;36m5.872528553009033\u001b[0m \u001b[0;36m6\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.8999999999999999\u001b[0m \u001b[0;36m1.1958202643250899e-215\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.84\u001b[0m \u001b[0;36m6.168987035751343\u001b[0m \u001b[0;36m6\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.84\u001b[0m \u001b[0;36m1.5322231228196394e-192\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.78\u001b[0m \u001b[0;36m6.468311548233032\u001b[0m \u001b[0;36m6\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.78\u001b[0m \u001b[0;36m1.0340762669990406e-170\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.72\u001b[0m \u001b[0;36m6.769073247909546\u001b[0m \u001b[0;36m7\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.72\u001b[0m \u001b[0;36m3.51623650387244e-150\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.66\u001b[0m \u001b[0;36m7.075259685516357\u001b[0m \u001b[0;36m7\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.6599999999999999\u001b[0m \u001b[0;36m6.282750063287586e-131\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.6\u001b[0m \u001b[0;36m7.372717618942261\u001b[0m \u001b[0;36m7\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.6\u001b[0m \u001b[0;36m6.221913314981819e-113\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.54\u001b[0m \u001b[0;36m7.670686483383179\u001b[0m \u001b[0;36m8\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.54\u001b[0m \u001b[0;36m2.9777840434537594e-96\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.48\u001b[0m \u001b[0;36m7.977495431900024\u001b[0m \u001b[0;36m8\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.48\u001b[0m \u001b[0;36m7.759109794788586e-81\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.42\u001b[0m \u001b[0;36m8.272698879241943\u001b[0m \u001b[0;36m8\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.41999999999999993\u001b[0m \u001b[0;36m1.0498162435302822e-66\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.36\u001b[0m \u001b[0;36m8.575006484985352\u001b[0m \u001b[0;36m9\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.36\u001b[0m \u001b[0;36m7.409100974482037e-54\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.3\u001b[0m \u001b[0;36m8.874306917190552\u001b[0m \u001b[0;36m9\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.30000000000000004\u001b[0m \u001b[0;36m2.725988662311212e-42\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.24\u001b[0m \u001b[0;36m9.174439430236816\u001b[0m \u001b[0;36m9\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.24\u001b[0m \u001b[0;36m5.188391707598246e-32\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.18\u001b[0m \u001b[0;36m9.47422742843628\u001b[0m \u001b[0;36m9\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.17999999999999994\u001b[0m \u001b[0;36m5.246235710806971e-23\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.12\u001b[0m \u001b[0;36m9.781476974487305\u001b[0m \u001b[0;36m10\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.11999999999999988\u001b[0m \u001b[0;36m2.8033920736575236e-15\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.06\u001b[0m \u001b[0;36m10.080795049667358\u001b[0m \u001b[0;36m10\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.06000000000000005\u001b[0m \u001b[0;36m7.767778104176514e-09\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.0\u001b[0m \u001b[0;36m10.37718415260315\u001b[0m \u001b[0;36m10\u001b[0m \u001b[0;36m0.0\u001b[0m \u001b[0;36m0.0011017571616362435\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.06\u001b[0m \u001b[0;36m10.677199840545654\u001b[0m \u001b[0;36m11\u001b[0m \u001b[0;36m0.06000000000000005\u001b[0m \u001b[0;36m8.358091047426951\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.12\u001b[0m \u001b[0;36m10.983880758285522\u001b[0m \u001b[0;36m11\u001b[0m \u001b[0;36m0.11999999999999988\u001b[0m \u001b[0;36m3215.35530380413\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.18\u001b[0m \u001b[0;36m11.280557870864868\u001b[0m \u001b[0;36m11\u001b[0m \u001b[0;36m0.17999999999999994\u001b[0m \u001b[0;36m66230.8134586501\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.24\u001b[0m \u001b[0;36m11.578879594802856\u001b[0m \u001b[0;36m12\u001b[0m \u001b[0;36m0.24\u001b[0m \u001b[0;36m73111.10621036953\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.3\u001b[0m \u001b[0;36m11.886451244354248\u001b[0m \u001b[0;36m12\u001b[0m \u001b[0;36m0.30000000000000004\u001b[0m \u001b[0;36m4062.4899529906493\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.36\u001b[0m \u001b[0;36m12.18071722984314\u001b[0m \u001b[0;36m12\u001b[0m \u001b[0;36m0.3600000000000001\u001b[0m \u001b[0;36m11.453029013170354\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.42\u001b[0m \u001b[0;36m12.487605571746826\u001b[0m \u001b[0;36m12\u001b[0m \u001b[0;36m0.41999999999999993\u001b[0m \u001b[0;36m0.001809638606338164\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.48\u001b[0m \u001b[0;36m12.781713008880615\u001b[0m \u001b[0;36m13\u001b[0m \u001b[0;36m0.48\u001b[0m \u001b[0;36m1.4168856993691742e-08\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.54\u001b[0m \u001b[0;36m13.087890625\u001b[0m \u001b[0;36m13\u001b[0m \u001b[0;36m0.54\u001b[0m \u001b[0;36m5.967282173562889e-15\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.6\u001b[0m \u001b[0;36m13.383947372436523\u001b[0m \u001b[0;36m13\u001b[0m \u001b[0;36m0.5999999999999999\u001b[0m \u001b[0;36m1.3156523495521614e-22\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.66\u001b[0m \u001b[0;36m13.688213348388672\u001b[0m \u001b[0;36m14\u001b[0m \u001b[0;36m0.6599999999999999\u001b[0m \u001b[0;36m1.5188362400501979e-31\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.72\u001b[0m \u001b[0;36m13.984504222869873\u001b[0m \u001b[0;36m14\u001b[0m \u001b[0;36m0.72\u001b[0m \u001b[0;36m8.885414370735442e-42\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.78\u001b[0m \u001b[0;36m14.285274267196655\u001b[0m \u001b[0;36m14\u001b[0m \u001b[0;36m0.78\u001b[0m \u001b[0;36m2.7872199058127706e-53\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.84\u001b[0m \u001b[0;36m14.584774255752563\u001b[0m \u001b[0;36m15\u001b[0m \u001b[0;36m0.8400000000000001\u001b[0m \u001b[0;36m4.42531688732135e-66\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.9\u001b[0m \u001b[0;36m14.888846158981323\u001b[0m \u001b[0;36m15\u001b[0m \u001b[0;36m0.9000000000000001\u001b[0m \u001b[0;36m3.8331305149188205e-80\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.96\u001b[0m \u001b[0;36m15.212282419204712\u001b[0m \u001b[0;36m15\u001b[0m \u001b[0;36m0.9600000000000002\u001b[0m \u001b[0;36m1.7076906675379237e-95\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m1.02\u001b[0m \u001b[0;36m15.48742151260376\u001b[0m \u001b[0;36m15\u001b[0m \u001b[0;36m1.0199999999999998\u001b[0m \u001b[0;36m3.9742337527757163e-112\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m1.08\u001b[0m \u001b[0;36m15.787599325180054\u001b[0m \u001b[0;36m16\u001b[0m \u001b[0;36m1.0799999999999998\u001b[0m \u001b[0;36m4.7329683607136035e-130\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m1.1400000000000001\u001b[0m \u001b[0;36m16.0884792804718\u001b[0m \u001b[0;36m16\u001b[0m \u001b[0;36m1.14\u001b[0m \u001b[0;36m3.031573705521703e-149\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m1.2\u001b[0m \u001b[0;36m16.395928859710693\u001b[0m \u001b[0;36m16\u001b[0m \u001b[0;36m1.2\u001b[0m \u001b[0;36m1.0122714506735151e-169\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#C Tue Feb 14 13:17:12 2023. num_events_label_start_motor = 1\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#C Tue Feb 14 13:17:12 2023. num_events_primary = 41\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#C Tue Feb 14 13:17:12 2023. exit_status = success\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n" ] } ], "source": [ "%pycat spec1.dat" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that the output of the `specfile_example()` command includes the content of the SPEC file. For the remaining examples, we'll skip this additional step to view the SPEC file contents from disk." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## a specific scan\n", "\n", "The `cat` object allows us to access scans by UUID (or any shorter version that remains unique in the database). We show an example but have commented it out since those runs do not exist in our temporary databroker catalog." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "# specfile_example(cat[\"37c188c0\"], filename=\"spec3.dat\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## specify a list of scans by UID\n", "\n", "Suppose we have a list of scans where we know the UID of each one, we can build a list of headers and write a SPEC data file with that list. Here, we have such a list of tuning scans. We show an example but have commented it out since those runs do not exist in our temporary databroker catalog." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# runs = [cat[uid] for uid in \"957d83c c354fe37-e39f 42c\".split()]\n", "# specfile_example(runs, filename=\"spec_tunes.dat\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Find specific plans within a range of dates\n", "\n", "The `cat` object allows for filtering arguments based on any keywords in the *start* document and also by time. Here, we filter between certain dates and also by `plan name`. The dates are specified in [ISO8601 format](https://www.iso.org/iso-8601-date-and-time-format.html) and can include precision beyond a millisecond. Here, we use the `v2` interface to do the searches. We show examples how to pick between a set of dates.\n", "\n", "Also, we write to the default data file: `test_specdata.txt`." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/prjemian/micromamba/envs/bluesky_2023_1/lib/python3.10/site-packages/databroker/queries.py:89: PytzUsageWarning: The zone attribute is specific to pytz's interface; please migrate to a new time zone provider. For more details on how to do so, see https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html\n", " timezone = lz.zone\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "3df743d0 2023-02-14 13:16:56.441771\n", "Look at SPEC data file: test_specdata.txt\n" ] } ], "source": [ "from databroker.queries import TimeRange\n", "import datetime\n", "\n", "test_specdata_txt = pathlib.Path(\"test_specdata.txt\")\n", "if test_specdata_txt.exists(): # will re-write the file\n", " test_specdata_txt.unlink()\n", "\n", "query = {}\n", "query.update(TimeRange(since=\"2019-02-19 17:00\"))\n", "query.update(TimeRange(until=\"2032-02-19 17:11:30\"))\n", "query.update(dict(plan_name=\"scan\"))\n", "\n", "runs = cat.v2.search(query)\n", "for uid in runs:\n", " run = runs[uid]\n", " start_time = run.metadata[\"start\"][\"time\"]\n", " isodate = datetime.datetime.fromtimestamp(start_time).isoformat(sep=\" \")\n", " print(uid[:8], isodate)\n", "specfile_example(runs, test_specdata_txt)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;31m#F test_specdata.txt\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#E 1676402235\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#D Tue Feb 14 13:17:15 2023\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#C Bluesky user = prjemian host = zap\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#O0 atth chi motor mx my mz omega phi\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#O1 ttheta\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#o0 atth chi motor mx my mz omega phi\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#o1 ttheta\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#S 1 scan(detectors=['det'], num=41, args='['motor', -1.2, 1.2]', per_step='None')\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#D Tue Feb 14 13:16:56 2023\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#C Tue Feb 14 13:16:56 2023. plan_type = generator\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#C Tue Feb 14 13:16:56 2023. uid = 3df743d0-0768-467a-b5e8-1a4f84ad9c3d\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD uid = 3df743d0-0768-467a-b5e8-1a4f84ad9c3d\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD detectors = ['det']\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD motors = ['motor']\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD num_intervals = 40\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD num_points = 41\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD plan_pattern = inner_product\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD plan_pattern_args = {'num': 41, 'args': [\"EpicsMotor(prefix='gp:m1', name='motor', settle_time=0.0, timeout=None, read_attrs=['user_readback', 'user_setpoint'], configuration_attrs=['user_offset', 'user_offset_dir', 'velocity', 'acceleration', 'motor_egu'])\", -1.2, 1.2]}\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD plan_pattern_module = bluesky.plan_patterns\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#MD versions = {'ophyd': '1.7.0', 'bluesky': '1.10.0'}\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#P0 0.35000000000000003 0.0 1.2 0.0 0.0 0.0 0.0 0.0\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#P1 0.65\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#N 5\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#L motor Epoch_float Epoch motor_user_setpoint det\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1.2\u001b[0m \u001b[0;36m4.340043544769287\u001b[0m \u001b[0;36m4\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1.2\u001b[0m \u001b[0;36m0.0\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1.1400000000000001\u001b[0m \u001b[0;36m4.667514085769653\u001b[0m \u001b[0;36m5\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1.14\u001b[0m \u001b[0;36m0.0\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1.08\u001b[0m \u001b[0;36m4.9651477336883545\u001b[0m \u001b[0;36m5\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1.08\u001b[0m \u001b[0;36m1.2328856838278386e-292\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1.02\u001b[0m \u001b[0;36m5.271295547485352\u001b[0m \u001b[0;36m5\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1.02\u001b[0m \u001b[0;36m1.059088566676546e-265\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.96\u001b[0m \u001b[0;36m5.566334247589111\u001b[0m \u001b[0;36m6\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.96\u001b[0m \u001b[0;36m4.968042135382428e-240\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.9\u001b[0m \u001b[0;36m5.872528553009033\u001b[0m \u001b[0;36m6\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.8999999999999999\u001b[0m \u001b[0;36m1.1958202643250899e-215\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.84\u001b[0m \u001b[0;36m6.168987035751343\u001b[0m \u001b[0;36m6\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.84\u001b[0m \u001b[0;36m1.5322231228196394e-192\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.78\u001b[0m \u001b[0;36m6.468311548233032\u001b[0m \u001b[0;36m6\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.78\u001b[0m \u001b[0;36m1.0340762669990406e-170\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.72\u001b[0m \u001b[0;36m6.769073247909546\u001b[0m \u001b[0;36m7\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.72\u001b[0m \u001b[0;36m3.51623650387244e-150\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.66\u001b[0m \u001b[0;36m7.075259685516357\u001b[0m \u001b[0;36m7\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.6599999999999999\u001b[0m \u001b[0;36m6.282750063287586e-131\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.6\u001b[0m \u001b[0;36m7.372717618942261\u001b[0m \u001b[0;36m7\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.6\u001b[0m \u001b[0;36m6.221913314981819e-113\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.54\u001b[0m \u001b[0;36m7.670686483383179\u001b[0m \u001b[0;36m8\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.54\u001b[0m \u001b[0;36m2.9777840434537594e-96\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.48\u001b[0m \u001b[0;36m7.977495431900024\u001b[0m \u001b[0;36m8\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.48\u001b[0m \u001b[0;36m7.759109794788586e-81\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.42\u001b[0m \u001b[0;36m8.272698879241943\u001b[0m \u001b[0;36m8\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.41999999999999993\u001b[0m \u001b[0;36m1.0498162435302822e-66\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.36\u001b[0m \u001b[0;36m8.575006484985352\u001b[0m \u001b[0;36m9\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.36\u001b[0m \u001b[0;36m7.409100974482037e-54\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.3\u001b[0m \u001b[0;36m8.874306917190552\u001b[0m \u001b[0;36m9\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.30000000000000004\u001b[0m \u001b[0;36m2.725988662311212e-42\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.24\u001b[0m \u001b[0;36m9.174439430236816\u001b[0m \u001b[0;36m9\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.24\u001b[0m \u001b[0;36m5.188391707598246e-32\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.18\u001b[0m \u001b[0;36m9.47422742843628\u001b[0m \u001b[0;36m9\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.17999999999999994\u001b[0m \u001b[0;36m5.246235710806971e-23\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.12\u001b[0m \u001b[0;36m9.781476974487305\u001b[0m \u001b[0;36m10\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.11999999999999988\u001b[0m \u001b[0;36m2.8033920736575236e-15\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.06\u001b[0m \u001b[0;36m10.080795049667358\u001b[0m \u001b[0;36m10\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.06000000000000005\u001b[0m \u001b[0;36m7.767778104176514e-09\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.0\u001b[0m \u001b[0;36m10.37718415260315\u001b[0m \u001b[0;36m10\u001b[0m \u001b[0;36m0.0\u001b[0m \u001b[0;36m0.0011017571616362435\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.06\u001b[0m \u001b[0;36m10.677199840545654\u001b[0m \u001b[0;36m11\u001b[0m \u001b[0;36m0.06000000000000005\u001b[0m \u001b[0;36m8.358091047426951\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.12\u001b[0m \u001b[0;36m10.983880758285522\u001b[0m \u001b[0;36m11\u001b[0m \u001b[0;36m0.11999999999999988\u001b[0m \u001b[0;36m3215.35530380413\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.18\u001b[0m \u001b[0;36m11.280557870864868\u001b[0m \u001b[0;36m11\u001b[0m \u001b[0;36m0.17999999999999994\u001b[0m \u001b[0;36m66230.8134586501\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.24\u001b[0m \u001b[0;36m11.578879594802856\u001b[0m \u001b[0;36m12\u001b[0m \u001b[0;36m0.24\u001b[0m \u001b[0;36m73111.10621036953\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.3\u001b[0m \u001b[0;36m11.886451244354248\u001b[0m \u001b[0;36m12\u001b[0m \u001b[0;36m0.30000000000000004\u001b[0m \u001b[0;36m4062.4899529906493\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.36\u001b[0m \u001b[0;36m12.18071722984314\u001b[0m \u001b[0;36m12\u001b[0m \u001b[0;36m0.3600000000000001\u001b[0m \u001b[0;36m11.453029013170354\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.42\u001b[0m \u001b[0;36m12.487605571746826\u001b[0m \u001b[0;36m12\u001b[0m \u001b[0;36m0.41999999999999993\u001b[0m \u001b[0;36m0.001809638606338164\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.48\u001b[0m \u001b[0;36m12.781713008880615\u001b[0m \u001b[0;36m13\u001b[0m \u001b[0;36m0.48\u001b[0m \u001b[0;36m1.4168856993691742e-08\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.54\u001b[0m \u001b[0;36m13.087890625\u001b[0m \u001b[0;36m13\u001b[0m \u001b[0;36m0.54\u001b[0m \u001b[0;36m5.967282173562889e-15\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.6\u001b[0m \u001b[0;36m13.383947372436523\u001b[0m \u001b[0;36m13\u001b[0m \u001b[0;36m0.5999999999999999\u001b[0m \u001b[0;36m1.3156523495521614e-22\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.66\u001b[0m \u001b[0;36m13.688213348388672\u001b[0m \u001b[0;36m14\u001b[0m \u001b[0;36m0.6599999999999999\u001b[0m \u001b[0;36m1.5188362400501979e-31\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.72\u001b[0m \u001b[0;36m13.984504222869873\u001b[0m \u001b[0;36m14\u001b[0m \u001b[0;36m0.72\u001b[0m \u001b[0;36m8.885414370735442e-42\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.78\u001b[0m \u001b[0;36m14.285274267196655\u001b[0m \u001b[0;36m14\u001b[0m \u001b[0;36m0.78\u001b[0m \u001b[0;36m2.7872199058127706e-53\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.84\u001b[0m \u001b[0;36m14.584774255752563\u001b[0m \u001b[0;36m15\u001b[0m \u001b[0;36m0.8400000000000001\u001b[0m \u001b[0;36m4.42531688732135e-66\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.9\u001b[0m \u001b[0;36m14.888846158981323\u001b[0m \u001b[0;36m15\u001b[0m \u001b[0;36m0.9000000000000001\u001b[0m \u001b[0;36m3.8331305149188205e-80\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m0.96\u001b[0m \u001b[0;36m15.212282419204712\u001b[0m \u001b[0;36m15\u001b[0m \u001b[0;36m0.9600000000000002\u001b[0m \u001b[0;36m1.7076906675379237e-95\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m1.02\u001b[0m \u001b[0;36m15.48742151260376\u001b[0m \u001b[0;36m15\u001b[0m \u001b[0;36m1.0199999999999998\u001b[0m \u001b[0;36m3.9742337527757163e-112\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m1.08\u001b[0m \u001b[0;36m15.787599325180054\u001b[0m \u001b[0;36m16\u001b[0m \u001b[0;36m1.0799999999999998\u001b[0m \u001b[0;36m4.7329683607136035e-130\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m1.1400000000000001\u001b[0m \u001b[0;36m16.0884792804718\u001b[0m \u001b[0;36m16\u001b[0m \u001b[0;36m1.14\u001b[0m \u001b[0;36m3.031573705521703e-149\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;36m1.2\u001b[0m \u001b[0;36m16.395928859710693\u001b[0m \u001b[0;36m16\u001b[0m \u001b[0;36m1.2\u001b[0m \u001b[0;36m1.0122714506735151e-169\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#C Tue Feb 14 13:17:12 2023. num_events_label_start_motor = 1\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#C Tue Feb 14 13:17:12 2023. num_events_primary = 41\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;31m#C Tue Feb 14 13:17:12 2023. exit_status = success\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n" ] } ], "source": [ "%pycat test_specdata.txt" ] } ], "metadata": { "kernelspec": { "display_name": "base", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.6" }, "vscode": { "interpreter": { "hash": "ed043609f43e563e2ffca96760c7dbba41ea73490adcab5425a97d86895d8d3e" } } }, "nbformat": 4, "nbformat_minor": 4 }