<!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>