NITF——国家图像传输格式

司机简称

NITF

Driver built-in by default

This driver is built-in by default

GDAL支持读取NITF图像文件的多个子类型,并编写简单的NITF 2.1文件。具有未压缩、ARIDPCM、JPEG压缩、JPEG2000(带有Kakadu、ECW SDKs或其他JPEG2000驱动程序)或VQ压缩图像的NITF 1.1、NITF 2.0、NITF 2.1和NSIF 1.0文件应可读。

读取支持测试已经在各种产品上进行了测试,包括来自RPF产品的CIB和CADRG框架、ECRG框架、HRE产品。

读取伪彩色图像的颜色表。在某些情况下,可以识别nodata值。

如果可用,则从图像标题中的IGEOLO信息读取纬度/长范围。如果RPF辅助数据中有高精度的纬度/经度地理参考信息,则优先使用低精度的IGEOLO信息。如果找到block a实例,如果块数据覆盖整个图像,则使用BLOCKA的更高精度坐标-即L_LINES字段,该块的行数等于图像的行数。此外,所有BLOCKA实例都作为元数据返回。如果GeoSDE TRE可用,它们将用于提供更高精度的坐标。如果RPC00B(或RPC00A)TRE可用,则它用于报告RPC元数据。从GDAL 2.2开始,RPC信息可以从\u RPC.txt文件中检索,并且它们将优先于内部RPC00B值使用,因为后者的精度低于外部\u RPC.txt中存储的精度。

大多数文件头和图像头字段都作为数据集级元数据返回。

驱动程序功能

Supports CreateCopy()

This driver supports the GDALDriver::CreateCopy() operation

Supports Create()

This driver supports the GDALDriver::Create() operation

Supports Georeferencing

This driver supports georeferencing

Supports VirtualIO

This driver supports virtual I/O operations (/vsimem/, etc.)

创建问题

在导出时,NITF文件总是作为NITF 2.1编写,只有一个图像,没有其他辅助层。默认情况下,图像是未压缩的,但也可以使用JPEG和JPEG2000压缩。地理参考只能用于使用地理坐标系或UTM WGS84投影的图像。坐标被隐式地视为WGS84,即使它们实际上位于不同的地理坐标系中。可以为8bit图像编写伪彩色表。

除了面向导出的CreateCopy()API之外,还可以使用create()创建一个空的NITF文件,并根据需要编写图像。但是,除非提供了适当的IREP和ICORDS创建选项,否则不支持使用此方法编写伪颜色表和地理参考。

创建选项:

  • 大多数文件头、图像头元数据和安全字段都可以使用适当的 创建选项 (虽然它们报告为元数据项,但不能设置为元数据)。例如设置 "FTITLE=Image of abandoned missile silo south west of Karsk" 在创建选项列表中,将在NITF文件头中设置FTITLE字段。使用NITF规范文档中的正式字段名;不要在询问元数据列表时使用报告的“NITF”前缀。

  • IC=NC/C3/M3/C8 :设置压缩方法。

    • NC是默认值,表示不压缩。

    • C3表示JPEG压缩,仅适用于CreateCopy()方法。可以使用特定于质量和渐进JPEG的创建选项。见 JPEG—JPEG JFIF文件格式 司机。可以写入多块图像。

    • M3是C3的变体。唯一的区别是写了一个块映射,它允许快速查找任何块。

    • C8 means JPEG2000 compression (one block) and is available for CreateCopy() and/or Create() methods. See below paragraph for specificities.

  • NUMI=n : Number of images. Default = 1. See Advanced GDAL NITF Driver Information for the procedure to follow to write several images in a NITF file.

  • WRITE_ALL_IMAGES=YES/NO: (GDAL >= 3.4) (Only taken into account if NUMI > 1, and on a new NITF file). When set to NO (the default), this causes the driver to only write the first image segment and reserve just the space for extra NUMI-1 images in the file header. When WRITE_ALL_IMAGES=YES, the space for all images is allocated, which is only compatible with IC=NC (uncompressed images). (Behavior with GDAL < 3.4 was similar to WRITE_ALL_IMAGES=YES)

  • ICORDS=G/D/N/S :设置为“G”以确保为以后通过SetGeoTransform()设置的地理角坐标(在DMS中)保留空间;设置为“D”以十进制表示的地理坐标;设置为“N”表示北半球的UTM WGS84投影;设置为“S”表示南半球的UTM WGS84投影(仅用于Create()方法,不是CreateCopy())。如果创建了一个新的NITF文件并为ICORDS指定了“N”或“S”,则需要稍后调用SetProjection方法并使用一致的UTM SRS来设置UTM区域号(否则将默认为区域0)。

  • FHDR :可以选择文件版本,但目前仅支持两种变体:“NITF02.10”(默认值)和“NSIF01.00”。

  • IREP :设置为“RGB/LUT”为每个输出波段的颜色表保留空间。(仅用于Create()方法,而不是CreateCopy())。

  • IREPBAND :按波段顺序以逗号分隔的波段IRepBand列表。

  • ISUBCAT :按波段顺序以逗号分隔的波段子类别列表。

  • LUT_SIZE :设置为控制RGB/LUT频带的伪彩色表的大小。如果不存在,则假定值为256。(仅用于Create()方法,而不是CreateCopy())。

  • BLOCKXSIZE=n :设置块宽度。

  • BLOCKYSIZE=n :设置块高度。

  • BLOCKA_*= :如果一组完整的BLOCKA选项与读取带有BLOCKA TREs的NITF文件时报告的NITF_BLOCKA元数据具有完全相同的组织,则将使用BLOCKA TREs创建一个文件。

  • TRE=tre-name=tre-contents :可以使用一个或多个TRE创建选项将任意用户定义的TRE写入图像头。tre名称最多应为6个字符,如果包含反斜杠或零字节,则tre内容应为“反斜杠转义”。参数的格式与读取时在TRE元数据域中返回的格式相同。

  • FILE_TRE=tre-name=tre-contents :与上述选项类似,只是tre写入文件头,而不是图像头。

  • DES=des-name=des-contents :可以提供一个或多个DES创建选项,将任意用户定义的DES写入NITF文件。des名称最多应为25个字符,如果des内容包含反斜杠或零字节,则des内容应为“反斜杠转义”,如cplessestring(str,-1,CPLESu BackslashQuotable)。des内容必须包含标准des字段,从DESVER开始(见MIL-STD-2500C)。当前未在CreateCopy()中复制des,但可以与Create()一起显式添加。

  • NUMDES=n: (GDAL >= 3.4) Number of DES segments. Only to be used on first image segment

  • SDE_TRE=YES/NO :编写GEOLOB和GEOPSB TREs以获得更精确的地理参考。这仅限于地理SRS和CreateCopy()。

  • RPC00B=YES/NO :(GDAL>=2.2.0)从源RPC00B TRE(如果存在)(NITF到NITF转换)或从RPC元数据域中找到的值写入RPC00B TRE。目前CreateCopy()只考虑这一点。请注意,NITF RPC00B格式使用有限的prevision ASCII编码数字。默认为“是”。

  • RPCTXT=YES/NO :(GDAL>=2.2.0)是否在外部RPC.txt文件中写入RPC元数据。这可能很有用,因为内部RPC00B TRE的精度有限。目前CreateCopy()只考虑这一点。默认为否。

  • USE_SRC_NITF_METADATA=YES/NO :(GDAL>=2.3.0)是否使用输入数据集中的NITF_xxx元数据项和TRE段。如果更改输入文件的地理参考,则可能需要将此选项设置为“否”。默认为“是”。

JPEG2000 compression (write support)

JPEG2000 compression is available when using the IC=C8 creation option, if the JP2ECW (SDK 3.3, or for later versions assuming the user has the key to enable JPEG2000 writing), JP2KAK or JP2OpenJPEG driver are available.

They are tried in that order when several ones are available, unless the JPEG2000_DRIVER creation option (added in GDAL 3.4) is set to explicitly specify the JPEG2000 capable driver to use.

  • JP2ECW: The TARGET (target size reduction as a percentage of the original) and PROFILE=BASELINE_0/BASELINE_1/BASELINE_2/NPJE/EPJE JP2ECW-specific creation options can be used. Both CreateCopy() and/or Create() methods are available. By default the NPJE PROFILE will be used (thus implying BLOCKXSIZE=BLOCKYSIZE=1024).

  • JP2KAK :可以使用QUALITY、BLOCKXSIZE、BLOCKYSIZE、LAYERS、ROI JP2KAK特定的创建选项。只有CreateCopy()方法可用。

  • JP2OpenJPEG :(仅在CreateCopy()情况下)。可以使用特定于JP2OpenJPEG的创建选项QUALITY、BLOCKXSIZE和BLOCKYSIZE JP2OpenJPEG。默认情况下,将使用BLOCKXSIZE=BLOCKYSIZE=1024。

    Starting with GDAL 3.4.0 and OpenJPEG 2.5, the PROFILE=NPJE_VISUALLY_LOSSLESS/NPJE_NUMERICALLY_LOSSLESS creation option can be used to create files that comply with STDI-0006 NITF Version 2.1 Commercial Dataset Requirements Document (NCDRD). For NPJE_VISUALLY_LOSSLESS, the last quality layer defaults to 3.9 bits per pixel and per band. It can be adjusted with the QUALITY creation option. When those profiles are specified, the J2KLRA TRE will also be written, unless the J2KLRA=NO creation option is specified.

信用卡

作者希望感谢 AUG Signals 以及 GeoConnections 程序支持这个驱动程序的开发,并感谢史蒂夫罗林森(JPEG),雷纳贝克(BLOCKA)协助添加功能。