Skip to content

Instantly share code, notes, and snippets.

@tacaswell
Created January 23, 2015 00:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tacaswell/d12b59950cbb20cad290 to your computer and use it in GitHub Desktop.
Save tacaswell/d12b59950cbb20cad290 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:f551953c637a149bfaf22f3b0cf06b6c83ac357a6cc1e4b7c49fe88baa6c8a24"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Set up\n",
"-----\n",
"\n",
"lots of imports\n",
"*****"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from datetime import datetime as dt\n",
"import uuid\n",
"\n",
"import databroker.broker.simple_broker as sb\n",
"import databroker.sources\n",
"mds_capi = databroker.sources.metadataStore.api.collection\n",
"mds_aapi = databroker.sources.metadataStore.api.analysis\n",
"fs_coms = databroker.sources.fileStore.commands\n",
"\n",
"from fileStore.test.t_utils import SynHandlerMod, SynHandlerEcho\n",
"from fileStore.retrieve import register_handler"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Emergency clean up cell\n",
"*****"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import databroker.sources.dummy_sources._metadataStore.api._dummies as mds_dum\n",
"mds_dum._events.clear()\n",
"mds_dum._ev_desc.clear()"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 11
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Register the handlers we are going to need for file store\n",
"*******"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"register_handler('syn-mod', SynHandlerMod)\n",
"register_handler('syn-echo', SynHandlerEcho)\n",
"\n",
"N = 2\n",
"M = 4\n",
"shape = (3, 4)\n",
"\n",
"f_types = ['syn-mod', 'syn-echo']"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Synthetic DAQ\n",
"------"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"f_types = ['syn-mod', 'syn-echo']\n",
"s_name = ['mod_base', 'echo_base']\n",
"for n in range(N):\n",
" # outer look over events\n",
" # make the event descriptor\n",
" ev_desc = mds_capi.save_event_descriptor(\n",
" data_keys={s_name[n%len(s_name)]: {'source': 'PV:foo',},\n",
" 'img': {'source': 'CCD:syn',\n",
" 'external': 'FILESTORE'}})\n",
" # make file descriptor entry\n",
" fb = fs_coms.save_file_base(f_types[n%len(f_types)], 'filepath',\n",
" {'shape': shape})\n",
" for m in range(M):\n",
" a_val = n * M + m + 1\n",
" r_id = str(uuid.uuid4())\n",
" fs_coms.save_file_event_link(fb, r_id, {'n': a_val})\n",
" data_dict = {s_name[n%len(s_name)]: {'value': a_val, 'timestamp': dt.now()},\n",
" 'img': {'value': r_id, 'timestamp': dt.now()}}\n",
" event = mds_capi.save_event(event_descriptor=ev_desc, data=data_dict)\n",
" "
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 12
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Read it back out\n",
"------\n",
"\n",
"raw events\n",
"*****"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"raw_events = mds_aapi.find()\n",
"[(re.uid, re.data) for re in raw_events]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 13,
"text": [
"[('786e1bfc-61ba-4e80-b178-b767390680ad',\n",
" {'mod_base': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 129863),\n",
" 'value': 1},\n",
" 'img': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 129884),\n",
" 'value': '62b2e019-0a96-49f2-80ee-2352f76de390'}}),\n",
" ('63b79b0a-1b43-44a5-bfdb-5d57b6299801',\n",
" {'mod_base': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 130866),\n",
" 'value': 2},\n",
" 'img': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 130882),\n",
" 'value': '3a2e2bd0-17a3-4372-a724-f9164aecd5ff'}}),\n",
" ('98cf4d96-2ca8-4f10-a9cc-8976c51d5b4c',\n",
" {'mod_base': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 131952),\n",
" 'value': 3},\n",
" 'img': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 131968),\n",
" 'value': '0b71677d-99d0-4996-b6ee-8d97e1ecfd93'}}),\n",
" ('107e03e0-2f47-4091-816e-0ed562dab079',\n",
" {'mod_base': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 133007),\n",
" 'value': 4},\n",
" 'img': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 133019),\n",
" 'value': 'f0677b57-d968-4835-a18b-f90e1d200534'}}),\n",
" ('3bd597f7-77a8-43c8-966b-5238798d87aa',\n",
" {'echo_base': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 134741),\n",
" 'value': 5},\n",
" 'img': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 134758),\n",
" 'value': 'c720134a-2fcc-4642-b29f-b73449c5cf38'}}),\n",
" ('55ea8c88-049b-4cd5-88cc-7adc76067d86',\n",
" {'echo_base': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 135614),\n",
" 'value': 6},\n",
" 'img': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 135626),\n",
" 'value': '4b49cdb2-94bf-47ca-bef2-33a79dab7ba2'}}),\n",
" ('f56aa5db-9f96-48c1-a0ab-f3bef0cd7073',\n",
" {'echo_base': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 136498),\n",
" 'value': 7},\n",
" 'img': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 136509),\n",
" 'value': '882ecda9-d088-44da-94b3-e69ee6435191'}}),\n",
" ('8161de9c-018c-4788-a952-7ff358130cd7',\n",
" {'echo_base': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 137530),\n",
" 'value': 8},\n",
" 'img': {'timestamp': datetime.datetime(2015, 1, 22, 19, 32, 50, 137550),\n",
" 'value': '327aab50-bf17-4b64-ac52-b5d93df7d20c'}})]"
]
}
],
"prompt_number": 13
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"filled_events = sb.search()\n",
"filled_events"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 14,
"text": [
"[(datetime.datetime(2015, 1, 22, 19, 32, 50, 129932),\n",
" {'mod_base': 1, 'img': array([[0, 0, 0, 0],\n",
" [0, 0, 0, 0],\n",
" [0, 0, 0, 0]])}),\n",
" (datetime.datetime(2015, 1, 22, 19, 32, 50, 130946),\n",
" {'mod_base': 2, 'img': array([[0, 1, 0, 1],\n",
" [0, 1, 0, 1],\n",
" [0, 1, 0, 1]])}),\n",
" (datetime.datetime(2015, 1, 22, 19, 32, 50, 132023),\n",
" {'mod_base': 3, 'img': array([[0, 1, 2, 0],\n",
" [1, 2, 0, 1],\n",
" [2, 0, 1, 2]])}),\n",
" (datetime.datetime(2015, 1, 22, 19, 32, 50, 133062),\n",
" {'mod_base': 4, 'img': array([[0, 1, 2, 3],\n",
" [0, 1, 2, 3],\n",
" [0, 1, 2, 3]])}),\n",
" (datetime.datetime(2015, 1, 22, 19, 32, 50, 134804),\n",
" {'echo_base': 5, 'img': array([[ 5., 5., 5., 5.],\n",
" [ 5., 5., 5., 5.],\n",
" [ 5., 5., 5., 5.]])}),\n",
" (datetime.datetime(2015, 1, 22, 19, 32, 50, 135668),\n",
" {'echo_base': 6, 'img': array([[ 6., 6., 6., 6.],\n",
" [ 6., 6., 6., 6.],\n",
" [ 6., 6., 6., 6.]])}),\n",
" (datetime.datetime(2015, 1, 22, 19, 32, 50, 136551),\n",
" {'echo_base': 7, 'img': array([[ 7., 7., 7., 7.],\n",
" [ 7., 7., 7., 7.],\n",
" [ 7., 7., 7., 7.]])}),\n",
" (datetime.datetime(2015, 1, 22, 19, 32, 50, 137621),\n",
" {'echo_base': 8, 'img': array([[ 8., 8., 8., 8.],\n",
" [ 8., 8., 8., 8.],\n",
" [ 8., 8., 8., 8.]])})]"
]
}
],
"prompt_number": 14
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment