Beispiel #1
0
def g_thief(r, pref=1):
    sys.path.append('./')
    import dataPython as dp
    data = dp.getXYdata('../data/final/nord-120kpc-gas.txt')
    x = np.asarray(data['xx'])
    y = np.asarray(data['yy'])
    b = inter.InterpolatedUnivariateSpline(
        x, y, k=1)  #k is the order of the polynomial
    return b(r)
def getphi0(version='LT',file=None):

  p0pr = -1.5880464 #seen N-MISC-18-001

  if version=='LT':
    f = lambda x: 1 + p0pr*x + (4/3)*x**(3/2) + (2/5)*p0pr*x**(5/2) \
         + (1/3)*x**3 + (3/70)*p0pr**2*x**(7/2) + (2/15)*p0pr*x**4 \
         + (4/63)*((7/6)-(1/16)*p0pr**3)*x**(9/2)
  elif version=='HT' :
    f = lambda x: 144/x**3 
  elif version=='matched' :
    fl = getphi0('LT')
    fh = getphi0('HT')
    xi = 200 
    xip = 200 
    sig = 100 
    sigp = 100
    #f = lambda x: fl(x)*special.erf((xi-x)/(np.sqrt(2)*sig)) + fh(x)*special.erf((x-xip)/(np.sqrt(2)*sig))
    f1 = lambda x: fl(x)*((1/2) + (1/2)*special.erf((xi-x)/(np.sqrt(2)*sig))) 
    f2 = lambda x: fh(x)*((1/2) + (1/2)*special.erf((x-xip)/(np.sqrt(2)*sigp))) 
    #f = lambda x: (fl(x)*special.erf((xi-x)/(np.sqrt(2)*sig)) + fh(x)*special.erf((x-xip)/(np.sqrt(2)*sig)))
    f = lambda x: f1(x) + f2(x)
  elif version=='numeric':
    #get the data
    if(file==None) :
      raise ValueError('getphi0: data file does not exist')
      return None

    data = dp.getXYdata(file)
    #print(data.keys())

    #convert to numpy arrays
    data['xx']= np.asarray(data['xx'])
    data['yy']= np.asarray(data['yy'])

    #print(np.min(data['yy']))

    #spline fit
    #f = inter.InterpolatedUnivariateSpline (data['xx'], data['yy'], k=2)
    #f = inter.UnivariateSpline (data['xx'], data['yy'], k=3,s=0)
    yhat = savgol_filter(data['yy'], 3, 2) # window size 51, polynomial order 2
    f = inter.UnivariateSpline (data['xx'], yhat, k=3,s=0)
  else:
    raise ValueError('getphi0: invalid request for stopping funtion')

  return f
################################
########### Imports ############
################################
import sys
sys.path.append('../../python/')

import dataPython as dp
import numpy as np
import scipy.interpolate as inter
import matplotlib.pyplot as plt

################################
######### Data files ###########
################################
data_total = dp.getXYdata('../data/final/nord-120kpc-total.txt')
data_bh = dp.getXYdata('../data/final/nord-120kpc-blackhole.txt')
data_bulge = dp.getXYdata('../data/final/nord-120kpc-bulge.txt')
data_disk = dp.getXYdata('../data/final/nord-120kpc-disk.txt')
data_halo = dp.getXYdata('../data/final/nord-120kpc-halo.txt')
data_gas = dp.getXYdata('../data/final/nord-120kpc-gas.txt')
data_greyb_bottom = dp.getXYdata('../data/final/nord-120kpc-bottomband.txt')
data_greyb_top = dp.getXYdata('../data/final/nord-120kpc-topband.txt')

rval = np.linspace(0.1, 120, 500)
rb = np.linspace(0.1, 120, 500)

################################
##### Measured data points #####
################################
data = dp.getXYdata_wXYerr('../data/100kpc_data.txt')
Beispiel #4
0
import dataPython as dp
import NGC5533_functions as nf


# In[2]:


#**********************importing text files******************************
#there's no need to import the radius for each component as everything has the same r array (the r array of the raw data)
#data:
data = dp.getXYdata_wXYerr('../testing/891/891_data')
r = np.asarray(data['xx'])
v_dat = np.asarray(data['yy'])
v_err1 = np.asarray(data['ey'])
#disk:
disk = dp.getXYdata('../testing/891/891_dtDisk.dat')
d = np.asarray(disk['yy'])
#bulge:
bulge = dp.getXYdata('../testing/891/891_dtBulge.dat')
b = np.asarray(bulge['yy'])
#gas:
gas = dp.getXYdata('../testing/891/891_dtGas.dat')
g = np.asarray(gas['yy'])

#***************************define total curve
#D=9.25 #disk M-L ratio provided in [1] 
#B=.5 #bulge M-L ratio provided in [1] 

def t(r,B,D,rc,rho00,G):
    return np.sqrt((D*d)**2
                   +(B*b)**2
#rbulger[1] = .58 #.409 from trace
#rbulgev[1]=653.7

#disk rotmod:
disk_rdata = dp.getXYZdata('../testing/aydisk.dat')
rdiskr = disk_rdata['xx']
rdiskv = disk_rdata['zz']
rdiskv = np.asarray(rdiskv)
#rdiskv=rdiskv[:len(rdiskv)-5]
#rdiskv=rdiskv[0::72]
rdiskv_spline = inter.InterpolatedUnivariateSpline(rdiskr, rdiskv, k=5)
rdiskv_fit = rdiskv_spline(r_dat)
rdiskv_fit = rdiskv

#Halo datathief trace:
halo_dt = dp.getXYdata('../NGC_5005/datatheif_halo_spline.txt')
halo_dtr = halo_dt['xx']
halo_dtv = halo_dt['yy']
halo_dtv = np.asarray(halo_dtv)
#halo_dtv=halo_dtv[:len(halo_dtv)-5]
#halo_dtv=halo_dtv[0::6]
halo_dtv_spline = inter.InterpolatedUnivariateSpline(halo_dtr, halo_dtv, k=5)
halo_dtv_fit = halo_dtv_spline(r_dat)

#rval = np.linspace(0,11.2,19)

rval = r_dat

# In[3]: