Add file check before loading them
This commit is contained in:
parent
4a07b37e49
commit
bdc8a82ded
1 changed files with 36 additions and 7 deletions
43
spectrum.py
43
spectrum.py
|
@ -11,7 +11,7 @@ import pathlib
|
||||||
from scipy.ndimage import rotate
|
from scipy.ndimage import rotate
|
||||||
from astropy.io import fits
|
from astropy.io import fits
|
||||||
|
|
||||||
cache , filename , output , calibration , intensity_calibration , verbose , no_cache = '' , None , None , None , None , False, False
|
cache , filename , output , calibration , intensity_calibration , verbose , no_cache = None , None , None , None , None , False, False
|
||||||
if len( sys.argv ) < 2:
|
if len( sys.argv ) < 2:
|
||||||
raise Exception( 'spectrum.py: type \'spectrum.py -h\' for more information' )
|
raise Exception( 'spectrum.py: type \'spectrum.py -h\' for more information' )
|
||||||
|
|
||||||
|
@ -110,6 +110,26 @@ if verbose:
|
||||||
\n===========================================' )
|
\n===========================================' )
|
||||||
# TODO: check in advance file to check if exists or writeable
|
# TODO: check in advance file to check if exists or writeable
|
||||||
|
|
||||||
|
files = {}
|
||||||
|
if calibration != None:
|
||||||
|
files[ 'wavelength' ] = pathlib.Path( calibration )
|
||||||
|
if intensity != None:
|
||||||
|
files[ 'intensity' ] = pathlib.Path( intensity )
|
||||||
|
if cache != None:
|
||||||
|
files[ 'cache' ] = pathlib.Path( cache )
|
||||||
|
|
||||||
|
files[ 'filename' ] = pathlib.Path( filename )
|
||||||
|
|
||||||
|
for name , path in files.items():
|
||||||
|
if name in [
|
||||||
|
'wavelength',
|
||||||
|
'intensity' ,
|
||||||
|
'spectrum' ,
|
||||||
|
] and not path.is_file():
|
||||||
|
raise Exception(
|
||||||
|
'spectrum.py: could not open the ' + name + ' file'
|
||||||
|
)
|
||||||
|
|
||||||
hdul = fits.open( filename )
|
hdul = fits.open( filename )
|
||||||
data = hdul[0].data
|
data = hdul[0].data
|
||||||
head = hdul[0].header
|
head = hdul[0].header
|
||||||
|
@ -117,12 +137,10 @@ hdul.close()
|
||||||
if verbose:
|
if verbose:
|
||||||
print( 'data loaded' )
|
print( 'data loaded' )
|
||||||
|
|
||||||
cache_file = pathlib.Path( cache )
|
if 'cache' in files and files[ 'cache' ].is_file() and not no_cache:
|
||||||
|
|
||||||
if cache_file.is_file() and not no_cache:
|
|
||||||
if verbose:
|
if verbose:
|
||||||
print( 'using cache' )
|
print( 'using cache' )
|
||||||
with shelve.open( str( cache_file ) ) as cache:
|
with shelve.open( str( files[ 'cache' ] ) ) as cache:
|
||||||
for key in [ 'data' , 'border' , 'calibrations' ]:
|
for key in [ 'data' , 'border' , 'calibrations' ]:
|
||||||
if key not in cache:
|
if key not in cache:
|
||||||
raise Exception( 'spectrum.py: missing data in cache file' )
|
raise Exception( 'spectrum.py: missing data in cache file' )
|
||||||
|
@ -473,10 +491,10 @@ else:
|
||||||
if verbose:
|
if verbose:
|
||||||
print( 'calibration isolation finished' )
|
print( 'calibration isolation finished' )
|
||||||
|
|
||||||
if not cache_file.exists() and not no_cache:
|
if 'cache' in files and not files[ 'cache' ].exists() and not no_cache:
|
||||||
if verbose:
|
if verbose:
|
||||||
print( 'writing result in cache' )
|
print( 'writing result in cache' )
|
||||||
with shelve.open( str( cache_file ) ) as cache:
|
with shelve.open( str( files[ 'cache' ] ) ) as cache:
|
||||||
cache[ 'data' ] = data
|
cache[ 'data' ] = data
|
||||||
cache[ 'border' ] = border
|
cache[ 'border' ] = border
|
||||||
cache[ 'spectrum' ] = spectrum
|
cache[ 'spectrum' ] = spectrum
|
||||||
|
@ -562,6 +580,17 @@ bias = {
|
||||||
|
|
||||||
mean_bias = np.mean( [ bias[ 'top' ] , bias[ 'down' ] ] , axis = 0 )
|
mean_bias = np.mean( [ bias[ 'top' ] , bias[ 'down' ] ] , axis = 0 )
|
||||||
|
|
||||||
|
plt.imshow(
|
||||||
|
data[
|
||||||
|
calibrations[ 'down' ][ 'y' ][ 'max' ] :
|
||||||
|
calibrations[ 'down' ][ 'y' ][ 'max' ] + 200,
|
||||||
|
calibrations[ 'down' ][ 'x' ][ 'min' ] :
|
||||||
|
calibrations[ 'down' ][ 'x' ][ 'max' ]
|
||||||
|
] ,
|
||||||
|
aspect = 'auto',
|
||||||
|
)
|
||||||
|
plt.show()
|
||||||
|
|
||||||
if verbose:
|
if verbose:
|
||||||
print( 'bias substraction finished' )
|
print( 'bias substraction finished' )
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue