Compensated Radar Signal Data (sarkit.crsd)

Python reference implementations of the suite of NGA.STND.0080 standardization documents that define the Compensated Radar Signal Data (CRSD) format.

Supported Versions

Data Structure & File Format

FileHeaderPart(*[, additional_kvps])

CRSD header fields which are set per program specific Product Design Document

Metadata(*[, file_header_part])

Settable CRSD metadata

Reader(file)

Read a CRSD file

Writer(file, metadata)

Write a CRSD file

read_file_header(file)

Read a file header.

binary_format_string_to_dtype(format_string)

Return the numpy.dtype corresponding to a binary format string.

dtype_to_binary_format_string(dtype)

Return the binary format string corresponding to a numpy.dtype.

mask_support_array(array[, nodata_hex])

Apply a NODATA hex string to a support array to mask the array.

Per Vector/Pulse Parameters

dtype_to_ppp_element(ns, dtype)

Return a CRSD/PPP XML element describing structured datatype dtype.

dtype_to_pvp_element(ns, dtype)

Return a CRSD/PVP XML element describing structured datatype dtype.

get_ppp_dtype(crsd_xmltree)

Get a structured datatype for the Per Pulse Parameter set defined in crsd_xmltree.

get_pvp_dtype(crsd_xmltree)

Get a structured datatype for the Per Vector Parameter set defined in crsd_xmltree.

get_defined_ppp_dtype(ns)

Get a structured datatype containing all defined PPPs from the requested namespace.

get_defined_pvp_dtype(ns)

Get a structured datatype containing all defined PVPs from the requested namespace.

XML Metadata

High-level classes and methods

XmlHelper(element_tree)

XmlHelper for CRSD

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

ElementWrapper for CRSD that can set xsdhelper automatically.

XsdHelper(root_ns)

XsdHelper for CRSD

Transcoders for defined XML parameter types

TxtType()

Transcoder for text (TXT) XML parameter types.

EnuType()

Transcoder for enumeration (ENU) XML parameter types.

BoolType()

Transcoder for boolean (BOOL) XML parameter types.

XdtType([force_utc])

Transcoder for XML dateTime (XDT) XML parameter types.

IntType()

Transcoder for integer (INT) XML parameter types.

DblType()

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

HexType()

Transcoder for HEX XML parameter types.

LineSampType([child_ns])

Transcoder for XML parameter types containing scalar Line and Sample components.

XyType([child_ns])

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

XyzType([child_ns])

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

LatLonType([child_ns])

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

LatLonHaeType([child_ns])

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

PolyType(*[, child_ns])

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

Poly2dType(*[, child_ns])

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

XyzPolyType([child_ns])

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

PxpType()

Transcoder for Per-x-Parameter (PxP) XML parameter types.

AddedPxpType()

Transcoder for Added Per-x-Parameter (APxP) XML parameter types.

MtxType(shape)

Transcoder for MTX XML parameter types containing a matrix.

EdfType()

Transcoder for Error Decorrelation Function (EDF) XML parameter types.

Derived/convenience transcoders

DefinedPxpType(format_string)

Transcoder for Per-x-Parameter (PxP) XML parameter types with a fixed size and format.

ImageAreaCornerPointsType()

Transcoder for CPHD-like SceneCoordinates/ImageAreaCornerPoints XML parameter types.

ParameterType()

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

Scene Coordinates

See also

CRSD explicitly references CPHD D & I SceneCoordinates branch. See Scene Coordinates & Collection Geometry in sarkit.cphd.

Convenience functions that operate on parsed XML trees:

ecf_to_iac(crsd_xmltree, pt)

Convert from ECF coordinates to IAC coordinates

iac_to_ecf(crsd_xmltree, pt_iac)

Convert from IAC coordinates to ECF coordinates

llh_to_iac(crsd_xmltree, pt_llh)

Convert from geodetic LLH coordinates to IAC coordinates

iac_to_llh(crsd_xmltree, pt_iac)

Convert from IAC coordinates to geodetic LLH coordinates

Receive Channel Parameters

compute_dwelltimes_using_poly(ch_id, iax, ...)

Compute center of dwell times and dwell times for scene points using polynomials.

compute_dwelltimes_using_dta(ch_id, iax, ...)

Compute center of dwell times and dwell times for scene points using a dwell time array.

Reference Geometry Parameters

compute_ref_point_parameters(rpt)

Compute the reference point parameters as in CRSD D&I 8.2

compute_apc_to_pt_geometry_parameters(apc, ...)

Compute APC geometry parameters as in CRSD D&I 8.3

compute_arp_to_rpt_geometry(xmt, vxmt, rcv, ...)

Compute aperture reference point geometry as in CRSD D&I 8.4.2

compute_reference_geometry(crsd_xmltree, *)

Return a CRSD/ReferenceGeometry XML element containing parameters computed from other metadata.

Antenna Parameters

interpolate_support_array(x, y, x_0, y_0, ...)

Method for computing values from a support array as in 9.3.2

compute_eb(eb0, f, fa_0, ebfs_dcxsf, ebfs_dcysf)

Compute the electrical boresight (EB) pointing vector at frequency f.

ApatParams(*, fa_0, cG_BS, EBFS_DCXSF, ...)

Set of Antenna Pattern parameters

ArrayElemSaMetadata(*, NumRows, NumCols, ...)

Gain/Phase array metadata

compute_apat(eb0, ap, f, *, apat_params, ...)

Compute the antenna beam shape pattern for selected antenna pointing vectors and frequencies.

compute_h_v_los_unit_vectors(apc, gpt)

Compute H, V, LOS unit vectors as in CRSD D&I 9.4.3

compute_h_v_pol_parameters(apc, uacx, uacy, ...)

Compute H, V polarization parameters as in CRSD D&I 9.4.4

Constants

VERSION_INFO

dict of {xml namespace: version-specific information}

DEFINED_HEADER_KEYS

set of KVP keys defined in the standard

SECTION_TERMINATOR

Two-byte sequence that marks the end of the file header

CLI Utilities

crsdinfo

Display information about CRSD files

usage: crsdinfo [-h] [--xml] [--channels] [--txsequences]
                [--raw {XML,SUPPORT,PPP,PVP,SIGNAL}]
                filename
filename
-h, --help

show this help message and exit

--xml, -x

Extract XML formatted for display

--channels, -c

List channels

--txsequences, -t

List transmit pulse sequences

--raw {XML,SUPPORT,PPP,PVP,SIGNAL}

Extract raw bytes of a BLOCK

References

CRSD 1.0

[NGA.STND.0080-1_1.0_CRSD]

National Center for Geospatial Intelligence Standards, “Compensated Radar Signal Data (CRSD), Vol. 1, Design & Implementation Description Document, Version 1.0”, 2025. https://nsgreg.nga.mil/doc/view?i=5672

[NGA.STND.0080-2_1.0_CRSD_schema]

National Center for Geospatial Intelligence Standards, “Compensated Radar Signal Data (CRSD) XML Schema, Version 1.0”, 2025. https://nsgreg.nga.mil/doc/view?i=5673