• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Python pyfits.getheader函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中pyfits.getheader函数的典型用法代码示例。如果您正苦于以下问题:Python getheader函数的具体用法?Python getheader怎么用?Python getheader使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了getheader函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: shiftRGB

def shiftRGB(redF,greenF,blueF,blueshiftr=0,blueshiftc=0,greenshiftr=0,greenshiftc=0,redshiftr=0,redshiftc=0,ext=None):
    """
    this code shift the pixels of three r, g, b images. Using g image as reference and shift the other two images. It will return the shifted r,g,b images.
    each row goes along ra direction
    each col goes along dec direction
    CRVAL1 ; ra direction
    CRVAL2: dec direction
    """
    blueHdr = pf.getheader(blueF,ext)
    greenHdr = pf.getheader(greenF,ext)
    redHdr = pf.getheader(redF,ext)
    bluerow = blueHdr['crval1']*3600./0.27
    bluecol = blueHdr['crval2']*3600./0.27
    greenrow = greenHdr['crval1']*3600./0.27
    greencol = greenHdr['crval2']*3600./0.27
    redrow = redHdr['crval1']*3600./0.27
    redcol = redHdr['crval2']*3600./0.27
    """
    col0=int(blueHdr['datasec'].split('[')[1].split(']')[0].split(',')[0].split(':')[0])-1
    col1=int(blueHdr['datasec'].split('[')[1].split(']')[0].split(',')[0].split(':')[1]) 
    row0=int(blueHdr['datasec'].split('[')[1].split(']')[0].split(',')[1].split(':')[0])-1
    row1=int(blueHdr['datasec'].split('[')[1].split(']')[0].split(',')[1].split(':')[1]) 
    """
    blue = pf.getdata(blueF,ext)
    green = pf.getdata(greenF,ext)
    red = pf.getdata(redF,ext)

    ctgreenrow = (bluerow+greenrow+redrow)/3.
    ctgreencol = (bluecol+greencol+redcol)/3.
    blue = nd.shift(blue,[bluerow - ctgreenrow+blueshiftr,bluecol-ctgreencol+blueshiftc],mode='nearest',order=1)
    green = nd.shift(green,[greenrow - ctgreenrow+greenshiftr,greencol-ctgreencol+greenshiftc],mode='nearest',order=1)
    red = nd.shift(red,[redrow - ctgreenrow+redshiftr, redcol-ctgreencol+redshiftc],mode='nearest',order=1)
    return red,green,blue
开发者ID:jgbrainstorm,项目名称:des-google-earth,代码行数:33,代码来源:fits2color.py


示例2: imgray2fits

def imgray2fits(infile, fitsfile='', overwrite=False, headerfile=None, flip=False):
    if fitsfile == '':
        fitsfile = decapfile(infile) + '.fits'

    if exists(fitsfile):
        if overwrite:
            delfile(fitsfile)
        else:
            print fitsfile, 'EXISTS'
            sys.exit(1)
    
    data = loadgray(infile)  # coeim.py
    
    #hdu = pyfits.PrimaryHDU()
    header = headerfile and pyfits.getheader(headerfile)
    hdu = pyfits.PrimaryHDU(None, header)
    hdulist = pyfits.HDUList([hdu])
    hdulist.writeto(fitsfile)

    try:  # If there's a 'SCI' extension, then that's where the WCS is
        header = pyfits.getheader(headerfile, 'SCI')
    except:
        pass
    
    if header <> None:
        if 'EXTNAME' in header.keys():
            del(header['EXTNAME'])
    
    if flip:
        data = flipud(data)
    
    pyfits.append(fitsfile, data, header)
    
    print fitsfile, 'PRODUCED'
开发者ID:albertfxwang,项目名称:python,代码行数:34,代码来源:imgray2fits.py


示例3: collapse_cube

def collapse_cube(w1, w2):
    """ Collapse a MUSE data cube.

    Arguments

    cube : MUSE data cube name containing both data and stat extensions.
    iext : Initial extension to be used. Default is one for combined cubes.

    """
    fits = "slice_w{0}_{1}.fits".format(w1, w2)
    outfits = "collapsed_w{0}_{1}.fits".format(w1, w2)
    data = pf.getdata(fits, 0)
    error = pf.getdata(fits, 1)
    h = pf.getheader(fits, 0)
    h2 = pf.getheader(fits, 1)
    h["NAXIS"] = 2
    del h["NAXIS3"]
    h2["NAXIS"] = 2
    del h2["NAXIS3"]
    print "Starting collapsing process..."
    start = time.time()
    w = wavelength_array(fits)
    # newdata = np.trapz(data, dx=np.diff(w)[0], axis=0)
    # newdata = np.nansum(data, axis=0) * np.diff(w)[0]
    newdata = np.nanmedian(data, axis=0)
    noise = 1.482602 / np.sqrt(6.) * np.nanmedian(np.abs(2.* data - \
           np.roll(data, 2, axis=0) - np.roll(data, -2, axis=0)), \
           axis=0)
    end = time.time()
    print "Collapsing lasted {0} minutes.".format((end - start)/60.)
    hdu = pf.PrimaryHDU(newdata, h)
    hdu2 = pf.ImageHDU(noise, h2)
    hdulist = pf.HDUList([hdu, hdu2])
    hdulist.writeto(outfits, clobber=True)
    return
开发者ID:kadubarbosa,项目名称:hydramuse,代码行数:35,代码来源:misc.py


示例4: do_test_3_fqpm_tilt

    def do_test_3_fqpm_tilt(self):
        """ Test FQPM tilting (no FQPM yet), no field mask. Verify proper behavior in Lyot plane"""

        osys = poppy.OpticalSystem("test", oversample=self.oversample)
        osys.addPupil('Circle', radius=6.5/2)
        osys.addPupil('FQPM_FFT_aligner')
        osys.addImage()  # perfect image plane
        osys.addPupil('FQPM_FFT_aligner', direction='backward')
        osys.addPupil('Circle', radius=6.5/2)
        osys.addDetector(pixelscale=self.pixelscale, fov_arcsec=3.0)
            #TODO testing of odd and even focal plane sizes?
        
        plt.clf()
        poppy._FLUXCHECK=True
        psf = osys.calcPSF(wavelength=self.wavelength, save_intermediates=True, display_intermediates=True)
        psf.writeto('test3a_psf.fits', clobber=True)

        # after the Lyot plane, the wavefront should be all real. 
        check_wavefront('wavefront_plane_004.fits', test='is_real', comment='(Lyot Plane)')

        cen = webbpsf.measure_centroid('wavefront_plane_002.fits', boxsize=50)
        head = pyfits.getheader('wavefront_plane_002.fits')
        desired_pos = (head['NAXIS1']-1)/2.0
        self.assertAlmostEqual( cen[0], desired_pos, delta=0.025) #within 1/50th of a pixel of desired pos?
        self.assertAlmostEqual( cen[1], desired_pos, delta=0.025) #within 1/50th of a pixel of desired pos?
                # This is likely dominated by uncertainties in the simple center measuring algorithm...

        _log.info("FQPM FFT half-pixel tilting is working properly in intermediate image plane")

        cen2 = webbpsf.measure_centroid('wavefront_plane_005.fits', boxsize=50)
        head2 = pyfits.getheader('wavefront_plane_005.fits')
        desired_pos2 = (head2['NAXIS1']-1)/2.0
        self.assertAlmostEqual( cen2[0], desired_pos2, delta=0.05) #within 1/20th of a pixel of desired pos?
                                    
        _log.info("FQPM FFT half-pixel tilting is working properly in final image plane")
开发者ID:astrocaribe,项目名称:webbpsf,代码行数:35,代码来源:test_poppy.py


示例5: test_pv_invert_many

def test_pv_invert_many(find=True):
    import es_util
    from glob import glob
    sep = '-'*70

    dir=os.path.expanduser("~/data/astrometry")
    imdir=os.path.join(dir,'image')
    plotdir=os.path.join(dir,'plots')
    testdir=os.path.join(dir,'test')

    x = numpy.array([21.34, 1000.0, 1500.17], dtype='f8')
    y = numpy.array([11.21, 1000.0, 1113.92], dtype='f8')

    pattern = os.path.join(imdir,'*')
    images=glob(pattern)


    hdr=pyfits.getheader(images[0])
    n1=hdr['naxis1']
    n2=hdr['naxis2']
    xrang=numpy.array([1.0, n1], dtype='f8')
    yrang=numpy.array([1.0, n2], dtype='f8')
    #n=100
    n=10
    x,y = es_util.make_xy_grid(n, xrang, yrang)

    rms = []
    xdiffs = []
    ydiffs = []
    for imname in images:
        sys.stdout.write('image: %s\n' % imname)
        sys.stdout.write(sep+'\n')
        hdr=pyfits.getheader(imname)
        wcs=wcsutil.WCS(hdr)

        sys.stdout.write('doing xforms\n')
        ra,dec = wcs.image2sky(x,y)
        xn,yn = wcs.sky2image(ra,dec, find=find)

        xdiff = xn-x
        ydiff = yn-y

        t=(xdiff)**2 + (ydiff)**2
        trms = numpy.sqrt( t.sum()/t.size )
        rms.append(trms)
        xdiffs.append(xdiff)
        ydiffs.append(ydiff)

        sys.stdout.write('rms: %s\n' % trms)

    rms = numpy.array(rms,dtype='f8')
    out={}
    out['rms'] = rms
    out['x'] = x
    out['y'] = y
    out['xdifflist'] = xdiffs
    out['ydifflist'] = ydiffs
    return out
开发者ID:esheldon,项目名称:espy,代码行数:58,代码来源:util.py


示例6: use_correlation

 def use_correlation(self):
     """
     Use correlation data-cube.
     """
     import numpy
     
     from pyfits import getdata, getheader, writeto
     from glob import glob
     from os.path import splitext
     from sys import stdout
     
     self.print("\n A correlation cube will be used.")
     self.print(" Looking for an existing correlation data-cube in the current folder.")
     candidates = glob("*.fits")
                     
     corr_cube = None
     for candidate in candidates:
         if 'CORRFROM' in getheader(candidate):
             if getheader(candidate)['CORRFROM'] == self.input_file:
                 self.print(" Correlation cube to be used: %s" % candidate)
                 return candidate
         
     if corr_cube == None:
         self.print(" Correlation cube not found. Creating a new one.")
         data = getdata(self.input_file)
         corr_cube = numpy.empty_like(data)
         
         x = numpy.arange(self.width)
         y = numpy.arange(self.height)
         X, Y = numpy.meshgrid(x, y)
         x, y = numpy.ravel(X), numpy.ravel(Y)
             
         for i in range(x.size):
             s = data[:,y[i],x[i]]
             s = s / s.max()  # Normalize
             s = s - s.mean() # Remove mean to avoid triangular shape
             s = numpy.correlate(s, self.ref_s, mode='same')
             corr_cube[:,y[i],x[i]] = s
                 
             temp = (((i + 1) * 100.00 / X.size))
             stdout.write('\r %2d%% ' % temp)
             stdout.write(self.loading[int(temp * 10 % 5)])
             stdout.flush()
         
         self.print(" Done.")
         corr_name = splitext(self.input_file)[0] + '--corrcube.fits'
         self.print(" Saving correlation cube to %s" % corr_name)
             
         corr_hdr = self.header.copy()
         corr_hdr.set('CORRFROM', self.input_file,'Cube used for corrcube.')
         corr_hdr.set('', '', before='CORRFROM')
         corr_hdr.set('', '--- Correlation cube ---', before='CORRFROM')
         
         writeto(corr_name, corr_cube, corr_hdr, clobber=True)
         del corr_hdr
         del corr_cube
         
         return corr_name
开发者ID:b1quint,项目名称:btfi,代码行数:58,代码来源:phmxtractor_argmax.py


示例7: time_steps

def time_steps(path, num_exp):
    import pyfits as pf

    label = [0] * num_exp
    label[0] = '0 minutes'
    for i in range(num_exp - 1):
        label[i + 1] = str(round((pf.getheader(path, 4 + i + 1)['tai-beg'] -
                                  pf.getheader(path, 4)['tai-beg']) / 60)) + ' minutes'
    return label
开发者ID:elaav,项目名称:Astro,代码行数:9,代码来源:time_steps.py


示例8: data_collect

def data_collect(file_directory, file_prefix, file_postfix, first_image, num_images, num_parameters):

    # Extracts data and header from first image block, gets dimensions image block
    # Determines the number of frames total for the file range

    x = p.getdata(file_directory + file_prefix + str(first_image) + file_postfix)

    h = p.getheader(file_directory + file_prefix + str(first_image) + file_postfix)

    cube_shape = x.shape

    num_frames = num_images * cube_shape[0]

   
    # Preallocates the 3d data cube
 
    data_cube = np.zeros((num_frames, cube_shape[1], cube_shape[2]))


    # Preallocates the 2D parameter array: (number of frames,  number of 
    # parameters)

    photometry = [None]*((num_images) * cube_shape[0])  

    for i in np.arange(num_frames):
        photometry[i] = [None] * num_parameters

 
    # Loop for each image cube, extracts frame data to data cube and updates
    # photometry parameters.

    image_num = 0

    for image in np.arange(num_images):

        data = p.getdata(file_directory + file_prefix + str(first_image + image) + file_postfix)

        hdr = p.getheader(file_directory + file_prefix + str(first_image + image) + file_postfix)
    
        # Reads in time data from header
        time     = hdr['UTCS_OBS']
        interval = hdr['FRAMTIME'] 
    
        for i in np.arange(cube_shape[0]):
         
            # Reads in each frame in the image to the data cube
            data_cube[image_num + i] = data[i]
     
            # Writes image number to photometry parameter 0 for each frame
            photometry[image_num + i][0] = first_image + image_num
       
            # Writes time the frame was taken to photometry parameter 1
            photometry[image_num + i][1] = (interval * i) + time
        
        image_num += cube_shape[0]

    return(photometry, data_cube, num_frames, cube_shape)
开发者ID:jconenna,项目名称:Aperture-Photometry,代码行数:57,代码来源:project_routines.py


示例9: imsubtract

def imsubtract( image1, image2, outfile=None, 
                clobber=False, verbose=False, debug=False):
    """
    Construct a simple subtraction: image2 - image1.  Guards against
    different sized data arrays by assuming that the lower left pixel
    (0,0) is the anchor point.  (i.e. the second image will be
    trimmed or extended if needed.)  
    """
    import os
    import pyfits
    from numpy import ndarray
    import exceptions

    if debug  : import pdb; pdb.set_trace()

    if outfile : 
        if os.path.isfile( outfile ) and not clobber : 
            print("%s exists. Not clobbering."%outfile)
            return( outfile )

    # read in the images
    if not os.path.isfile( image1 ) :
        raise exceptions.RuntimeError(
            "The image file %s is not valid."%image1 )
    im1head = pyfits.getheader( image1 )
    im1data = pyfits.getdata( image1 )

    if not os.path.isfile( image2 ) :
        raise exceptions.RuntimeError(
            "The image file %s is not valid."%image2 )
    im2head = pyfits.getheader( image2 )
    im2data = pyfits.getdata( image2 )

    # sometimes multidrizzle drops a pixel. Unpredictable.
    nx2,ny2 = im2data.shape
    nx1,ny1 = im1data.shape
    if nx2>nx1 or ny2>ny1 : 
        im2data = im2data[:min(nx1,nx2),:min(ny1,ny2)]
        im1data = im1data[:min(nx1,nx2),:min(ny1,ny2)]
    elif nx2<nx1 or ny2<ny1 : 
        im1data = im1data[:min(nx1,nx2),:min(ny1,ny2)]
        im2data = im2data[:min(nx1,nx2),:min(ny1,ny2)]

    diffim =  im2data - im1data
    
    if not outfile :
        return( diffim )
    else : 
        im2head.update("SRCIM1",image1,"First source image = template for subtraction")
        im2head.update("SRCIM2",image2,"Second source image = search epoch image")
        outdir = os.path.split( outfile )[0]
        if outdir and not os.path.isdir(outdir): 
            os.makedirs( outdir )
        pyfits.writeto( outfile, diffim, 
                        header=im2head,
                        clobber=clobber )
        return( outfile )
开发者ID:drhay53,项目名称:sndrizpipe,代码行数:57,代码来源:imarith.py


示例10: imarith

def imarith(file1, operator, file2, output, verbose=True, keep=1):
    """
    @param file1:       Input fits image name 1.
    @param operator:    Operator ['+','-','*','/'].
    @param file2:       Input fits image name 2.
    @param output:      Output image.
    @keyword verbose:    Turn verbose on? [True]/False.
    @keyword keep:      Choose whether keep header from [file1] or file2.
    """
    from pyfits import getdata, getheader, writeto;
    from time import strftime;
    
    # Reading data
    data1 = get_fits_data(file1);
    data2 = get_fits_data(file2);
    header = getheader(file2) if keep is 2 else getheader(file1);
    
    # Applying operation
    if verbose: print(" %s %s %s = %s" % (file1, operator, file2, output));
    
    
    if (data1.ndim is 3) and (data2.ndim is 2):
        data2 = data2.reshape((1, data2.shape[0], data2.shape[1]));
        data2 = data2.repeat(data1.shape[0], axis=0);
    if (data1.ndim is 3) and (data2.ndim is 1):
        data2 = data2.reshape((data2.shape[0], 1, 1));
        data2 = data2.repeat(data1.shape[1], axis=1);
        data2 = data2.repeat(data1.shape[2], axis=2);
    
    assert data1.shape == data2.shape; 
    if operator is '+': data1 = data1 + data2;
    elif operator is '-': data1 = data1 - data2;
    elif operator is '*': data1 = data1 * data2;
    elif operator is '/': data1 = data1 / data2;
    else: raise (ValueError, "Invalid operator.");
    
    # Updating header
    try:
        header.set('', '');
    except AttributeError:
        from sys import exit;
        from pyfits import __version__
        print(" Sorry, your PyFits version %s is not supported."% __version__);
        print(" Please, download PyFits v3.0 or superior." );
        print(" Leaving now.\n " );
        exit();
        
    header.set('HISTORY', 'imarith applied on %s' % strftime('%Y-%m-%d %H:%M:%S %Z'));
    header.set('HISTORY', file1, 'First file used on imarith.py.');
    header.set('HISTORY', operator, 'Operator used on imarith.py.');
    header.set('HISTORY', file2, 'Second file used on imarith.py.');
    
    # Writing output
    output = safesave(output);
    writeto(output, data1, header);
    
    return None;
开发者ID:rcbrgs,项目名称:btfi,代码行数:57,代码来源:imarith.py


示例11: __init__

 def __init__(self, im, spec, verbose=False, instrument="hydra"):
     self.image = im
     self.id = im.replace('.fits', '')
     self.spec = spec
     self.verbose = verbose        
     self.data = pf.getdata(spec)
     self.header = pf.getheader(spec)
     self.imheader = pf.getheader(im)
     self.shape_info()
     self.check_fields()
     if instrument == "hydra": 
         self.reverse_spec()
     return
开发者ID:kadubarbosa,项目名称:groups,代码行数:13,代码来源:multispec.py


示例12: get_spec_parameters

def get_spec_parameters(spec_file):
    '''
    This function reads in a spectrum and the primary and first extension headers
    Input:
        spec_file: the name of the file
    Output:
        spec: binary fits table
        hdr0: primary header
        hdr1: first extension header
    '''
    spec = pyfits.getdata(spec_file, 1)
    hdr0 = pyfits.getheader(spec_file, 0)
    hdr1 = pyfits.getheader(spec_file, 1)
    return spec,hdr0, hdr1
