Skip to content

Instantly share code, notes, and snippets.

View syrte's full-sized avatar

Zhaozhou Li syrte

View GitHub Profile
@syrte
syrte / orbit_interp.py
Created March 26, 2022 18:31
Interp orbit using agama between snapshots
def interp_orbit(ix, snap_list, npts=51, rtol=1e-5):
ns = len(snap_list) - 1
ts = np.array([si.t for si in snap_list.values()])
t_list = np.empty((ns, npts))
xv_list = np.empty((len(ix), ns, npts, 6))
for i, si in enumerate(snap_list.values()):
print(i, end=',', flush=True)
#!/usr/bin/env python
import sys
import json
for file in sys.argv[1:]:
print('# file: %s' % file)
print('# vi: filetype=python')
print('')
code = json.load(open(file))
class CubicSplineExtrap(CubicSpline):
def __init__(self, x, y, bc_type='not-a-knot', extrapolate='linear'):
"""
Linearly extrapolate outside the range
extrapolate: False, float, 'const', 'linear', 'cubic', or a 2-tuple of them
Example
-------
from scipy.interpolate import PchipInterpolator, CubicSpline
@syrte
syrte / sky_map.md
Last active January 16, 2022 12:28
Sky map with proplot
import numpy as np
import proplot as pplt
from matplotlib import pyplot as plt
import cartopy.geodesic


def add_ticks(ax, labelpad=None):
    """
    Only works for major ticks on the left and bottom.
@syrte
syrte / install_agama.sh
Last active November 18, 2021 13:31
Manual installation of agama in a plain conda enviroment
# create env and install dependency
conda create -n agama python=3.8 numpy gsl glpk eigen cvxopt
conda activate agama
# download files
cd $HOME/src
wget https://github.com/GalacticDynamics-Oxford/Agama/archive/master.zip -O agama.zip
wget https://github.com/GalacticDynamics-Oxford/unsio/archive/master.zip -O unsio.zip
wget https://github.com/cvxopt/cvxopt/archive/master.zip -O cvxopt.zip
unzip agama.zip
"""
Add exponentiated variance (EV) acquisition function to skopt.
Author:
Zhaozhou Li (lizz.astro@gmail.com)
"""
import numpy as np
import warnings
import skopt.acquisition
"""
author:
Zhaozhou Li (lizz.astro@gmail.com)
history:
This code is taken from my project mw_mass3.
"""
import numpy as np
from scipy.interpolate import CubicSpline
@syrte
syrte / Nemo_IO.py
Last active February 2, 2022 18:14
"""
Python IO for nemo snapshot
Author: syrte (lizz.astro@gmail.com)
Example:
file = '../data/N1e6_d0.22_g0.16_0.00_f0.00.snap'
snap = open_nemo(file, file_meta=False)
print(snap.History.data, end='\n\n')
@syrte
syrte / null_decorator.py
Created August 10, 2021 08:52
A decorator that does nothing.
def null_decorator(*args, **kwargs):
"A decorator that does nothing."
if len(args) == 1 and len(kwargs) == 0 and callable(args[0]):
return args[0]
else:
return null_decorator
@syrte
syrte / scipy_spline_to_gsl.py
Created August 2, 2021 04:54
Pass a scipy cubic spline to gsl
import numpy as np
from libc.string cimport memcpy
from numpy cimport ndarray
from cython_gsl cimport *
cdef struct gsl_spline_t:
gsl_interp_t *interp
double *x
double *y