如何在gdal中将TRE添加到NITF图像文件中?

时间:2019-05-03 10:59:48

标签: c# image gdal

我正在尝试将位图对象转换为NITF 2.1(国家图像传输格式)文件,并且需要包括TRE(带标签的记录扩展名),特别是SENSRB块。 如何以简单的方式将gdal中的NITF文件的TRE添加到数据集中?

我正在使用NuGet软件包GDAL.NET/GDAL.NET.Core v2.3.1,并且成功编写了NITF文件。我还可以读取包含任何TRE块的NITF文件。

阅读很好:


Dataset dsIn = Gdal.Open(infilepath, Access.GA_ReadOnly);
metadata = dsIn.GetMetadata("xml:TRE");

变量元数据接收包含TRE的xml文本块。 但是用相同的方式写不起作用:

DataSet dsOut = driver.CreateCopy(outfilePath, dsIn, 0, options, null, null);
dsOut.SetMetadata(metadata , "xml:TRE");

xml块最终位于外部.aux.xml文件中,而不是在NITF文件中。

通过在options参数中指定显式记录,我设法创建了一个小的TRE:

metadataStrings = new[] {"FILE_TRE=CCINFA=0012AS 17ge:GENC:3:3-5:AUS00000"};
var dsOut = _drvOut.CreateCopy(outfilePath, ds, 0, metadataStrings, null, null);

在NITF文件中创建CCINFA记录。但是然后我必须创建整个SENSRB记录,这非常复杂。

我错过了什么吗?

0 个答案:

没有答案