开发者ID:abostroem,项目名称:R136,代码行数:14,代码来源:wavelength_calibration.py


示例13: get_sismo_data

def get_sismo_data(ID):
    """
    Retrieve CoRoT timeseries from a local data repository.
    
    The output record array has fields 'HJD', 'flux', 'e_flux', 'flag'.
    
    @param ID: ID of the target: either an integer (CoRoT ID), an SIMBAD-recognised
    target name, or a valid CoRoT FITS file
    @type ID: int or str
    @return: data, header
    @rtype: numpy recarray, dict
    """
    #-- data on one target can be spread over multiple files: collect the
    #   data
    data = []
        
    if isinstance(ID,str) and os.path.isfile(ID):
        header = pyfits.getheader(ID)
        times,flux,error,flags = fits.read_corot(ID)
        data.append([times,flux,error,flags])
    else:
        #-- resolve the target's name: it's either a target name or CoRoT ID.
        try:
            ID = int(ID)
        except ValueError:
            info = sesame.search(ID,db='S')
            IDs = [alias for alias in info['alias'] if 'HD' in alias]
            if len(IDs)!=1:
                logger.error("Data retrieval for %s not possible. Reason: no HD number resolved" % (ID))
                return
            ID = IDs[0]
        #-- collect the files containing data on the target
        catfiles = config.glob((os.sep).join(['catalogs','corot','sismo']),'*.fits')
        for catfile in catfiles:
            try:
                header = pyfits.getheader(catfile)
            except IOError:
                continue
            if header['starname']==ID or header['corotid'].replace(' ','')=='%s'%(ID):
                times,flux,error,flags = fits.read_corot(catfile)
                data.append([times,flux,error,flags])
    #-- now make a record array and sort according to times
    if not data:
        raise ValueError('target {0} not in offline CoRoT data repository'.format(ID))
    data = np.hstack(data)        
    data = np.rec.fromarrays(data,dtype=[('HJD','>f8'),('flux','>f8'),('e_flux','>f8'),('flag','i')])
    sa = np.argsort(data['HJD'])
    return data[sa],header
开发者ID:robinlombaert,项目名称:IvSPythonRepository,代码行数:48,代码来源:corot.py


示例14: Lee_cubo

    def Lee_cubo(spectra,XX,YY):
        global imagen
        imagen=pyfits.getdata(spectra,header=False)
        header=pyfits.getheader(spectra)
        
        #print len(imagen)
        #empty array
        Lambda_t=[]
        Flux_t=[]
    
    
        for i in range (len(imagen)):
            y=imagen[i][XX][YY]
            #        x=i*header['CDELT1']+header['CRVAL1']
            x=i*header['CD3_3']+header['CRVAL3']
            Lambda_t.append(float(imagen[i][XX][YY]))
            #Flux_t.append(float(i*header['CDELT1']+header['CRVAL1']))
            Flux_t.append(float(i*header['CD3_3']+header['CRVAL3']))
            #print x,y

        Flux=np.array(Lambda_t)
        Lambda=np.array(Flux_t)
        x=Lambda
        y=Flux
        return x,y
开发者ID:mmorage,项目名称:Scripts.-,代码行数:25,代码来源:fit_line_cube_parallel.py


示例15: make_wifes_p08_template

def make_wifes_p08_template(ddir, fn, out_dir, star,rv=0.0):
    """From a p08 file, create a template spectrum for future cross-correlation.
    The template is interpolated onto a 0.1 Angstrom grid (to match higher resolution 
    templates.
    
    Parameters
    ----------
    ddir: string
        Data directory for the p08 file
        
    fn: string
        p08 fits filename
        
    out_dir: string
        Output directory
    
    """
    flux_stamp,wave = read_and_find_star_p08(ddir + '/' + fn)
    heliocentric_correction = pyfits.getheader(ddir + '/' + fn)['RADVEL']
    spectrum,sig = weighted_extract_spectrum(flux_stamp)
    dell_template = 0.1
    wave_template=np.arange(90000)*dell_template + 3000
    spectrum_interp = np.interp(wave_template,wave*(1 - (rv - heliocentric_correction)/2.998e5),spectrum)
    outfn = out_dir + '/' + star + ':' + fn
    pyfits.writeto(outfn,spectrum_interp,clobber=True)
