gdal-async
Version:
Bindings to GDAL (Geospatial Data Abstraction Library) with full async support
975 lines (941 loc) • 186 kB
text/xml
<?xml version="1.0"?>
<!--
/******************************************************************************
* $Id$
*
* Project: NITF Library
* Purpose: Description of NITF TREs
* Author: Even Rouault, <even dot rouault at spatialys.com>
*
**********************************************************************
* Copyright (c) 2011, Even Rouault
*
* SPDX-License-Identifier: MIT
****************************************************************************/
-->
<!-- This file should validate against nitf_spec.xsd -->
<root>
<tres>
<!-- STDI-0002-1-v5.0 Appendix P, Section P.3.2.6.2, Table P-11 -->
<tre name="ACCHZB" md_prefix="NITF_ACCHZB_" minlength="11" maxlength="99985" location="image">
<field name="NUM_ACHZ" length="2" type="integer" minval="1" maxval="99"/>
<loop counter="NUM_ACHZ" md_prefix="ACHZ_%02d_">
<field name="UNIAAH" length="3" type="string"/>
<if cond="UNIAAH!= ">
<field name="AAH" length="5" type="integer"/>
</if>
<field name="UNIAPH" length="3" type="string"/>
<if cond="UNIAPH!= ">
<field name="APH" length="5" type="integer"/>
</if>
<field name="NUM_PTS" length="3" type="integer" minval="0" maxval="999"/>
<loop counter="NUM_PTS" md_prefix="POINT_%03d_">
<field name="LON" length="15" type="string"/>
<field name="LAT" length="15" type="string"/>
</loop>
</loop>
</tre>
<tre name="ACCPOB" minlength="17" maxlength="99985" location="image">
<field name="NUM_ACPO" length="2" type="integer" minval="1" maxval="99"/>
<loop counter="NUM_ACPO" md_prefix="ACCPO_%02d_" name="ACCPO">
<field name="UNIAAH" length="3" type="string"/>
<if cond="UNIAAH!=">
<field name="AAH" length="5" type="integer"/>
</if>
<field name="UNIAAV" length="3" type="string"/>
<if cond="UNIAAV!=">
<field name="AAV" length="5" type="integer"/>
</if>
<field name="UNIAPH" length="3" type="string"/>
<if cond="UNIAPH!=">
<field name="APH" length="5" type="integer"/>
</if>
<field name="UNIAPV" length="3" type="string"/>
<if cond="UNIAPV!=">
<field name="APV" length="5" type="integer"/>
</if>
<field name="NUM_PTS" length="3" type="integer"/>
<loop counter="NUM_PTS" md_prefix="POINT_%03d_" name="POINT">
<field name="LON" length="15" type="real"/>
<field name="LAT" length="15" type="real"/>
</loop>
</loop>
</tre>
<!-- STDI-0002-1-v5.0 Appendix P, Section P.3.2.6.3, Table P-12 -->
<tre name="ACCVTB" md_prefix="NITF_ACCVTB_" minlength="11" maxlength="99985" location="image">
<field name="NUM_ACVT" length="2" type="integer" minval="1" maxval="99"/>
<loop counter="NUM_ACVT" md_prefix="ACVT_%02d_">
<field name="UNIAAV" length="3" type="string"/>
<if cond="UNIAAV!= ">
<field name="AAV" length="5" type="integer"/>
</if>
<field name="UNIAPV" length="3" type="string"/>
<if cond="UNIAPV!= ">
<field name="APV" length="5" type="integer"/>
</if>
<field name="NUM_PTS" length="3" type="integer" minval="0" maxval="999"/>
<loop counter="NUM_PTS" md_prefix="POINT_%03d_">
<field name="LON" length="15" type="string"/>
<field name="LAT" length="15" type="string"/>
</loop>
</loop>
</tre>
<tre name="ACFTB" length="207" location="image">
<field name="AC_MSN_ID" length="20"/>
<field name="AC_TAIL_NO" length="10"/>
<field name="AC_TO" length="12"/>
<field name="SENSOR_ID_TYPE" length="4"/>
<field name="SENSOR_ID" length="6"/>
<field name="SCENE_SOURCE" length="1"/>
<field name="SCNUM" length="6"/>
<field name="PDATE" length="8"/>
<field name="IMHOSTNO" length="6"/>
<field name="IMREQID" length="5"/>
<field name="MPLAN" length="3"/>
<field name="ENTLOC" length="25"/>
<field name="LOC_ACCY" length="6"/>
<field name="ENTELV" length="6"/>
<field name="ELV_UNIT" length="1"/>
<field name="EXITLOC" length="25"/>
<field name="EXITELV" length="6"/>
<field name="TMAP" length="7"/>
<field name="ROW_SPACING" length="7"/>
<field name="ROW_SPACING_UNITS" length="1"/>
<field name="COL_SPACING" length="7"/>
<field name="COL_SPACING_UNITS" length="1"/>
<field name="FOCAL_LENGTH" length="6"/>
<field name="SENSERIAL" length="6"/>
<field name="ABSWVER" length="7"/>
<field name="CAL_DATE" length="8"/>
<field name="PATCH_TOT" length="4"/>
<field name="MTI_TOT" length="3"/>
</tre>
<tre name="AIMIDB" length="89" location="image">
<field name="ACQUISITION_DATE" length="14"/>
<field name="MISSION_NO" length="4"/>
<field name="MISSION_IDENTIFICATION" length="10"/>
<field name="FLIGHT_NO" length="2"/>
<field name="OP_NUM" length="3"/>
<field name="CURRENT_SEGMENT" length="2"/>
<field name="REPRO_NUM" length="2"/>
<field name="REPLAY" length="3"/>
<field name="RESERVED_1" length="1"/>
<field name="START_TILE_COLUMN" length="3"/>
<field name="START_TILE_ROW" length="5"/>
<field name="END_SEGMENT" length="2"/>
<field name="END_TILE_COLUMN" length="3"/>
<field name="END_TILE_ROW" length="5"/>
<field name="COUNTRY" length="2"/>
<field name="RESERVED_2" length="4"/>
<field name="LOCATION" length="11"/>
<field name="RESERVED_3" length="13"/>
</tre>
<!-- STDI-0002-1 Appendix X: BANDSB -->
<tre name="BANDSB" md_prefix="NITF_BANDSB_" location="image">
<field name="COUNT" length="5" type="integer"/>
<field name="RADIOMETRIC_QUANTITY" length="24" type="string"/>
<field name="RADIOMETRIC_QUANTITY_UNIT" length="1" type="string"/>
<field name="SCALE_FACTOR" length="4" type="IEEE754_Float32_BigEndian"/>
<field name="ADDITIVE_FACTOR" length="4" type="IEEE754_Float32_BigEndian"/>
<field name="ROW_GSD" length="7" type="real"/>
<field name="ROW_GSD_UNIT" length="1" type="string"/>
<field name="COL_GSD" length="7" type="real"/>
<field name="COL_GSD_UNIT" length="1" type="string"/>
<field name="SPT_RESP_ROW" length="7" type="real"/>
<field name="SPT_RESP_UNIT_ROW" length="1" type="string"/>
<field name="SPT_RESP_COL" length="7" type="real"/>
<field name="SPT_RESP_UNIT_COL" length="1" type="string"/>
<field name="DATA_FLD_1" length="48" type="string"/>
<field name="EXISTENCE_MASK" length="4" type="bitmask"/>
<if cond="EXISTENCE_MASK:31">
<field name="RADIOMETRIC_ADJUSTMENT_SURFACE" length="24" type="string"/>
<field name="ATMOSPHERIC_ADJUSTMENT_ALTITUDE" length="4" type="IEEE754_Float32_BigEndian"/>
</if>
<if cond="EXISTENCE_MASK:30">
<field name="DIAMETER" length="7" type="real"/>
</if>
<if cond="EXISTENCE_MASK:29">
<field name="DATA_FLD_2" length="32" type="string"/>
</if>
<if cond="EXISTENCE_MASK:24">
<field name="WAVE_LENGTH_UNIT" length="1" type="string"/>
</if>
<loop counter="COUNT" name="BANDS" md_prefix="BAND_%05d_">
<if cond="EXISTENCE_MASK:28">
<field name="BANDID" length="50" type="string"/>
</if>
<if cond="EXISTENCE_MASK:27">
<field name="BAD_BAND" length="1" type="integer"/>
</if>
<if cond="EXISTENCE_MASK:26">
<field name="NIIRS" length="3" type="real"/>
</if>
<if cond="EXISTENCE_MASK:25">
<field name="FOCAL_LEN" length="5" type="integer"/>
</if>
<if cond="EXISTENCE_MASK:24">
<field name="CWAVE" length="7" type="real"/>
</if>
<if cond="EXISTENCE_MASK:23">
<field name="FWHM" length="7" type="real"/>
</if>
<if cond="EXISTENCE_MASK:22">
<field name="FWHM_UNC" length="7" type="real"/>
</if>
<if cond="EXISTENCE_MASK:21">
<field name="NOM_WAVE" length="7" type="real"/>
</if>
<if cond="EXISTENCE_MASK:20">
<field name="NOM_WAVE_UNC" length="7" type="real"/>
</if>
<if cond="EXISTENCE_MASK:19">
<field name="LBOUND" length="7" type="real"/>
<field name="UBOUND" length="7" type="real"/>
</if>
<if cond="EXISTENCE_MASK:18">
<field name="SCALE_FACTOR" length="4" type="IEEE754_Float32_BigEndian"/>
<field name="ADDITIVE_FACTOR" length="4" type="IEEE754_Float32_BigEndian"/>
</if>
<if cond="EXISTENCE_MASK:17">
<field name="START_TIME" length="16" type="string"/>
</if>
<if cond="EXISTENCE_MASK:16">
<field name="INT_TIME" length="6" type="real"/>
</if>
<if cond="EXISTENCE_MASK:15">
<field name="CALDRK" length="6" type="real"/>
<field name="CALIBRATION_SENSITIVITY" length="5" type="real"/>
</if>
<if cond="EXISTENCE_MASK:14">
<field name="ROW_GSD" length="7" type="real"/>
</if>
<if cond="EXISTENCE_MASK:13">
<field name="ROW_GSD_UNC" length="7" type="real"/>
</if>
<if cond="EXISTENCE_MASK:14">
<field name="ROW_GSD_UNIT" length="1" type="string"/>
<field name="COL_GSD" length="7" type="real"/>
</if>
<if cond="EXISTENCE_MASK:13">
<field name="COL_GSD_UNC" length="7" type="real"/>
</if>
<if cond="EXISTENCE_MASK:14">
<field name="COL_GSD_UNIT" length="1" type="string"/>
</if>
<if cond="EXISTENCE_MASK:12">
<field name="BKNOISE" length="5" type="real"/>
<field name="SCNNOISE" length="5" type="real"/>
</if>
<if cond="EXISTENCE_MASK:11">
<field name="SPT_RESP_FUNCTION_ROW" length="7" type="real"/>
</if>
<if cond="EXISTENCE_MASK:10">
<field name="SPT_RESP_UNC_ROW" length="7" type="real"/>
</if>
<if cond="EXISTENCE_MASK:11">
<field name="SPT_RESP_UNIT_ROW" length="1" type="string"/>
<field name="SPT_RESP_FUNCTION_COL" length="7" type="real"/>
</if>
<if cond="EXISTENCE_MASK:10">
<field name="SPT_RESP_UNC_COL" length="7" type="real"/>
</if>
<if cond="EXISTENCE_MASK:11">
<field name="SPT_RESP_UNIT_COL" length="1" type="string"/>
</if>
<if cond="EXISTENCE_MASK:9">
<field name="DATA_FLD_3" length="16" type="string"/>
</if>
<if cond="EXISTENCE_MASK:8">
<field name="DATA_FLD_4" length="24" type="string"/>
</if>
<if cond="EXISTENCE_MASK:7">
<field name="DATA_FLD_5" length="32" type="string"/>
</if>
<if cond="EXISTENCE_MASK:6">
<field name="DATA_FLD_6" length="48" type="string"/>
</if>
</loop>
<if cond="EXISTENCE_MASK:0">
<field name="NUM_AUX_B" length="2" type="integer"/>
<field name="NUM_AUX_C" length="2" type="integer"/>
<loop counter="NUM_AUX_B" name="BAND_AUX" md_prefix="BAND_AUX_%02d_">
<field name="BAPF" length="1" type="string"/>
<field name="UBAP" length="7" type="string"/>
<loop counter="COUNT" name="BAND" md_prefix="BAND_%05d">
<if cond="BAPF=I">
<field name="APN" length="10" type="integer"/>
</if>
<if cond="BAPF=R">
<field name="APR" length="4" type="IEEE754_Float32_BigEndian"/>
</if>
<if cond="BAPF=A">
<field name="APA" length="20" type="string"/>
</if>
</loop>
</loop>
<loop counter="NUM_AUX_C" name="CUBE_AUX" md_prefix="CUBE_AUX_%02d_">
<field name="CAPF" length="1" type="string"/>
<field name="UCAP" length="7" type="string"/>
<if cond="CAPF=I">
<field name="APN" length="10" type="integer"/>
</if>
<if cond="CAPF=R">
<field name="APR" length="4" type="IEEE754_Float32_BigEndian"/>
</if>
<if cond="CAPF=A">
<field name="APA" length="20" type="string"/>
</if>
</loop>
</if>
</tre>
<tre name="BLOCKA" length="123" location="image">
<field name="BLOCK_INSTANCE" length="2" type="integer" minval="1" maxval="99"/>
<field name="N_GRAY" length="5" type="integer" minval="0" maxval="99999"/>
<field name="L_LINES" length="5" type="integer" minval="1" maxval="99999"/>
<field name="LAYOVER_ANGLE" length="3" type="integer" minval="0" maxval="359" unit="degrees"/>
<field name="SHADOW_ANGLE" length="3" type="integer" minval="0" maxval="359" unit="degrees"/>
<field length="16" fixed_value=" "/>
<field name="FRLC_LOC" length="21"/>
<field name="LRLC_LOC" length="21"/>
<field name="LRFC_LOC" length="21"/>
<field name="FRFC_LOC" length="21"/>
<field length="5" fixed_value="010.0"/>
</tre>
<tre name="BNDPLB" minlength="124" maxlength="99964" location="image">
<field name="NUM_PTS" length="4" type="integer" minval="4" maxval="3332"/>
<loop counter="NUM_PTS" md_prefix="POINT_%04d_" name="POINT">
<field name="LON" length="15" type="real"/>
<field name="LAT" length="15" type="real"/>
</loop>
</tre>
<!-- STDI-0002-1 Appendix AG: CCINFA (from RFC-084) -->
<tre name="CCINFA">
<field name="NUMCODE" length="3" type="integer" minval="1" maxval="999"/>
<loop counter="NUMCODE" md_prefix="CODE_%03d_" name="CODES">
<field name="CODE_LEN" length="1" type="integer" minval="1" maxval="9"/>
<field name="CODE" length_var="CODE_LEN"/>
<field name="EQTYPE" length="1"/>
<field name="ESURN_LEN" length="2" type="integer" minval="9" maxval="99"/>
<field name="ESURN" length_var="ESURN_LEN"/>
<field name="DETAIL_LEN" length="5" type="integer" minval="0"/>
<if cond="DETAIL_LEN!=00000">
<field name="DETAIL_CMPR" length="1" type="string"/>
<field name="DETAIL" length_var="DETAIL_LEN"/>
</if>
</loop>
</tre>
<tre name="CSDIDA" md_prefix="NITF_CSDIDA_" length="70" location="file">
<field name="DAY" length="2"/>
<field name="MONTH" length="3"/>
<field name="YEAR" length="4"/>
<field name="PLATFORM_CODE" length="2"/>
<field name="VEHICLE_ID" length="2"/>
<field name="PASS" length="2"/>
<field name="OPERATION" length="3"/>
<field name="SENSOR_ID" length="2"/>
<field name="PRODUCT_ID" length="2"/>
<field name="RESERVED_0" length="4"/>
<field name="TIME" length="14"/>
<field name="PROCESS_TIME" length="14"/>
<field name="RESERVED_1" length="2"/>
<field name="RESERVED_2" length="2"/>
<field name="RESERVED_3" length="1"/>
<field name="RESERVED_4" length="1"/>
<field name="SOFTWARE_VERSION_NUMBER" length="10"/>
</tre>
<tre name="CSEPHA" minlength="77" maxlength="36005" location="des">
<field name="EPHEM_FLAG" length="12"/>
<field name="DT_EPHEM" length="5"/>
<field name="DATE_EPHEM" length="8"/>
<field name="T0_EPHEM" length="13"/>
<field name="NUM_EPHEM" length="3"/>
<loop counter="NUM_EPHEM" md_prefix="EPHEM_%03d_" name="EPHEM">
<field name="X" longname="EPHEM_X" length="12"/>
<field name="Y" longname="EPHEM_Y" length="12"/>
<field name="Z" longname="EPHEM_Z" length="12"/>
</loop>
</tre>
<tre name="CSCCGA" length="60" location="file">
<field name="CCG_SOURCE" length="18"/>
<field name="REG_SENSOR" length="6"/>
<field name="ORIGIN_LINE" length="7"/>
<field name="ORIGIN_SAMPLE" length="5"/>
<field name="AS_CELL_SIZE" length="7"/>
<field name="CS_CELL_SIZE" length="5"/>
<field name="CCG_MAX_LINE" length="7"/>
<field name="CCG_MAX_SAMPLE" length="5"/>
</tre>
<tre name="CSCRNA" length="109" location="image">
<field name="PREDICT_CORNERS" length="1"/>
<field name="ULCNR_LAT" length="9"/>
<field name="ULCNR_LONG" length="10"/>
<field name="ULCNR_HT" length="8"/>
<field name="URCNR_LAT" length="9"/>
<field name="URCNR_LONG" length="10"/>
<field name="URCNR_HT" length="8"/>
<field name="LRCNR_LAT" length="9"/>
<field name="LRCNR_LONG" length="10"/>
<field name="LRCNR_HT" length="8"/>
<field name="LLCNR_LAT" length="9"/>
<field name="LLCNR_LONG" length="10"/>
<field name="LLCNR_HT" length="8"/>
</tre>
<tre name="CSEXRA" md_prefix="NITF_CSEXRA_" length="132" location="image">
<field name="SENSOR" length="6"/>
<field name="TIME_FIRST_LINE_IMAGE" length="12"/>
<field name="TIME_IMAGE_DURATION" length="12"/>
<field name="MAX_GSD" length="5"/>
<field name="ALONG_SCAN_GSD" length="5"/>
<field name="CROSS_SCAN_GSD" length="5"/>
<field name="GEO_MEAN_GSD" length="5"/>
<field name="A_S_VERT_GSD" length="5"/>
<field name="C_S_VERT_GSD" length="5"/>
<field name="GEO_MEAN_VERT_GSD" length="5"/>
<field name="GSD_BETA_ANGLE" length="5"/>
<field name="DYNAMIC_RANGE" length="5"/>
<field name="NUM_LINES" length="7"/>
<field name="NUM_SAMPLES" length="5"/>
<field name="ANGLE_TO_NORTH" length="7"/>
<field name="OBLIQUITY_ANGLE" length="6"/>
<field name="AZ_OF_OBLIQUITY" length="7"/>
<field name="GRD_COVER" length="1"/>
<field name="SNOW_DEPTH_CAT" length="1"/>
<field name="SUN_AZIMUTH" length="7"/>
<field name="SUN_ELEVATION" length="7"/>
<field name="PREDICTED_NIIRS" length="3"/>
<field name="CIRCL_ERR" length="3"/>
<field name="LINEAR_ERR" length="3"/>
</tre>
<!-- STDI-0002-1-v5.0 Appendix AH, Section AH.6.1, Table AH.6-1-->
<tre name="CSEXRB" md_prefix="NITF_CSEXRB_" location="image">
<field name="IMAGE_UUID" length="36" type="string"/>
<field name="NUM_ASSOC_DES" length="3" type="integer" minval="000" maxval="999"/>
<loop counter="NUM_ASSOC_DES" md_prefix="DES_%03d_">
<field name="ASSOC_DES_ID" length="36" type="string"/>
</loop>
<field name="PLATFORM_ID" length="6" type="string"/>
<field name="PAYLOAD_ID" length="6" type="string"/>
<field name="SENSOR_ID" length="6" type="string"/>
<field name="SENSOR_TYPE" length="1" type="string"/>
<field name="GROUND_REF_POINT_X" length="12" type="real" minval="-99999999.99" maxval="+99999999.99"/>
<field name="GROUND_REF_POINT_Y" length="12" type="real" minval="-99999999.99" maxval="+99999999.99"/>
<field name="GROUND_REF_POINT_Z" length="12" type="real" minval="-99999999.99" maxval="+99999999.99"/>
<if cond="SENSOR_TYPE=S">
<field name="DAY_FIRST_LINE_IMAGE" length="8" type="string" />
<field name="TIME_FIRST_LINE_IMAGE" length="15" type="real" minval="0.0" maxval="86400.0"/>
<field name="TIME_IMAGE_DURATION" length="16" type="real" minval="-86400.0" maxval="86400.0"/>
</if>
<if cond="SENSOR_TYPE=F">
<field name="TIME_STAMP_LOC" length="1" type="integer" minval="0" maxval="1"/>
<if cond="TIME_STAMP_LOC=0">
<field name="REFERENCE_FRAME_NUM" length="9" type="integer"/>
<field name="BASE_TIMESTAMP" length="24" type="string"/>
<field name="DT_MULTIPLIER" length="8" type="UnsignedInt_BigEndian" />
<field name="DT_SIZE" length="1" type="UnsignedInt_BigEndian" minval="1" maxval="8"/>
<field name="NUMBER_FRAMES" length="4" type="UnsignedInt_BigEndian"/>
<field name="NUMBER_DT" length="4" type="UnsignedInt_BigEndian" minval="0" maxval="2147483647"/> <!-- Value will be cast to signed integer -->
<loop counter="NUMBER_DT" md_prefix="DT_%04d">
<field name="DT" length_var="DT_SIZE" type="UnsignedInt_BigEndian" />
</loop>
</if>
</if>
<field name="MAX_GSD" length="12" type="real"/>
<field name="ALONG_SCAN_GSD" length="12" type="real"/>
<field name="CROSS_SCAN_GSD" length="12" type="real"/>
<field name="GEO_MEAN_GSD" length="12" type="real"/>
<field name="A_S_VERT_GSD" length="12" type="real"/>
<field name="C_S_VERT_GSD" length="12" type="real"/>
<field name="GEO_MEAN_VERT_GSD" length="12" type="real"/>
<field name="GSD_BETA_ANGLE" length="5" type="real"/>
<field name="DYNAMIC_RANGE" length="5" type="integer"/>
<field name="NUM_LINES" length="7" type="integer"/>
<field name="NUM_SAMPLES" length="5" type="integer"/>
<field name="ANGLE_TO_NORTH" length="7" type="real"/>
<field name="OBLIQUITY_ANGLE" length="6" type="real"/>
<field name="AZ_OF_OBLIQUITY" length="7" type="real"/>
<field name="ATM_REFR_FLAG" length="1" type="integer" minval="0" maxval="1"/>
<field name="VEL_ABER_FLAG" length="1" type="integer" minval="0" maxval="1"/>
<field name="GRD_COVER" length="1" type="integer" minval="0" maxval="9" />
<field name="SNOW_DEPTH_CATEGORY" length="1" type="integer"/>
<field name="SUN_AZIMUTH" length="7" type="real"/>
<field name="SUN_ELEVATION" length="7" type="real"/>
<field name="PREDICTED_NIIRS" length="3" type="real"/>
<field name="CIRCL_ERR" length="5" type="real"/>
<field name="LINEAR_ERR" length="5" type="real"/>
<field name="CLOUD_COVER" length="3" type="integer"/>
<if cond="SENSOR_TYPE=F">
<field name="ROLLING_SHUTTER_FLAG" length="1" type="integer" minval="0" maxval="1"/>
</if>
<field name="UE_TIME_FLAG" length="1" type="integer" minval="0" maxval="1"/>
<field name="RESERVED_LEN" length="5" type="integer" fixed_value="00000"/>
<if cond="RESERVED_LEN!=00000">
<field name="RESERVED" length_var="RESERVED_LEN" type="string" />
</if>
</tre>
<tre name="CSPROA" length="120" location="image">
<field length="12"/>
<field length="12"/>
<field length="12"/>
<field length="12"/>
<field length="12"/>
<field length="12"/>
<field length="12"/>
<field length="12"/>
<field length="12"/>
<field name="BWC" length="12"/>
</tre>
<!-- STDI-0002-1-v5.0 Appendix AH, Section AH.6.2, Table AH.6-2 -->
<tre name="CSRLSB" md_prefix="NITF_CSRLSB_" location="image">
<field name="N_RS_ROW_BLOCKS" length="2" type="integer" minval="1" maxval="99"/>
<field name="M_RS_COLUMN_BLOCKS" length="2" type="integer" minval="1" maxval="99"/>
<loop counter="N_RS_ROW_BLOCKS" md_prefix="ROWBLOCK_%02d_">
<loop counter="M_RS_COLUMN_BLOCKS" md_prefix="COLBLOCK_%02d_">
<field name="RS_DT_1" length="12" type="real"/>
<field name="RS_DT_2" length="12" type="real"/>
<field name="RS_DT_3" length="12" type="real"/>
<field name="RS_DT_4" length="12" type="real"/>
</loop>
</loop>
</tre>
<tre name="CSSFAA" minlength="107" maxlength="425" location="image">
<field name="NUM_BANDS" length="1"/>
<loop counter="NUM_BANDS" md_prefix="BAND_%d_" name="BAND">
<field name="BAND_TYPE" length="1"/>
<field name="BAND_ID" length="6"/>
<field name="FOC_LENGTH" length="11"/>
<field name="NUM_DAP" length="8"/>
<field name="NUM_FIR" length="8"/>
<field name="DELTA" length="7"/>
<field name="OPPOFF_X" length="7"/>
<field name="OPPOFF_Y" length="7"/>
<field name="OPPOFF_Z" length="7"/>
<field name="START_X" length="11"/>
<field name="START_Y" length="11"/>
<field name="FINISH_X" length="11"/>
<field name="FINISH_Y" length="11"/>
</loop>
</tre>
<!-- STDI-0002-1-v5.0 Appendix AH, Section AH.6.3, Table AH.6-3 -->
<tre name="CSWRPB" md_prefix="NITF_CSWRPB_" location="image">
<field name="NUM_SETS_WARP_DATA" length="1" type="integer" minval="1" maxval="9"/>
<field name="SENSOR_TYPE" length="1" type="string"/>
<if cond="SENSOR_TYPE=F">
<field name="WRP_INTERP" length="1" type="integer" minval="0" maxval="1"/>
</if>
<loop counter="NUM_SETS_WARP_DATA" md_prefix="WARP_DATA_SET_%01d_">
<if cond="SENSOR_TYPE=F">
<field name="FL_WARP" length="11" type="real" minval="0" maxval="99.99999999"/>
</if>
<field name="OFFSET_LINE" length="7" type="integer" minval="1" maxval="9999999"/>
<field name="OFFSET_SAMP" length="7" type="integer" minval="1" maxval="9999999"/>
<field name="SCALE_LINE" length="7" type="integer" minval="1" maxval="9999999"/>
<field name="SCALE_SAMP" length="7" type="integer" minval="1" maxval="9999999"/>
<field name="OFFSET_LINE_UNWRP" length="7" type="integer" minval="1" maxval="9999999"/>
<field name="OFFSET_SAMP_UNWRP" length="7" type="integer" minval="1" maxval="9999999"/>
<field name="SCALE_LINE_UNWRP" length="7" type="integer" minval="1" maxval="9999999"/>
<field name="SCALE_SAMP_UNWRP" length="7" type="integer" minval="1" maxval="9999999"/>
<field name="LINE_POLY_ORDER_M1" length="1" type="integer"/>
<field name="LINE_POLY_ORDER_M2" length="1" type="integer"/>
<field name="SAMP_POLY_ORDER_N1" length="1" type="integer"/>
<field name="SAMP_POLY_ORDER_N2" length="1" type="integer"/>
<loop counter="LINE_POLY_ORDER_M2" md_prefix="M2_%01d_">
<loop counter="LINE_POLY_ORDER_M1" md_prefix="M1_%01d_">
<field name="A" length="21" type="real"/>
</loop>
</loop>
<loop counter="SAMP_POLY_ORDER_N2" md_prefix="N2_%01d_">
<loop counter="SAMP_POLY_ORDER_N1" md_prefix="N1_%01d_">
<field name="B" length="21" type="real"/>
</loop>
</loop>
</loop>
<field name="RESERVED_LEN" length="5" type="integer"/>
<if cond="RESERVED_LEN!=00000">
<field name="RESERVED" length_var="RESERVED_LEN" type="string"/>
</if>
</tre>
<!-- STDI-0002 Appendix N -->
<tre name="ENGRDA">
<field name="RESRC" length="20" type="string"/>
<field name="RECNT" length="3" type="integer" minval="1"/>
<loop counter="RECNT" md_prefix="RECORD_%d_" name="RECORDS">
<field name="ENGLN" length="2" type="integer" minval="1"/>
<field name="ENGLBL" length_var="ENGLN" type="string"/>
<field name="ENGMTXC" length="4" type="integer" minval="1"/>
<field name="ENGMTXR" length="4" type="integer" minval="1"/>
<field name="ENGTYP" length="1" type="string"/>
<field name="ENGDTS" length="1" type="integer"/>
<field name="ENGDTU" length="2" type="string"/>
<field name="ENGDATC" length="8" type="integer" minval="1" maxval="99999932"/>
<field name="ENGDATA" length_var="ENGDATC"/>
</loop>
</tre>
<!-- STDI-0002 Appendix E (ASDE 2.1/CN1), Table E-12 -->
<tre name="EXPLTB" length="101" location="image">
<field name="ANGLE_TO_NORTH" length="7" type="real" minval="0.0" maxval="359.999"/>
<field name="ANGLE_TO_NORTH_ACCY" length="6" type="real" minval="0.0" maxval="44.999"/>
<field name="SQUINT_ANGLE" length="7" type="real" minval="-60.0" maxval="85.0"/>
<field name="SQUINT_ANGLE_ACCY" length="6" type="real" minval="0.0" maxval="44.999"/>
<field name="MODE" length="3" type="string"/>
<field length="16" fixed_value=" "/>
<field name="GRAZE_ANG" length="5" type="real" unit="degrees" minval="0.0" maxval="90.00"/>
<field name="GRAZE_ANG_ACCY" length="5" type="real" unit="degrees" minval="0.0" maxval="90.00"/>
<field name="SLOPE_ANG" length="5" type="real" unit="degrees" minval="0.0" maxval="90.00"/>
<field name="POLAR" length="2" type="string"/>
<field name="NSAMP" length="5" type="integer" minval="1" maxval="99999"/>
<field length="1" fixed_value="0"/>
<!-- SEQ_NUM is a string because it is <R>, so it may contain a space -->
<field name="SEQ_NUM" length="1" type="string"/>
<field name="PRIME_ID" length="12" type="string"/>
<field name="PRIME_BE" length="15" type="string"/>
<field length="1" fixed_value="0"/>
<field name="N_SEC" length="2" type="integer" minval="0" maxval="99"/>
<field name="IPR" length="2" type="integer" unit="feet" minval="0" maxval="99"/>
</tre>
<tre name="GEOLOB" length="48" location="image">
<field name="ARV" length="9" type="real"/>
<field name="BRV" length="9" type="real"/>
<field name="LSO" length="15" type="real"/>
<field name="PSO" length="15" type="real"/>
</tre>
<tre name="GEOPSB" length="443" location="file">
<field name="TYP" length="3" type="string"/>
<field name="UNI" length="3" type="string"/>
<field name="DAG" length="80" type="string"/>
<field name="DCD" length="4" type="string"/>
<field name="ELL" length="80" type="string"/>
<field name="ELC" length="3" type="string"/>
<field name="DVR" length="80" type="string"/>
<field name="VDCDVR" length="4" type="string"/>
<field name="SDA" length="80" type="string"/>
<field name="VDCSDA" length="4" type="string"/>
<field name="ZOR" length="15" type="integer" minval="0"/>
<field name="GRD" length="3" type="string"/>
<field name="GRN" length="80" type="string"/>
<field name="ZNA" length="4" type="integer" minval="0"/>
</tre>
<!-- STDI-0002-1, App. P Table P-4 Grid Reference Data (GRDPSB) TRE -->
<tre name="GRDPSB" location="image">
<field name="NUM_GRDS" length="2" minval="1" type="integer"/>
<loop counter="NUM_GRDS" md_prefix="GRD_%02d_" name="GRDS">
<field name="ZVL" length="10" unit="m" type="real"/>
<field name="BAD" length="10" type="string"/>
<field name="LOD" length="12" type="real"/>
<field name="LAD" length="12" type="real"/>
<field name="LSO" length="11" type="real"/>
<field name="PSO" length="11" type="real"/>
</loop>
</tre>
<tre name="HISTOA" minlength="115" maxlength="83512" location="image">
<field name="SYSTYPE" length="20"/>
<field name="PC" length="12"/>
<field name="PE" length="4"/>
<field name="REMAP_FLAG" length="1"/>
<field name="LUTID" length="2"/>
<field name="NEVENTS" length="2"/>
<loop counter="NEVENTS" md_prefix="EVENT_%02d_" name="EVENT">
<field name="PDATE" length="14"/>
<field name="PSITE" length="10"/>
<field name="PAS" length="10"/>
<field name="NIPCOM" length="1"/>
<loop counter="NIPCOM" md_prefix="IPCOM_%d" name="IPCOM">
<field name="" longname="IPCOM" length="80"/>
</loop>
<field name="IBPP" length="2"/>
<field name="IPVTYPE" length="3"/>
<field name="INBWC" length="10"/>
<field name="DISP_FLAG" length="1"/>
<field name="ROT_FLAG" length="1"/>
<if cond="ROT_FLAG=1">
<field name="ROT_ANGLE" length="8"/>
</if>
<field name="ASYM_FLAG" length="1"/>
<if cond="ASYM_FLAG=1">
<field name="ZOOMROW" length="7"/>
<field name="ZOOMCOL" length="7"/>
</if>
<field name="PROJ_FLAG" length="1"/>
<field name="SHARP_FLAG" length="1"/>
<if cond="SHARP_FLAG=1">
<field name="SHARPFAM" length="2"/>
<field name="SHARPMEM" length="2"/>
</if>
<field name="MAG_FLAG" length="1"/>
<if cond="MAG_FLAG=1">
<field name="MAG_LEVEL" length="7"/>
</if>
<field name="DRA_FLAG" length="1"/>
<if cond="DRA_FLAG=1">
<field name="DRA_MULT" length="7"/>
<field name="DRA_SUB" length="5"/>
</if>
<field name="TTC_FLAG" length="1"/>
<if cond="TTC_FLAG=1">
<field name="TTCFAM" length="2"/>
<field name="TTCMEM" length="2"/>
</if>
<field name="DEVLUT_FLAG" length="1"/>
<field name="OBPP" length="2"/>
<field name="OPVTYPE" length="3"/>
<field name="OUTBWC" length="10"/>
</loop>
</tre>
<tre name="ICHIPB" length="224" location="image">
<field name="XFRM_FLAG" length="2" type="integer"/>
<field name="SCALE_FACTOR" length="10" type="real"/>
<field name="ANAMRPH_CORR" length="2" type="integer"/>
<field name="SCANBLK_NUM" length="2" type="integer"/>
<field name="OP_ROW_11" length="12" type="real"/>
<field name="OP_COL_11" length="12" type="real"/>
<field name="OP_ROW_12" length="12" type="real"/>
<field name="OP_COL_12" length="12" type="real"/>
<field name="OP_ROW_21" length="12" type="real"/>
<field name="OP_COL_21" length="12" type="real"/>
<field name="OP_ROW_22" length="12" type="real"/>
<field name="OP_COL_22" length="12" type="real"/>
<field name="FI_ROW_11" length="12" type="real"/>
<field name="FI_COL_11" length="12" type="real"/>
<field name="FI_ROW_12" length="12" type="real"/>
<field name="FI_COL_12" length="12" type="real"/>
<field name="FI_ROW_21" length="12" type="real"/>
<field name="FI_COL_21" length="12" type="real"/>
<field name="FI_ROW_22" length="12" type="real"/>
<field name="FI_COL_22" length="12" type="real"/>
<field name="FI_ROW" length="8" type="integer"/>
<field name="FI_COL" length="8" type="integer"/>
</tre>
<!-- STDI-0002-1-v5.0 Appendix AL, Section AL.6.2.4, Table AL.6-3 -->
<tre name="ILLUMB" minlength="381" maxlength="99985" md_prefix="NITF_ILLUMB_" location="image">
<field name="NUM_BANDS" length="4" type="integer"/>
<field name="BAND_UNIT" length="40" type="ISO8859-1"/>
<loop counter="NUM_BANDS" md_prefix="BAND_%04d_">
<field name="LBOUND" length="16" type="real"/>
<field name="UBOUND" length="16" type="real"/>
</loop>
<field name="NUM_OTHERS" length="2" type="integer"/>
<loop counter="NUM_OTHERS" md_prefix="OTHER_%02d_">
<field name="OTHER_NAME" length="40" type="ISO8859-1"/>
</loop>
<field name="NUM_COMS" length="1" type="integer"/>
<loop counter="NUM_COMS" md_prefix="COMS_%01d_">
<field name="COMMENT" length="80" type="ISO8859-1"/>
</loop>
<field name="GEO_DATUM" length="80" type="string"/>
<field name="GEO_DATUM_CODE" length="4" type="string"/>
<field name="ELLIPSOID_NAME" length="80" type="string"/>
<field name="ELLIPSOID_CODE" length="3" type="string"/>
<field name="VERTICAL_DATUM_REF" length="80" type="string"/>
<field name="VERTICAL_REF_CODE" length="4" type="string"/>
<field name="EXISTENCE_MASK" length="3" type="bitmask"/>
<if cond="EXISTENCE_MASK:23">
<field name="RAD_QUANTITY" length="40" type="ISO8859-1"/>
<field name="RADQ_UNIT" length="40" type="ISO8859-1"/>
</if>
<field name="NUM_ILLUM_SETS" length="3" type="integer"/>
<loop counter="NUM_ILLUM_SETS" md_prefix="ILLUM_SET_%03d_">
<field name="DATETIME" length="14" type="string"/>
<field name="TARGET_LAT" length="10" type="real"/>
<field name="TARGET_LON" length="11" type="real"/>
<field name="TARGET_HGT" length="14" type="real"/>
<if cond="EXISTENCE_MASK:22">
<field name="SUN_AZIMUTH" length="5" type="real"/>
<field name="SUN_ELEV" length="5" type="real"/>
</if>
<if cond="EXISTENCE_MASK:21">
<field name="MOON_AZIMUTH" length="5" type="real"/>
<field name="MOON_ELEV" length="5" type="real"/>
</if>
<if cond="EXISTENCE_MASK:20">
<field name="MOON_PHASE_ANGLE" length="6" type="real"/>
</if>
<if cond="EXISTENCE_MASK:19">
<field name="MOON_ILLUM_PERCENT" length="3" type="integer"/>
</if>
<if cond="EXISTENCE_MASK:18">
<loop counter="NUM_OTHERS" md_prefix="OTHERS_%02d_">
<field name="OTHER_AZIMUTH" length="5" type="real"/>
<field name="OTHER_ELEV" length="5" type="real"/>
</loop>
</if>
<if cond="EXISTENCE_MASK:17">
<field name="SENSOR_AZIMUTH" length="5" type="real"/>
<field name="SENSOR_ELEV" length="5" type="real"/>
</if>
<if cond="EXISTENCE_MASK:16">
<field name="CATS_ANGLE" length="5" type="real"/>
</if>
<if cond="EXISTENCE_MASK:15">
<field name="SUN_GLINT_LAT" length="10" type="real"/>
<field name="SUN_GLINT_LON" length="11" type="real"/>
</if>
<if cond="EXISTENCE_MASK:14">
<field name="CATM_ANGLE" length="5" type="real"/>
</if>
<if cond="EXISTENCE_MASK:13">
<field name="MOON_GLINT_LAT" length="10" type="real"/>
<field name="MOON_GLINT_LON" length="11" type="real"/>
</if>
<if cond="EXISTENCE_MASK:10">
<field name="SOL_LUN_DIST_ADJUST" length="7" type="real"/>
</if>
<loop counter="NUM_BANDS" md_prefix="BAND_%04d_">
<if cond="EXISTENCE_MASK:12">
<field name="SUN_ILLUM_METHOD" length="1" type="string"/>
<field name="SUN_ILLUM" length="16" type="real"/>
</if>
<if cond="EXISTENCE_MASK:11">
<field name="MOON_ILLUM_METHOD" length="1" type="string"/>
<field name="MOON_ILLUM" length="16" type="real"/>
</if>
<if cond="EXISTENCE_MASK:10">
<field name="TOT_SUNMOON_ILLUM" length="16" type="real"/>
</if>
<loop counter="NUM_OTHERS" md_prefix="OTHER_%02d_">
<if cond="EXISTENCE_MASK:9">
<field name="OTHER_ILLUM_METHOD" length="1" type="string"/>
<field name="OTHER_ILLUM" length="16" type="real"/>
</if>
</loop>
<if cond="EXISTENCE_MASK:8">
<field name="ART_ILLUM_METHOD" length="1" type="string"/>
<field name="ART_ILLUM_MIN" length="16" type="real"/>
<field name="ART_ILLUM_MAX" length="16" type="real"/>
</if>
</loop>
</loop>
</tre>
<tre name="J2KLRA" location="image">
<field name="ORIG" length="1"/>
<field name="NLEVELS_O" length="2"/>
<field name="NBANDS_O" length="5"/>
<field name="NLAYERS_O" length="3"/>
<loop counter="NLAYERS_O" md_prefix="LAYER_%03d_" name="LAYER">
<field name="LAYER_ID" length="3"/>
<field name="BITRATE" length="9"/>
</loop>
<if_remaining_bytes>
<field name="NLEVELS_I" length="2"/>
<field name="NBANDS_I" length="5"/>
<field name="NLAYERS_I" length="3"/>
</if_remaining_bytes>
</tre>
<tre name="MAPLOB" length="43" location="image">
<field name="UNILOA" length="3" type="string"/>
<field name="LOD" length="5" type="integer" minval="1" maxval="99999"/>
<field name="LAD" length="5" type="integer" minval="1" maxval="99999"/>
<field name="LSO" length="15" type="real"/>
<field name="PSO" length="15" type="real"/>
</tre>
<!-- STDI-0002-1 Appendix AK: Table AK.6-5: MATESA -->
<tre name="MATESA" location="file">
<field name="CUR_SOURCE" length="42" type="ISO8859-1"/>
<field name="CUR_MATE_TYPE" length="16" type="ISO8859-1"/>
<field name="CUR_FILE_ID_LEN" length="4" type="integer" minval="1" maxval="9999"/>
<field name="CUR_FILE_ID" length_var="CUR_FILE_ID_LEN" type="ISO8859-1"/>
<field name="NUM_GROUPS" length="4" type="integer" minval="1" maxval="9999"/>
<loop counter="NUM_GROUPS" md_prefix="GROUP_%d" name="GROUPS">
<field name="RELATIONSHIP" length="24" type="ISO8859-1"/>
<field name="NUM_MATES" length="4" type="integer" minval="1" maxval="9999"/>
<loop counter="NUM_MATES" md_prefix="MATE_%d" name="MATES">
<field name="SOURCE" length="42" type="ISO8859-1"/>
<field name="MATE_TYPE" length="16" type="ISO8859-1"/>
<field name="MATE_ID_LEN" length="4" type="integer" minval="1" maxval="9999"/>
<field name="MATE_ID" length_var="MATE_ID_LEN" type="ISO8859-1"/>
</loop>
</loop>
</tre>
<tre name="MENSRB" location="image">
<field name="ACFT_LOC" length="25" type="string"/>
<field name="ACFT_LOC_ACCY" length ="6" type="real"/>
<field name="ACFT_ALT" length="6" type="integer"/>
<field name="RP_LOC" length="25" type="string"/>
<field name="RP_LOC_ACCY" length="6" type="real"/>
<field name="RP_ELV" length="6" type="integer" minval="-1000" maxval="30000"/>
<field name="OF_PC_R" length="7" type="real"/>
<field name="OF_PC_A" length="7" type="real"/>
<field name="COSGRZ" length="7" type="real" minval="0.0" maxval="1.0"/>
<field name="RGCRP" length="7" type="integer" minval="0" maxval="3000000"/>
<field name="RLMAP" length="1" type="string"/>
<field name="RP_ROW" length="5" type="integer" minval="1" maxval="99999"/>
<field name="RP_COL" length="5" type="integer" minval="1" maxval="99999"/>
<field name="C_R_NC" length="10" type="real" minval="-1.0" maxval="1.0"/>
<field name="C_R_EC" length="10" type="real" minval="-1.0" maxval="1.0"/>
<field name="C_R_DC" length="10" type="real" minval="-1.0" maxval="1.0"/>
<field name="C_AZ_NC" length="9" type="real" minval="-1.0" maxval="1.0"/>
<field name="C_AZ_EC" length="9" type="real" minval="-1.0" maxval="1.0"/>
<field name="C_AZ_DC" length="9" type="real" minval="-1.0" maxval="1.0"/>
<field name="C_AL_NC" length="9" type="real" minval="-1.0" maxval="1.0"/>
<field name="C_AL_EC" length="9" type="real" minval="-1.0" maxval="1.0"/>
<field name="C_AL_DC" length="9" type="real" minval="-1.0" maxval="1.0"/>
<field name="TOTAL_TILES_COLS" length="3" type="integer" minval="1" maxval="999"/>
<field name="TOTAL_TILES_ROWS" length="5" type="integer" minval="1" maxval="99999"/>
</tre>
<!-- STDI-0002-1-v5.0 Appendix E, Section E.3.9, Table E-16-->
<tre name="MSTGTA" md_prefix="NITF_MSTGTA_" length="101" location="image">
<field name="TGT_NUM" length="5" type="integer" minval="0" maxval="99999"/>
<field name="TGT_ID" length="12" type="string"/>
<field name="TGT_BE" length="15" type="string"/>
<field name="TGT_PRI" length="3" type="integer" minval="1" maxval="999"/>
<field name="TGT_REQ" length="12" type="string"/>
<field name="TGT_LTIOV" length="12" type="string"/>
<field name="TGT_TYPE" length="1" type="integer"/>
<field name="TGT_COLL" length="1" type="integer"/>
<field name="TGT_CAT" length="5" type="integer" minval="10000" maxval="99999"/>
<field name="TGT_UTC" length="7" type="string"/>
<field name="TGT_ELEV" length="6" type="integer" minval="-1000" maxval="30000"/>
<field name="TGT_ELEV_UNIT" length="1" type="string"/>
<field name="TGT_LOC" length="21" type="string"/>
</tre>
<!-- STDI-0002 Appendix E (ASDE 2.1/CN1), Section 3.10 and Table E-19 -->
<tre name="MTIRPB" minlength="119" maxlength="42035">
<field name="MTI_DP" length="2" type="string"/>
<field name="MTI_PACKET_ID" length="3" minval="1" maxval="999" type="integer"/>
<field name="PATCH_NO" length="4" minval="1" maxval="999" type="integer"/>
<field name="WAMTI_FRAME_NO" length="5" type="string"/>
<field name="WAMTI_BAR_NO" length="1" type="string"/>
<field name="DATIME" length="14" type="string"/>
<field name="ACFT_LOC" length="21" type="string"/>
<field name="ACFT_ALT" length="6" minval="0" maxval="999999" type="integer"/>
<field name="ACFT_ALT_UNIT" length="1" type="string"/>
<field name="ACFT_HEADING" length="3" minval="0" maxval="359" type="integer"/>
<field name="MTI_LR" length="1" type="string"/>
<field name="SQUINT_ANGLE" length="6" minval="-60.0" maxval="85.00" type="real"/>
<field name="COSGRZ" length="7" minval="0" maxval="9.99999" type="real"/>
<field name="NO_VALID_TARGETS" length="3" minval="1" maxval="999" type="integer"/>
<loop counter="NO_VALID_TARGETS" md_prefix="TGT_%03d_" name="TARGETS">
<field name="TGT_LOC" length="23" type="string"/>
<field name="TGT_LOC_ACCY" length="6" minval="0" maxval="999.99" type="real"/>
<field name="TGT_VEL_R" length="4" minval="-200" maxval="200" type="string"/>
<field name="TGT_SPEED" length="3" minval="0" maxval="200" type="string"/>
<field name="TGT_HEADING" length="3" minval="0" maxval="359" type="string"/>
<field name="TGT_AMPLITUDE" length="2" minval="0" maxval="15" type="string"/>
<field name="TGT_CAT" length="1" type="string"/>
</loop>
</tre>
<!-- STDI-0002 Appendix E (ASDE 2.1/CN1), Table E-21 -->
<tre name="PATCHB" length="121" location="image">
<field name="PAT_NO" length="4" type="integer" minval="1" maxval="999"/>
<!-- LAST_PAT_LEVEL is a string because it is <R>, so it may contain only a space -->
<field name="LAST_PAT_FLAG" length="1" type="integer" minval="0" maxval="1"/>
<field name="LNSTRT" length="7" type="integer" minval="1" maxval="9999999"/>
<field name="LNSTOP" length="7" type="integer" minval="20" maxval="9999999"/>
<field name="AZL" length="5" type="integer" unit="lines" minval="20" maxval="99999"/>
<!-- NVL is a string because it is <R> -->
<field name="NVL" length="5" type="string" unit="lines"/>
<!-- FVL is a string because it is <R> -->
<field name="FVL" length="3" type="string" minval="1" maxval="681"/>
<field name="NPIXEL" length="5" type="integer" unit="pixels" minval="1" maxval="99999"/>
<field name="FVPIX" length="5" type="integer" unit="pixels" minval="1" maxval="99999"/>
<!-- FRAME is a string because it is <R> -->
<field name="FRAME" length="3" type="string" minval="1" maxval="512"/>
<field name="UTC" length="8" type="real" unit="seconds" minval="0.0" maxval="86399.99"/>
<field name="SHEAD" length="7" type="real" unit="degrees" minval="0.0" maxval="359.999"/>
<!-- GRAVITY is a string because it is <R> -->
<field name="GRAVITY" length="7" type="string" unit="feet/sec^2"/>
<field name="INS_V_NC" length="5" type="integer" unit="feet/sec" minval="-9999" maxval="9999"/>
<field name="INS_V_EC" length="5" type="integer" unit="feet/sec" minval="-9999" maxval="9999"/>
<field name="INS_V_DC" length="5" type="integer" unit="feet/sec" minval="-9999" maxval="9999"/>
<!-- OFFLAT and OFFLONG are string because they are <R> -->
<field name="OFFLAT" length="8" type="string" unit="seconds"/>
<field name="OFFLONG" length="8" type="string" unit="seconds"/>
<field name="