IOFormat 1.12.0
Loading...
Searching...
No Matches
Fei Metadata

Introduction

Some image formats can contain custom metadata, specific to MSD products. They're generally called Fei Metadata. Its structure is versioned and can be only updated following a well-defined process. Here you can find information on this process and on the metadata structure.

As Fei Metadata are stored in XML format which is then embedded as string value in metadata of concerned formats (TIFF, PNG so far), accessing each field of the metadata can be laborious. Moreover, an XML file does not give information about the type of the field to read. An additional file (XSD) which describes the structure of the XML can provide the keys to correctly parse and decode the XML file, but it remains painful.

IOLink provides in its interfaces the possibility to expose metadata as a node tree, where each node is identified by a key (string) and associated to a variant value.

IOFormat is now able to expose Fei Metadata XML content as an IOLink tree so as to simplify and uniformize the access.

But the mapping between the XML structure and the key-value node tree cannot be direct and needs many adaptations. XML also contains some custom sections which are not described in any specification, and are only present for private use. These sections won't be exposed in the tree.

The conversion tool follows the given rule which says the parsing shall not be strict. If a field from the XML does not stricly follow the XSD specification file, the parsing does not fail and the concerned field is simply ignored.

Regarding types, this table indicates how simple types are mapped between XML and the tree:

XSD type Variant type comment
xs:double DataTypeId::DOUBLE
xs:string DataTypeId::UTF8_STRING
xs:int DataTypeId::INT64
xs:unsignedInt DataTypeId::UINT64
xs:boolean DataTypeId::UINT64 0: false, 1: true
xs:dateTime DataTypeId::UTF8_STRING
xs:hexBinary DataTypeId::UTF8_STRING

Complex types are generally mapped as a common root node (identified with the name of the element) and children for all the internal fields. Regarding XML attributes, there is no rule, and you have to see in the appropriate below section how the information is exposed. Some types are restriction of simple types (e.g.: a limitation of possible values), and are not checked by the parser.

We're gonna describe in the following sections the locations where data can be reached in the tree, and how it can be easily accessed.

Remark: when in following chapters there is a table which lists all elements of a section, some elements may also contain other elements (children). For simple cases, the possible children are given in the comment column. You have to add the name of this field to the given location to access it.

e.g.

field name location in the tree comment
GunShiftRaw Metadata/Optics/GunShiftRaw children: X, Y

So as to access GunShiftRaw.X data, you have to use location Metadata/Optics/GunShiftRaw/X.

Core section

Core section node is accessible at following path: Metadata/Core.

Any element of this section is directly mapped as an ordinary complex type, which means you can access each element as a child of the section root node.

Here are the possible fields:

field name location in the tree
Guid Metadata/Core/Guid
ParentGuid Metadata/Core/ParentGuid
Md5Checksum Metadata/Core/Md5Checksum
PrivateChecksum Metadata/Core/PrivateChecksum
FileName Metadata/Core/FileName
FileDatetime Metadata/Core/FileDatetime
UserID Metadata/Core/UserID
Comment Metadata/Core/Comment
ApplicationSoftware Metadata/Core/ApplicationSoftware
ApplicationSoftwareVersion Metadata/Core/ApplicationSoftwareVersion
ApplicationComputerName Metadata/Core/ApplicationComputerName

Labels section

Labels section node is accessible at following path: Metadata/Labels.

Labels section contains a list of Label objects defined by a type and containing a value.

It is exposed as a list of nodes with the 'type' used as key-identifier.

Example:

<Labels>
<Label type="LotID" value="S31 1 Start 1" />
<Label type="WaferID" value="2022.11.02_19.12.39" />
<Label type="TrackingID" value="T2022.11.02_19.57.23_HPN23-MPC" />
<Label type="CarrierID" value="Default Carrier" />
<Label type="DieID" value="Die(0,0)(0,1)" />
</Labels>

will give 4 child nodes:

node location
LotID Metadata/Label/LotID
WaferID Metadata/Label/WaferID
CarrierID Metadata/Label/CarrierID
DieID Metadata/Label/DieID

And each child node contains a variant giving the value.

Instrument section

Instrument section node is accessible at following path: Metadata/Instrument.

Any element of this section is directly mapped as an ordinary complex type, which means you can access each element as a child of the section root node.

Here are the possible fields:

field name location in the tree
AcquisitionServer Metadata/Instrument/AcquisitionServer
AcquisitionServerVersion Metadata/Instrument/AcquisitionServerVersion
ControlSoftware Metadata/Instrument/ControlSoftware
ControlSoftwareVersion Metadata/Instrument/ControlSoftwareVersion
Manufacturer Metadata/Instrument/Manufacturer
InstrumentClass Metadata/Instrument/InstrumentClass
InstrumentModel Metadata/Instrument/InstrumentModel
InstrumentID Metadata/Instrument/InstrumentID
ComputerName Metadata/Instrument/ComputerName

Acquisition section

Acquisition section node is accessible at following path: Metadata/Acquisition.

Any element of this section is directly mapped as an ordinary complex type, which means you can access each element as a child of the section root node.

field name location in the tree
AcquisitionStartDatetime Metadata/Acquisition/AcquisitionStartDatetime
AcquisitionDatetime Metadata/Acquisition/AcquisitionDatetime
AcquisitionID Metadata/Acquisition/AcquisitionID
BeamType Metadata/Acquisition/BeamType
ColumnType Metadata/Acquisition/ColumnType
SourceType Metadata/Acquisition/SourceType

Optics section

Optics section node is accessible at following path: Metadata/Optics.

Any element of this section is directly mapped as an ordinary complex type, which means you can access each element as a child of the section root node.

field name location in the tree comment
Apertures Metadata/Optics/Apertures see below for more details
GunLensSetting Metadata/Optics/GunLensSetting
WehneltBias Metadata/Optics/WehneltBias
ExtractorVoltage Metadata/Optics/ExtractorVoltage
GunShiftRaw Metadata/Optics/GunShiftRaw children: X, Y
GunTiltRaw Metadata/Optics/GunTiltRaw children: X, Y
AccelerationVoltage Metadata/Optics/AccelerationVoltage
DecelerationVoltage Metadata/Optics/DecelerationVoltage
SpotIndex Metadata/Optics/SpotIndex
C2LensIntensity Metadata/Optics/C2LensIntensity
C3LensIntensity Metadata/Optics/C3LensIntensity
C1LensIntensity Metadata/Optics/C1LensIntensity
ObjectiveLensIntensity Metadata/Optics/ObjectiveLensIntensity
IntermediateLensIntensity Metadata/Optics/IntermediateLensIntensity
DiffractionLensIntensity Metadata/Optics/DiffractionLensIntensity
Projector1LensIntensity Metadata/Optics/Projector1LensIntensity
Projector2LensIntensity Metadata/Optics/Projector2LensIntensity
LorentzLensIntensity Metadata/Optics/LorentzLensIntensity
MiniCondenserLensIntensity Metadata/Optics/MiniCondenserLensIntensity
SpotSize Metadata/Optics/SpotSize
EmissionCurrent Metadata/Optics/EmissionCurrent
BeamCurrent Metadata/Optics/BeamCurrent
BeamCurrentSelected Metadata/Optics/BeamCurrentSelected
BeamDiameter Metadata/Optics/BeamDiameter
BeamConvergence Metadata/Optics/BeamConvergence
ScreenCurrent Metadata/Optics/ScreenCurrent
LastMeasuredScreenCurrent Metadata/Optics/LastMeasuredScreenCurrent
IlluminationOn Metadata/Optics/IlluminationOn
IlluminationType Metadata/Optics/IlluminationType
IlluminationIntensityNormalized Metadata/Optics/IlluminationIntensityNormalized
FullScanFieldOfView Metadata/Optics/FullScanFieldOfView children: X, Y
ScanFieldOfView Metadata/Optics/ScanFieldOfView children: X, Y
WorkingDistance Metadata/Optics/WorkingDistance
EucentricWorkingDistance Metadata/Optics/EucentricWorkingDistance
BeamTilt Metadata/Optics/BeamTilt children: X, Y
ImageShift Metadata/Optics/ImageShift children: X, Y
BeamShift Metadata/Optics/BeamShift children: X, Y
SampleTiltCorrectionOn Metadata/Optics/SampleTiltCorrectionOn
SamplePreTiltAngle Metadata/Optics/SamplePreTiltAngle
StigmatorRaw Metadata/Optics/StigmatorRaw children: X, Y
GunStigmatorRaw Metadata/Optics/GunStigmatorRaw children: X, Y
CondenserStigmatorRaw Metadata/Optics/CondenserStigmatorRaw children: X, Y
ObjectiveStigmatorRaw Metadata/Optics/ObjectiveStigmatorRaw children: X, Y
DiffractionStigmatorRaw Metadata/Optics/DiffractionStigmatorRaw children: X, Y
SphericalAberration Metadata/Optics/SphericalAberration
Focus Metadata/Optics/Focus
STEMFocus Metadata/Optics/STEMFocus
Defocus Metadata/Optics/Defocus
NominalMagnification Metadata/Optics/NominalMagnification
HighMagnificationMode Metadata/Optics/HighMagnificationMode
OperatingMode Metadata/Optics/OperatingMode
TEMOperatingSubMode Metadata/Optics/TEMOperatingSubMode
OpticalMode Metadata/Optics/OpticalMode
ProjectorMode Metadata/Optics/ProjectorMode
EFTEMOn Metadata/Optics/EFTEMOn
ObjectiveLensMode Metadata/Optics/ObjectiveLensMode
IlluminationMode Metadata/Optics/IlluminationMode
ProbeMode Metadata/Optics/ProbeMode
CameraLength Metadata/Optics/CameraLength
DiffractionFocus Metadata/Optics/DiffractionFocus
CrossOverOn Metadata/Optics/CrossOverOn
FibL1Voltage Metadata/Optics/FibL1Voltage
FibL2Voltage Metadata/Optics/FibL2Voltage
FibL0Voltage Metadata/Optics/FibL0Voltage
FibSteering Metadata/Optics/FibSteering children: X, Y
GunFilamentSetting Metadata/Optics/GunFilamentSetting
ObjectiveLensPosition Metadata/Optics/ObjectiveLensPosition
FLMMode Metadata/Optics/FLMMode
FLMFilterType Metadata/Optics/FLMFilterType
IlluminationWaveLength Metadata/Optics/IlluminationWaveLength

The Apertures section contains a list of Aperture identified by a Number and containing many sub-fields.

Example:

<Apertures>
<Aperture>
<Number>1</Number>
<Name>Aperture1</Name>
<MechanismType>Motorized</MechanismType>
<Type>FaradayCup</Type>
<Diameter>8E-06</Diameter>
<Index>25</Index>
<PositionOffset>
<X>1</X>
<Y>2</Y>
</PositionOffset>
</Aperture>
<Aperture>
<Number>2</Number>
<Name>Aperture2</Name>
<MechanismType>Manual</MechanismType>
<Type>EnergySlit</Type>
<Diameter>3.6</Diameter>
<Index>26</Index>
<PositionOffset>
<X>3</X>
<Y>4</Y>
</PositionOffset>
</Aperture>
</Apertures>

will give following node tree for the aperture whose Number field is N:

node location comment
Name Metadata/Optics/Apertures/<N>/Name
MechanismType Metadata/Optics/Apertures/<N>/MechanismType
Type Metadata/Optics/Apertures/<N>/Type
Diameter Metadata/Optics/Apertures/<N>/Diameter
Index Metadata/Optics/Apertures/<N>/Index
PositionOffset Metadata/Optics/Apertures/<N>/PositionOffset children: X , Y

