XML Keys

rumen

PTeam Member
Nov 27, 2018
6
0
Hello everybody,
I am one of the core developers of INDIGO framework and I am adding XISF support in Ain INDIGO Imager and Ain Viewer, but I see some things that look a bit strange to me and decided to ask :)
So:
1. Bayer pattern filters:
The documentation says it is stored in "ColorFilterArray" node like this:

<ColorFilterArray pattern="GRBG" width="2" height="2" name="GRBG Bayer Filter" />

However Pixinsight stores it in "Property" node with attribute id="PCL:CFASourcePattern" like this:

<Property id="PCL:CFASourcePattern" type="String">RGGB</Property>

on the other hand when XISF is a converted FITS, the CFA is not copied to either of these nodes but is only stored as "FITSKeyword":

<FITSKeyword name="BAYERPAT" value="'GRBG '" comment="Bayer color pattern"/>

So I am a bit confused why there are (at least) three sources to look for to figure out the CFA.

2. When the image is Debayered and stored as RGB image the "PCL:CFASourcePattern" is still present. Why is it preserved as it is irrelevant once debayered? Not of a big deal because I check if the image color space is "Gray" and has the CFA set and only then debayer it but still this information is irrelevant for color spaces other than "Gray".

3. Sometimes the value is stored as a a node content like:
<Property id="PCL:CFASourcePattern" type="String">RGGB</Property>
or
<Property id="Instrument:Camera:Name" type="String">ASI 2600 MM</Property>

and in other cases as a node attribute:
<Property id="Instrument:Telescope:FocalLength" type="Float32" value="0.024"/>
or
<ColorFilterArray pattern="GRBG" width="2" height="2" name="GRBG Bayer Filter" />

There are many examples for this, but the most confusing part being "Property" node, sometimes the value is the node content and other one of the node attributes.

Can you guys shed some light on the topic?
Thank you!
 

rumen

PTeam Member
Nov 27, 2018
6
0
Oh and one more thing:
"Instrument:Camera:Name", "Instrument:Telescope:FocalLength", "Instrument:Sensor:Temperature" look like a second tree with root "Instrument" embedded in the XML tree. Is there any reason for not making "Instrument" a branch of "Image" or it is not intended to be an embedded tree?

Do not get me wrong I am asking because I want to organize my code better :) now it seems to work but not well structured because I do not see the big picture.