{{ message }}

Instantly share code, notes, and snippets.

🎯
Focusing

# João Faria j-faria

🎯
Focusing
Created Apr 15, 2019
View gist:fdc0a97a72023dca26b084ec28ac9939
Created Feb 28, 2019
How to solve the binary mass function for m2, using sympy
View mass_function_solve_sympy.py
 from sympy import * from astropy.constants import G import astropy.units as u G = G.to(u.m**3 / (u.solMass * u.s**2)) f_rhs = lambda P, K, e: (P * K**3 * (1 - e**2)**(3/2)) / (2 * pi * G.value) f_lhs = lambda m1, m2, i: (m2**3 * sin(i)) / (m1 + m2)**2 # the earth
Last active Feb 27, 2019
How to solve Kepler's equation with sympy
View kepler_solve_sympy.py
 from sympy import symbols, sin, nsolve E = symbols('E') def eccentric_anomaly(M, ecc, prec=15): return nsolve(E - e*sin(E) - M, M, prec=prec) import mpmath as mp
Created Feb 11, 2019
Nightly bin a dataset of radial velocities
View binit.py
 import numpy as np ############################################################################### # the following is mostly a copy of the scipy implementation of # binned_statistic and binned_statistic_dd # but allowing for a weights parameter from scipy._lib.six import callable, xrange from scipy._lib._numpy_compat import suppress_warnings ## careful here!
Created Feb 11, 2019
Month name to number
View months.py
 months = { 'Jan': 1, 'Feb': 2, 'Mar': 3, 'Apr': 4, 'May': 5, 'Jun': 6, 'Jul': 7, 'Aug': 8, 'Sep': 9,
Created Jan 31, 2019
Fit all the sines
View sinefit.py
 from numpy import sin from scipy import optimize sine = lambda t, p: p[0] * sin(1. / p[1] * t + p[2]) + p[3] sinefit = lambda t, y, ye, p0, **kwargs: optimize.leastsq(lambda p, t, y, ye: (sine(t, p) - y)/ye, p0, args=(t, y, ye), **kwargs)[0]
Created Jan 29, 2019
Natural sort in Python
View natsort.py
 from re import split from glob import glob natsort = lambda s: [int(t) if t.isdigit() else t.lower() for t in split(r'(\d+)', s)] files = sorted(glob(path), key=natsort)
Last active Jan 9, 2019
Trying to emulate IRAF's noao.onedspec.continuum
View continuum.py
 import matplotlib.pyplot as plt import numpy as np from scipy.interpolate import LSQUnivariateSpline def continuum(wave, flux, type='ratio', order=1, low_reject=2, high_reject=0, niter=10): m1 = np.ones_like(wave, dtype=np.bool) # use all points at first m1 &= flux!=0 # but remove those where flux = 0
Created Dec 12, 2018
Fit all the Gaussians
View gaussfit.py
 from scipy import optimize gauss = lambda x,p: p[0]*exp(-(x-p[1])**2/(2*p[2]**2)) + p[3] gaussfit = lambda x,y,p0: optimize.leastsq(lambda p, x, y: gauss(x, p) - y, p0, args=(x, y))[0]
Last active Dec 6, 2018
Query the ESPRESSO ETC
View etc.py
 import re import requests from itertools import product import numpy as np url = 'https://www.eso.org/observing/etc/bin/simu/espresso' form_data = { 'almanac_time_option': 'almanac_time_option_ut_time',