Example #1
0
def generate_gaussian_line(err=1.0, h=10.0):
  xx = R.random.randn(1000)*err
  ii = R.random.randint(2, 997)
  print ii
  xc = R.arange(1000)
  eterm = -((xc-ii)**2)/(2.0*(2.5**2))
  eterm = R.clip(eterm, -10.0, 0.0)
  xx += R.exp(eterm)*h
  return xx
Example #2
0
def gauss(x, sigma):
  # Do all the derivatives at the same time
  eterm = -(x**2)/(2.0*sigma**2)
  eterm = R.clip(eterm, -10.0, 0.0) # Avoid nastiness

  invs2pi = 1./R.sqrt(2.0*R.pi)
  norm = invs2pi * (1./sigma)
  d0 = R.exp(eterm)*norm
  d1 = -x * d0/sigma**2
  
  return (d0, d1)
Example #3
0
def generate_derivatives(xx, sigma=1.0):

  # First set up the convolution dimensions
  npix = xx.shape[0]
  npix_full = npix*2
  xx1 = R.zeros((npix_full, ), dtype='f8')
  xx1[0:npix] = xx[:] # Copy into padded array

  # Set up the coordinate arrays
  # We can happily misuse fftfreq here, for simplicity
  xc = R.fft.fftfreq(npix_full, 1./npix_full)


  # Ok, compute first and second derivative kernels
  # Note, this is not optimized for memory etc...
  d0p, d1p = gauss(xc+0.5, sigma)
  d0m, d1m = gauss(xc-0.5, sigma)
  kernel1 = d0p - d0m
  kernel2 = d1p - d1m

  # FFT everything in sight
  xx1_ft = R.fft.rfft(xx1)
  kernel1_ft = R.fft.rfft(kernel1)
  kernel2_ft = R.fft.rfft(kernel2)

  #
  r1 = R.fft.irfft(xx1_ft* kernel1_ft)
  r2 = R.fft.irfft(xx1_ft* kernel2_ft)

  return r1[0:npix], r2[0:npix]
Example #4
0
def determine_oned_line_points(r1, r2, lo=0.05, eps=0.01):
  r2min = r2.min()
  w1 =  R.nonzero(r2 < (lo*r2min))
  xx = -r1[w1]/r2[w1]
  w2 = R.nonzero(R.absolute(xx) < (0.5+eps)) # Put in an epsilon correction
  return (w1[0])[w2]
Example #5
0
import numpy as np
import mangle
import ROOTpy as R

npoints1 = 1000

ra1 = np.linspace(0.0, 360.0, num=npoints1, endpoint=False)
dec1 = np.linspace(-0.99999, 1.0, num=npoints1, endpoint=False)
dec1 = 90.0 - np.arccos(dec1) * 180.0 / np.pi

ra, dec = np.meshgrid(ra1, dec1)

ra = ra.flatten()
dec = dec.flatten()

foot = mangle.Mangle("boss_survey.ply")

ids = foot.get_polyids(ra, dec)

ra = ra[ids >= 0]
dec = dec[ids >= 0]

R.forprint("grid.txt", "%20.10e %20.10e\n", "w", ra, dec)