Python and the fits module (operating system interfaces): "IOError: [Errno 2] No such file or directory" -
it seems script attempting use returning error little baffling, is, in attempting create new file old file extension saying file attempting create not exist? explain why happening , perhaps potential fix?
here script using:
#function replace nans in exposure map 0s , replace corresponding pixels in sky , large scale sensitivity map 0s. def replace_nan(filename): #print nans replaced 0s in exposure map , corresponding pixels in sky , large scale sensitivity map replaced 0s. print "all nans replaced 0s in " + filename + " , corresponding pixels in sky , large scale sensitivity map replaced 0s." #open exposure map, corresponding sky , large scale sensitivity map , copy primary headers (extension 0 of hdulist) new hdulists. hdulist_ex = fits.open(filename) new_hdu_header_ex = fits.primaryhdu(header=hdulist_ex[0].header) new_hdulist_ex = fits.hdulist([new_hdu_header_ex]) hdulist_sk = fits.open(filename.replace("ex","sk_corrected")) new_hdu_header_sk = fits.primaryhdu(header=hdulist_sk[0].header) new_hdulist_sk = fits.hdulist([new_hdu_header_sk]) hdulist_lss = fits.open(filename.replace("ex","lss_m")) new_hdu_header_lss = fits.primaryhdu(header=hdulist_lss[0].header) new_hdulist_lss = fits.hdulist([new_hdu_header_lss]) #for frames in image: create mask , run function replace_pix. in range(1,len(hdulist_ex)): mask = np.isnan(hdulist_ex[i].data) replace_pix(hdulist_ex[i],mask,new_hdulist_ex) replace_pix(hdulist_sk[i],mask,new_hdulist_sk) replace_pix(hdulist_lss[i],mask,new_hdulist_lss) #write new hdulists new images. new_hdulist_ex.writeto(filename.replace(".img","_new.img")) new_hdulist_sk.writeto(filename.replace("ex.img","sk_new.img")) new_hdulist_lss.writeto(filename.replace("ex.img","lss_new.img")) #print nans replaced 0s in exposure map , corresponding pixels in sky , large scale sensitivity map replaced 0s. print "all nans replaced 0s in " + filename + " , corresponding pixels in sky , large scale sensitivity map replaced 0s." when running:
replace_nan("/users/.../sw00031048001uw1_ex.img") i following error:
ioerror: [errno 2] no such file or directory: '/users/.../sw00031048001uw1_sk_corrected.img' full traceback:
--------------------------------------------------------------------------- ioerror traceback (most recent call last) <ipython-input-10-af5110b477a1> in <module>() ----> 1 replace_nan('/users/ucl_astronomy/documents/ucl/phasg199/m33_swift_corrected_usnob1_spec/sw00031048001uw1_ex.img') <ipython-input-8-ca837d8e11f7> in replace_nan(filename) 7 new_hdu_header_ex = fits.primaryhdu(header=hdulist_ex[0].header) 8 new_hdulist_ex = fits.hdulist([new_hdu_header_ex]) ----> 9 hdulist_sk = fits.open(filename.replace("ex","sk_corrected")) 10 new_hdu_header_sk = fits.primaryhdu(header=hdulist_sk[0].header) 11 new_hdulist_sk = fits.hdulist([new_hdu_header_sk]) //anaconda/lib/python2.7/site-packages/astropy/io/fits/hdu/hdulist.pyc in fitsopen(name, mode, memmap, save_backup, cache, **kwargs) 127 raise valueerror('empty filename: %s' % repr(name)) 128 --> 129 return hdulist.fromfile(name, mode, memmap, save_backup, cache, **kwargs) 130 131 //anaconda/lib/python2.7/site-packages/astropy/io/fits/hdu/hdulist.pyc in fromfile(cls, fileobj, mode, memmap, save_backup, cache, **kwargs) 269 270 return cls._readfrom(fileobj=fileobj, mode=mode, memmap=memmap, --> 271 save_backup=save_backup, cache=cache, **kwargs) 272 273 @classmethod //anaconda/lib/python2.7/site-packages/astropy/io/fits/hdu/hdulist.pyc in _readfrom(cls, fileobj, data, mode, memmap, save_backup, cache, **kwargs) 790 if not isinstance(fileobj, _file): 791 # instantiate fits file object (ffo) --> 792 ffo = _file(fileobj, mode=mode, memmap=memmap, cache=cache) 793 else: 794 ffo = fileobj //anaconda/lib/python2.7/site-packages/astropy/io/fits/file.pyc in __init__(self, fileobj, mode, memmap, clobber, cache) 135 self._open_fileobj(fileobj, mode, clobber) 136 elif isinstance(fileobj, string_types): --> 137 self._open_filename(fileobj, mode, clobber) 138 else: 139 self._open_filelike(fileobj, mode, clobber) //anaconda/lib/python2.7/site-packages/astropy/io/fits/file.pyc in _open_filename(self, filename, mode, clobber) 438 self._open_zipfile(self.name, mode) 439 else: --> 440 self._file = fileobj_open(self.name, pyfits_modes[mode]) 441 # make we're @ beginning of file 442 self._file.seek(0) //anaconda/lib/python2.7/site-packages/astropy/io/fits/util.pyc in fileobj_open(filename, mode) 412 """ 413 --> 414 return open(filename, mode) 415 416
look @ first line of traceback:
----> 9 hdulist_sk = fits.open(filename.replace("ex","sk_corrected")) you're trying open file "corrected" filename before file exists. fits.open opening existing fits files.
Comments
Post a Comment