MCPcopy Create free account
hub / github.com/PDAL/PDAL / write

Method write

plugins/nitf/io/NitfFileWriter.cpp:81–274  ·  view source on GitHub ↗

NOTE: Throws except::Throwable.

Source from the content-addressed store, hash-verified

79//NOTE: Throws except::Throwable.
80//
81void NitfFileWriter::write()
82{
83 if (m_fileTitle.empty())
84 m_fileTitle = FileUtils::getFilename(m_filename);
85
86 ::nitf::Record record(NITF_VER_21);
87 ::nitf::FileHeader header = record.getHeader();
88
89 // This check would be better in an initialize() function, but we can't
90 // because this is a flex writer and we don't know the filename
91 // until the execute() step.
92 if (m_fileTitle.size() > header.getFileTitle().getLength())
93 throw error("Can't write file. FTITLE field (usually filename) "
94 "can't be longer than " +
95 Utils::toString(header.getFileTitle().getLength()) +
96 ". Use 'ftitle' option to set appropriately sized FTITLE.");
97
98 header.getFileHeader().set("NITF");
99 header.getComplianceLevel().set(m_cLevel);
100 header.getSystemType().set(m_sType);
101 header.getOriginStationID().set(m_oStationId);
102 header.getFileTitle().set(m_fileTitle);
103 header.getClassification().set(m_fileClass);
104 header.getMessageCopyNum().set("00000");
105 header.getMessageNumCopies().set("00000");
106 header.getEncrypted().set("0");
107 header.getBackgroundColor().setRawData(const_cast<char*>("000"), 3);
108 header.getOriginatorName().set(m_origName);
109 header.getOriginatorPhone().set(m_origPhone);
110 header.getSecurityGroup().getClassificationSystem().set(
111 m_securityClassificationSystem);
112 header.getSecurityGroup().getControlAndHandling().set(
113 m_securityControlAndHandling);
114 header.getSecurityGroup().getClassificationText().set(m_sic);
115
116 ::nitf::DESegment des = record.newDataExtensionSegment();
117
118 des.getSubheader().getFilePartType().set("DE");
119 des.getSubheader().getTypeID().set("LIDARA DES");
120 des.getSubheader().getVersion().set("01");
121 // We currently use the file classification for the subheader, since the
122 // only thing we're writing is the data extension.
123 des.getSubheader().getSecurityClass().set(m_fileClass);
124 ::nitf::FileSecurity security = record.getHeader().getSecurityGroup();
125 des.getSubheader().setSecurityGroup(security.clone());
126
127 ::nitf::TRE usrHdr("LIDARA DES", "raw_data");
128 usrHdr.setField("raw_data", "not");
129 ::nitf::Field fld = usrHdr.getField("raw_data");
130 fld.setType(::nitf::Field::BINARY);
131
132 des.getSubheader().setSubheaderFields(usrHdr);
133
134 ::nitf::ImageSegment image = record.newImageSegment();
135 ::nitf::ImageSubheader subheader = image.getSubheader();
136
137 double corners[4][2];
138 corners[0][0] = m_bounds.maxy;

Callers 1

doneFileMethod · 0.45

Calls 14

getFilenameFunction · 0.85
trimFunction · 0.85
getFieldMethod · 0.80
errorClass · 0.70
toStringFunction · 0.50
emptyMethod · 0.45
sizeMethod · 0.45
setMethod · 0.45
setFieldMethod · 0.45
setTypeMethod · 0.45
initMethod · 0.45
toStringMethod · 0.45

Tested by

no test coverage detected