开发者ID:rajikalk,项目名称:tools,代码行数:25,代码来源:process_stellar.py


示例16: generate_display_id

def generate_display_id( dataset, version ):
    '''
    Generate an ID from which all similar stackable data will have in common.
    
    @param dataset: Input AstroData or fits filename
    @type dataset: list of AstroData instance
    
    @param version: The version from which to run.
    @type version: string
    
    @return: A display id.
    @rtype: string  
    '''
    if version != version_index['display_id']:
        try:
            # designed to call generateStackableID_
            idFunc = getattr( globals()['IDFactory'], 'generateDisplayID_' + version )
        except:
            raise "Version: '" + version + "' is either invalid or not supported." 
        
        return idFunc( inputf, version )
    
    """
        shaObj = hashlib.sha1()
        phu = pf.getheader( inputf[0], 0 )
        shaObj.update( phu['OBSID'] )
        shaObj.update( phu['OBJECT'] )
    """
    
    if type(dataset) == str:
        phu = pf.getheader(dataset)
        ID = version + "_" + phu['OBSID'] + "_" + phu['OBJECT'] 
    elif type(dataset) == AstroData:
        ID = version + "_" + dataset.phuValue('OBSID') + "_" + dataset.phuValue('OBJECT')
    return ID
开发者ID:pyrrho314,项目名称:recipesystem,代码行数:35,代码来源:IDFactory.py


示例17: getvsopname

def getvsopname(gemfile, instrument, path):
    # Defaults
    validInstruments = ('GMOSN', 'GMOSS')
    instDict = {'N': 'GMOSN',
                'S': 'GMOSS'}

    # Verify instrument
    if instrument == None:
        if matchInst.match(gemfile) == None:
            errmsg = 'Invalid Gemini frame name, \''+gemfile+'\''
            raise IOError, errmsg
        instpref = matchInst.sub(r"\1",gemfile)
        instrument = instDict[instpref]
    elif instrument not in validInstruments:
        print '\nUSAGE ERROR: Invalid value for instrument (%s)' % instrument
        p.print_help()
        raise SystemExit
    
    phu = pyfits.getheader(path+'/'+gemfile, 0)
    dateobs = phu['DATE-OBS']
    timeobs = phu['TIME-OBS']
    
    (year,month,date) = map(string.atoi, dateobs.split('-'))
    d = datetime.date(year,month,date)
    (hour,minutes,seconds) = map(string.atof, timeobs.split(':'))
    microseconds = round((seconds - int(seconds)) * 1e6)
    if int(microseconds) == 0:  microseconds += 1
    t = datetime.time(int(hour),int(minutes),int(seconds),int(microseconds))
    dt = datetime.datetime.combine(d,t)

    return instrument+'.'+dt.isoformat()[:-3]+'_s1d.fits'
开发者ID:KathleenLabrie,项目名称:GPyVSOP,代码行数:31,代码来源:GPyVSOPutil.py


示例18: guide_star_info

def guide_star_info():
    """
    Get the guide star information out of the image headers.
    """
    imgDir = ngc1851_data + 'starfinder/'

    imgs = glob.glob(imgDir + '*_G1_1_cr.fits')

    # Keep results in an output file
    f_out = open(ngc1851_data + 'guide_star_info.txt', 'w')
    f_fmt = '{0:8s} {1:15s} '

    for img in imgs:
        hdr = pyfits.getheader(img)

        f_out.write('{0:20s}  '.format(os.path.basename(img)))

        # There are 4 possible guide stars. Try to print them all out
        for ii in range(4):
            try:
                cfg = 'GWFS{0}CFG'.format(ii+1)
                obj = 'GWFS{0}OBJ'.format(ii+1)
                f_out.write(f_fmt.format(hdr[cfg], hdr[obj]))
            except KeyError:
                f_out.write(f_fmt.format('-', '-'))
                
        f_out.write('\n')

    f_out.close()
