cogeotiff / www.cogeo.org

Cloud Optimized GeoTIFF website
http://cogeo.org
Apache License 2.0
90 stars 38 forks source link

Seeking advice for COG-based WMTS server with time dimension handling #35

Closed djhoese closed 4 years ago

djhoese commented 4 years ago

I was told this repository might be a good starting point for this conversation. If there is a better place for this, let me know.

A project I'm working on is going to try serving tiles of data on the geostationary satellite projection through a Web Mapping Tile Service (WMTS) server. The data is written to COGs right now and I'm looking at various WMS/WMTS solutions for serving the data. I'd like to keep the door open to hosting this data on cloud storage at some point (stored locally at first) which is why it seems like COGs or zarr or TileDB would be a good storage format. The two main issues I'm having is servers (MapServer, GeoServer, NASA OnEarth, etc) that either require data to be converted to another format, documentation that doesn't cover really cover raster formats with a time dimension, or other documentation difficulties.

Does anyone have experience with COGs in a Web Mapping Tile Service setup? Are COGs as the main storage format a problem with these services since they usually have to convert to PNGs? Any guidance would be appreciated.

vincentsarago commented 4 years ago

👋 @djhoese I guess for questions, we can use the mailing list (which we should link in the web page 😄): https://lists.osgeo.org/mailman/listinfo/cog

A short answer: Multiple solutions exist to serve tiles from COG

I'm going to closes this issue and if you need more info we can switch to the mailing list

jpaudoin commented 4 years ago

Hi David, On the Mundi Webservices platform, we are currently serving OGC WMS/WMTS services that relies on COG satellite images. For that, we use the Sentinel-Hub software from Sinergise https://www.sentinel-hub.com/ The Sentinel-Hub regularly parses the repository where the images are, and build a kind of database in order to enhance its OGC services performance. It serves a lot of different image formats and map projections on the fly (see their GetCapabilities stuff) all based on the underlying COG images. And this works pretty fine. As the images are multispectral, the Sentinel-Hub is also able to serve different layers based on a simple calculation on different bands, with a dedicated color map.

cholmes commented 4 years ago

MapServer should also work just fine with COG's, as the core of it is GDAL, which is where COG's started. GeoServer should read cog formatted data fine - the recommendations for formatting your data (like in https://www.slideshare.net/geosolutions/gs-steroids-sgiannecfoss4g20130103) are basically the same as the COG formatting. So you should be able to make an image mosaic in GeoServer with your already cog formatted data - though yeah, the documentation on how exactly to do this may not be great. I think there's also work on a true COG reader for GeoServer, but that's only needed when you move to cloud storage.

Though I'd actually go with the other suggestions - they are all a lot lighter weight, which speaks to the fact that if you put all your data in COG's then the tile server can be way simpler / less heavyweight. And if you run them on lambda they actually scale pretty infinitely, and costs also scale up and down with use.

djhoese commented 4 years ago

@cholmes For MapServer and COGs, I couldn't find documentation that described how to do time dimension stuff with rasters. At least not that I could understand. I'll take a look at the above suggestions and post on the mailing list if I have more questions. Thanks everyone.