Skip to content

Releases: spectralpython/spectral

Spectral Python 0.18

18 Jun 22:14
Compare
Choose a tag to compare

Changes

  • Improved handling of ENVI header files:
    • If "header offset" is missing, assume the offset is 0.
    • Stricter check for "ENVI" in the first line of the file.
    • [Issue #42] More-informative exceptions are raised when a problem is
      encountered while reading and ENVI header.
    • [Issue #46] No longer defaulting band_quantity to "Wavelength".

Bug Fixes

  • [Issue #38 and #39] The tostring method has been deprecated in newer
    versions of PIL/Pillow. Using tobytes now and falling back to tostring
    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] GaussianClassifier and MahalanobisDistanceClassifier method
    classify_image was failing when applied to an object that was not a
    numpy.ndarray (e.g., a SpyFile or TransformedImage).

Spectral Python 0.17

11 Nov 16:33
Compare
Choose a tag to compare

New Features

  • Functions map_class_ids and map_classes were added for mapping class
    indices between images.
  • view_nd now accepts custom axis labels.
  • ImageArray and SpyFile have asarray method that provides numpy
    array interface.

Changes

  • ENVI header parameter names are case insensitive (converted to lower-case
    after being read).
  • ImageArray objects have additional SpyFile methods/attributes and
    indexing behavior is now like SpyFile'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

27 Apr 13:57
Compare
Choose a tag to compare

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)
  • ImageView class has set_title method

Changes

  • imshow image displays use a linear 2% color stretch by default (can
    override this in spectral.settings)
  • Limited Python 3 compatibility (all functions except view_cube and view_nd) supported
  • get_rgb handles bands with no variation (color set to min value)
  • Modified view_nd to support change in PyOpenGL API

Bug Fixes

  • [Issue #16] Incorrect handling of alternate file extensions in envi.save_image
  • [Issue #11] Incorrect handling of unsigned byte data type in ENVI files
  • [Issue #13] As of version 1.9, numpy no longer provides oldnumeric submodule

Spectral Python 0.16.1

28 Oct 23:56
Compare
Choose a tag to compare

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)
  • ImageView class has set_title method

Changes

  • imshow image displays use a linear 2% color stretch by default (can
    override this in spectral.settings)
  • Limited Python 3 compatibility (all functions except view_cube and view_nd) supported
  • get_rgb handles bands with no variation (color set to min value)
  • Modified view_nd to support change in PyOpenGL API

Bug Fixes

  • [Issue #16] Incorrect handling of alternate file extensions in envi.save_image
  • [Issue #11] Incorrect handling of unsigned byte data type in ENVI files
  • [Issue #13] As of version 1.9, numpy no longer provides oldnumeric submodule

Spectral Python 0.16.0

19 Oct 16:04
Compare
Choose a tag to compare

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)
  • ImageView class has set_title method

Changes

  • imshow image displays use a linear 2% color stretch by default (can
    override this in spectral.settings)
  • Limited Python 3 compatibility (all functions except view_cube and view_nd) supported
  • get_rgb handles bands with no variation (color set to min value)
  • Modified view_nd to support change in PyOpenGL API

Bug Fixes

  • [Issue #16] Incorrect handling of alternate file extensions in envi.save_image
  • [Issue #11] Incorrect handling of unsigned byte data type in ENVI files
  • [Issue #13] As of version 1.9, numpy no longer provides oldnumeric submodule

Spectral Python 0.15.0

05 Jun 01:29
Compare
Choose a tag to compare

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 associated noise_from_diffs function 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_memmap argument 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 optional allow_nan argument (False
    by default) was added to calc_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

Spectral Python 0.14

23 Feb 05:47
Compare
Choose a tag to compare

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_cube now uses common color scale limits on all side faces.
  • When creating an AsterDatabase instance, directories in the SPECTRAL_DATA
    environment variable are search for the specified file (after the current
    directory).
  • spectral.imshow accepts an optional fignum argument to render to an
    existing figure.
  • Class labels in a spectral.imshow window 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.py can be used independently of the
    rest of the package.

Bug Fixes

  • Front and left sides of the image cube displayed by view_cube were
    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.