<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <p>    Hello,</p>
    <p>I think this question belongs to the Openlayers list, but what I
      do is use the VRT driver with a generated VRT file that consists
      of multiple PNG tiles. This has the benefit of allowing you to
      both use Openlayers directly with a {z}/{x}/{y} url and to be able
      to read and write it with GDAL all while retaining the
      geo-referencing data. It is a very good solution when the
      information changes very often, but its extent / projection /
      resolution stays the same (I serve weather data). The downside is
      that managing different zoom levels won't be automatic, you will
      have to implement it yourself.<br>
    </p>
    <p>If you don't need to access the same data both with Openlayers
      and GDAL, or if you need zoom levels, maybe you should take a look
      at the MBTiles driver and gdal2tiles. Or mapproxy which can manage
      the zoom levels for you. I have never used them so I don't have
      any advice.<br>
    </p>
    <p>Generally, if you only need to serve static raster data, you
      don't need any fancy servers, plain HTTP with Openlayers XYZ and a
      static directory structure will do.</p>
    <p>Also, the 32 bit data will need to get converted to integers at
      some point. Offline with GDAL if you can afford the storage,
      online with mapproxy if you can afford the CPU, client-side with
      lots of custom Openlayers code if you can afford to lose some
      browser performance and none of the files is too big. <br>
    </p>
    <p>I think this should be your first decision - who will do the
      heavy lifting - the server or the client, and will it be once per
      data set, or at every request. Do you need dynamic meta data
      (extent, resolution, projection) which requires some protocol like
      WMTS, or is it mostly static, which is best served with simple
      HTTP.<br>
    </p>
    <div class="moz-cite-prefix">On 16/09/2020 01:01, Arun Govind wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAO+fXHOnm_btjmNuQX+Mjkdz6tM95cPDYcV+7MTqJOd=xabzdw@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">Hi,
        <div>I need advice on what is the best approach I should take?
          I'm not an expert in web mapping or its technologies and I'm
          trying to figure things as I go...</div>
        <div><br>
        </div>
        <div>I've several time-series (for an image date many types like
          true color, false color, ndvi, etc.) COG imagery files in
          Google Cloud buckets (unique; 1 bucket per user AOI) and so
          ideally I'll have several buckets. I want to serve these
          images using Openlayers (web mapping) and JavaScript
          (frontend), and the backend is GeoServer on a VPS Linux
          server.<br clear="all">
          <div>A Google developer advised "you can use mapproxy and make
            it serve off of tiled image URLs that look like this: <i><a
href="https://storage.cloud.google.com/my-bucket-name/zxy/{z}/{x}/{y}.png"
                moz-do-not-send="true">https://storage.cloud.google.com/my-bucket-name/zxy/{z}/{x}/{y}.png</a></i>"</div>
          <div>Other options suggested include: VRT with GDAL VSIGS, or
            tile index.</div>
          <div><a
href="https://github.com/mapserver/mapserver/wiki/Render-images-straight-out-of-S3-with-the-vsicurl-driver"
              moz-do-not-send="true">https://github.com/mapserver/mapserver/wiki/Render-images-straight-out-of-S3-with-the-vsicurl-driver</a> </div>
          <div> <br>
          </div>
          <div>Each COG image is 1 to 10 MB and few years for user AOI
            will be 1 to 10 GB. Obviously, if there are 100 or 1000 user
            AOIs, the total file size will be in few TBs. A user will
            have access or can view only images for their AOI. Some COG
            are 32 bit float while others are 8 bit.</div>
          <div><br>
          </div>
          <div>I am getting lost with all the options and wondering if
            you can please help me narrow it down? I'll appreciate your
            help. Thanks.</div>
          -- <br>
          <div dir="ltr" class="gmail_signature"
            data-smartmail="gmail_signature">
            <div dir="ltr">
              <div>
                <div dir="ltr">
                  <div><font face="tahoma, sans-serif">Sincerely yours,
                      <br>
                      <b>Arun Govind</b></font></div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
gdal-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gdal-dev@lists.osgeo.org" moz-do-not-send="true">gdal-dev@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/gdal-dev" moz-do-not-send="true">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a></pre>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
Momtchil Momtchev <a class="moz-txt-link-rfc2396E" href="mailto:momtchil@momtchev.com" moz-do-not-send="true"><momtchil@momtchev.com></a>
</pre>
  </body>
</html>