Sensor Independent Derived Data (sarkit.sidd)

Python reference implementations of the suite of NGA.STND.0025 standardization documents that define the Sensor Independent Derived Data (SIDD) format.

Supported Versions

Note

As of 2025-09-26, there is only a single link for SIDD schema files on the NSG standards registry. The page has a name (SIDD XML Schema version 1.1.0) that does not match the contents (SIDD v3.0 schemas) and schemas for the urn:us:gov:ic:ism:13 namespace are omitted.

To get around these limitations, SARkit pulled SIDD schemas from other sources. Consult READMEs in the SIDD schema source directory for information on their provenance.

Data Structure & File Format

NitfSecurityFields(*, clas[, clsy, code, ...])

NITF Security Header/Subheader fields

NitfFileHeaderPart(*, ostaid[, ftitle, ...])

NITF header fields which are set according to a Program Specific Implementation Document

NitfImSubheaderPart(*[, tgtid, iid2, icom])

NITF image subheader fields which are set according to a Program Specific Implementation Document

NitfDeSubheaderPart(*, security[, desshrp, ...])

NITF DES subheader fields which are set according to a Program Specific Implementation Document

NitfReader(file)

Read a SIDD NITF

NitfMetadata(*, file_header_part[, images, ...])

Settable SIDD NITF metadata

NitfProductImageMetadata(*, xmltree, ...[, ...])

SIDD NITF product image metadata

NitfLegendMetadata(attach_row, attach_col, ...)

SIDD NITF legend metadata

NitfDedMetadata(nrows, ncols, im_subheader_part)

SIDD NITF Digital Elevation Data (DED) metadata

NitfProductSupportXmlMetadata(xmltree, ...)

SIDD NITF product support XML metadata

NitfSicdXmlMetadata(xmltree, de_subheader_part)

SIDD NITF SICD XML metadata

NitfWriter(file, metadata[, jbp_override])

Write a SIDD NITF

SegmentationImhdr(*, idlvl, ialvl, iloc, ...)

Per segment values computed by the SIDD Segmentation Algorithm

jbp_from_nitf_metadata(metadata)

Create a Jbp object from NitfMetadata

product_image_segment_mapping(jbp)

Determine which JBP segments comprise each SIDD product image

segmentation_algorithm(sidd_xmltrees)

Implementation of section 2.4.2.1 Segmentation Algorithm and 2.4.2.2 Image Segment Corner Coordinate Parameters

XML Metadata

XmlHelper(element_tree)

XmlHelper for SIDD

ElementWrapper(elem[, xsdhelper, ...])

ElementWrapper for SIDD that can set xsdhelper automatically.

XsdHelper(root_ns)

XsdHelper for SIDD

BoolType()

Transcoder for boolean (BOOL) XML parameter types.

DblType()

Transcoder for double-precision floating point (DBL) XML parameter types.

EnuType()

Transcoder for enumeration (ENU) XML parameter types.

IntType()

Transcoder for integer (INT) XML parameter types.

TxtType()

Transcoder for text (TXT) XML parameter types.

XdtType([force_utc])

Transcoder for XML dateTime (XDT) XML parameter types.

ParameterType()

Transcoder for TXT XML parameter types with a required "name" attribute.

FilterCoefficientType(attrib_type[, child_ns])

Transcoder for FilterCoefficients.

IntListType()

Transcoder for ints in a list XML parameter types.

SfaPointType()

Transcoder for double-precision floating point Simple Feature Access 2D or 3D Points.

LUTInfoType()

Transcoder for LUTInfo nodes under LookupTableType's Custom child.

LookupTableType()

Transcoder for XML parameters containing a list of ints and a size attribute.

Lookup3TableType()

Transcoder for XML parameters containing a list of comma-separated int triplets and a size attribute.

Transcoders with children in the urn:SICommon:1.0 namespace.

XyzType()

Transcoder for XML parameter types containing scalar X, Y, and Z components.

AngleMagnitudeType([child_ns])