开发者ID:mikekoss,项目名称:JLU-python-code,代码行数:29,代码来源:lu_gsaoi_astrom.py


示例19: image_info

def image_info():
    """
    Get the exposure time and filter info for each image. Store it in
    an output file called image_info.txt.
    """
    imgDir = ngc1851_data + 'starfinder/'

    imgs = glob.glob(imgDir + '*_G1_1_cr.fits')

    # Keep results in an output file
    f_out = open(ngc1851_data + 'image_info.txt', 'w')
    f_fmt = '{img:15s}  {xoff:7.2f} {yoff:7.2f} {pa:5.1f}  {filt:12s}  '
    f_fmt += '{exp:6.2f} {coad:2d} {tot:7.2f}\n'

    for img in imgs:
        hdr = pyfits.getheader(img)

        xoff = hdr['XOFFSET']
        yoff = hdr['YOFFSET']
        pa = hdr['PA']
        filt = hdr['FILTER1']
        exp = hdr['EXPTIME']
        coadd = hdr['COADDS']

        f_out.write(f_fmt.format(img=os.path.basename(img), xoff=xoff, yoff=yoff,
                                 pa=pa, filt=filt, exp=exp, coad=coadd, tot=exp*coadd))

    f_out.close()
开发者ID:mikekoss,项目名称:JLU-python-code,代码行数:28,代码来源:lu_gsaoi_astrom.py


示例20: rdpsfmodel

def rdpsfmodel(psfmodelfile):
    """ Read in a psf model from a fits file. Gaussian parameters are in the
    header, and the image array has a lookup table of non-gaussian components
    sub-sampled to a half-pixel grid.
    If the user provides a 2-tuple instead of a filename, then we presume the
    user already has the psf model components, so we just return it back.

    :param psfmodelfile: a fits file containing the psf model
    :return: [gaussparam, lookuptable]
    """
    psfmodelfile = psfmodelfile
    if isinstance(psfmodelfile, str):
        assert os.path.isfile(
            os.path.abspath(os.path.expanduser(psfmodelfile)))
        # read in the psf non-gaussian components array (i.e. the lookup table)
        lookuptable = pyfits.getdata(psfmodelfile)
        # read in the gaussian parameters from the image header
        hdr = pyfits.getheader(psfmodelfile)
        scale = hdr['GAUSS1']  # , 'Gaussian Scale Factor'
        xpsf = hdr['GAUSS2']  # , 'Gaussian X Position'
        ypsf = hdr['GAUSS3']  # , 'Gaussian Y Position'
        xsigma = hdr['GAUSS4']  # , 'Gaussian Sigma: X Direction'
        ysigma = hdr['GAUSS5']  # , 'Gaussian Sigma: Y Direction'
        psfmag = hdr['PSFMAG']  # , 'aperture magnitude of the PSF star
        psfzpt = hdr['PSFZPT']  # , 'zeropoint used to set PSF star mag scaling
        gaussparam = [scale, xpsf, ypsf, xsigma, ysigma]
    elif np.iterable(psfmodelfile):
        assert len(psfmodelfile) == 4
        gaussparam, lookuptable, psfmag, psfzpt = psfmodelfile
    else:
        raise exceptions.RuntimeError(
            "psfmodel must either be a filename or a 4-tuple giving:"
            "[gaussian parameters, look-up table, psf mag, zpt]")
    return gaussparam, lookuptable, psfmag, psfzpt
开发者ID:cabridelle,项目名称:PythonPhot,代码行数:34,代码来源:photfunctions.py



注:本文中的pyfits.getheader函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python pyfits.getval函数代码示例发布时间:2022-05-25
下一篇:
Python pyfits.getdata函数代码示例发布时间:2022-05-25
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap