Skip to content

Instantly share code, notes, and snippets.


Thomas A Caswell tacaswell

View GitHub Profile
tacaswell /
Created Feb 11, 2022
Notes on conda "overlays"

Hot-fixing and extending conda environments


We deploy root-owned conda environments which are the basis of the data collection and analysis environments. On one hand because these are owned by root they are write-protected and ensure that users can not accidentally break the environment, on the other hand because they are write-protected they can not be upgraded or extended. While we want to run with a stable, standard, well understood software environment, we do need this

tacaswell /
Last active Oct 27, 2021
What time is it where your friends are?
#! /usr/bin/env python3
_facilities = {
"SLAC/ALS": "America/Los_Angeles",
"APS": "America/Chicago",
"NSLS-II": "America/New_York",
"DLS": "Europe/London",
"MAXIV": "Europe/Paris",
"SLS": "Europe/Paris",
tacaswell /
Last active Feb 18, 2021
Files for working with reduced data from 2020-12 experiments at XPD

Collection of notebooks an files for playing with gpcam data

  1. explore_pgcam_data.ipynb -> demo of how to pulll reduced data out of the msgpack databroker
  2. -> code run on xpd against raw data broker to sort out what raw runs we are interested in
  3. -> code run to re-process the raw data and produce the reduced outputs
tacaswell /
Created May 16, 2020
Example of how to ingest sensord logs (from journalctl) to EventModel
from event_model import compose_run
import datetime
import dateutil.parser
import itertools
from io import StringIO
import subprocess
import numpy as np
import functools
def extract_event(ts, batch):
tacaswell / ironmanpython.txt
Created Apr 8, 2020
trace back -> IPython exit
View ironmanpython.txt
Python 3.9.0a5+ (heads/master:799d7d61a9, Apr 6 2020, 17:38:49)
Type 'copyright', 'credits' or 'license' for more information
IPython -- An enhanced Interactive Python. Type '?' for help.
In [1]: 1 /0
Traceback (most recent call last):
File "/home/tcaswell/.virtualenvs/bleeding/lib/python3.9/site-packages/IPython/core/", line 3331, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-1-a37332903225>", line 1, in <module>
1 /0
tacaswell /
Last active Apr 2, 2020
ingest xpd chi files

This is code to consume processed data from XPD back into document model

import numpy as np
import matplotlib
import matplotlib.lines
from matplotlib.artist import allow_rasterization
import matplotlib.pyplot as plt
class MatplotlibException(Exception):
tacaswell / .gitignore
Last active Sep 18, 2019
Slides for h5py update
View .gitignore
View make_bleeding
#! /usr/bin/bash
set -e
pull_build () {
git pull || echo failed
from epics import caput, caget
from itertools import count
for j in count():
ret = caget('XF:31IDA-BI{Cam:Tbl}cam1:PortName_RBV')
if ret is None:
raise TimeoutError('failed on XF:31IDA-BI{Cam:Tbl}cam1:PortName_RBV')
ret = caget('XF:31IDA-BI{Cam:Tbl}image1:EnableCallbacks_RBV')
if ret is None:
raise TimeoutError('failed on XF:31IDA-BI{Cam:Tbl}image1:EnableCallbacks_RBV')