Transcoder for double-precision floating point angle magnitude XML parameter type.

LatLonType()

Transcoder for XML parameter types containing scalar Lat and Lon components.

PolyCoef1dType()

Transcoder for one-dimensional polynomial (PolyCoef1D) XML parameter types.

PolyCoef2dType()

Transcoder for two-dimensional polynomial (PolyCoef2D) XML parameter types.

RangeAzimuthType([child_ns])

Transcoder for double-precision floating point range and azimuth XML parameter types.

RowColDblType([child_ns])

Transcoder for double-precision floating point row and column XML parameter types.

RowColIntType()

Transcoder for XML parameter types containing scalar, integer Row and Col components (RC_INT).

XyzPolyType()

Transcoder for XYZ_POLY XML parameter types containing triplets of 1D polynomials.

ImageCornersType()

Transcoder for GeoData/ImageCorners XML parameter types.

Calculations

Calculations defined by the SIDD standard. For more information see the sarkit.sidd.calculations namespace.

ecef_to_pixel(sidd_xmltree, p_ecef)

Convert ECEF coordinates to pixel grid coordinates

pixel_to_ecef(sidd_xmltree, pixel)

Convert pixel grid coordinates to ECEF coordinates

compute_angles(scene_center_ecef, ...[, ...])

Compute the angles defined in SIDD Volume 1, ExploitationFeatures Calculations

get_coordinate_system_type(sidd_xmltree)

Determine which coordinate system is used by a SIDD instance

Constants

VERSION_INFO

dict of {xml namespace: version-specific information}

PIXEL_TYPES

dict of {PixelType: pixel-type-specific information}

LI_MAX

maximum NITF image segment length in bytes (\(10^{10}-2\))

ILOC_MAX

maximum number of rows contained in a NITF image segment (99,999)

CLI Utilities

siddinfo

Display information about SIDD files

usage: siddinfo [-h] [--image-number IMAGE_NUMBER] [--segments] [--xml]
                [--raw {XML,image}]
                filename
filename
-h, --help

show this help message and exit

--image-number <image_number>
--segments, -s

Display Image Segment information

--xml, -x

Extract XML formatted for display

--raw {XML,image}

Extract raw bytes of a block

References

SIDD 1.0

[NGA.STND.0025-1_1.0]

National Center for Geospatial Intelligence Standards, “Sensor Independent Derived Data (SIDD), Vol. 1, Design & Implementation Description Document, Version 1.0”, 2011. https://nsgreg.nga.mil/doc/view?i=2203

[NGA.STND.0025-2_1.0]

National Center for Geospatial Intelligence Standards, “Sensor Independent Derived Data (SIDD), Vol. 2, NITF File Format Description Document, Version 1.0”, 2011. https://nsgreg.nga.mil/doc/view?i=2204

SIDD 2.0

[NGA.STND.0025-1_2.0]

National Center for Geospatial Intelligence Standards, “Sensor Independent Derived Data (SIDD), Vol. 1, Design & Implementation Description Document, Version 2.0”, 2019. https://nsgreg.nga.mil/doc/view?i=4906

[NGA.STND.0025-2_2.0]

National Center for Geospatial Intelligence Standards, “Sensor Independent Derived Data (SIDD), Vol. 2, NITF File Format Description Document, Version 2.0”, 2019. https://nsgreg.nga.mil/doc/view?i=4907

SIDD 3.0

[NGA.STND.0025-1_3.0]

National Center for Geospatial Intelligence Standards, “Sensor Independent Derived Data (SIDD), Vol. 1, Design & Implementation Description Document, Version 3.0”, 2021. https://nsgreg.nga.mil/doc/view?i=5440

[NGA.STND.0025-2_3.0]

National Center for Geospatial Intelligence Standards, “Sensor Independent Derived Data (SIDD), Vol. 2, NITF File Format Description Document, Version 3.0”, 2021. https://nsgreg.nga.mil/doc/view?i=5441