On Sunday, 26 February 2023 2:33:31 PM AEDT Amadeus WM via gdal-dev wrote: > So I just noticed that if I call > > dataset->SetMetadataItem(); > > then it creates a file out.ntf.aux.xml and whatever fields I set go in > there. Both NITF_ICORDS and NITF_IGEOLO are there, and IGEOLO need not be > a real value, it gets set to whatever I set it to. > > Is there any way to put those fields in out.ntf and not in > out.ntf.aux.xml? What determines where they go?
See https://gdal.org/drivers/raster/nitf.html#creation-issues in particular, where it says Most file header, imagery header metadata and security fields can be set with appropriate creation options (although they are reported as metadata item, but must not be set as metadata). For instance setting “FTITLE=Image of abandoned missile silo south west of Karsk” in the creation option list would result in setting of the FTITLE field in the NITF file header. Use the official field names from the NITF specification document; do not put the “NITF_” prefix that is reported when asking the metadata list. Try: char **papszOptions = NULL; papszOptions = CSLSetNameValue( papszOptions, "ICORDS", "D" ); papszOptions = CSLSetNameValue( papszOptions, "IGEOLO", "+28.563-080.578+28.563-080.577+28.562-080.577+28.562-080.578" ); and pass those options to your Create() call. I'll say it again: creation options, not metadata. Brad _______________________________________________ gdal-dev mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/gdal-dev