EnergyFilterSettings section

EnergyFilterSettings section node is accessible at following path: Metadata/EnergyFilterSettings.

Any element of this section is directly mapped as an ordinary complex type, which means you can access each element as a child of the section root node.

node location comment
AccelerationVoltageOffset Metadata/EnergyFilterSettings/AccelerationVoltageOffset
DriftTubeVoltage Metadata/EnergyFilterSettings/DriftTubeVoltage
EnergyShift Metadata/EnergyFilterSettings/EnergyShift
EnergySelectionSlitWidth Metadata/EnergyFilterSettings/EnergySelectionSlitWidth
EnergySelectionSlitInserted Metadata/EnergyFilterSettings/EnergySelectionSlitInserted
EntranceApertureDiameter Metadata/EnergyFilterSettings/EntranceApertureDiameter
EntranceApertureType Metadata/EnergyFilterSettings/EntranceApertureType
CollectionAngleRange Metadata/EnergyFilterSettings/CollectionAngleRange children: Begin, End

StageSettings section

StageSettings section node is accessible at following path: Metadata/StageSettings.

Any element of this section is directly mapped as an ordinary complex type, which means you can access each element as a child of the section root node.

node location comment
StagePosition Metadata/StageSettings/StagePosition see below for more details
HolderType Metadata/StageSettings/HolderType
HolderTemperature Metadata/StageSettings/HolderTemperature
SampleLoader Metadata/StageSettings/SampleLoader

StagePosition contains following children:

node location comment
X Metadata/StageSettings/StagePosition/X
Y Metadata/StageSettings/StagePosition/Y
Z Metadata/StageSettings/StagePosition/Z
Tilt Metadata/StageSettings/StagePosition/Tilt children: Alpha, Beta

ScanSettings section

ScanSettings section node is accessible at following path: Metadata/ScanSettings.

Any element of this section is directly mapped as an ordinary complex type, which means you can access each element as a child of the section root node.

node location comment
DwellTime Metadata/ScanSettings/DwellTime
ScanSize Metadata/ScanSettings/ScanSize children: Width, Height
ScanArea Metadata/ScanSettings/ScanArea see above for details
MainsLockOn Metadata/ScanSettings/MainsLockOn
LineTime Metadata/ScanSettings/LineTime
LineIntegrationCount Metadata/ScanSettings/LineIntegrationCount
LineInterlacing Metadata/ScanSettings/LineInterlacing
FrameTime Metadata/ScanSettings/FrameTime
AcquisitionTime Metadata/ScanSettings/AcquisitionTime
ScanRotation Metadata/ScanSettings/ScanRotation

ScanArea contains following children:

node location
X Metadata/ScanSettings/ScanArea/X
Y Metadata/ScanSettings/ScanArea/Y
Width Metadata/ScanSettings/ScanArea/Width
Height Metadata/ScanSettings/ScanArea/Height

VacuumProperties section

VacuumProperties section node is accessible at following path: Metadata/VacuumProperties.

Any element of this section is directly mapped as an ordinary complex type, which means you can access each element as a child of the section root node.

node location
SamplePressure Metadata/VacuumProperties/SamplePressure
VacuumMode Metadata/VacuumProperties/VacuumMode
ElectronSourcePressure Metadata/VacuumProperties/ElectronSourcePressure
IonSourcePressure Metadata/VacuumProperties/IonSourcePressure
ElectronColumnPressure Metadata/VacuumProperties/ElectronColumnPressure
IonColumnPressure Metadata/VacuumProperties/IonColumnPressure
ProjectionChamberPressure Metadata/VacuumProperties/ProjectionChamberPressure

Detectors section

Detectors section node is accessible at following path: Metadata/Detectors.

This section contains a list of complex objects which can be either of type ScanningDetector, AnalyticalDetector or ImagingDetector.

The list is exposed as following:

node location
DetectorType Metadata/Detectors/<DetectorName>/DetectorType
...

where DetectorName is one element used as identifier in the tree.

  • In case of list of ScanningDetector, you have following information for each detector:
node location Comment
DetectorType Metadata/Detectors/<DetectorName>/DetectorType
Inserted Metadata/Detectors/<DetectorName>/Inserted
Enabled Metadata/Detectors/<DetectorName>/Enabled
MixContribution Metadata/Detectors/<DetectorName>/MixContribution
Signal Metadata/Detectors/<DetectorName>/Signal
Segments Metadata/Detectors/<DetectorName>/Segments
Gain Metadata/Detectors/<DetectorName>/Gain
Offset Metadata/Detectors/<DetectorName>/Offset
EnhancedGain Metadata/Detectors/<DetectorName>/EnhancedGain
GridVoltage Metadata/Detectors/<DetectorName>/GridVoltage
SuctionTubeVoltage Metadata/Detectors/<DetectorName>/SuctionTubeVoltage
FrontEndVoltage Metadata/Detectors/<DetectorName>/FrontEndVoltage
ConverterElectrodeVoltage Metadata/Detectors/<DetectorName>/ConverterElectrodeVoltage
ScintillatorVoltage Metadata/Detectors/<DetectorName>/ScintillatorVoltage
ContrastNormalized Metadata/Detectors/<DetectorName>/ContrastNormalized
BrightnessNormalized Metadata/Detectors/<DetectorName>/BrightnessNormalized
CollectionAngleRange Metadata/Detectors/<DetectorName>/CollectionAngleRange children: (Begin, End)
CustomPropertyGroup Metadata/Detectors/<DetectorName>/CustomPropertyGroup See section
CustomSectionGroup Metadata/Detectors/<DetectorName>/CustomSectionGroup See section
  • In case of list of AnalyticalDetector, you have following information for each detector:
node location Comment
DetectorName Metadata/Detectors/<DetectorName>/DetectorName
DetectorType Metadata/Detectors/<DetectorName>/DetectorType
Inserted Metadata/Detectors/<DetectorName>/Inserted
Enabled Metadata/Detectors/<DetectorName>/Enabled
MixContribution Metadata/Detectors/<DetectorName>/MixContribution
ElevationAngle Metadata/Detectors/<DetectorName>/ElevationAngle
AzimuthAngle Metadata/Detectors/<DetectorName>/AzimuthAngle
CollectionAngle Metadata/Detectors/<DetectorName>/CollectionAngle
Dispersion Metadata/Detectors/<DetectorName>/Dispersion
PulseProcessTime Metadata/Detectors/<DetectorName>/PulseProcessTime
RealTime Metadata/Detectors/<DetectorName>/RealTime
LiveTime Metadata/Detectors/<DetectorName>/LiveTime
InputCountRate Metadata/Detectors/<DetectorName>/InputCountRate
OutputCountRate Metadata/Detectors/<DetectorName>/OutputCountRate
Binning Metadata/Detectors/<DetectorName>/Binning children: X, Y
Shutters Metadata/Detectors/<DetectorName>/Shutters see shutters for more details
ShutterState Metadata/Detectors/<DetectorName>/ShutterState

Shutters

Shutters element is a list of Shutter identified by a type.

For example, if the XML contains:

<Shutters>
<Shutter type="PreSpecimen" position="position1"/>
<Shutter type="Filter" position="position2"/>
</Shutters>

the Shutters node will have 2 children within a element position:

node location comment
PreSpecimen Metadata/Detectors/<DetectorName>/PreSpecimen children: (position)
Filter Metadata/Detectors/<DetectorName>/Filter children: (position)
  • In case of list of ImagingDetector, you have following information for each detector:
node location Comment
DetectorName Metadata/Detectors/<DetectorName>/DetectorName
DetectorType Metadata/Detectors/<DetectorName>/DetectorType
Inserted Metadata/Detectors/<DetectorName>/Inserted
Enabled Metadata/Detectors/<DetectorName>/Enabled
ExposureMode Metadata/Detectors/<DetectorName>/ExposureMode
Gain Metadata/Detectors/<DetectorName>/Gain
Binning Metadata/Detectors/<DetectorName>/Binning children: (X, Y)
ReadoutArea Metadata/Detectors/<DetectorName>/ReadoutArea Children: (X, Y, Width, Height)
ExposureTime Metadata/Detectors/<DetectorName>/ExposureTime
ExposureTime2 Metadata/Detectors/<DetectorName>/ExposureTime2
PreExposureTime Metadata/Detectors/<DetectorName>/PreExposureTime
Shutters Metadata/Detectors/<DetectorName>/Shutters see shutters for more details
DarkGainCorrectionType Metadata/Detectors/<DetectorName>/DarkGainCorrectionType
PreExposurePauseTime Metadata/Detectors/<DetectorName>/PreExposurePauseTime
ScintillatorPixelSize Metadata/Detectors/<DetectorName>/ScintillatorPixelSize children: (X, Y)
PostMagnification Metadata/Detectors/<DetectorName>/PostMagnification
CustomPropertyGroup Metadata/Detectors/<DetectorName>/CustomPropertyGroup See section
CustomSectionGroup Metadata/Detectors/<DetectorName>/CustomSectionGroup See section

GasInjectionSystems section

GasInjectionSystems section node is accessible at following path: Metadata/GasInjectionSystems.

This is a list of Gis items which don't have any identifier. We add an level in the tree to identify each one.

All found Gis items will be exposed as following:

node location Comment
PortNumber Metadata/GasInjectionSystems/Gis_<N>/PortNumber
PortName Metadata/GasInjectionSystems/Gis_<N>/PortName
HeaterOn Metadata/GasInjectionSystems/Gis_<N>/HeaterOn
GasFlowOn Metadata/GasInjectionSystems/Gis_<N>/GasFlowOn
NeedleState Metadata/GasInjectionSystems/Gis_<N>/NeedleState
NeedleTemperature Metadata/GasInjectionSystems/Gis_<N>/NeedleTemperature
Gases Metadata/GasInjectionSystems/Gis_<N>/Gases see below for details
CustomPropertyGroup Metadata/GasInjectionSystems/Gis_<N>/CustomPropertyGroup See section
CustomSectionGroup Metadata/GasInjectionSystems/Gis_<N>/CustomSectionGroup See section

Gases element is a list of Gas elements defined by GasType.

For example, with following XML sub-content:

<GasInjectionSystems>
<Gis>
<!-- other fields here -->
<Gases>
<Gas>
<GasType>G1</GasType>
<CrucibleTemperature>25.6</CrucibleTemperature>
</Gas>
<Gas>
<GasType>G2</GasType>
<CrucibleTemperature>32</CrucibleTemperature>
</Gas>
</Gases>
</Gis>
</GasInjectionSystems>

you get the tree:

node location
G1 Metadata/GasInjectionSystems/Gis_0/Gases/G1/CrucibleTemperature
G2 Metadata/GasInjectionSystems/Gis_0/Gases/G2/CrucibleTemperature

BinaryResult section

BinaryResult section node is accessible at following path: Metadata/BinaryResult.

Any element of this section is directly mapped as an ordinary complex type, which means you can access each element as a child of the section root node.

