Skip to content

Instantly share code, notes, and snippets.

Avatar
🎯
Focusing

João Faria j-faria

🎯
Focusing
View GitHub Profile
@j-faria
j-faria / HARPS_ESOarchive.py
Created Mar 25, 2016
Query the ESO archive for HARPS data. Works with astroquery.eso version in my fork https://github.com/j-faria/astroquery/commit/01aba0d488acec92c78b5cc792ceca628aa9ef22
View HARPS_ESOarchive.py
import sys
from astroquery.eso import Eso
eso = Eso()
# should use the default username
# and the keyring stored password
authentication = eso.login()
if not authentication:
raise RuntimeError('Something went wrong with authentication!')
@j-faria
j-faria / bw.py
Last active Apr 6, 2016
Convert a PDF file to black&white and display it
View bw.py
#!/usr/bin/env python
"""
Convert a PDF file to black&white and display it.
Run as: python bw.py input.pdf
"""
viewer = 'evince'
from contextlib import contextmanager
import tempfile
View gist:3c642e1fa69b00653a608232d86dffe6
def fun(teff=None, mass=None):
if teff and mass:
# gave two parameters
pass # goto 1
elif teff:
# don't have mass, have teff
mass = f(teff)
elif mass:
# don't have teff, have mass
# teff = f(mass)
@j-faria
j-faria / mount.sh
Created Feb 2, 2017
Mount a remote directory locally using `sshfs`
View mount.sh
ssh -N -f -L port:server2:22 user@server1
# mount the directory locally
sshfs -C -p port user@localhost:remote_directory local_directory(must exist)
# unmount
sudo umount local_directory
@j-faria
j-faria / binom_fraction.py
Created May 10, 2017
Probability distribution for fraction of X, given the total sample size N, and the number of Xs in the sample, n. Follows the Appendix of Burgasser et al. (ApJ, 586:512, 2003)
View binom_fraction.py
import numpy as np
from scipy.optimize import bisect
from scipy.special import binom as binom_coeff
from scipy.integrate import quad
from functools import partial
def binom_function(N, n, p):
c = binom_coeff(N, n)
return c * p**n * (1.-p)**(N-n)
@j-faria
j-faria / planet.py
Created May 10, 2017
Calculate the mass and semi-major axis of a planet, from its orbital period, semi-amplitude and eccentricity
View planet.py
from astropy.constants import G
import astropy.units as u
# we assume m_planet << m_star
def get_planet_mass(P, K, e, star_mass=1.0):
"""
P in days, K in m/s, star_mass in solar masses
output is planet mass in Jupiter masses
"""
@j-faria
j-faria / develop.py
Created Sep 6, 2017
re-import everything at any stage
View develop.py
def develop():
import reimport, os
mod = reimport.modified()
try:
mod.remove('__main__')
except ValueError:
pass
reimport.reimport(*mod)
print 'Done re-importing'
@j-faria
j-faria / acknowledgements.py
Last active Sep 8, 2017
Print the damn acknowledgements!
View acknowledgements.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Print the acknowledgements sentence with all the project references!
See acknowledgements.py -h or run acknowledgements.py ? for help or simply use as
acknowledgements.py Author1 Author2
"""
name = 'acknowledgements'
@j-faria
j-faria / styler.py
Last active Nov 15, 2017
A custom styler to make publication-ready matplotlib plots
View styler.py
# matplotlib parameters for publication plots
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
from matplotlib import gridspec
import re
import os
this_folder = os.path.dirname(__file__)
@j-faria
j-faria / timer.py
Created Mar 9, 2018
With IPython, timing snippets of code is easy
View timer.py
from IPython import get_ipython
timer = lambda code: get_ipython().run_line_magic('timeit', '-o ' + code)
out = timer('pass')
out = timer('a = 0')