header.channels().insert("R", IMF::Channel(IMF::HALF));
header.channels().insert("G", IMF::Channel(IMF::HALF));
header.channels().insert("B", IMF::Channel(IMF::HALF));
header.channels().insert("A", IMF::Channel(IMF::HALF));
header.channels().insert("Depth", IMF::Channel(IMF::HALF));
header.channels().insert("X", IMF::Channel(IMF::FLOAT));
header.channels().insert("Y", IMF::Channel(IMF::FLOAT));
header.channels().insert("Z", IMF::Channel(IMF::FLOAT));
Seemed to work in Natron (which is all I have to test), if the names should be defined differently just let me know.