Hello,

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.

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.

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.

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.

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.

On 16/09/2020 01:01, Arun Govind wrote:
Hi,
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...

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. A Google developer advised "you can use mapproxy and make it serve off of tiled image URLs that look like this: /https://storage.cloud.google.com/my-bucket-name/zxy/{z}/{x}/{y}.png/";
Other options suggested include: VRT with GDAL VSIGS, or tile index.
https://github.com/mapserver/mapserver/wiki/Render-images-straight-out-of-S3-with-the-vsicurl-driver

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.

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.
--
Sincerely yours,
*Arun Govind*

_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

--
Momtchil Momtchev<momtc...@momtchev.com>

_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to