3 releases

new 0.1.2 Apr 27, 2024
0.1.1 Apr 23, 2024
0.1.0 Apr 20, 2024

#31 in Visualization

Download history 111/week @ 2024-04-15 375/week @ 2024-04-22

486 downloads per month

MIT license

4.5MB
738 lines

nitv

NITF Visualizer (nitv) is a program which will read a nitf file and attempt to create a png or gif from the image data

For questions, feature requests, or bugs, please open an issue.

Usage

First, install from clone or directly using cargo...

cargo install nitv

... then provide a NITF file

nitv <path-to-nitf>

There are a handful of options available

--output      Output folder [default: .]
--prefix      Output file name. Derived from input if not given
--size        sqrt(num-pixels) e.g., --size 50 -> 50^2 pixel image [default: 256]
--brightness  Adjust the brightness of the image product (32-bit signed integer) [default: 0]
--contrast    Adjust the contrast of the image product (32-bit float) [default: 0]
--level       Log level [default: info] [possible values: off, error, warn, info, debug, trace]
--nitf-log    Enable logging for nitf reading

Current support (files from Umbra's Open Data)

SIDD / monochrome

SIDD product example

RGB/RGB + LUT

RGB product example

SICD / complex-data

SICD product example

Implementation details:

The determination of whether to make a PNG or GIF is currently somewhat hacky.

Because SICD files can have image data spread across multiple segments, that processing logic is unique, thus the first thing which is done is to determine if the file contains SICD metadata.

  • If it is determined to be a SICD, all image data is piecewise extended density format (PEDF) remapped, ground projected, and rendered to a PNG.
  • If it doesn't contain SICD metadata but has multiple image segments, the data from each segment is rendered as a frame in a GIF.
  • If it doesn't contain SICD metadata and has a single image segment, it is rendered as a PNG.

As more features are added, this logic will become more sophisticated

Dependencies

~16–27MB
~228K SLoC