<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1I00.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>

<Ingest_LDD 
	xmlns="http://pds.nasa.gov/pds4/pds/v1" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:radar="http://pds.nasa.gov/pds4/radar/v1" 
	xsi:schemaLocation="http://pds.nasa.gov/pds4/pds/v1 https://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1I00.xsd">

	<name>Radar</name>
    <ldd_version_id>1.0.0.0</ldd_version_id>
    <dictionary_type>Discipline</dictionary_type>
	<full_name>Jesse Stone</full_name>
	<steward_id>sbn</steward_id>
	<namespace_id>radar</namespace_id>
	<comment>The Radar dictionary contains classes that support radar observations.</comment>
	<last_modification_date_time>2024-03-21T19:30:00.000Z</last_modification_date_time>
    <DD_Attribute>
        <name>range_resolution_distance</name>
        <version_id>1.0</version_id>
        <local_identifier>range_resolution_distance</local_identifier>
        <nillable_flag>false</nillable_flag>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>Range resolution of products, expressed in units of distance. The minimum separation distance that can be resolved between two closely spaced targets by a radar.</definition>
        <DD_Value_Domain>
            <enumeration_flag>false</enumeration_flag>
            <value_data_type>ASCII_Real</value_data_type>
            <minimum_value>0</minimum_value>
            <unit_of_measure_type>Units_of_Length</unit_of_measure_type>
            <specified_unit_id>m</specified_unit_id>
        </DD_Value_Domain>
    </DD_Attribute>

    <DD_Attribute>
        <name>range_resolution_time</name>
        <version_id>1.0</version_id>
        <local_identifier>range_resolution_time</local_identifier>
        <nillable_flag>false</nillable_flag>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>Range resolution of products, expressed in units of time.  The minimum separation distance that can be resolved between two closely spaced targets by a radar.</definition>
        <DD_Value_Domain>
            <enumeration_flag>false</enumeration_flag>
            <value_data_type>ASCII_Real</value_data_type>
            <minimum_value>0</minimum_value>
            <unit_of_measure_type>Units_of_Time</unit_of_measure_type>
            <specified_unit_id>s</specified_unit_id>
        </DD_Value_Domain>
    </DD_Attribute>

    
    <DD_Attribute>
        <name>transmitter_to_receiver_lighttime</name>
        <version_id>1.0</version_id>
        <local_identifier>transmitter_to_receiver_lighttime</local_identifier>
        <nillable_flag>false</nillable_flag>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>Distance from the transmitter, to the target, and back to the reciever at the time of observation, expressed as lighttime.</definition>
        <DD_Value_Domain>
            <enumeration_flag>false</enumeration_flag>
            <value_data_type>ASCII_Real</value_data_type>
            <minimum_value>0</minimum_value>
            <unit_of_measure_type>Units_of_Time</unit_of_measure_type>
            <specified_unit_id>s</specified_unit_id>
        </DD_Value_Domain>
    </DD_Attribute>

    <DD_Attribute>
        <name>matched_snr_ratio</name>
        <version_id>1.0</version_id>
        <local_identifier>matched_snr_ratio</local_identifier>
        <nillable_flag>false</nillable_flag>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>total matched-filter signal-to-noise ratio in one run, expressed as an actual ratio</definition>
        <DD_Value_Domain>
            <enumeration_flag>false</enumeration_flag>
            <value_data_type>ASCII_Real</value_data_type>
            <minimum_value>0</minimum_value>
        </DD_Value_Domain>
    </DD_Attribute>

    <DD_Attribute>
        <name>matched_snr_db</name>
        <version_id>1.0</version_id>
        <local_identifier>matched_snr_db</local_identifier>
        <nillable_flag>false</nillable_flag>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>total matched-filter signal-to-noise ratio in one run, expressed in db</definition>
        <DD_Value_Domain>
            <enumeration_flag>false</enumeration_flag>
            <value_data_type>ASCII_Real</value_data_type>
            <minimum_value>0</minimum_value>
        </DD_Value_Domain>
    </DD_Attribute>

    <DD_Attribute>
        <name>range_depth_distance</name>
        <version_id>1.0</version_id>
        <local_identifier>range_depth_distance</local_identifier>
        <nillable_flag>false</nillable_flag>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>Range depth in units of range_resolution. This is an indicator of observation usefulness for analysis</definition>
        <DD_Value_Domain>
            <enumeration_flag>false</enumeration_flag>
            <value_data_type>ASCII_Integer</value_data_type>
            <minimum_value>0</minimum_value>
            <unit_of_measure_type>Units_of_Length</unit_of_measure_type>
            <specified_unit_id>m</specified_unit_id>
        </DD_Value_Domain>
    </DD_Attribute>    

    <DD_Attribute>
        <name>range_depth_time</name>
        <version_id>1.0</version_id>
        <local_identifier>range_depth_time</local_identifier>
        <nillable_flag>false</nillable_flag>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>Range depth in units of range_resolution. This is an indicator of observation usefulness for analysis</definition>
        <DD_Value_Domain>
            <enumeration_flag>false</enumeration_flag>
            <value_data_type>ASCII_Integer</value_data_type>
            <minimum_value>0</minimum_value>
            <unit_of_measure_type>Units_of_Time</unit_of_measure_type>
            <specified_unit_id>s</specified_unit_id>
        </DD_Value_Domain>
    </DD_Attribute>    

    <DD_Attribute>
        <name>transmitter_power</name>
        <version_id>2.0</version_id>
        <local_identifier>transmitter_power</local_identifier>
        <nillable_flag>false</nillable_flag>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>transmitter power input to antenna</definition>
        <DD_Value_Domain>
            <enumeration_flag>false</enumeration_flag>
            <value_data_type>ASCII_Real</value_data_type>
            <minimum_value>0</minimum_value>
            <unit_of_measure_type>Units_of_Power</unit_of_measure_type>
            <specified_unit_id>W</specified_unit_id>
        </DD_Value_Domain>
    </DD_Attribute>

    <DD_Attribute>
        <name>pulse_repetition_frequency</name>
        <version_id>1.0</version_id>
        <local_identifier>pulse_repetition_frequency</local_identifier>
        <nillable_flag>false</nillable_flag>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>For repeating waveforms including pulse patterns, the frequency at which the waveform or pulse pattern repeats.</definition>
        <DD_Value_Domain>
            <enumeration_flag>false</enumeration_flag>
            <value_data_type>ASCII_Real</value_data_type>
            <minimum_value>0</minimum_value>
            <unit_of_measure_type>Units_of_Frequency</unit_of_measure_type>
            <specified_unit_id>Hz</specified_unit_id>
        </DD_Value_Domain>
    </DD_Attribute>

    <DD_Attribute>
        <name>pulse_repetition_interval</name>
        <version_id>1.0</version_id>
        <local_identifier>pulse_repetition_interval</local_identifier>
        <nillable_flag>false</nillable_flag>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>For repeating waveforms including pulse patterns, the interval from the beginning of one waveform or pulse pattern to the beginning of the next.</definition>
        <DD_Value_Domain>
            <enumeration_flag>false</enumeration_flag>
            <value_data_type>ASCII_Real</value_data_type>
            <minimum_value>0</minimum_value>
            <unit_of_measure_type>Units_of_Time</unit_of_measure_type>
            <specified_unit_id>s</specified_unit_id>
        </DD_Value_Domain>
    </DD_Attribute>


    <DD_Attribute>
        <name>pixel_count</name>
        <version_id>1.0</version_id>
        <local_identifier>pixel_number</local_identifier>
        <nillable_flag>false</nillable_flag>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>number of pixels in an image with measurable signal</definition>
<!-- If this is not nillable, what happens when the product is not an image? -->
<!-- JS: this is not required, so does not have to be nillable -->
        <DD_Value_Domain>
            <enumeration_flag>false</enumeration_flag>
            <value_data_type>ASCII_Integer</value_data_type>
            <minimum_value>0</minimum_value>
        </DD_Value_Domain>
    </DD_Attribute>

    <DD_Attribute>
        <name>observation_purpose</name>
<!-- The permissible values distinguish radar "modes", not purposes of observation -->
<!-- JS: rename element? -->
        <version_id>1.0</version_id>
        <local_identifier>observation_purpose</local_identifier>
        <nillable_flag>false</nillable_flag>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>Type of radar experiment being performed. Simpler experiments can have higher signal-to-noise or simpler hardware configurations, while more complicated experiments provide more information. ‘Range’ and ‘Total Power’ are mostly historical.</definition>
        <DD_Value_Domain>
            <enumeration_flag>true</enumeration_flag>
            <value_data_type>UTF8_Short_String_Collapsed</value_data_type>
            <DD_Permissible_Value>
                <value>Range-Doppler</value>
                <value_meaning>Transmitted signal is modulated in order to resolve and/or locate the target in range. Received signal is analyzed as a function of Doppler shift in each range bin.</value_meaning>
            </DD_Permissible_Value>
            <DD_Permissible_Value>
                <value>Doppler</value>
                <value_meaning>Received signal is analyzed as a function of Doppler shift with separation by range.</value_meaning>
<!-- I don't understand the definition -->
<!-- JS: refer to M. Nolan to clarify -->
            </DD_Permissible_Value>
            <DD_Permissible_Value>
                <value>Range</value>
                <value_meaning>Transmitted signal is modulated in order to resolve and/or local the target in range, but the entire received signal is analyzed without separation by Doppler shift.</value_meaning>
<!-- Could be rewritten for clarity -->
<!-- JS: refer to M. Nolan to clarify -->
            </DD_Permissible_Value>
            <DD_Permissible_Value>
                <value>Total Power</value>
                <value_meaning>Only the total echo power is measured, with no separation in range or Doppler shift.</value_meaning>
<!-- Are there such observations?  -->
<!-- JS: refer to M. Nolan to clarify -->
            </DD_Permissible_Value>
        </DD_Value_Domain>
    </DD_Attribute>

    <DD_Attribute>
        <name>sample_rate</name>
        <version_id>1.0</version_id>
        <local_identifier>sample_rate</local_identifier>
        <nillable_flag>false</nillable_flag>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>For a data acquisition system, the interval between the beginning of one time sample and the beginning of the next time sample.</definition>
        <DD_Value_Domain>
            <enumeration_flag>false</enumeration_flag>
            <value_data_type>ASCII_Real</value_data_type>
            <minimum_value>0</minimum_value>
            <unit_of_measure_type>Units_of_Frequency</unit_of_measure_type>
            <specified_unit_id>Hz</specified_unit_id>
        </DD_Value_Domain>
    </DD_Attribute>    

    <DD_Attribute>
        <name>sample_type</name>
        <version_id>1.0</version_id>
        <local_identifier>sample_type</local_identifier>
        <nillable_flag>false</nillable_flag>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>For a data acquisition system, whether the time samples are real values or complex value pairs obtained simultaneously. Does not imply a numeric format.
                    Sample Type is whether the (usually voltage) samples are single real values or a complex number pair (a + ib), which depends on the hardware used to do it. In either case, the numbers themselves can be any numeric type. In raw form, they are usually few-bit integers or pairs of few-bit integers. But they may get converted to floating point in processing if filtering is done in software.
        </definition>
        <DD_Value_Domain>
            <enumeration_flag>true</enumeration_flag>
            <value_data_type>UTF8_Short_String_Collapsed</value_data_type>
            <DD_Permissible_Value>
                <value>Real</value>
                <value_meaning>Samples are single real values</value_meaning>
            </DD_Permissible_Value>
            <DD_Permissible_Value>
                <value>Complex</value>
                <value_meaning>Samples are a complex number pair (a + ib)</value_meaning>
            </DD_Permissible_Value>
        </DD_Value_Domain>
    </DD_Attribute>


    <DD_Class>
        <name>Radar</name>
        <version_id>1.1</version_id>
        <local_identifier>Radar</local_identifier>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>This class is the top level class that contains other radar classes, separated by sub-discipline.</definition>
        <element_flag>true</element_flag>
        <DD_Association>
            <identifier_reference>Groundbased_Radar</identifier_reference>
            <reference_type>component_of</reference_type>
            <minimum_occurrences>0</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
    </DD_Class>

    <DD_Class>
        <name>Groundbased_Radar</name>
        <version_id>2.0</version_id>
        <local_identifier>Groundbased_Radar</local_identifier>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>This class contains attributes that describe metadata pertinent to radar observations / data from Arecibo, Goldstone, and similar installations.</definition>
        <element_flag>false</element_flag>
        <DD_Association>
            <identifier_reference>observation_purpose</identifier_reference>
            <reference_type>attribute_of</reference_type>
            <minimum_occurrences>1</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
        <DD_Association>
            <identifier_reference>Transmission_Properties</identifier_reference>
            <reference_type>component_of</reference_type>
            <minimum_occurrences>0</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
        <DD_Association>
            <identifier_reference>Quality</identifier_reference>
            <reference_type>component_of</reference_type>
            <minimum_occurrences>0</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
        <DD_Association>
            <identifier_reference>Target_Properties</identifier_reference>
            <reference_type>component_of</reference_type>
            <minimum_occurrences>0</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
        <DD_Association>
            <identifier_reference>Sampling_Properties</identifier_reference>
            <reference_type>component_of</reference_type>
            <minimum_occurrences>0</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
    </DD_Class>

    <DD_Class>
        <name>Transmission_Properties</name>
        <version_id>2.0</version_id>
        <local_identifier>Transmission_Properties</local_identifier>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>Transmission properties</definition>
        <element_flag>false</element_flag>
        <DD_Association>
            <identifier_reference>range_resolution_time</identifier_reference>
            <reference_type>attribute_of</reference_type>
            <minimum_occurrences>0</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
        <DD_Association>
            <identifier_reference>range_resolution_distance</identifier_reference>
            <reference_type>attribute_of</reference_type>
            <minimum_occurrences>0</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
        <DD_Association>
            <identifier_reference>transmitter_power</identifier_reference>
            <reference_type>attribute_of</reference_type>
            <minimum_occurrences>1</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
        <DD_Association>
            <identifier_reference>pulse_repetition_frequency</identifier_reference>
            <reference_type>attribute_of</reference_type>
            <minimum_occurrences>0</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
        <DD_Association>
            <identifier_reference>pulse_repetition_interval</identifier_reference>
            <reference_type>attribute_of</reference_type>
            <minimum_occurrences>0</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>

    </DD_Class>
    
    <DD_Class>
        <name>Quality</name>
        <version_id>1.1</version_id>
        <local_identifier>Quality</local_identifier>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>Quality</definition>
        <element_flag>false</element_flag>
        <DD_Association>
            <identifier_reference>matched_snr_ratio</identifier_reference>
            <reference_type>attribute_of</reference_type>
            <minimum_occurrences>0</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
        <DD_Association>
            <identifier_reference>matched_snr_db</identifier_reference>
            <reference_type>attribute_of</reference_type>
            <minimum_occurrences>0</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
        <DD_Association>
            <identifier_reference>pixel_number</identifier_reference>
            <reference_type>attribute_of</reference_type>
            <minimum_occurrences>0</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
    </DD_Class>

    <DD_Class>
        <name>Target_Properties</name>
        <version_id>1.1</version_id>
        <local_identifier>Target_Properties</local_identifier>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>Target Properties</definition>
        <element_flag>false</element_flag>
        <DD_Association>
            <identifier_reference>transmitter_to_receiver_lighttime</identifier_reference>
            <reference_type>attribute_of</reference_type>
            <minimum_occurrences>0</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
        <DD_Association>
            <identifier_reference>range_depth_time</identifier_reference>
            <reference_type>attribute_of</reference_type>
            <minimum_occurrences>0</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
        <DD_Association>
            <identifier_reference>range_depth_distance</identifier_reference>
            <reference_type>attribute_of</reference_type>
            <minimum_occurrences>0</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
    </DD_Class>

    <DD_Class>
        <name>Sampling_Properties</name>
        <version_id>1.0</version_id>
        <local_identifier>Sampling_Properties</local_identifier>
        <submitter_name>Jesse Stone</submitter_name>
        <definition>Sampling Properties</definition>
        <element_flag>false</element_flag>
        <DD_Association>
            <identifier_reference>sample_type</identifier_reference>
            <reference_type>attribute_of</reference_type>
            <minimum_occurrences>1</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
        <DD_Association>
            <identifier_reference>sample_rate</identifier_reference>
            <reference_type>attribute_of</reference_type>
            <minimum_occurrences>1</minimum_occurrences>
            <maximum_occurrences>1</maximum_occurrences>
        </DD_Association>
    </DD_Class>

    <DD_Rule>
        <local_identifier>range_resolution_and_depth_time</local_identifier>
        <rule_context>//radar:range_depth_time</rule_context>
        <rule_assign>name="range_depth_unit" value="@unit"</rule_assign>
        <DD_Rule_Statement>
            <rule_type>Assert</rule_type>
            <rule_test>//radar:range_resolution_time</rule_test>
            <rule_message>If range_depth_time is specified specified, range_resolution_time must also be specified.</rule_message>
        </DD_Rule_Statement>
        <DD_Rule_Statement>
            <rule_type>Assert</rule_type>
            <rule_test>//radar:range_resolution_time[@unit=$range_depth_unit]</rule_test>
            <rule_message>Unit for range_depth_time unit must match unit for range_resolution_time.</rule_message>
        </DD_Rule_Statement>
    </DD_Rule>

    <DD_Rule>
        <local_identifier>range_resolution_and_depth_distance</local_identifier>
        <rule_context>//radar:range_depth_distance</rule_context>
        <rule_assign>name="range_depth_unit" value="@unit"</rule_assign>
        <DD_Rule_Statement>
            <rule_type>Assert</rule_type>
            <rule_test>//radar:range_resolution_distance</rule_test>
            <rule_message>If range_depth_distance is specified specified, range_resolution_distance must also be specified.</rule_message>
        </DD_Rule_Statement>
        <DD_Rule_Statement>
            <rule_type>Assert</rule_type>
            <rule_test>//radar:range_resolution_distance[@unit=$range_depth_unit]</rule_test>
            <rule_message>Unit for range_depth_distance unit must match unit for range_resolution_distance.</rule_message>
        </DD_Rule_Statement>
    </DD_Rule>

</Ingest_LDD>
