6
6
from spectral import *
7
7
8
8
class SpectralData :
9
- def __init__ (self , signature = None , libname = None ,
9
+ def __init__ (self , spectrum = None , libname = None ,
10
10
record = None , description = None , spectrometer = None ,
11
11
purity = None , measurement_type = None , spectrometer_data = None ):
12
- self .signature = signature
12
+ self .spectrum = spectrum
13
13
self .libname = libname
14
14
self .record = record
15
15
self .description = description
@@ -25,11 +25,11 @@ def header(self):
25
25
self .purity , self .measurement_type )
26
26
27
27
def __repr__ (self ):
28
- sig_lines = ['{:.5E}' .format (s ) for s in self .signature ]
29
- return self .header () + '\n ' + ('\n ' .join (sig_lines ))
28
+ spectra_lines = ['{:.5E}' .format (s ) for s in self .spectrum ]
29
+ return self .header () + '\n ' + ('\n ' .join (spectra_lines ))
30
30
31
31
def __str__ (self ):
32
- return self .header () + ' \t {} channels' .format (len (self .signature ))
32
+ return self .header () + ' \t {} channels' .format (len (self .spectrum ))
33
33
34
34
@staticmethod
35
35
def parse_header (header_line ):
@@ -61,41 +61,41 @@ def read_from_file(filename):
61
61
libname , record , description , spectrometer , purity , measurment_type = \
62
62
SpectralData .parse_header (header_line .strip ())
63
63
64
- signature = []
64
+ spectrum = []
65
65
for line in f :
66
66
try :
67
- signature .append (float (line .strip ()))
67
+ spectrum .append (float (line .strip ()))
68
68
except :
69
69
pass
70
70
71
71
spectrometer_data = SpectrometerData .get_by_name (spectrometer )
72
72
73
- return SpectralData (np .array (signature ),
73
+ return SpectralData (np .array (spectrum ),
74
74
libname , record , description ,
75
75
spectrometer , purity , measurment_type ,
76
76
spectrometer_data )
77
77
78
78
def replace_invalid (self , value ):
79
- self .signature [self .signature < 0.0 ] = value
79
+ self .spectrum [self .spectrum < 0.0 ] = value
80
80
return self
81
81
82
82
def interpolate_invalid (self , kind = 'slinear' ):
83
- full_xs = list (range (len (self .signature )))
84
- xs = [x for x , y in zip (full_xs , self .signature ) if y > 0.0 ]
85
- ys = [y for y in self .signature if y > 0.0 ]
83
+ full_xs = list (range (len (self .spectrum )))
84
+ xs = [x for x , y in zip (full_xs , self .spectrum ) if y > 0.0 ]
85
+ ys = [y for y in self .spectrum if y > 0.0 ]
86
86
if xs [0 ] > full_xs [0 ]:
87
87
xs .insert (0 , full_xs [0 ])
88
88
ys .insert (0 , ys [0 ])
89
89
if xs [- 1 ] < full_xs [- 1 ]:
90
90
xs .append (full_xs [- 1 ])
91
91
ys .append (ys [- 1 ])
92
92
f = scipy .interpolate .interp1d (xs , ys , kind = kind , assume_sorted = True )
93
- self .signature = f (full_xs )
93
+ self .spectrum = f (full_xs )
94
94
return self
95
95
96
96
def resample_as (self , spectrometer_name , with_fixed_dest = False ):
97
97
"""
98
- Returns signature resampled to different spectrometer.
98
+ Returns spectrum resampled to different spectrometer.
99
99
"""
100
100
dest = SpectrometerData .get_by_name (spectrometer_name )
101
101
dest_wl = dest .wavelengths
@@ -108,16 +108,16 @@ def resample_as(self, spectrometer_name, with_fixed_dest = False):
108
108
109
109
def resample_at (self , dest_wl , dest_bw = None ):
110
110
"""
111
- Returns signature resampled to different spectrometer.
111
+ Returns spectrum resampled to different spectrometer.
112
112
"""
113
113
resampler = BandResampler (self .spectrometer_data .wavelengths , dest_wl ,
114
114
self .spectrometer_data .bandwidths , dest_bw )
115
- return resampler (self .signature )
115
+ return resampler (self .spectrum )
116
116
117
117
118
118
def interpolate_as (self , spectrometer_name , with_fixed_dest = True , kind = 'quadratic' ):
119
119
"""
120
- Returns signature interpoleted at wavelengths of different spectrometer,
120
+ Returns spectrum interpoleted at wavelengths of different spectrometer,
121
121
based on wavelengths and reflectances of original.
122
122
"""
123
123
dest = SpectrometerData .get_by_name (spectrometer_name )
@@ -129,37 +129,37 @@ def interpolate_as(self, spectrometer_name, with_fixed_dest = True, kind='quadra
129
129
130
130
def interpolate_at (self , dest_wl , kind = 'quadratic' ):
131
131
"""
132
- Returns signature interpoleted at specified wavelengths,
132
+ Returns spectrum interpoleted at specified wavelengths,
133
133
based on wavelengths and reflectances of original.
134
134
"""
135
135
xs = self .wavelengths ()
136
- ys = self .signature
136
+ ys = self .spectrum
137
137
f = scipy .interpolate .interp1d (xs , ys , kind = kind , assume_sorted = True , fill_value = 'extrapolate' )
138
138
return f (dest_wl )
139
139
140
140
def in_range (self , min_wl , max_wl ):
141
141
"""
142
- Return wavelengths and signature part between min wavelength and max wavelength.
142
+ Return wavelengths and spectrum part between min wavelength and max wavelength.
143
143
"""
144
144
src_wavelengths = self .spectrometer_data .wavelengths
145
145
min_wl = max (src_wavelengths [0 ], min_wl )
146
146
max_wl = min (src_wavelengths [- 1 ], max_wl )
147
147
min_index = np .argmax (src_wavelengths >= min_wl )
148
148
max_index = np .argmax (src_wavelengths > max_wl )
149
149
range_wl = src_wavelengths [min_index :max_index ]
150
- range_sig = self .signature [min_index :max_index ]
151
- return range_wl , range_sig
150
+ range_spec = self .spectrum [min_index :max_index ]
151
+ return range_wl , range_spec
152
152
153
153
def in_range_of (self , spectrometer_name ):
154
154
"""
155
- Return wavelengths and signature part that overlaps with other spectrometer.
155
+ Return wavelengths and spectrum part that overlaps with other spectrometer.
156
156
"""
157
157
dest_wavelengths = SpectrometerData .get_by_name (spectrometer_name ).wavelengths
158
158
return self .in_range (dest_wavelengths [0 ], dest_wavelengths [- 1 ])
159
159
160
160
def fix (self ):
161
161
self .interpolate_invalid ()
162
- self .signature = self .resample_as (self .spectrometer , True )
162
+ self .spectrum = self .resample_as (self .spectrometer , True )
163
163
self .fixed = True
164
164
self ._wavelengths = np .sort (self .spectrometer_data .wavelengths )
165
165
return self
@@ -182,7 +182,7 @@ def header(self):
182
182
self .spectrometer_name , self .description )
183
183
184
184
def __repr__ (self ):
185
- sig_lines = ['{:.5E}' .format (s ) for s in self .signature ]
185
+ spectra_lines = ['{:.5E}' .format (s ) for s in self .spectrum ]
186
186
return self .header () + '\n ' + ('\n ' .join (wavelengths ))
187
187
188
188
def __str__ (self ):
0 commit comments