Opticks 4.6.0 has been released on March 21, 2011.
This release is intended to replace 4.5.0 as the recommended release.
The Opticks 4.6.0 release is binary incompatible with any 4.5.X release. Any extensions built for Opticks 4.5.X will need to be re-built against 4.6.0 in order to work with any 4.6.X release. Once an extension has been built against 4.6.0, it will continue to work without changes on any later 4.6.X release.
View complete list of new features and fixed bugs.
Application Changes
New Features
- A new Band Binning algorithm, available from the General Algorithms menu, allows binning and averaging of bands to aid in reducing the dimensionality of imported images. (OPTICKS-765)
- A primary raster element can now be associated with and georeferenced by an IGM file. (OPTICKS-767)
- The following enhancements have been added to all plots (OPTICKS-893):
- A new mouse mode toolbar is available containing buttons to activate the available mouse modes.
- A new Toolbars menu is available on the context menu, allowing available toolbars to be shown or hidden individually.
- Capability now exists to zoom in/out on a plot with the mouse wheel, independently from the current mouse mode. The zoom direction adheres to the value defined in the options.
- The existing capability to zoom in/out by pressing the middle mouse button is now available independently from the current mouse mode.
- Directional panning is now available by pressing and releasing the middle mouse button, independently from the current mouse mode.
- The following enhancements have been added to histogram plots (OPTICKS-893):
- Capability now exists to switch between a linear scale and logarithmic scale for one or both axes, with an optional capability to link the plot scale type with the contrast stretch type for a raster layer.
- The list of bands to display in the context menu for a raster layer now displays wavelengths for each band, if available.
- For a raster layer histogram, the currently displayed band can now be modified with the existing keyboard shortcut defined in the options for a spatial data view.
- For a raster layer histogram, custom contrast stretch configurations can now be saved/restored from a new Stretch Favorites menu on the right-click context menu.
- While in the "Adjust Stretch" mouse mode, the raster layer brightness can be adjusted by shifting the stretch region when left-clicking and dragging the mouse with the Shift key pressed.
- While in the "Adjust Stretch" mouse mode, the raster layer contrast can be adjusted by scaling the stretch region when left-clicking and dragging the mouse with the Ctrl key pressed.
- Custom contrast stretch configurations can now be saved/restored from the raster layer page in the Options dialog and also from the raster layer Properties dialog. (OPTICKS-893)
- All core plug-ins now have input and output argument descriptions in the Wizard Builder. (OPTICKS-913)
- The Zoom and Pan to Point dialog now allows the user to pan based on pixel coordinates, even if it is georeferenced. (OPTICKS-966)
- Classification markings can now be viewed/edited for each data element individually. The classification can be changed from a new Classification tab in the Properties dialog for a data element. (OPTICKS-1051)
- A view now has a separate classification from the primary raster element. The view is initialized to the classification of the raster element when importing a raster data set, but after that the classification of the view must be changed independently from any data element. The classification can be changed from a new Classification tab in the Properties dialog for the view. (OPTICKS-1051)
- Center wavelength information from NITF files which contain asymmetric band wavelength information (specifically the NOM_WAVE field in the BANDSB TRE) will now populate the Opticks wavelength metadata. (OPTICKS-1062)
- The Generic HDF5 Importer now supports loading datasets with SZIP compression. (OPTICKS-850)
- The Generic GDAL Importer now supports loading HDF4, HDF5 formatted files. (OPTICKS-933)
- The Opticks installers will now default to a classification marking level of Unclassified and to not display the classification banners in spatial data views, plot views and product views. (OPTICKS-1077)
Bug Fixes
- Fixed problem with GenericHdf5Importer opening multiple HDF files with the same internal dataset names. (OPTICKS-108)
- ENVI Importer, Generic Importer, and SIO Importer now validate the file size for all processing locations on import. (OPTICKS-228)
- The NITF Importer no longer displays image segments marked as NODISPLY by default. They are still available for display via the Import Options dialog. (OPTICKS-369)
- Fixed performance slow down that resulted with large zoom percentages in a Product View. (OPTICKS-384)
- Displaying a dock window in a tabbed format now correctly activates the dock window being displayed. (OPTICKS-461)
- The list of most recently used (MRU) files is now much faster for NITF images with DES metadata and uses less disk space. (OPTICKS-533)
- Fixed performance slow down during access of the File menu for the first time and during application shutdown. (OPTICKS-533)
- Metadata for NITF images with DES data no longer attempts to display the binary DESDATA and DESSHF data, resulting in much faster response from the application. (OPTICKS-533)
- Changing the default temp directory no longer changes the default message log directory. (OPTICKS-596)
- Classification markings text in a product now appears correctly when the default origin is set to lower left. (OPTICKS-670)
- The classification text for a product can no longer be edited in the Properties dialog. (OPTICKS-671)
- The text for a frame label object can no longer be edited by double-clicking on the object. (OPTICKS-671)
- The correct raster layer stretch type and units value is now checked on the histogram plot context menu when modified outside of the plot. (OPTICKS-929)
- Keyboard shortcuts for plots now work properly when the plot has the keyboard focus. (OPTICKS-930)
- Fixed a problem with rotation caused by multiple presses of the north up button. (OPTICKS-974)
- Fixed problem with aeb uninstall not removing an extension's top-level folder under Solaris. (OPTICKS-1102)
- Fixed a crash during animation playback. (OPTICKS-1081)
- Fixed a crash during session restore when data was originally loaded from C:\ on Windows. (OPTICKS-1093)
- Fixed a crash when closing linked view with the Overview Window open. (OPTICKS-1098)
- Fixed performance slow down while opening the Overview Window and Chipping Window with many shapefiles loaded. (OPTICKS-1099)
- Changed the range of MPD26A validation in its TRE parser. (OPTICKS-1101)
- Reduced certain RPC georeferencing errors by adding the ability to assign an average elevation to the RPC georeferencing calculations. (OPTICKS-1112)
- Incorrect error messages no longer appear when starting the OpticksBatch application for plug-ins that only support interactive mode that execute on startup. (OPTICKS-1123)
- The correct threshold layer pass area and units value is now checked on the histogram plot context menu when modified outside of the plot. (OPTICKS-1124)
- Opticks now loads NITF 2.0 MSI data with ISUBCAT wavelength information. (OPTICKS-1144)
Extension Developer Changes
- New signal PointsChanged was added to AoiElement. This signal only notifies when the selected points within an AOI change.(OPTICKS-55)
- New signal ObjectChanged was added to GraphicGroup. This signal notifies when the property of an object is changed. (OPTICKS-55)
- All session items in the Session Explorer now support dragging with the new "application/x-sessionitem-id" mime type containing the unique text string identifier for the session item. (OPTICKS-177)
- DataVariant serialization now fails if StringUtilities::fromXml fails. (OPTICKS-589)
- The name of the configuration settings for mouse pan sensitivity has been changed; default .cfg files should be updated. (OPTICKS-893)
- The MousePanEnabled signal on the SpatialDataView object has been removed and replaced with a MousePanEnabled signal on the View object. (OPTICKS-893)
- The View::ClassificationChanged signal is now emitted with a const Classification* value instead of std::string. (OPTICKS-1051)
SDK (Software Development Kit) Changes
New Features
- On Windows, Opticks extensions and all third party dependencies must now be built using Visual C++ 2010; any edition including Express is sufficient. The SDK documentation has been updated. (OPTICKS-933, OPTICKS-1152).
- On all platforms, the following third party dependencies included with Opticks were upgraded to the following versions (OPTICKS-933):
- Boost - 1.45.0
- cfitsio - 3.2.5
- Cg - 2.2
- curl - 7.21.3
- gdal - 1.8.0 (now with support for hdf4, hdf5 formats)
- glew - 1.5.7
- hdf4 - 4.2.5 (now with support for szip decoding)
- hdf5 - 1.8.5-patch1 (now with support for szip decoding)
- libgeotiff - 1.3.0
- libproj - 4.7.0
- libtiff - 3.9.4
- minizip - 1.1
- openjpeg - 1.4r697
- pthreads - 2.8.0
- Qt - 4.7.1
- Qwt - 5.2.1
- yaml-cpp 0.2.5
- zlib - 1.2.5 (only upgraded on Windows)
- On all platforms, the following third party dependencies were added (OPTICKS-933, OPTICKS-1100):
- OpenCV - 2.2.0
- szip - 2.1 (encoding disabled)
- The dependencies management system used (previously dependencies.py) has been replaced with a system that uses Apache Ivy. The dependencies are now hosted in an Ivy repository on opticks.org, see http://opticks.org/downloads/ivy-repo/opticks/. For details on using the system, you can run Dependencies/dependencies.sh or Dependencies\dependencies.bat from a downloaded SDK. To use the new dependency management system a Java installation of Java 1.4.X or later is required on your system. The new system provides download caching, platform specific downloads to minimize the download time and the ability to mirror the dependencies into new Ivy repositories. (OPTICKS-933)
- The pre-built dependencies have been organized into a different directory structure which more closely matches established industry practice and mostly removes the need to add custom include and library directories for each dependency. (OPTICKS-933)
- The validateDefaults(), validateDefaultOnDiskReadOnly(), and validateBasic() methods in RasterElementImporterShell have been removed. ImporterShell now defines a new enum that is used in conjunction with a new getValidationTest() method that allows importers to select one or more default validation checks that can be performed by ImporterShell. RasterElementImporterShell now provides a default implementation of getValidationTest(). (OPTICKS-228)
- Const and non-const versions of a new getClassification() method have been added to View that return the Classification instance now stored in the View. (OPTICKS-1051)
- SecurityMarkingsDlg has been replaced with ClassificationWidget, which is a QWidget that can be embedded in other widgets. Plug-ins creating an instance of SecurityMarkingsDlg will now need to wrap an instance of ClassificationWidget in a dialog. (OPTICKS-1051)
- The DataAccessor has two new functions getColumnDataAsDouble(), getColumnDataAsInteger() which results in faster execution than using ModelServices::getDataValue() and nearly as fast as using the switchOnEncoding macro. (OPTICKS-993)
- Renamed ConfigurationSettings::getSessionSetting() and associated functions to getTemporarySetting() to indicate their transient nature and added additional comments that these settings are not saved/restored during session save/restore. (OPTICKS-457)
- Added a new Data Variant class, Binary Large Object (see Blob.h), for efficient serialization/deserialization of vector<unsigned char> data. (OPTICKS-533)
- Changed NITF DESDATA and DESSHF fields to use the new Blob class. (OPTICKS-533)
- Improved the documentation for the Classification::setFileReleasing() method. (OPTICKS-1097)
Bug Fixes
- A bug has been fixed which caused a VERIFY error when deleting data elements which are in multiple layers. (OPTICKS-1024)
- Moved the GraphicTextWidget.h and FontSizeCombBox.h files into the SDK. (OPTICKS-1119)
- The ScriptingWidget will now properly disconnect from Interpreter instances. (OPTICKS-1126)
- For plug-ins using the legacy loading mechanism ( these plug-ins are colored blue in the Session Explorer ) the names of the exported C functions were changed to avoid collisions with new functions provided in Visual C++ 2010. (OPTICKS-933)
- The signature of Hdf5IncrementalReader::selectElements() and Hdf5IncrementalWriter::writeElements() has changed because of source-breaking changes in the HDF5 dependency upgrade. (OPTICKS-933, OPTICKS-1158)