def int_pl(x1, x2, gam, nstp=None): if nstp is None: nstp = 1000 x = np.linspace(x1, x2, nstp) y = x**(1 - gam) #whats this? to normalize! when calculating ``intrinsic luminosity'', assuming an intrinsic power-law spectrum of gamma=1.8 y0 = x**(1 - 1.8) interp_func0 = interpol(y0, x) interp_func = interpol(y, x) norm = interp_func0(10.) / interp_func(10.) y *= norm integral = tsum(y, x) return integral
def int_pl(x1, x2, gam, nstp=None): if nstp is None: nstp = 1000 x = np.linspace(x1, x2, nstp) y = x ** (1 - gam) # whats this? to normalize! when calculating ``intrinsic luminosity'', assuming an intrinsic power-law spectrum of gamma=1.8 y0 = x ** (1 - 1.8) interp_func0 = interpol(y0, x) interp_func = interpol(y, x) norm = interp_func0(10.0) / interp_func(10.0) y *= norm integral = tsum(y, x) return integral
def __init__(self, points: list): # ensure the curve starts at 0, 0 has_zero = False for point in points: if point[0] == 0: has_zero = True if not has_zero: points.insert(0, [0, 0]) points.sort(key=lambda s: s[0]) temps = [] speeds = [] for set_ in points: temps.append(set_[0]) speeds.append(set_[1]) self._array = [] # this involved alot of stack overflow and admittedly im not 100% sure how it works # basically given a set of points it extrapolates that into a line consisting of one # point per degree. x = np.asarray(temps) y = np.asarray(speeds) pch = interpol(x, y) xx = np.linspace(x[0], x[-1], x[-1]) line2d = plt.plot(xx, pch(xx), 'g-') self.temps = line2d[0].get_xdata() self.speeds = line2d[0].get_ydata()
def get_riskfree_libor(date, yte): # compute only once per date if date in functions_dict: f = functions_dict[date] else: try: df = df_yields.query('index==@date') dr = df.iloc[0] rates = ([0.0, dr['ON'] / 100, dr['w1'] / 100, dr['m1'] / 100, dr['m2'] / 100, dr['m3'] / 100, dr['m6'] / 100, dr['m12'] / 100]) df_inter = pandas.DataFrame(columns=['0', 'ON', 'w1', 'm1', 'm2', 'm3', 'm6', 'm12']) df_inter.loc[0] = years df_inter.loc[1] = rates df_inter = df_inter.dropna(axis='columns') f = interpol(df_inter.loc[0], df_inter.loc[1], k=1, bbox=[0.0, 4.0]) functions_dict[date] = f except: print (str(date)) functions_dict[date] = 0 f = functions_dict[date] y = float(yte) rf = f(y) / 100 rf = np.round(rf, decimals=4) return rf
def ext_smc_mky(wav,ebv): path='/Users/ctchen/analysis/SED/templates/' wav_ext,kappa_ext=np.loadtxt(path+'ext_assef_kappa.dat',unpack=True) interpfunc=interpol(wav_ext,kappa_ext) kappa=interpfunc(wav) kappa[np.where(kappa < 0)] = 0. ext=10.**(-kappa*ebv) ext[np.where(ext < 1e-10)]==0 return ext
def main(): obj=plt.imread('jerichoObject.bmp') ref=plt.imread('jerichoRef.bmp') img=obj-ref K=np.empty(img.shape)+0j temp=np.empty(img.shape)+0j wavelength=405e-9 k=2*np.pi/(wavelength) z=250e-6 #z=13e-3 #z=13e-3-250e-6 distX=6e-6 distY=6e-6 # n,m= img.shape n=img.shape[0] m=img.shape[1] # a,b = np.mgrid[0:n,0:m] a = np.mgrid[0:n,0:m][0] b = np.mgrid[0:n,0:m][1] pts=np.array((a.ravel(),b.ravel())).T first=time.time() # for (i,j),k in np.ndenumerate(K): for i in xrange(K.shape[0]): for j in xrange(K.shape[1]): print(i,j) r=(i*distX,j*distY,z) # for (x,y),value in np.ndenumerate(img): for x in xrange(img.shape[0]): for y in xrange(img.shape[1]): ksi=(x*distX,y*distY,z) ksiNorm=np.linalg.norm(ksi) ksiDotR=np.dot(ksi,r) temp[x,y]=img[x,y]*np.exp(1j*k*ksiDotR/ksiNorm) tempRavel=temp.ravel() surf=interpol(pts,tempRavel) func=lambda y,x: surf([[x,y]]) K[i,j]=dblquad(func,0,m,lambda x:0, lambda x:n ) timeTook=time.time()-first print(timeTook)
from __future__ import division, print_function import numpy as np from scipy.interpolate import LinearNDInterpolator as interpol import scipy.integrate as sciInt a, b = np.mgrid[0:11, 0:11] Z = np.ones((11, 11)) * 10 pts = np.array((a.ravel(), b.ravel())).T zr = Z.ravel() surf = interpol(pts, zr) func = lambda y, x: surf([[x, y]]) res = np.empty(Z.shape) for (i, j), k in np.ndenumerate(res): res[i, j] = sciInt.dblquad(func, 0.0, 10.0, lambda x: 0.0, lambda x: 10.0)[0] print(res[0])
val[out[0]] = 0. norm = ann_spec_flux_norm(gp, gm, q) val *= p[2] / norm[0] return val lecr = pd.read_csv('gam_lecr_pdcompatible.spc', skiprows=3, sep=',') e_cr = lecr['Eg(MeV)'] f_cr = lecr['Fg(10^-5 ph/cm^2/s/sr/MeV)'] sr_norm = (np.sin(np.deg2rad(25)) - np.sin(np.deg2rad(-25))) * np.deg2rad(50) from scipy.interpolate import interp1d as interpol lecr_interpol = interpol(e_cr * 1000, f_cr / 1000 * sr_norm * 1e-5, bounds_error=False, fill_value=0) def lecr_spectrum(energy, p): return p * lecr_interpol(energy) """ Created on Wed Sep 6 15:41:22 2017 @author: mpleinti Collection of different secondary functions adapted by tsiegert from mpleinti from tsiegert