node location comment
AcquisitionUnit Metadata/BinaryResult/AcquisitionUnit
CompositionType Metadata/BinaryResult/CompositionType
ImageSize Metadata/BinaryResult/ImageSize Children: (X, Y)
Detector Metadata/BinaryResult/Detector
FilterType Metadata/BinaryResult/FilterType
RecursiveFilterCoefficient Metadata/BinaryResult/RecursiveFilterCoefficient
FilterFrameCount Metadata/BinaryResult/FilterFrameCount
PixelSize Metadata/BinaryResult/PixelSize/X see section below
PixelSize (2) Metadata/BinaryResult/PixelSize/Y see section below
Offset Metadata/BinaryResult/Offset Children: (X, Y)
IntensityScale Metadata/BinaryResult/IntensityScale see section below
IntensityOffset Metadata/BinaryResult/IntensityOffset
BlackLevel Metadata/BinaryResult/BlackLevel
WhiteLevel Metadata/BinaryResult/WhiteLevel
Gamma Metadata/BinaryResult/Gamma
Sigma Metadata/BinaryResult/Sigma
Encoding Metadata/BinaryResult/Encoding
BitsPerPixel Metadata/BinaryResult/BitsPerPixel
PixelValueMaximum Metadata/BinaryResult/PixelValueMaximum
PixelValueMinimum Metadata/BinaryResult/PixelValueMinimum
PixelValueMean Metadata/BinaryResult/PixelValueMean
PixelValueStandardDeviation Metadata/BinaryResult/PixelValueStandardDeviation
Sharpness Metadata/BinaryResult/Sharpness
SharpnessAlgorithm Metadata/BinaryResult/SharpnessAlgorithm
DigitalContrast Metadata/BinaryResult/DigitalContrast
DigitalBrightness Metadata/BinaryResult/DigitalBrightness
ReferenceTransformation Metadata/BinaryResult/ReferenceTransformation Children: (M11, M12, M21, M22, OffsetX, OffsetY, Unit)
AcquisitionArea Metadata/BinaryResult/AcquisitionArea Children: (X, Y, Width, Height)
DetectorIndex Metadata/BinaryResult/DetectorIndex

Value with unity

A PixelSize element is associated to a value, and can also contain following nodes which gives more information about the value:

node location
unit Metadata/BinaryResult/PixelSize/<X or Y>/unit
unitPrefixPower Metadata/BinaryResult/PixelSize/<X or Y>/unitPrefixPower

Sample section

Sample section node is accessible at following path: Metadata/Sample.

Any element of this section is directly mapped as an ordinary complex type, which means you can access each element as a child of the section root node.

node location
SampleGuid Metadata/Sample/SampleGuid
SampleID Metadata/Sample/SampleID
SampleDescription Metadata/Sample/SampleDescription
SampleSessionID Metadata/Sample/SampleSessionID
RegionOfInterestID Metadata/Sample/RegionOfInterestID

CustomPropertyGroup section

CustomProperyGroup section node is accessible at following path: Metadata/CustomProperyGroup.

But the same structure is also used in other sections to add custom properties.

This is a list of CustomProperties identified by the scope XML attribute. Each CustomProperties contains itself a list of CustomProperty identified by a name and some content.

e.g.

Following XML sub-content:

<CustomPropertyGroup>
<CustomProperties scope="Magnification Calibration">
<CustomProperty name="IsOn" value="False" type="System.Boolean" rawdatatype="Boolean" />
<CustomProperty name="Magnification.X" value="1" type="System.Double" rawdatatype="Double" />
</CustomProperties>
<CustomProperties scope="WaferLamellaWorkflow">
<CustomProperty name="LayerNumber" value="1" type="System.Int32" rawdatatype="Int" />
</CustomProperties>
</CustomPropertyGroup>

will give the trees:

node location
value CustomPropertyGroup/Magnification Calibration/IsOn/value
type CustomPropertyGroup/Magnification Calibration/IsOn/type
rawdatatype CustomPropertyGroup/Magnification Calibration/IsOn/rawdatatype

and:

node location
value CustomPropertyGroup/Magnification Calibration/Magnification.X/value
type CustomPropertyGroup/Magnification Calibration/Magnification.X/type
rawdatatype CustomPropertyGroup/Magnification Calibration/Magnification.X/rawdatatype

and :

node location
value CustomPropertyGroup/WaferLamellaWorkflow/LayerNumber/value
type CustomPropertyGroup/WaferLamellaWorkflow/LayerNumber/type
rawdatatype CustomPropertyGroup/WaferLamellaWorkflow/LayerNumber/rawdatatype

CustomSectionGroup section

This section is not specified and cannot be decoded. It is not exposed in the metadata tree.