Hi all,
Just a quick update to inform you about some new features in the upcoming version 1.6.0 of PixInsight.
XPSM formatXPSM is a new XML-based file format for storage of process icons. The implementation of XPSM is now 100% functional, and has been thoroughly tested for stability and backward compatibility. The XPSM format is an important milestone in PixInsight development. XML support is an essential building block of the new project functionality that will be implemented during the 1.6 cycle.
XPSM files are plain text files in the XML language. They can be edited with any code or plain text editor, such as PixInsight's Script Editor. For example, this is a valid XPSM file:
<?xml version="1.0" encoding="UTF-8"?>
<!--
Sample XPSM File
-->
<xpsm version="1.0" xmlns="http://www.pixinsight.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.pixinsight.com http://pixinsight.com/xsd/xpsm-1.0.xsd">
<description>This is a sample XPSM file.</description>
<instance id="Process25_instance" class="ColorCalibration" enabled="true">
<description>"M74_RGB->Preview01" is the background reference image. See background_preview.txt for more information on this preview.</description>
<parameter id="whiteReferenceViewId"/>
<parameter id="whiteLow" value="0.00000"/>
<parameter id="whiteHigh" value="0.90000"/>
<parameter id="structureDetection" value="false"/>
<parameter id="structureLayers" value="5"/>
<parameter id="noiseLayers" value="1"/>
<parameter id="manualWhiteBalance" value="false"/>
<parameter id="manualRedFactor" value="1.0000"/>
<parameter id="manualGreenFactor" value="1.0000"/>
<parameter id="manualBlueFactor" value="1.0000"/>
<parameter id="backgroundReferenceViewId">M74_RGB->Preview01</parameter>
<parameter id="backgroundLow" value="0.000000"/>
<parameter id="backgroundHigh" value="0.100000"/>
<parameter id="outputWhiteReferenceMask" value="false"/>
<parameter id="outputBackgroundReferenceMask" value="false"/>
</instance>
<icon id="Process25" instance="Process25_instance" xpos="1427" ypos="420" workspace="Workspace01"/>
</xpsm>
And this is the result of loading the above XPSM file with PixInsight 1.6.0:
Platform Integration of XPSM source code is also fully functional. For example, the History Explorer and ProcessContainer interfaces generate both JavaScript and XPSM source code automatically on the fly:
<Click to enlarge><Click to enlarge>Script Editor has also full support of XML files, including XPSM and XFPC (favorite process collection):
<Click to enlarge>Of course, the binary PSM format is fully supported for backward compatibility, although XPSM is now the default for icon storage. Binary PSM is used by the PSM AutoSave feature because it is slightly faster than XPSM, especially to write very large icon files.
The ability to edit XPSM files as plain text opens a world of new possibilities. On one hand, the user can easily modify an XPSM file to adapt it to any particular requirements. More importantly, generation of process instances is now fully scriptable. It is easy to write a script that generates XPSM files adapted to the environment and to user-defined criteria. This is really powerful and greatly improves PixInsight in terms of flexibility and adaptability.
Virtual View Support for Real-Time PreviewsThe concept of
virtual views was introduced with version 1.5. Basically, a virtual view is some element of the graphical user interface that is not an image, but behaves as such
in functional terms (completely or to some extent). So far, virtual views have not been implemented optimally, and there have been stability issues. All that has changed with version 1.6: virtual views are now completely stable and very efficient.
As an example, consider the following screenshot (click the link under the image to view a full size version):
<Click to enlarge>On the screenshot above, the CurvesTransformation interface owns the Real-Time Preview window. As soon as you move a curve point, the real-time preview image is automatically recalculated and shown on the screen. This is normal behavior in PixInsight.
However, note that both HistogramTransformation and Statistics have a "strange" view selected: RealTimePreview. This is not a normal view (in fact, there is no image with such identifier). RealTimePreview is a
virtual view corresponding to the current state of the Real-Time Preview window. This means that when you move a curve point, HistogramTransformation and Statistics compute, respectively, the histogram and statistics of the resulting real-time preview image. All happens automatically:
1. You change a curve point on CurvesTransformation. Then:
2. The Real-Time Preview is calculated and shown on the screen, because CurvesTransformation owns it. Then:
3. The HistogramTransformation interface receives a notification because the RealTimePreview view has been modified. Then:
3.1. HistogramTransformation computes the histogram of RealTimePreview and shows it on the screen.
3.2. Since HistogramTransformation defines a transformation (midtones=0.36), it computes the corresponding output histogram and draws it.
4. The Statistics interface receives a notification because the RealTimePreview view has been modified. Then:
4.1 Statistics forces a recalculation of all the statistics for RealTimePreview, and shows the corresponding table of values.
This is a good example of the power behind PixInsight's object-oriented architecture.
More news very soon:
- StarAlignment computes intersections between mosaic frames automatically. This greatly improves accuracy and reliability of mosaic registration tasks. Mosaics with minimal overlapping (less than a 1% in surface) can now be built automatically, without the help of auxiliary previews.
- StarAlignment automatically equalizes background and signal levels between mosaic frames (using a special linear fitting algorithm). This yields seamless mosaics in a completely automatic way. Seamless means *absolutely no seam*, provided that the mosaic frame images have been accurately flat fielded.
- ImageIntegration includes unconditional low and high rejection limits (black and white pixel rejections) as an option. Both limits are user-definable.
- Statistics provides user-defined integer ranges.
- New PJSR features and functions.
- First version of the new ImageCalibration tool, published under GPL V3.
... and more!