{ "cells": [ { "cell_type": "markdown", "id": "4fec8ab8", "metadata": {}, "source": [ "# Accessing data later, after the measurement\n", "\n", "From *APS Python Training for Bluesky Data Acquisition*.\n", "\n", "**Objective**\n", "\n", "Get the data from previous *run(s)* and work with it.\n", "\n", "## Skip the `instrument` package\n", "\n", "There is no need to import the instrument package since we won't measure anything in this notebook.\n", "\n", "## Access the database\n", "\n", "In the instrument package (in file `instrument/framework/initialize.py`), we connected databroker with the MongoDB server using the `class_2021_03` *catalog*. Get that catalog now. We'll need to import some tools first." ] }, { "cell_type": "code", "execution_count": 1, "id": "28528e86", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "catalog: training\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
scan_idtimeplan_namedetectors
042021-08-19 14:03:33scan[vsc16]
132021-08-19 14:03:10scan[vsc16]
222021-08-19 14:02:58scan[vsc16]
312021-08-19 14:02:41scan[vsc16]
4392021-08-19 13:39:12scan[noisy]
5382021-08-19 11:45:29scan[scaler1]
6372021-08-19 11:40:40scan[noisy]
7362021-08-19 11:39:38scan[noisy]
842021-08-19 11:04:45scan[vsc16]
932021-08-19 11:04:08scan[vsc16]
1022021-08-19 11:00:56scan[vsc16]
1112021-08-19 10:58:39scan[vsc16]
1222021-08-19 10:57:09scan[vsc16]
1312021-08-19 10:53:19scan[vsc16]
14352021-04-13 12:19:15count[temperature]
15342021-04-13 12:18:54count[temperature]
16332021-04-13 12:18:51count[temperature]
17322021-04-13 12:18:51count[temperature]
18312021-04-11 14:15:20count[temperature]
19302021-04-11 14:14:58count[temperature]
\n", "
" ], "text/plain": [ " scan_id time plan_name detectors\n", "0 4 2021-08-19 14:03:33 scan [vsc16]\n", "1 3 2021-08-19 14:03:10 scan [vsc16]\n", "2 2 2021-08-19 14:02:58 scan [vsc16]\n", "3 1 2021-08-19 14:02:41 scan [vsc16]\n", "4 39 2021-08-19 13:39:12 scan [noisy]\n", "5 38 2021-08-19 11:45:29 scan [scaler1]\n", "6 37 2021-08-19 11:40:40 scan [noisy]\n", "7 36 2021-08-19 11:39:38 scan [noisy]\n", "8 4 2021-08-19 11:04:45 scan [vsc16]\n", "9 3 2021-08-19 11:04:08 scan [vsc16]\n", "10 2 2021-08-19 11:00:56 scan [vsc16]\n", "11 1 2021-08-19 10:58:39 scan [vsc16]\n", "12 2 2021-08-19 10:57:09 scan [vsc16]\n", "13 1 2021-08-19 10:53:19 scan [vsc16]\n", "14 35 2021-04-13 12:19:15 count [temperature]\n", "15 34 2021-04-13 12:18:54 count [temperature]\n", "16 33 2021-04-13 12:18:51 count [temperature]\n", "17 32 2021-04-13 12:18:51 count [temperature]\n", "18 31 2021-04-11 14:15:20 count [temperature]\n", "19 30 2021-04-11 14:14:58 count [temperature]" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from apstools.utils import listruns, quantify_md_key_use\n", "import databroker\n", "from databroker.queries import TimeRange\n", "\n", "db = databroker.catalog[\"training\"]\n", "listruns()" ] }, { "cell_type": "markdown", "id": "a4295908", "metadata": {}, "source": [ "Our temperature count measurement is one of those listed, but which one? Recall how we started our run: `RE(bp.count([temperature], num=50, delay=0.1, md={\"motive\": \"tscan\"}))`. \n", "\n", "In case some other type of run is more recent, we'll search for the most recent run with this metadata. First, find any recent (since Feb 2021) runs with this metadata. We need to do this search with the `v2` version of databroker catalogs. The result of the search is another catalog." ] }, { "cell_type": "code", "execution_count": 2, "id": "e3bcb5b1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Search for runs with motive='tscan' metadata found 5 run(s).\n" ] } ], "source": [ "cat = db.v2.search(TimeRange(since=\"2021-02-02\")).search({\"motive\": \"tscan\"})\n", "print(f\"Search for runs with motive='tscan' metadata found {len(cat)} run(s).\")" ] }, { "cell_type": "markdown", "id": "de33ff9f", "metadata": {}, "source": [ "Show the run's metadata." ] }, { "cell_type": "code", "execution_count": 3, "id": "3d2836de", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'start': Start({'beamline_id': 'APS EPICS/Python/Bluesky training VM',\n", " 'detectors': ['temperature'],\n", " 'hints': {'dimensions': [[['time'], 'primary']]},\n", " 'instrument_name': 'training',\n", " 'login_id': 'apsu@apsu-sim',\n", " 'motive': 'tscan',\n", " 'notebook': 'watch_temperature',\n", " 'num_intervals': 49,\n", " 'num_points': 50,\n", " 'pid': 3432,\n", " 'plan_args': {'detectors': [\"MyPvPositioner(prefix='gp:userCalc8', \"\n", " \"name='temperature', settle_time=0.0, \"\n", " \"timeout=None, read_attrs=['setpoint', \"\n", " \"'readback'], configuration_attrs=['calculation', \"\n", " \"'description', 'max_change', 'noise', \"\n", " \"'previous_value_pv', 'scanning_rate', \"\n", " \"'tolerance'], limits=(-20, 255), egu='C')\"],\n", " 'num': 50},\n", " 'plan_name': 'count',\n", " 'plan_type': 'generator',\n", " 'proposal_id': 'training-2021-04',\n", " 'scan_id': 35,\n", " 'time': 1618334355.5878208,\n", " 'uid': 'c0bbb846-43ae-46c2-b9e4-319a4c162812',\n", " 'versions': {'apstools': '1.5.0',\n", " 'bluesky': '1.6.7',\n", " 'databroker': '1.2.3',\n", " 'epics': '3.4.3',\n", " 'h5py': '2.10.0',\n", " 'intake': '0.6.2',\n", " 'matplotlib': '3.3.4',\n", " 'numpy': '1.19.2',\n", " 'ophyd': '1.6.1',\n", " 'pyRestTable': '2020.0.3',\n", " 'spec2nexus': '2021.1.8'}}),\n", " 'stop': Stop({'exit_status': 'success',\n", " 'num_events': {'baseline': 2, 'primary': 50},\n", " 'reason': '',\n", " 'run_start': 'c0bbb846-43ae-46c2-b9e4-319a4c162812',\n", " 'time': 1618334361.5295637,\n", " 'uid': '38f1deba-2c64-4faf-a0b7-30a50c6869ca'}),\n", " 'catalog_dir': None}" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "if len(cat):\n", " run = cat[-1]\n", "else:\n", " raise KeyError(\"No runs found with `motive='tscan'`\")\n", "\n", "run.metadata" ] }, { "cell_type": "markdown", "id": "98d052e7", "metadata": {}, "source": [ "## Read the primary data stream of the run" ] }, { "cell_type": "code", "execution_count": 4, "id": "8b5a1f10", "metadata": {}, "outputs": [], "source": [ "dataset = run.primary.read()" ] }, { "cell_type": "code", "execution_count": 5, "id": "faeca1ca", "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: 50)\n",
       "Coordinates:\n",
       "  * time                  (time) float64 1.618e+09 1.618e+09 ... 1.618e+09\n",
       "Data variables:\n",
       "    temperature_setpoint  (time) float64 35.0 35.0 35.0 35.0 ... 35.0 35.0 35.0\n",
       "    temperature           (time) float64 34.89 35.01 35.19 ... 35.02 34.62 35.38
" ], "text/plain": [ "\n", "Dimensions: (time: 50)\n", "Coordinates:\n", " * time (time) float64 1.618e+09 1.618e+09 ... 1.618e+09\n", "Data variables:\n", " temperature_setpoint (time) float64 35.0 35.0 35.0 35.0 ... 35.0 35.0 35.0\n", " temperature (time) float64 34.89 35.01 35.19 ... 35.02 34.62 35.38" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset" ] }, { "cell_type": "markdown", "id": "93b64a13", "metadata": {}, "source": [ "Let's get the values as a 1-D numpy array." ] }, { "cell_type": "code", "execution_count": 6, "id": "b2b41a98", "metadata": {}, "outputs": [], "source": [ "T = dataset[\"temperature\"].values" ] }, { "cell_type": "markdown", "id": "71f8f94b", "metadata": {}, "source": [ "## Compute the statistics\n", "Use the methods of numpy arrays to compute maximum, mean, standard deviation, and minimum. Looks nicer in a table." ] }, { "cell_type": "code", "execution_count": 7, "id": "d19bbd9d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "======= ===================\n", "measure value \n", "======= ===================\n", "max 35.48713664454108 \n", "mean 34.98192172121767 \n", "dev 0.28183495874527975\n", "min 34.50566109712368 \n", "# 50 \n", "======= ===================\n", "\n" ] } ], "source": [ "import pyRestTable\n", "\n", "table = pyRestTable.Table()\n", "table.addLabel(\"measure\")\n", "table.addLabel(\"value\")\n", "table.addRow((\"max\", T.max()))\n", "table.addRow((\"mean\", T.mean()))\n", "table.addRow((\"dev\", T.std()))\n", "table.addRow((\"min\", T.min()))\n", "table.addRow((\"#\", len(T)))\n", "print(table)" ] }, { "cell_type": "markdown", "id": "9aae4d45", "metadata": {}, "source": [ "Let's replot that data for comparison." ] }, { "cell_type": "code", "execution_count": 8, "id": "025839fe", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "dataset[\"temperature\"].plot(marker=\"+\", color=\"purple\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.8.8" } }, "nbformat": 4, "nbformat_minor": 5 }