def j2(self,x): """ spherical bessel l=2 """ return M.choose(M.greater(x,0.001),(x**2/15.0,((M.cos(x) * -3. / x - M.sin(x) * (1. - 3. /x**2))/x))) return
def loadFile(objectFileName): oimg = pyfits.open(objectFileName) # Load the IFU data -- Row-stacked spectra odata = oimg[1].data oError = oimg[2].data odata_dim = odata.shape wcs = astWCS.WCS(objectFileName, extensionName=1) owavelengthStartEnd = wcs.getImageMinMaxWCSCoords()[0:2] fiberNumber = wcs.getImageMinMaxWCSCoords()[2:4] owavelengthStep = oimg[1].header['CDELT1'] owavelengthRange = [owavelengthStartEnd[0] + i * owavelengthStep for i in range(odata_dim[1])] # Check to make sure we got it right if not owavelengthRange[-1] == owavelengthStartEnd[-1]: print 'The ending wavelenghts do not match... Exiting' sys.exit(1) else: # make median sky specs = pyl.array([flux for flux in odata]) skySpec = pyl.median(specs, axis=0) RSS = [] for i in range(int(fiberNumber[1])): #oflux = odata[i] - oskyflux oflux = odata[i] - skySpec oflux[pyl.isnan(oflux)] = 0.0 oErrorFlux = oError[i] #oflux = odata[i] # Mask out extreme values in spectrum # Just because edges dodgy in efosc med = pyl.median(oflux) oflux[pyl.greater(abs(oflux), 10.0 * med)] = 0.0001 objSED = astSED.SED(wavelength=owavelengthRange, flux=oflux) #skySED = astSED.SED(wavelength=owavelengthRange, flux=oskyflux) skySED = astSED.SED(wavelength=owavelengthRange, flux=skySpec) errSED = astSED.SED(wavelength=owavelengthRange, flux=oErrorFlux) # make it > 0 everywhere objSED.flux = objSED.flux - objSED.flux.min() objSED.flux = objSED.flux / objSED.flux.max() errSED.flux = errSED.flux - errSED.flux.min() errSED.flux = errSED.flux / errSED.flux.max() skySED.flux = skySED.flux - skySED.flux.min() skySED.flux = skySED.flux / skySED.flux.max() RSS.append({'object': objSED, 'sky': skySED, 'error': errSED}) return RSS
def j1(self,x): """ spherical bessel l=1 """ return M.choose(M.greater(x,0.001),(x/3.0,(M.sin(x)/x - M.cos(x))/x))
def j0(self,x): """ spherical bessel l=0 """ return M.choose(M.greater(x,0.001),(1.0-x**2/6.0,M.sin(x)/x))