<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi Patrick,</p>
<p><br>
</p>
<p>It feels a bit strange that write support for CADRG is needed in
2025, but besides that, your proposal sounds solid as far as I
remember the details of those formats. I guess the most
interesting part will be write support for vector quantization to
figure out the VQ LUT that minimize loss. Hopefully there is
literature on the subject.</p>
<p><br>
</p>
<p>Even<br>
</p>
<p><br>
</p>
<div class="moz-cite-prefix">Le 11/06/2025 à 14:51, Patrik Sylve via
gdal-dev a écrit :<br>
</div>
<blockquote type="cite"
cite="mid:GV3P280MB05157D48ED864230199FCD5EB375A@GV3P280MB0515.SWEP280.PROD.OUTLOOK.COM">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" style="display:none;">P {margin-top:0;margin-bottom:0;}</style>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
Hi,</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
We are exploring the possibility of adding write support for
CADRG format in GDAL and would appreciate some community
feedback before starting implementation.</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
There is currently no open-source workflow for creating CADRG.
GDAL can already read CADRG via RPFTOC/NITF drivers, so
extending that work feels like a good next step.</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
Short background on CADRG format:</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
CADRG is a Raster Product Format (RPF) that consists of a TOC
file referencing data frames. Each data frame is stored as a
National Imagery Transmission Format (NITF) message.</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
GDAL currently supports:</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
* Reading CADRG (a.toc) via the RPFTOC driver</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
* Reading individual CADRG frames via the NITF driver</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
* Writing NITF images, both without and with JPEG compression</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
<br>
</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
To implement a CADRG writer, we could extend the existing NITF
and RPFTOC drivers:</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
NITF:</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
* Implement Vector Quantisation compression</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
* Add option to set Frame size</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
** A CADRG frame must be 1536x1536 pixels, so output would be
tiled</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
* Add option to set CADRG scale</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
RPFTOC:</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
* Extend with 'write' mode</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
** Internally call NITF driver to generate CADRG compliant data
frames</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
** Generate a .toc file per MIL-STD-2411</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
Example usage, create a CADRG from a TIF-file:</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="line-height: 19px; margin-left: 40px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
gdal_translate input.tif ./RPF \</div>
<div
style="line-height: 19px; margin-left: 40px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
-of RPFTOC \</div>
<div
style="line-height: 19px; margin-left: 40px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
-co "PRODUCT=CADRG" \</div>
<div
style="line-height: 19px; margin-left: 40px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<b> # NITF file header options</b></div>
<div
style="line-height: 19px; margin-left: 40px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
-co "FTITLE=My CADRG Product" \</div>
<div
style="line-height: 19px; margin-left: 40px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
-co "FSCLAS=U" \</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
...</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
Output:</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
└── RPF/</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt;"
class="elementToProof">
<span style="color: rgb(0, 0, 0);">├─── a.toc</span></div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt;"
class="elementToProof">
<span style="color: rgb(0, 0, 0);">└─── frames/</span></div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt;"
class="elementToProof">
<span style="color: rgb(0, 0, 0);">├──── 00AVL01C.TL6</span></div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt;"
class="elementToProof">
<span style="color: rgb(0, 0, 0);">└──── 00AVM01C.TL6</span></div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
<br>
<br>
</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
Drivers:</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
* <a class="moz-txt-link-freetext" href="https://gdal.org/en/stable/drivers/raster/rpftoc.html">https://gdal.org/en/stable/drivers/raster/rpftoc.html</a></div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
* <a class="moz-txt-link-freetext" href="https://gdal.org/en/stable/drivers/raster/nitf.html">https://gdal.org/en/stable/drivers/raster/nitf.html</a></div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
Standards:</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
* CADRG:
<a class="moz-txt-link-freetext" href="http://everyspec.com/MIL-PRF/MIL-PRF-080000-99999/MIL-PRF-89038_25371/">http://everyspec.com/MIL-PRF/MIL-PRF-080000-99999/MIL-PRF-89038_25371/</a></div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
* RPF:
<a class="moz-txt-link-freetext" href="http://everyspec.com/MIL-STD/MIL-STD-2000-2999/MIL-STD-2411_6903/">http://everyspec.com/MIL-STD/MIL-STD-2000-2999/MIL-STD-2411_6903/</a></div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
<br>
</div>
<div
style="line-height: 19px; font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
Would this be a welcomed addition? Any thoughts or feedback is
appreciated.</div>
<div id="Signature" class="elementToProof">
<div class="elementToProof"
style="font-family: "Arial", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof"
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<p
style="text-align: left; text-indent: 0px; background-color: rgb(255, 255, 255); margin: 0px;"
class="elementToProof">
<span
style="font-family: Arial, sans-serif, serif, EmojiFont; font-size: 12pt; color: black;">Best
regards / Vänliga hälsningar</span></p>
<div style="background-color: rgb(255, 255, 255); margin: 0px;"
class="elementToProof">
<div
style="background-color: rgb(255, 255, 255); margin: 0px;"
class="elementToProof">
</div>
<div
style="text-align: left; text-indent: 0px; background-color: rgb(255, 255, 255); margin: 0px; font-family: Arial, sans-serif, serif, EmojiFont; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<p
style="text-align: left; text-indent: 0px; line-height: 19.2px; background-color: rgb(255, 255, 255); margin: 0px;"
class="elementToProof">
<span
style="font-family: Arial, Helvetica, sans-serif, serif, EmojiFont; font-size: 14pt; color: rgb(0, 0, 0);"><b>Patrik
Sylve</b></span></p>
<p
style="text-align: left; text-indent: 0px; line-height: 19.2px; background-color: rgb(255, 255, 255); margin: 0px;"
class="elementToProof">
<span
style="font-family: Arial, Helvetica, sans-serif, serif, EmojiFont; font-size: 12pt; color: rgb(0, 0, 0);">Software
Developer</span></p>
<p
style="text-align: left; text-indent: 0px; line-height: 19.2px; background-color: rgb(255, 255, 255); margin: 0px;"
class="elementToProof">
<span
style="font-family: Arial, Helvetica, sans-serif, serif, EmojiFont; font-size: 9pt; color: rgb(200, 38, 19); line-height: 17.6px;"><b><br>
</b></span></p>
<p
style="text-align: left; text-indent: 0px; line-height: 19.2px; background-color: rgb(255, 255, 255); margin: 0px;"
class="elementToProof">
<span
style="font-family: Arial, Helvetica, sans-serif, serif, EmojiFont; font-size: 9pt; color: rgb(200, 38, 19); line-height: 17.6px;"><b>E:</b></span><span
style="font-family: Arial, Helvetica, sans-serif, serif, EmojiFont; font-size: 9pt; color: rgb(0, 0, 0); line-height: 17.6px;"><b> </b><a class="moz-txt-link-abbreviated" href="mailto:patrik.sylve@t-kartor.com">patrik.sylve@t-kartor.com</a></span></p>
<p
style="text-align: left; text-indent: 0px; line-height: 19.2px; background-color: rgb(255, 255, 255); margin: 0px;"
class="elementToProof">
<span
style="font-family: Arial, Helvetica, sans-serif, serif, EmojiFont; font-size: 9pt; color: rgb(200, 38, 19); line-height: 17.6px;"><br>
</span></p>
<p
style="text-align: left; text-indent: 0px; line-height: 19.2px; background-color: rgb(255, 255, 255); margin: 0px;"
class="elementToProof">
<span
style="font-family: Arial, Helvetica, sans-serif, serif, EmojiFont; font-size: 9pt; color: rgb(0, 0, 0); line-height: 17.6px;"><a
href="http://www.t-kartor.com/" target="_blank"
id="LPlnk967518" class="x_OWAAutoLink"
title="Original URL: http://www.t-kartor.com/. Click or tap if you trust this link."
rel="noopener noreferrer"
style="margin-top: 0px; margin-bottom: 0px;"
originalsrc="http://www.t-kartor.com/" data-ogsc=""
data-linkindex="1" data-auth="NotApplicable"
moz-do-not-send="true">www.t-kartor.com</a></span></p>
<p
style="text-align: left; text-indent: 0px; line-height: 19.2px; background-color: rgb(255, 255, 255); margin: 0px;"
class="elementToProof">
<span
style="font-family: "Segoe UI", "Segoe UI Web (West European)", -apple-system, "system-ui", Roboto, "Helvetica Neue", sans-serif, serif, EmojiFont; font-size: 8pt; color: rgb(36, 36, 36);"><br>
</span></p>
<p
style="text-align: left; text-indent: 0px; line-height: 19.2px; background-color: rgb(255, 255, 255); margin: 0px;"
class="elementToProof">
<span
style="font-family: "Open Sans", sans-serif, serif, EmojiFont; font-size: 11pt; color: rgb(0, 0, 0); line-height: 17.6px;"><img
id="x_x_x_x_image_0"
style="width: 182px; height: 32px; max-width: 780px; min-width: auto; min-height: auto; margin: 0px;"
data-ogsc="" data-outlook-trace="F:5|T:5"
src="cid:part1.AW0pxL0n.1AjfSipt@spatialys.com" class=""
width="182" height="32"></span></p>
<p
style="text-align: left; text-indent: 0px; line-height: 19.2px; background-color: rgb(255, 255, 255); margin: 0px;"
class="elementToProof">
<span
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 8pt; color: rgb(102, 102, 102); line-height: 17.6px;"><i>This
e-mail is private and confidential between the sender
and the addressee. In the event of misdirection, the
recipient</i></span></p>
<p
style="text-align: left; text-indent: 0px; line-height: 19.2px; background-color: rgb(255, 255, 255); margin: 0px;"
class="elementToProof">
<span
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 8pt; color: rgb(102, 102, 102); line-height: 17.6px;"><i>is
prohibited from using, copying or disseminating it or
any information in it. Please notify the above of any
such misdirection.</i></span></p>
</div>
<div class="elementToProof"
style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
gdal-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/gdal-dev">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a>
</pre>
</blockquote>
<pre class="moz-signature" cols="72">--
<a class="moz-txt-link-freetext" href="http://www.spatialys.com">http://www.spatialys.com</a>
My software is free, but my time generally not.</pre>
</body>
</html>