View cmdcache.py
import sys, os | |
import joblib | |
import subprocess | |
mem = joblib.Memory('.', verbose=False) | |
@mem.cache | |
def run_cmd(args, env): | |
process = subprocess.run(args, capture_output=True, text=True) | |
return process.stdout, process.stderr, process.returncode |
View joss_make_latex.sh
#!/bin/bash | |
# you need to install: | |
# pip install openbases | |
# sudo apt install texlive-xetex pandoc pandoc-citeproc | |
PDF_INFILE=paper.md | |
PDF_LOGO=logo.png | |
PDF_OUTFILE=paper.pdf | |
TEX_OUTFILE=paper.tex |
View xray_opt_gif.sh
#!/bin/bash | |
# example usage: | |
# bash xray_opt_gif.sh 155.87737 +19.86508 | |
RA=$1 | |
DEC=$2 | |
wget -nc "https://alasky.unistra.fr/hips-thumbnails/thumbnail?ra=${RA}&dec=${DEC}&fov=0.21750486127986932&width=500&height=500&hips_kw=CDS%2FP%2FSDSS9%2Fcolor" -O opt.jpg | |
wget -nc "https://alasky.unistra.fr/hips-thumbnails/thumbnail?ra=${RA}&dec=${DEC}&fov=0.21750486127986932&width=500&height=500&hips_kw=xcatdb%2FP%2FXMM%2FPN%2Fcolor" -O xmm.jpg |
View benchmark.sh
# columns: id1,id2,id3,id4,id5,id6,v1,v2,v3 | |
f=G1_1e7_1e2_0_0.csv | |
awk="time mawk" | |
# groupby simple | |
$awk -F, 'NR>1 { a[$1] += $7 } END {for (i in a) print i, a[i]}' $f >/dev/null | |
$awk -F, 'NR>1 { a[$1,$2] += $7 } END { for (comb in a) { split(comb,sep,SUBSEP); print sep[1], sep[2], a[sep[1],sep[2]]; }}' $f >/dev/null | |
$awk -F, 'NR>1 { a[$3] += $7; n[$3]++; b[$3] += $9; } END {for (i in a) print i, a[i], b[i]/n[i];}' $f >/dev/null | |
$awk -F, 'NR>1 { a[$4] += $7; n[$4]++; b[$4] += $8; } END {for (i in a) print i, a[i]/n[i], b[i]/n[i];}' $f >/dev/null |
View cachestan.py
import re | |
import pystan | |
import hashlib | |
import pickle | |
import os | |
def build_model(code): | |
lines = code.split("\n") | |
lines = [re.sub('//.*$', '', line).strip() for line in lines] | |
lines = [line.replace(' ', ' ').replace(' ', ' ').replace(' ', ' ') |
View run_processes_when_idle.sh
#!/bin/bash | |
# how to identify the processes to STOP/CONT | |
# this is any part of process command line | |
PROCESS="myscript.py" | |
# run this in one terminal: | |
# it tries to resume the processes every so often | |
while sleep 10m; do | |
pgrep -f "${PROCESS}"|xargs -rt kill -CONT |
View poissonerr.py
""" | |
If you ever made a plot of "fractions" or "rates" with symmetric error | |
bars, like in the plot shown, this mini-tutorial is for you. Here is how | |
to compute correct error bars, so that uncertainties in the fractions | |
do not go below 0% or above 100%. | |
If you have a histogram for | |
instance, and you detected k objects in a given bin. What is the rate | |
underlying at quantiles q=0.1, 0.5(median), 0.9? | |
""" |
View mcmc.py
import numpy as np | |
def mcmc(logfunction, x0, nsteps, sigma_p): | |
samples = np.empty((nsteps, len(x0))) | |
logL0 = logfunction(x0) | |
naccepts = 0 | |
for i in range(nsteps): | |
x1 = np.random.normal(x0, sigma_p) | |
logL1 = logfunction(x1) | |
if logL1 - logL0 > np.log(np.random.uniform()): |
View toh5.py
import sys | |
import numpy | |
import h5py | |
filename = sys.argv[1] | |
outfilename = filename.replace('.npy', '').replace('.gz', '').replace('.csv', '') + '.h5' | |
if filename.endswith('.npy'): | |
print('loading NPY...') | |
data = numpy.load(filename) | |
else: |
View fetchswiftspectrum.py
""" | |
Download custom spectrum from http://www.swift.ac.uk/, programmatically | |
How to use: | |
$ python fetchswiftspectrum.py grbid timeslicespec | |
$ wget -nc --continue $(cat customspec.url)/a.tar.gz | |
""" |
NewerOlder