Opticks 4.3.4rc1 has been released on July 30, 2010.
This release is the first release candidate for 4.3.4. This release is marked as "not for production". The current plan is to allow one weeks for the community to validate this release. If you find any major issues please report them to our bug and issue tracker. If no major issues have been identified by August 6th, then creation of 4.3.4 will proceed. Currently, 4.3.4 is scheduled to be available on August 12th and it will be a production release and can be used to create production products. Please download and validate this release to help ensure 4.3.4 is a great release!
View complete list of new features and fixed bugs.
Application Changes
Bug Fixes
- Fixed a crash which would occur if a ViewObject containing either an AOI or Annotation layer was deleted from a Product Window. (OPTICKS-962)
SDK (Software Development Kit) Changes
Bug Fixes
- The Windows SDK now includes debug binaries of the FITS importer. (OPTICKS-903)
Python Scripting Extension 1.1.0rc1 has been released on July 23rd, 2010.
This release is the first release candidate for 1.1.0. This release is marked as "not for production". The current plan is to allow one week for the community to validate this release. If you find any major issues please report them to our bug and issue tracker. If no major issues have been identified by July 30th, then creation of 1.1.0 will proceed. Currently, 1.1.0 is scheduled to be available on August 10th and it will be a production release and can be used to create production products. Please download and validate this release to help ensure 1.1.0 is a great release!
View complete list of new features and fixed bugs.
Download Python Scripting Extension
New Features
- This release includes all of the new features and bug fixes present in the upcoming 1.0.1 release. The 1.0.1 release works with Opticks 4.3.X and this release works with Opticks 4.4.X.
- The opticks.data.types.DataElement class has a new method copyClassification() for copying the classification markings from an existing data set to a newly created data set. ( EXTRAS-64)
- The Python API has been upgraded to allow the creation of an opticks.data.aoi.AoiIterator without an AOI. This allows the use of the same code path for processing subsets based on AOI and for processing an entire image. (EXTRAS-56)
Bug Fixes
- Setting the threshold values of opticks.view.layer.ThresholdLayer now accepts the threshold values in the currently set region units for the ThresholdLayer. (OPTICKS-888)
- Opticks will no longer crash when requesting large sections of data from a opticks.data.raster.RasterElement using getDataPointerArray(), it will now return an error. (OPTICKS-875)
Supported Opticks Versions
- This extension is supported in any version of Opticks 4.4.X that is Opticks 4.4.0rc1 or later.
Python Scripting Extension 1.0.1rc1 has been released on July 23rd, 2010.
This release is the first release candidate for 1.0.1. This release is marked as "not for production". The current plan is to allow one week for the community to validate this release. If you find any major issues please report them to our bug and issue tracker. If no major issues have been identified by July 30th, then creation of 1.0.1 will proceed. Currently, 1.0.1 is scheduled to be available on August 10th and it will be a production release and can be used to create production products. Please download and validate this release to help ensure 1.0.1 is a great release!
View complete list of new features and fixed bugs.
Download Python Scripting Extension
New Features
- The Python Scripting Extension no longer bundles a copy of the Python interpreter runtime. This makes the downloads of the extension significantly smaller (under 300 KB). However, it does add the requirement that you must download and install a copy of the Python interpreter (either Python 2.4.X, Python 2.5.X or Python 2.6.X) on your system before using this extension. The rationale for this change was that users may have their own install of Python configured with other useful Python libraries (NumPy, Matplotlib, PyQt) and forcing them to use a bundled Python interpreter was confusing. (EXTRAS-75).
- The Python Scripting Extension now works with the Windows 64-bit release of Opticks, in addition to the existing support for Windows 32-bit release of Opticks. This is only supported with Python 2.6, not Python 2.5 or Python 2.4. Those earlier versions of Python do not have adequate 64-bit support. (EXTRAS-72)
- The user can now configure which install of Python to use with a new option in the "Tools\Options..." dialog under "Scripting\Python". (EXTRAS-69)
- The opticks.data.raster.RasterElement class has a new property, "info" that is used to access the dimensions instead of needing to construct a opticks.data.types.DataInfo object. (EXTRAS-68)
- The opticks.view.layer.RasterLayer class has the following additions (EXTRAS-55):
- Properties:
- rgbdisplayed
- Methods:
- getdisplayedband(channel)
- setdisplayedband(channel, band, rasterElement)
- getstatistics(channel, component)
- setrgbbands(red=None,green=None,blue=None)
- setgraybands(gray)
- Properties:
- The opticks.data.types.DataElement and all subclasses have a new property, "metadata" that can be used to access the metadata instead of needing to construct an opticks.metadata.DynamicObject() instance. (EXTRAS-52)
- A new Python module, opticks_q, has been added. This is a collapsed version of the modules and sub-modules in the opticks module. For example, you can now use opticks_q.RasterLayer instead of or in addition to opticks.view.layer.RasterLayer, or opticks_q.RasterElement instead of or in addition to opticks.data.raster.RasterElement. This was done to reduce the typing required when using the Scripting Window. (EXTRAS-50)
Bug Fixes
- The "Python User Configuration File" set in "Tools\Options..." can now contain more than one line of Python code. (EXTRAS-70)
- You can now set a opticks.metadata.DynamicObject() as the value for a given key in another opticks.metadata.DynamicObject() instance. (EXTRAS-54)
- The opticks.data.raster.RasterElement.getDataPointerArray() would always return a NumPy array with a shape of BIP interleave or (rows, columns, bands) even if the data was not stored in that interleave. This function now returns a NumPy array with a shape that matches the layout of the data returned. (EXTRAS-53)
- There was a problem typing nested blocks into the Scripting Window. The Python code in the nested block would be executed when it should not have been, resulting in very counter-intuitive behavior. (EXTRAS-46)
- Printing to sys.stderr will now work properly. Previously any code printing to sys.stderr including other installed Python libraries would cause the output to be lost. (EXTRAS-45)
Supported Opticks Versions
- This extension is supported in any version of Opticks 4.3.X that is Opticks 4.3.3 or later.
Spectral Processing Extension 1.1.0rc1 has been released on July 22nd, 2010.
This release is the first release candidate for 1.1.0. This release is marked as "not for production". The current plan is to allow one week for the community to validate this release. If you find any major issues please report them to our bug and issue tracker. If no major issues have been identified by July 30th, then creation of 1.1.0 will proceed. Currently, 1.1.0 is scheduled to be available on August 10th and it will be a production release and can be used to create production products. Please download and validate this release to help ensure 1.1.0 is a great release!
This version of the Spectral Processing Extension only supports Opticks 4.4.X. If you want a version of Spectral Processing extension for use with Opticks 4.3.X, you must download an earlier version of this extension.
View complete list of new features and fixed bugs.
Download Spectral Processing Extension
New Features
- All the plug-ins in the Spectral extension now copy the classification markings to new data sets. ( EXTRAS-64)
- New features and user configuration settings for the Signature Window: (EXTRAS-73, EXTRAS-74)
- New Spectral toolbar buttons:
- Tool button that displays just the AOI average signature.
- Tool button to toggle the new pin signature plotting to single plot mode.
- New user options in the "Windows\Signature" section of the "Tools\Options..." dialog:
- Set to use a fixed color or the AOI's display color for plotting AOI average signatures.
- Set to use a fixed color or the AOI's display color for plotting AOI signatures.
- Set the fixed color for plotting pixel signatures.
- Set whether or not the plot will be rescaled when a signature is added.
- Set whether or not all signatures will be displayed in a single plot.
- New features:
- Pin signature plotting - new mode that allows you to display signatures from multiple windows in the same plot. When this mode is active, all signature plotting will be restricted to the currently active plot in the "Custom Plots" plotset. The only restrictions are that signatures must contain wavelength information, and have the same type of units, e.g., Reflectance, Digital Number, etc. The default mode can be set in the "Tools\Options..." dialog - this sets the initial mode when Opticks starts. The mode can be changed by toggling the "Pin/Unpin the Signature Window" tool button in the Spectral toolbar.
- Display the AOI average signature - click on the new "Display AOI Average Signature" tool button in the Spectral toolbar to add the average signature for the active AOI in the active window to the current plot for the active data set, i.e., the AOI average signature can be added to either the pixel signature plot or an AOI plot for a data set. If the pin signature window mode is active, the AOI average signature will be added to the currently active plot in the "Custom Plots" plotset.
- Auto rescaling after adding a signature can be turned off. Use the new option to set the default behavior. Use the new context menu item "Rescale on addition" to change the current setting for a plot.
- New Spectral toolbar buttons:
- Spectral now has an NDVI tool which calculates the NDVI of a dataset. The dataset must have associated wavelengths. Bands for the NDVI are chosen based on these wavelengths. The median band which falls in the appropriate red and NIR ranges is selected. The ranges are 630nm-690nm for red and 760nm-1000nm for NIR. (EXTRAS-63)
- The Wavelength Editor dialog and all Wavelength importers and exporters have been moved to the Opticks application and have been removed from the Spectral Processing extension. (EXTRAS-80)
- The Wavelengths class in SpectralUtilities has moved to the Opticks application and has been removed from the Spectral Processing extension. (EXTRAS-80)
Bug Fixes
- The Signature Importer now imports zero values and negative values as valid input. It no longer skips zero values as a bad band marker nor sets negative values to zero. This will affect very old signatures that use a zero value to indicate a bad band. The band will now be imported into the signature with a value of zero. ( EXTRAS-59)
Supported Opticks Versions
- This extension is supported in any version of Opticks 4.4.X that is Opticks 4.4.0rc1 or later.
IDL Scripting Extension 1.1.0rc1 has been released on July 22nd, 2010.
This release is the first release candidate for 1.1.0. This release is marked as "not for production". The current plan is to allow one week for the community to validate this release. If you find any major issues please report them to our bug and issue tracker. If no major issues have been identified by July 30th, then creation of 1.1.0 will proceed. Currently, 1.1.0 is scheduled to be available on August 10th and it will be a production release and can be used to create production products. Please download and validate this release to help ensure 1.1.0 is a great release!
This version of the IDL Scripting Extension only supports Opticks 4.4.X. If you want a version of IDL Scripting extension for use with Opticks 4.3.X, you must download an earlier version of this extension.
View complete list of new features and fixed bugs.
Bug Fixes
- IDL commands with window arguments should now work correctly. (EXTRAS-83)
Supported Opticks Versions
- This extension is supported in any version of Opticks 4.4.X that is Opticks 4.4.0rc1 or later.
Opticks 4.4.0rc1 has been released on July 22nd, 2010
This release is the first release candidate for 4.4.0. This release is marked as "not for production". The current plan is to allow one week for the community to validate this release. If you find any major issues please report them to our bug and issue tracker. If no major issues have been identified by July 30th, then creation of 4.4.0 will proceed. Currently, 4.4.0 is scheduled to be available on August 10th and it will be a production release and can be used to create production products. Please download and validate this release to help ensure 4.4.0 is a great release!
The Opticks 4.4.0rc1 release is binary incompatible with any 4.3.X release. Any extensions built for Opticks 4.3.X will need to be re-built against 4.4.0rc1 in order to work with any 4.4.X release. Once an extension has been built against 4.4.0rc1, it will continue to work without changes on any later 4.4.X release.
View complete list of enhancements and fixed bugs.
Application Changes
New Features
- When importing raster data, a new Wavelengths tab is available in the import options dialog. Wavelengths can be associated with each band in the raster data either by loading a wavelength file, using wavelengths from another already imported raster data set, or by entering values in manually. The tab also contains the capability to export a wavelength file. (OPTICKS-758)
- When viewing the properties of a raster data set, a new Wavelengths tab is available in the properties dialog, similar to the new Wavelengths tab in the import options dialog described above. (OPTICKS-758)
- The Wavelength Text Importer, Wavelength Text Exporter, Wavelength Metadata Importer and Wavelength Metadata Exporter have been moved from the Spectral Processing extension into Opticks. (OPTICKS-758)
- The Get Data Set Wavelengths and Set Data Set Wavelengths wizard items have been moved from the Spectral Processing extension into Opticks. (OPTICKS-758)
- Several user-configurable color composites are now available to quickly change how data is displayed. This option is available from the Import Options dialog, the Raster Layer properties page, and the Raster Layer context menu. To add your own color composites based upon wavelengths or band numbers, go to the "Layers\Raster" section of "Tools\Options..." dialog. (OPTICKS-889)
- The histogram stretch can now easily be reset to its original values. This capability is present in the Histogram window and from the Display toolbar. (OPTICKS-892)
- Added North Up and Sensor Up buttons to the Display toolbar. North Up requires the data to be georeferenced. Sensor Up requires a value to be present in the special metadata. (OPTICKS-759)
- The Ice Importer now supports loading a subset of bands when using a processing location of On-Disk Read Only, but only if the file has an interleave of BSQ. (OPTICKS-942).
- The Generic GDAL Importer has been upgraded to use GDAL 1.7.2. This upgrade also included adding support to load HDF4 data files, including HDF-EOS, notably MODIS. The importer will also load data from WMS and WCS data servers. (OPTICKS-865)
- The Generic GDAL Importer is now able to load more than one dataset from a file if multiple are available in that file. (OPTICKS-865)
- Performance of importing NITF images has been vastly improved. (OPTICKS-768)
- Performance of importing with a processing location of On-Disk when running on Windows has been improved. (OPTICKS-926).
- Performance of data in BIL interleave has been significantly improved during file import. (OPTICKS-923)
- Performance of panning/zooming/processing an image loaded with Ice Importer, Hyperion Importer or Generic GDAL Importer using a processing location of On-Disk Read Only has been improved. (OPTICKS-925)
- The session explorer and histogram window have been upgraded to easy access to specific threshold layers. Selecting a threshold layer in the histogram window unhides the layer and unhiding the layer in the session explorer selects the associated histogram. This capability is off by default. You must enable it, you can find it as "Link Layer and Histogram Activation" under "Windows\Workspace\Cube" of the "Tools\Options..." dialog. (OPTICKS-760)
- Paper color is now saved/restored in product templates. The template file format has undergone some changes. Any existing product templates files will continue to load as they did in 4.3.X. (OPTICKS-415)
- Derived data sets now inherit classification settings. (OPTICKS-667)
- The "Run Interpreter Commands" wizard item has a new optional input, "Verbose", that can be set that allows normal output from the interpreter to be displayed in the progress dialog. The default behavior is the same as it was in 4.3.X, which was to ignore any normal output. (OPTICKS-876)
Bug Fixes
- Obsolete widgets that did not work in the Movie Product page of the "Tools\Options..." dialog have been removed. (OPTICKS-521)
- Setting the movie view resolution option now works correctly to set the default value when exporting a movie. (OPTICKS-521)
- The splash screen now updates production status after loading plug-ins. (OPTICKS-640)
- The interactive application (Opticks) no longer exits after a failed extension installation. The batch application (OpticksBatch) functions as it did in 4.3.X, exiting and returning an error code to the system after a failed extension installation. (OPTICKS-657)
- ENVI Spectral Library Importer now takes the bad bands field into account. (OPTICKS-663)
- True Color Display is now properly set in Import Options dialog for subsets. (OPTICKS-799)
- Creating an annotation layer in the spatial data window after deriving a product and adding a new annotation layer in the derived view object now works successfully. (OPTICKS-809)
- NITF ACFTB TREs with spaces are now handled properly. (OPTICKS-862)
- The application now closes properly without crashing after adding a text object to the annotation layer in a plot. (OPTICKS-866)
- Exporting an animation with a frame speed less than one now works properly without invoking the export options dialog. (OPTICKS-867)
- Undo/redo now works properly when adding a north arrow or east arrow object to an annotation layer. (OPTICKS-868)
- Undo/redo now works properly when adding an arc object to an annotation layer. (OPTICKS-869)
- The Annotation mouse mode is now properly activated when creating a new product. (OPTICKS-870)
- ENVI Signature Library Exporter no longer reports an error in the message log when it succeeds. (OPTICKS-874)
- ENVI Exporter now overwrites existing data files correctly. (OPTICKS-922)
- NITF TRE validation has been improved for ICHIPB. (OPTICKS-935)
- NITF TRE validation has been improved for RPC00A and RPC00B. (OPTICKS-936)
- NITF TRE validation has been improved for SENSRA. (OPTICKS-937)
- Band math will no longer fail when encountering a divide by zero in batch mode and will instead set the values to 0. (OPTICKS-909)
- The Generic GDAL Importer now adds supported file extensions to the file extension combo box in the Import dialog. (OPTICKS-865)
- The Generic GDAL Importer no longer crashes the application when it is used to load an .sli file. (OPTICKS-865)
- Wavelengths and band names are now properly loaded when selecting a subset of bands during import and using a processing location of On-Disk Read Only (OPTICKS-950).
- When installing an uncompressed extension, the error message of "Platform specific files exist but targetPlatform is not specified in AEB metadata" may have appeared when it should not have. This has been fixed. (OPTICKS-904)
- Uninstall of an extension may have been forbidden because of faulty logic in checking dependencies between extensions. This has been fixed. (OPTICKS-895)
- If the install of extension fails because the extension does not support the given platform (e.g. a user is installing a extension only built for Windows into an Opticks install running on Linux), an error message explaining the supported platforms of the extension along with the current platform Opticks is running on is displayed. Previously, a less descriptive error message was shown. (OPTICKS-885)
- If the install of extension fails because the extension does support the version of Opticks, an error message showing the Opticks version along with the range of versions supported by the extension is displayed. Previously, a "AEB is invalid" error message was shown. (OPTICKS-885)
Extension Developer Changes
- The PlotWidget organization label is now displayed when it appears in the same location as classification text. (OPTICKS-63)
- ModelServices::createElement() now returns NULL when the parent element represented by the parent designator does not exist. (OPTICKS-479)
- The SimpleAPI now supports the creation of an AoiIterator with a NULL API. This matches the behavior in the standard API for AoiIterator. (OPTICKS-887)
- The SimpleAPI now sets threshold region boundaries using the region unit of the threshold layer instead of requiring raw values. (OPTICKS-888)
- The PlotWidget organization label is now serialized correctly when saved in a session. (OPTICKS-946)
- When creating DataElements, they will inherit the classification of their parent. If they are created with a NULL parent, they will use the system default classification. This inheritance of classification is a one-time event only performed during creation of the DataElement. (OPTICKS-667)
- The auto-generated name for a layer when using SpatialDataView::createLayer() has been changed. (OPTICKS-809).
- The createDataPointer() function of the SimpleAPI will no longer crash when the required memory is not available, it will now properly set a error and return NULL. (OPTICKS-875)
- The "Data Element Properties" plug-in has been renamed to "Metadata Properties" plug-in. (OPTICKS-758)
- The GDAL 3rd-party dependency library has been updated. (OPTICKS-865)
- The OSSIM 3rd-party dependency library has been updated. (OPTICKS-768)
- A new 3rd-party dependency library of curl has been added. (OPTICKS-865)
- Performance of creating a RasterElement with a processing location of On-Disk, or calling RasterElement::createTemporaryFile() has been improved on Windows by multiple orders of magnitude. (OPTICKS-926).
- Performance of Hdf4Pager and Hdf5Pager has been improved by properly using CachedPager and reducing unnecessary cache misses. (OPTICKS-925)
SDK (Software Development Kit) Changes
New Features
- CustomTreeWidget now works for double spin boxes. (OPTICKS-934)
- The ArrayResource class now has an optional constructor argument which specifies exceptions should not be thrown when allocation fails. The default behavior was not changed. (OPTICKS-938)
- The RasterLayer class now uses ColorMap in its methods, setColorMap() and getColorMap() instead of std::vector<ColorType>. The getColorMapName() function has been removed. (OPTICKS-78)
- A new CUSTOM_LINE_EDIT edit widget type has been added to CustomTreeWidget. This allows customized line edits (e.g. using a validator or completer) to be used as the edit widget type for a cell. (OPTICKS-238)
- All interface extension classes ending in "Ext1" have been removed and their methods have been moved to the corresponding main interface classes. (OPTICKS-897)
- The Hdf4Pager, Hdf5Pager, HdfImporterShell, Hdf4ImporterShell and Hdf5ImporterShell now supports loading a subset of bands when using a processing location of On-Disk Read Only, but only if the file has an interleave of BSQ. (OPTICKS-942).
- The version of the Opticks SDK can now be determined by the addition of a new header file, OpticksVersion.h in "Application\Interfaces". (OPTICKS-803)
- A copy of Visual C++ 2005 SP1 IDE is no longer required to create extensions. Developers can now use SCons, which is free and open-source, along with the "Microsoft® Windows® Software Development Kit Update for Windows Vista", which is free from Microsoft, to build extensions. (OPTICKS-621)
- A new class, Wavelengths has been added. This class is a utility and is not required to access band wavelengths. An instance of this class can be passed as a plug-in arg value. (OPTICKS-758)
- The DataAccessor class has a new method, getConcurrentColumns() that is useful when iterating over data in a native interleave of BIL. (OPTICKS-768)
- The DataElement class has two new convenience functions, setClassification() and copyClassification(). (OPTICKS-667)
- There is now documentation listing the default PlugInArg types in the PlugInManagerServices documentation. (OPTICKS-758)
- There is now documentation listing the valid types that a DataVariant can hold. (OPTICKS-758)
- The RasterLayer class has a new method, resetStretch(). (OPTICKS-892)
- The SpatialDataView class has a new method, resetStretch(). (OPTICKS-892)
- A new enum, WavelengthUnitType has been added. This new enum can be added to a DataVariant, DynamicObject and set as a plug-in arg value. (OPTICKS-758)
- A new class, WavelengthUnitsComboBox has been added. (OPTICKS-758)
- Implementations of Nitf::TreParser can now have toDynamicObject() and fromDynamicObject() called multiple times during the lifetime of the class instance. (OPTICKS-758)
- The LargeFileResource class has a new method, reserve(). (OPTICKS-926)
- The RasterUtilities::canBeDisplayedInTrueColor() function has been removed. (OPTICKS-889)
- The RasterUtilities namespace has the following new functions: findColorCompositeDescriptors(), findBandWavelengthMatch(), and findBandWavelengthMatches(). (OPTICKS-889)
- A new method, copyClassification() has been added to the SimpleAPI. (OPTICKS-667)
Bug Fixes
- ModelServices methods have been evaluated and several methods had non-const parameters switched to const parameters. (OPTICKS-38)
- The BitMaskIterator now works correctly for the NULL BitMask case. (OPTICKS-906)
- RasterElementImporterShell now chips special metadata when using a processing location of On-Disk Read Only. Previously no chipping of special metadata (band names, band wavelengths) occurred. (OPTICKS-950).