NITF File Parser

This parser tool takes a NITF 2.0/2.1 file as input and outputs the JPEG file (if included), the data/image file and the metadata in flat files.

  1. For help with the installation of the parser software,
    please reference the Installation Guide.
  2. Please reference the Users Manual for help with the operation of this software.
  3. Please select the executable for your operating system from the list below:


Source Code

Program and File Changes

Version 7.5
Fixed bug causing error message (find_text_tag: Error finding end of tag)
(The tool worked correctly even with the error message)
Version 7.4
Added new data field formats for .dff/.pff files. New fields are:
S = signed ints
U = unsigned ints
F = floating point
Version 7.3
Updated to automatically dump the text of unknown TREs to files.
Mapped TRE named "??????" to harris1
Version 7.2
Made extract smart enough to differentiate between Airborne v0.9a TREs
and v1.0draft TREs, and use the proper set
Changed dff/pff file field widths to allow field width of 0
Created extract to Phoenix file using TREs as meta-data (-p_tre)
Began adding internal support for ENGRDA Engineering Support Data Extension
Version 7.1
Public distribution of GUI front-end (extract.tcl)
Updated installation and user documentation for GUI front-end
Fixed a problem with TRE extraction when a TRE field (representing a
number) contains a NULL character
Made several changes to compile under Visual C++ 6.0:
Changed BORLAND definition to PC
moved the sleep() call inside the BORLAND section
Removed some status messages, added a few casts to remove some warnings
Version 7.0
Added more options for use with the GUI interface
Added -standard option to extract files using standard file names like
image#.raw image#.jpg image#.dat text_seg#.txt
Added better error checking for parsing of TREs
Version 6.9
Added option for use with GUI interface
Version 6.8
Fixed a bug to handle the case when NITF filename fields are empty
(all spaces)
Version 6.7
Fixed TRE extraction: Previous version didn't append loop counters.
Fixed Phoenix output for signed/unsigned integers, number of integer bits
Fixed to extract 12 bit integer data
Version 6.6
Changed .dff/.pff file format
After the field size, you can add units (in double-quotes), and a
conversion function (also in double-quotes). If a conversion function
is needed without units, add two double-quotes to hold the units field.
Implemented conversion functions:
m2ft Meters to feet
ft2m Feet to meters
Version 6.5
Updated the program usage text
Added the -p_tre flag (Dump data and TRE contents to Phoenix file)
Version 6.4
Added -text_only command line argument
Added -jpeg_only command line argument
A few fixes
Version 6.3
Added -g switch to create a .geo file for each image section with
Added -qpm switch to extract data in Quarter Power Magnitude
format. Same as taking the square root of each data value before
writing it. Suggested use is with -mag_only (magnitude only) switch.
Version 6.2a,b
Security "downgrading event" field handling
Version 6.2
Added "-ssummary filename" option to dump NITF S-type summary
information to an output file.
One line of information is dumped per image in an NITF file,
appended to the output file. The first line of the file shows the
output line format, many terms are NITF image subheader labels. No
other files are created in the process for speed. Very limited
IGEOLO support.
Version 6.1
Enabled extract to differentiate between (draft 25-sept-1997) and
version 1.0 draft BANDSA TRE (bandsa0.dff is the older version,
bandsa1.dff is version 1.0 draft)


Version 6.0
Fixed extract for DDB NITF 2.0 files
Version 5.9
Fixed TRE extraction for TREs attached to the NITF main header
(finally got test data!)
Added clctnb.dff file
Version 5.8
Fixed the magnitude-only option to adjust the meta-data attributes
for magnitude-only data (DataType, DataSize, removed DataCheckSum).
Improved TRE filename number incrementing. NITF header dump files
will no longer auto-increment the filename if a NITF file is extracted
multiple times to the same output directory.
Version 5.7
Added TRE extraction for the NITF main header
Added support for 2 or more of the same TRE in a section (by changing last
digit of filename)
Added TRE extraction for extended subheader data areas
Added #DESs and #RESs to the menu
Added dump of NITF 2.0 Main file header
Added Whenever TREs are extracted, image information files will be
created as well.
Version 5.6
Added option to extract magnitude data only for SAR
Fixed a few bugs
Added image number to end of TRE filenames so the files would be
Better TRE (Tagged Record Extension) extraction capability
Added more .dff (TRE definition format file) files
.dff filenames now all lower case for UNIX
Skips TRE (instead of halting) if .dff file isn't available.
Version 5.5
Fixed unblocking routine for blocked 16 bit integer and blocked 32
bit floating point data.
Version 5.4
Not released.
Version 5.3
Fixed problems with extracting NITF 2.0 files.
Added version numbers to .dff (TRE definition) files.
Version 5.2.1
No changes to source code
Fixed problems with the TRE .dff (Definition) files. Loop lengths
were off in some cases. Only affects people who extract the Research
TREs (Tagged Record Extensions).
Version 5.2
Added command line and menu options to dump TREs to files. Added
ability to dump TREs to files (Current TREs: VISMAS BANDSA, Research
Version 5.0
All extracts dump the NITF and image headers (nitf_2N_main.txt,