libpyhat.derived package
Subpackages
- libpyhat.derived.crism package
- Submodules
- libpyhat.derived.crism.crism_algs module
bd1300()bd1400()bd1435()bd1500_2()bd1750_2()bd1900_2()bd1900r2()bd2100_2()bd2165()bd2190()bd2210_2()bd2230()bd2250()bd2265()bd2290()bd2355()bd2500h_2()bd2600()bd3100()bd3200()bd3400_2()bd530_2()bd640_2()bd860_2()bd920_2()bdi1000IR()bdi1000VIS()cindex2()crism_bd3000()crism_bdi2000()d2200()d2300()doub2200h()hcp_index2()icer1_2()irr1()irr2()irr3()islope1()lcp_index2()min2200()min2250()min2295_2480()min2345_2537()olivine_index3()r1080()r1300()r1330()r1506()r2529()r3920()r440()r530()r600()r770()rbr()rpeak1()sh600_2()sh770()sindex2()
- libpyhat.derived.crism.crism_funcs module
- Module contents
- libpyhat.derived.m3 package
Submodules
libpyhat.derived.utils module
- libpyhat.derived.utils.band_area(spectrum, low_wvl=None, high_wvl=None, mask_threshold=1.0)[source]
Compute the area under the spectrum. The user can specify a subsection or ‘band’ of the spectra on which to compute the integral.
Parameters
spectrum : single spectrum represented as a Pandas series, with indices corresponding to wavelength values.
- low_wvl (optional)float
The low wavelength (in units of the actual wavelength not the index value)
- high_wvl (optional)float
The high wavelength (in units of the actual wavelength not the index value)
mask (optional): float Spectrum values above this threshold will be set to 0 before integration. Useful for excluding bands with bad data.
Returns
- (no var)float
The area under the curve
- libpyhat.derived.utils.band_asymmetry(spectrum, low_wvl=None, high_wvl=None, degree=3)[source]
Compute the asymmetry of an absorption feature as (left_area - right_area) / total_area
Parameters
spectrum : single spectrum represented as a Pandas series, with indices corresponding to wavelength values.
- low_wvl (optional)float
The low wavelength (in units of the actual wavelength not the index value)
- high_wvl (optional)float
The high wavelength (in units of the actual wavelength not the index value)
- degree (optional)int
The degree of the polynomial
Returns
- asymmetryfloat
value indicating how asymmetrical the two halves of the band are, where 1.0 is completely asymmetrical and 0.0 is completely symmetrical
asymmetry = abs((area_left - area_right) / (area_left + area_right))
- libpyhat.derived.utils.band_center(spectrum, low_wvl=None, high_wvl=None, degree=3)[source]
Given a spectrum, fit a polynomial to it. User can specify a subdomain of the spectrum to fit and the polynomial degree through optional kwargs. Be aware that high-degree polynomials may complicate the computation of the band center, and it is always important to plot the results to visualize the fit.
Parameters
spectrum : single spectrum represented as a Pandas series, with indices corresponding to wavelength values.
- low_wvl (optional)float
The low wavelength (in units of the actual wavelength not the index value)
- high_wvl (optional)float
The high wavelength (in units of the actual wavelength not the index value)
- degree (optional)int
The degree of the polynomial
Returns
- centerwvlfloat
The wavelength where the center of the polynomial lies
- centervalfloat
The spectrum value where the center of the polynomial lies
- center_fitPandas Series object
Contains the fit values and wavelength information
- libpyhat.derived.utils.band_minimum(spectrum, low_wvl=None, high_wvl=None)[source]
Given a 1-D spectrum, find the minimum intensity value and the location of the minimum in wavelength space. A subset of the spectra can also be selected with optional kwargs.
Parameters
spectrum : single spectrum represented as a Pandas series, with indices corresponding to wavelength values.
- low_wvl (optional)float
The low wavelength (in units of the actual wavelength not the index value)
- high_wvl (optional)float
The high wavelength (in units of the actual wavelength not the index value)
Returns
- min_wvlint
The wavelength of the minimum value
- min_valuefloat
The observed minimal value
- libpyhat.derived.utils.clip_multiband(multiband_image, n)[source]
Clips the values of each band of a multi-band image to +/- n stdevs
Parameters
multiband_image: An array representing a multiband image with dimensions [x,y,bands] n: the number of stdevs to use when scaling
Returns
multiband_image: the image with each band mean centered and values clipped so that the range of values goes
from -n*stdev to +n*stdev
- libpyhat.derived.utils.compute_b_a(wavelengths)[source]
Given a set of three wavelengths compute their b and a values as per the Viviano Beck CRISM Derived Products paper (Revised CRISM spectral parameters and summary products based on the currently detected mineral diversity on Mars)
Parameters
- wavelengthsiterable
A list of three wavelength values
Returns
- bfloat
b value from the paper
- afloat
a value from the paper
- libpyhat.derived.utils.compute_slope(x1, x2, y1, y2)[source]
Computes slope given two points on a line
Parameters
- x1float
First points x value
- x2float
Second points x value
- y1float
First points y value
- y2float
Second points y value
Returns
- : float
Slope between the two points
- libpyhat.derived.utils.get_roi(data, roi_x, roi_y, meta_label='meta')[source]
Extract an ROI from a Spectra Data object
Parameters
data: PyHAT Spectral Data object roi_x: min and max x values for the ROI [x_min,x_max] roi_y: min and max y values for the ROI [y_min,y_max]
Returns
data_roi : Spectral data object for the spectra within an ROI. (Note: Extracting an ROI strips any geodata that was associated with the original Spectral Data object, and x and y values are reset to begin at 0,0 within the ROI)
- libpyhat.derived.utils.get_roi_avg(data, roi_x, roi_y)[source]
Calculate the average spectrum within a specified ROI
Parameters
data: PyHAT Spectral Data object roi_x: min and max x values for the ROI [x_min,x_max] roi_y: min and max y values for the ROI [y_min,y_max]
Returns
roi_avg : The average spectrum of the ROI
- libpyhat.derived.utils.get_sub_spectrum(spectrum, low_wvl=None, high_wvl=None)[source]
Grab a subdomain of spectrum according to starting and ending wavelength values. Endpoints will be included.
Parameters
spectrum : single spectrum represented as a Pandas series, with indices corresponding to wavelength values.
- low_wvl (optional)float
The low wavelength (in units of the actual wavelength not the index value)
- high_wvl (optional)float
The high wavelength (in units of the actual wavelength not the index value)
Returns
- sub_spectrumlibpyhat Spectrum object
This contains spectral information and corresponding wavelength values. See the Spectrum object documentation.
- libpyhat.derived.utils.line_fit(slope, x, b)[source]
Finds the y value for a given x using a given slope and y intercept
Parameters
- slopefloat
Slope of a line
- xfloat
Point along the x axis of a line
- bfloat
Y intercept of a line
Returns
- : float
Y coordinate corresponding to the given x