CIB (Controlled Image Base) Reader/Writer
Licensing options for this format begin with FME Desktop Professional Edition.
The CIB Reader and Writer allow FME to read and write data in the CIB (Controlled Image Base) format.
Overview
CIB is a dataset of orthophotos, made from rectified grayscale aerial images. CIB supports various weapons, C3I theater battle management, mission planning, digital moving map, terrain analysis, simulation, and intelligence systems.
CIB files are usually physically formatted within a National Imagery Transmission Format (NITF) message. The CIB reader can read CIB files with or without the NITF message wrapper. The CIB writer can create CIB datasets with or without the NITF message wrapper. These options available in the Writer Feature Type Parameters.
The CIB Reader and Writer implement the following standards:
- MIL-C-89041
- MIL-STD-2411
- MIL-STD-2411-1
- MIL-STD-2411-2
CIB image data is of appropriate size and quality for use in military command and control systems, ground-based force to unit-level mission planning systems, and aircraft cockpit displays. CIB is intended to satisfy the needs of a broad range of military users in its compression ratio and file format.
In CIB, the projection system is ARC. The ARC system, as described in MIL-A-89007, divides the surface of the earth ellipsoid into 18 latitudinal bands called zones. Zones 1-9 cover the Northern hemisphere and zones 10-18 (A through J, exclusive of I in CIB) cover the Southern hemisphere. One zone in each hemisphere covers the polar areas. Each non-polar zone covers a part of the ellipsoid between two latitude limits and completely encircles the Earth. The datum for CIB shall be WGS-84, as defined by DMA TM 8358.1. The WGS-84 coordinates for longitude and latitude in CIB are signed values in the range -180 degrees <= longitude <= +180 degrees and -90 degrees <= latitude <= +90 degrees.
The CIB dataset is composed of rectangular grids of frames of pixels for each zone. CIB can be distributed in rectangular or non-rectangular areas, and with contiguous or non-contiguous coverage. Each frame is represented by a discrete file. The CIB library is seamless; that is, the edges of contiguous source maps are indistinguishable, except by color variations that are due to the differences between the colors or patterns in original source graphics.
CIB data files are arranged in a hierarchical folder/subfolder structure. All names and labels, and the format and structure of folders shall adhere to the conventions specified in MIL-STD-2411. The root folder contains a table of contents file (A.TOC), one or more folders of frame files, and one or more overview images. Currently the overview images are not used.
The ARC system divides the surfaces of the earth ellipsoid into 18 latitudinal bands called zones. The CIB database is composed of rectangular grids of frames of pixels for each zone. Each frame is represented by a discrete file, and the data files are arranged in a hierarchical folder/subfolder structure. The location and name of each file are recorded in a CIB Table of Contents (TOC) file in the root folder.
The TOC file provides an overview of the data contents of the distribution media. It stores path names to each of the frame files. CIB producers will choose the number of frame file folders in a given dataset and convention for assigning frame files to folders. Each frame file folder on a given dataset shall be uniquely named in a manner to be determined by an authorized producer. The producers may also assign nested frame file folders as needed to organize the frame files, using a variable hierarchy. The CIB Writer in FME creates a unique frame file folder for each data series code, as described in the attribute section below. The frame files contain the tiled image and support data for the geographic frames on a CIB dataset. The frame file naming convention shall be in accordance with MIL-STD-2411.
Each frame shall comprise a rectangular array of 1536 by 1536 pixels (2,359,296 pixels). Each frame shall be tiled into grid of 6 by 6 subframes (36 subframes). Each subframe shall comprise a rectangular array of 256 by 256 output pixels (65,536 pixels). All frames and subframes within a zone shall abut in a mutually exclusive manner without any pixel overlap or pixel redundancy. The northern and southern boundaries of a zone generally will not fall exactly on the northern and southern boundaries of a frame or subframe. There shall be frame overlap between the zones.
The numbering convention for entities that are internal to the frame files shall conform to MIL-STD-2411. All index numbers shall start from 0. Rows and columns of subframes in a frame, pixels, and indices in frame file subentities shall be counted from 0. The origin for the subframe and pixel numbering within frames and subframes shall be from the upper left corner. Subframes and pixels shall be counted in row-major order from the origin. In addition, CIB frames may be considered to form conceptual rows and columns within zones. This concept is used to define the naming convention of frames for various scales by using the scale and zone specific frame number. The rows and columns are numbered from 0. The origin for counting non-polar frame rows and columns in both the northern and southern hemispheres is the Southern-most latitude of the zone, and 180 degree west longitude, with columns counted in an easterly direction from the origin. The origin for counting polar frames is the lower-left corner of the polar zone, with rows and columns numbered from that origin.
For the non-polar zones, some visual distortion is present due to a stretch at the poleward latitude and shrink at the equatorward latitude in the East-West direction. There is no distortion along a selected parallel at the mid-latitude of each zone. Since an entire frame file of overlap is included between zones, there can be noticeable visual distortion in the overlap area for the very small scale maps (e.g., GNC, JNC). Distortion in the polar zones is less than 10% for most scales.
The CIB format itself allows updates/replacements of frame files. However, the current versions of CIB Reader and Writer in FME do not support CIB updates/replacements.
During compression, the available colors in the source data shall be quantized to a maximum of 216 colors in the CIB frame files. The quantized colors shall be defined in a LUT with 216 entries. A 217th entry is reserved for transparent pixels, for cases where the data is missing or not available at the given geographic location. Each color entry is a 1 byte grayscale value. The grayscale value in the CIB color table for the 217th entry (index 216, for transparent pixels) is 0.
Spatial compression shall be performed using a Vector Quantization (VQ) algorithm that employs a 4 x 4 compression kernel size with 4096 codebook entries.
The CIB format also supports uncompressed data, but this is not currently supported by FME.
Reader Overview
FME considers a single CIB TOC file to be a dataset.
The CIB TOC file contains the location and name of the frame files. The frame files are raster files containing pixel data.
Writer Overview
FME considers a CIB destination dataset to be a container folder name. Each feature type has a subfolder inside the container folder. Inside each subfolder, there is a table of contents file A.TOC and one or more subfolders containing some frame files. The frame files and their subfolders are named according to the specification MIL-STD-2411.
All raster features of the same CIB feature type are grouped under one table of contents file. Each raster feature represents one boundary rectangle basically, but when the extents of the raster feature overlap two or more zones, the raster feature will be broken down into multiple boundary rectangles, each of which covers the raster subset in one zone. According to the specification, adjacent zones overlap each other, and the raster data in the intersection area will be repeated in the two boundary rectangles. Since each zone has a specific vertical/horizontal intervals and resolutions, the boundary rectangles may need to be resampled.
Each boundary rectangle will be broken down into one or more frame files. Each frame file has a size of 1536 x 1536. When the number of rows or columns in a frame is less than 4, the writer will not create the frame file, since the writer requires at least 4 rows and columns to do the spatial compression. The generated palette will have 216 or 217 entries depending on whether a NoData value is present. Each palette entry is a 1-byte grayscale value.
Among all the format attributes, the cib_frame_data_series_code is the most important. The data series code determines the resolution of the destination dataset. According to MIL-STD-2411-1, there are 5 fixed resolutions, and 1 variable resolution. The resolution affects the spacing of the frame files in each zone. When the source raster does not have the correct spacing, the CIB writer must resample the raster to match the spacing of the frame.
Please see Feature Representation for the list of possible format attribute values.
FME Raster Features
FME raster features represent raster data and use several concepts that are unlike those used in the handling of vector data. The topics below describe how FME processes raster data.
The CIB reader produces rasters with a single UInt8 band that has a Gray8 palette.
The CIB writer accepts only rasters with a single Gray8 band.