Releases: spectralpython/spectral
Spectral Python 0.19
New Features
-
Rendering functions accept an "ignore" keyword to indicate a bad data value
that will be ignored when calculating color histogram stretches. -
Added
iterator_ijto iterate over all pixel coordinates for a given
image mask. -
Added
expand_binary_mask_for_windowto expand an image mask to include
all pixels within a fixed size window around each masked pixel. -
Added support for bad band lists (bbl) in ENVI headers and suppress display
of bad bands in spectral plots -
Added optional support for non-lowercase ENVI header parameter names (issue #63).
Changes
-
principal_componentsalso accepts aGaussianStatsobject, which can
avoid the need to recompute image/class statistics. -
Added a
SpyExceptionbase class for package-specific exceptions. -
Added "raw" to the list of checked ENVI image data file extensions.
Bug Fixes
Spectral Python 0.18
Changes
- Improved handling of ENVI header files:
Bug Fixes
- [Issue #38 and #39] The
tostringmethod has been deprecated in newer
versions of PIL/Pillow. Usingtobytesnow and falling back totostring
if it fails. - [Issue #40] An exception was raised when trying to get a pixel's row/col
by CTRL-SHIFT-clicking in the ND window display. - [Issue #44] Matplotlib was being set to interactive mode even if no SPy
windows were displayed. This would affect behavior of other code using
Matplotlib. Interactive mode is now set only once the first display is
requested. - [Issue #49]
GaussianClassifierandMahalanobisDistanceClassifiermethod
classify_imagewas failing when applied to an object that was not a
numpy.ndarray (e.g., aSpyFileorTransformedImage).
Spectral Python 0.17
New Features
- Functions
map_class_idsandmap_classeswere added for mapping class
indices between images. view_ndnow accepts custom axis labels.ImageArrayandSpyFilehaveasarraymethod that provides numpy
array interface.
Changes
- ENVI header parameter names are case insensitive (converted to lower-case
after being read). ImageArrayobjects have additionalSpyFilemethods/attributes and
indexing behavior is now likeSpyFile's.- An exception is now raised when attempting to open or save an image in
ENVI format with nonzero major or minor frame offsets (see issue #35).
Bug Fixes
- [Issue #27] ImageView.str failed if image did not have "bands" in
metadata.
Spectral Python 0.16.2
Bug-Fix Release 0.16.2
0.16.2 Bug Fixes
- [Issue #19] Fixed handling of intereave keyword.
- [Issue #20] envi.save_image fails when interleave keyword is provided for
single-band images. - [Issue #21] offset keyword has not effect in envi.create_image.
- [Issue #22] setup.py fails if numpy is not already installed.
- [Issue #24] save_rgb fails when format keyword is given.
- [Issue #25] view_cube fails in HypercubeWindow.load_textures.
- [Issue #26] Too few colors in view_cube side faces.
0.16.1 Bug Fixes
- [Issue #18] Missing import statements for pixel iterators.
Release 0.16.0
New Features
- Adaptive Coherence/Cosine Estimator (ACE) target detector
- Pixel Purity Index (PPI)
- Adjustable linear color stretches (based on data limits or cumulative histogram)
- Ability to save ENVI Classification files (thanks to @ohspite)
ImageViewclass hasset_titlemethod
Changes
imshowimage displays use a linear 2% color stretch by default (can
override this inspectral.settings)- Limited Python 3 compatibility (all functions except
view_cubeandview_nd) supported get_rgbhandles bands with no variation (color set to min value)- Modified
view_ndto support change in PyOpenGL API
Bug Fixes
Spectral Python 0.16.1
Bug-Fix Release 0.16.1
0.16.1 Bug Fixes
- [Issue #18] Missing import statements for pixel iterators.
Release 0.16.0
New Features
- Adaptive Coherence/Cosine Estimator (ACE) target detector
- Pixel Purity Index (PPI)
- Adjustable linear color stretches (based on data limits or cumulative histogram)
- Ability to save ENVI Classification files (thanks to @ohspite)
ImageViewclass hasset_titlemethod
Changes
imshowimage displays use a linear 2% color stretch by default (can
override this inspectral.settings)- Limited Python 3 compatibility (all functions except
view_cubeandview_nd) supported get_rgbhandles bands with no variation (color set to min value)- Modified
view_ndto support change in PyOpenGL API
Bug Fixes
Spectral Python 0.16.0
New Features
- Adaptive Coherence/Cosine Estimator (ACE) target detector
- Pixel Purity Index (PPI)
- Adjustable linear color stretches (based on data limits or cumulative histogram)
- Ability to save ENVI Classification files (thanks to @ohspite)
ImageViewclass hasset_titlemethod
Changes
imshowimage displays use a linear 2% color stretch by default (can
override this inspectral.settings)- Limited Python 3 compatibility (all functions except
view_cubeandview_nd) supported get_rgbhandles bands with no variation (color set to min value)- Modified
view_ndto support change in PyOpenGL API
Bug Fixes
Spectral Python 0.15.0
Installing
To install, uncompress the archive, cd into the unpacked directory, and type
python setup.py install
Instead of downloading the archive, the latest release of the software can be automatically downloaded and installed using pip:
pip install -U spectral
For information on package dependencies, see the web site.
New Features
- Added Minimum Noise Fraction (
mnf) algorithm (a.k.a., Noise-Adjusted
Principal Components). An associatednoise_from_diffsfunction enables
estimation of image noise from a homogeneous region of the image.
Changes
- When calling
envi.save_image, assume an ndarray with two dimensions is
a single-band image (i.e., don't require an explicit third dimension). - [Issue #9] All SpyFile subclass read methods now have an optional
use_memmapargument to indicate whether the memmap interface should be
used (vice direct file read) on a per-call basis. Default values are
specific to the particular method and file interleave.
Bug Fixes
- [Issue #7] Handle recognize comment lines in ENVI headers and accept blank
parameter values in the header. Thanks to Don March (http://ohspite.net) - [Issue #2] Garbage results were being generated for several algorithms when
a NaN value was present in the image data. Reasonable checks are now
performed in several algorithms and an optionalallow_nanargument (False
by default) was added tocalc_stats. - [Issue #1] For images with more rows than columns, the row/col of the pixel
under the mouse cursor did not display if the row index was greater than
the image width.
Performance Improvements
- [Issue #5] Improved BilFile.read_bands performance. Thanks to Don March
(http://ohspite.net) - [Issue #8] Faster creation/display of RGB images for display. Thanks to
Don March (http://ohspite.net)
Spectral Python 0.14
To install, uncompress the archive, cd into the unpacked directory, and type
python setup.py install
Instead of downloading the archive, the latest release of the software can be automatically downloaded and installed using pip:
pip install -U spectral
For information on package dependencies, see the web site.
Changes
- Attempt to use Pillow fork of PIL, if available, rather than older PIL.
view_cubenow uses common color scale limits on all side faces.- When creating an
AsterDatabaseinstance, directories in theSPECTRAL_DATA
environment variable are search for the specified file (after the current
directory). spectral.imshowaccepts an optionalfignumargument to render to an
existing figure.- Class labels in a
spectral.imshowwindow can be reassigned even when class
labels were not provided in the function call (all pixels will start with
class 0). - File
spectral/algorithms/perceptron.pycan be used independently of the
rest of the package.
Bug Fixes
- Front and left sides of the image cube displayed by
view_cubewere
mirrored left-right. Cube aspect ratio was being computed incorrectly for
non-square images. These bugs were introduced by a recent release. - Global covariance was not being scaled properly in the
MahalanobisDistanceClassifier. Mathematically, it does not affect results
and did not affect results on the test data but for large covariance with
many classes, it could have cause rounding/truncation that would affect
results. - PerceptronClassifier constructor was failing due to recent changes in
base class code. Unit tests have been added to ensure it continues to work
properly.
Performance Improvements
- PerceptronClassifier is roughly an order of magnitude faster due to better
use of numpy. Inputs are now scaled and weights are initialized withing the
data limits, which usually results in fewer iterations for convergence.