nitv

Crates.ionitv
lib.rsnitv
version0.1.2
sourcesrc
created_at2024-04-20 17:41:15.697526
updated_at2024-04-27 22:35:21.26138
descriptionNITF Visualizer
homepagehttps://github.com/holmesv3/nitf-viz
repository
max_upload_size
id1214746
size6,731,332
Vaughn (holmesv3)

documentation

README

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

Commit count: 0

cargo fmt