NTCM G: Galileo single-frequency ionospheric corrections

Download
<?xml version="1.0" encoding="UTF-8"?>
<ComputationCapabilities xmlns="https://metadata.pithia.eu/schemas/2.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mrl="http://standards.iso.org/iso/19115/-3/mrl/1.0" xmlns:gco="http://standards.iso.org/iso/19115/-3/gco/1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="https://metadata.pithia.eu/schemas/2.2 https://metadata.pithia.eu/schemas/2.2/pithia.xsd">
    <!-- 
         For those software tools that may be used by any data provider, use as namespace: pithia 
    -->
    <identifier>
        <PITHIA_Identifier>
            <localID>ComputationCapabilities_NTCM-G</localID>
            <namespace>dlr-so</namespace>
            <version>1</version>
            <creationDate>2024-08-12T12:00:00Z</creationDate>
            <lastModificationDate>2024-08-12T12:00:00Z</lastModificationDate>
        </PITHIA_Identifier>
    </identifier>
    <name>NTCM G: Galileo single-frequency ionospheric corrections</name>  
    <description>
The Neustrelitz Total Electron Content (TEC) Model for Galileo satellite navigation systems NTCM G can be used to determine Galileo single-frequency ionospheric corrections. It is proposed as an alternative to the reference algorithm NeQuick G. The model was developed by the German Aerospace Center (DLR) and validated with the support of ESA, and the Joint Research Centre (JRC) of the European Commission. The reduced complexity and runtime of the NTCM G algorithm are beneficial, in particular in user-segments where the equipment has limited resources available, like for civil avionics receivers or location-based services for smartphones.
    </description>
    <!-- 
        A list of the "capabilities" of the procedure: a description (dimensionality, units) for each observed property that this process can evaluate.
        The dimensionalityInstance describes the data domain of the single instance of the measured observed property (1D.point, 1D.Profile, 2D.Map, 2D.image..).
        The dimensionalityTimeline describes the timeline of the measured observed property (e.g. Timeseries, Animation,...).
    -->
    <capabilities>
        <processCapability>
            <name>Total Vertical Electron Content (VTEC)</name> 
            <observedProperty xlink:href="https://metadata.pithia.eu/ontology/2.2/observedProperty/TotalElectronContent_Vertical"/>
            <dimensionalityInstance xlink:href="https://metadata.pithia.eu/ontology/2.2/dimensionalityInstance/1DPoints"/>
            <units xlink:href="https://metadata.pithia.eu/ontology/2.2/unit/TECu"/>
        </processCapability>
    </capabilities>
    <dataLevel xlink:href="https://metadata.pithia.eu/ontology/2.2/dataLevel/L4"/>
    <type xlink:href="https://metadata.pithia.eu/ontology/2.2/computationType/EmpiricalModel"/>
    <version/>
    <softwareReference/>

    <!-- Use ESPAS-inspired design of processingInput and InputOutput types to specify all required input parameters for this computation -->
    <processingInput>
        <InputOutput>
            <!-- Provide only name and description, no values: this field describes the process, not the observation result. 
            If this processingInput is a parameter that has specific value for the whole collection, use om:parameter field of the DataCollection 
            document to define such NamedValue, point its NamedValue.name to this name below, and use NamedValue.value to set the value -->
            <name>Effective ionisation level 1st order parameter [sfu] (optional)</name>
            <description>
                <mrl:LE_Source>
                     <mrl:description><gco:CharacterString>
                     Broadcast parameter a_i0 in solar flux units.
                     </gco:CharacterString></mrl:description>
                </mrl:LE_Source>
            </description>
        </InputOutput>
    </processingInput>

    <processingInput>
        <InputOutput>
            <!-- Provide only name and description, no values: this field describes the process, not the observation result. 
            If this processingInput is a parameter that has specific value for the whole collection, use om:parameter field of the DataCollection 
            document to define such NamedValue, point its NamedValue.name to this name below, and use NamedValue.value to set the value -->
            <name>Effective ionisation level 2nd order parameter [sfu/deg] (optional)</name>
            <description>
                <mrl:LE_Source>
                     <mrl:description><gco:CharacterString>
                     Broadcast parameter a_i1 in solar flux units per degree.
                     </gco:CharacterString></mrl:description>
                </mrl:LE_Source>
            </description>
        </InputOutput>
    </processingInput>

    <processingInput>
        <InputOutput>
            <!-- Provide only name and description, no values: this field describes the process, not the observation result. 
            If this processingInput is a parameter that has specific value for the whole collection, use om:parameter field of the DataCollection 
            document to define such NamedValue, point its NamedValue.name to this name below, and use NamedValue.value to set the value -->
            <name>Effective ionisation level 3rd order parameter [sfu/deg^2] (optional)</name>
            <description>
                <mrl:LE_Source>
                     <mrl:description><gco:CharacterString>
                     Broadcast parameter a_i2 in solar flux units per square degree.
                     </gco:CharacterString></mrl:description>
                </mrl:LE_Source>
            </description>
        </InputOutput>
    </processingInput>

    <processingInput>
        <InputOutput>
            <!-- Provide only name and description, no values: this field describes the process, not the observation result. 
            If this processingInput is a parameter that has specific value for the whole collection, use om:parameter field of the DataCollection 
            document to define such NamedValue, point its NamedValue.name to this name below, and use NamedValue.value to set the value -->
            <name>Carrier frequency [Hz]</name>
            <description>
                <mrl:LE_Source>
                     <mrl:description><gco:CharacterString>
                     Carrier frequency in Hertz.
                     </gco:CharacterString></mrl:description>
                </mrl:LE_Source>
            </description>
        </InputOutput>
    </processingInput>

    <processingInput>
        <InputOutput>
            <!-- Provide only name and description, no values: this field describes the process, not the observation result. 
            If this processingInput is a parameter that has specific value for the whole collection, use om:parameter field of the DataCollection 
            document to define such NamedValue, point its NamedValue.name to this name below, and use NamedValue.value to set the value -->
            <name>Receiver altitude [km]</name>
            <description>
                <mrl:LE_Source>
                     <mrl:description><gco:CharacterString>
                     Altitude of the receiver in kilometers.
                     </gco:CharacterString></mrl:description>
                </mrl:LE_Source>
            </description>
        </InputOutput>
    </processingInput>
    <processingInput>
        <InputOutput>
            <!-- Provide only name and description, no values: this field describes the process, not the observation result. 
            If this processingInput is a parameter that has specific value for the whole collection, use om:parameter field of the DataCollection 
            document to define such NamedValue, point its NamedValue.name to this name below, and use NamedValue.value to set the value -->
            <name>Receiver latitude [deg]</name>
            <description>
                <mrl:LE_Source>
                     <mrl:description><gco:CharacterString>
                     Latitude of the receiver in degrees (signed decimal number).
                     </gco:CharacterString></mrl:description>
                </mrl:LE_Source>
            </description>
        </InputOutput>
    </processingInput>
    <processingInput>
        <InputOutput>
            <!-- Provide only name and description, no values: this field describes the process, not the observation result. 
            If this processingInput is a parameter that has specific value for the whole collection, use om:parameter field of the DataCollection 
            document to define such NamedValue, point its NamedValue.name to this name below, and use NamedValue.value to set the value -->
            <name>Receiver longitude [deg]</name>
            <description>
                <mrl:LE_Source>
                     <mrl:description><gco:CharacterString>
                     Longitude of the receiver in degrees (signed decimal number).
                     </gco:CharacterString></mrl:description>
                </mrl:LE_Source>
            </description>
        </InputOutput>
    </processingInput>

    <processingInput>
        <InputOutput>
            <!-- Provide only name and description, no values: this field describes the process, not the observation result. 
            If this processingInput is a parameter that has specific value for the whole collection, use om:parameter field of the DataCollection 
            document to define such NamedValue, point its NamedValue.name to this name below, and use NamedValue.value to set the value -->
            <name>Satellite altitude [km]</name>
            <description>
                <mrl:LE_Source>
                     <mrl:description><gco:CharacterString>
                     Altitude of the satellite in kilometers.
                     </gco:CharacterString></mrl:description>
                </mrl:LE_Source>
            </description>
        </InputOutput>
    </processingInput>
    <processingInput>
        <InputOutput>
            <!-- Provide only name and description, no values: this field describes the process, not the observation result. 
            If this processingInput is a parameter that has specific value for the whole collection, use om:parameter field of the DataCollection 
            document to define such NamedValue, point its NamedValue.name to this name below, and use NamedValue.value to set the value -->
            <name>Satellite latitude [deg]</name>
            <description>
                <mrl:LE_Source>
                     <mrl:description><gco:CharacterString>
                     Latitude of the satellite in degrees (signed decimal number).
                     </gco:CharacterString></mrl:description>
                </mrl:LE_Source>
            </description>
        </InputOutput>
    </processingInput>
    <processingInput>
        <InputOutput>
            <!-- Provide only name and description, no values: this field describes the process, not the observation result. 
            If this processingInput is a parameter that has specific value for the whole collection, use om:parameter field of the DataCollection 
            document to define such NamedValue, point its NamedValue.name to this name below, and use NamedValue.value to set the value -->
            <name>Satellite longitude [deg]</name>
            <description>
                <mrl:LE_Source>
                     <mrl:description><gco:CharacterString>
                     Longitude of the satellite in degrees (signed decimal number).
                     </gco:CharacterString></mrl:description>
                </mrl:LE_Source>
            </description>
        </InputOutput>
    </processingInput>

    <processingInput>
        <InputOutput>
            <!-- Provide only name and description, no values: this field describes the process, not the observation result. 
            If this processingInput is a parameter that has specific value for the whole collection, use om:parameter field of the DataCollection 
            document to define such NamedValue, point its NamedValue.name to this name below, and use NamedValue.value to set the value -->
            <name>Date-Time [ISO]</name>
            <description>
                <mrl:LE_Source>
                     <mrl:description><gco:CharacterString>
                     Date and time of interest given as an ISO 8601 compliant string.
                     </gco:CharacterString></mrl:description>
                </mrl:LE_Source>
            </description>
        </InputOutput>
    </processingInput>

    <algorithm/>
</ComputationCapabilities>