Skip to content

Instantly share code, notes, and snippets.

View tacaswell's full-sized avatar

Thomas A Caswell tacaswell

View GitHub Profile
tacaswell /
Created November 15, 2022 21:27
two slope scale for Matplotlib
import itertools
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.scale as mscale
def factory(break_point, slope_ratio):
def forward(values):
out = np.array(values, copy=True)
out -= break_point
tacaswell /
Created September 6, 2022 20:30
Minimal functional Matplotlib
from types import SimpleNamespace
import matplotlib.image as mimage
from matplotlib.patches import Rectangle
from matplotlib.backends.backend_agg import RendererAgg
import matplotlib.transforms as mtransforms
import matplotlib.path as mpath
import matplotlib.colors as mcolors
import numpy as np
tacaswell /
Created February 11, 2022 00:42
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 October 27, 2021 16:53
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 February 18, 2021 19:02
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 20:47
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 April 8, 2020 17:42
trace back -> IPython exit
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 April 2, 2020 19:37
ingest xpd chi files

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

tacaswell /
Last active January 27, 2022 21:31
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 September 18, 2019 14:26
Slides for h5py update