Hi, thank you for your replies! As I'm still a newbie especially with WMTS. I need to take a step back to the basics. Let's forget about multithreading for now.
- I'm in the stage that I can open a dataset using WMTS service path from data provider - I can list subdatasets and open the selected layer as a new dataset using path from *SUBDATASET_id_NAME*. - This dataset reports large height and width values, which is obvious. - The first question is how to read any fragment from this dataset using *GDALDatasetRasterIO*. Is there a similar way to *SpatialFIlter *from vector layers? I see in the docs there is a *<DataWindow>* tag for a local service descriptions which defines extents of the data. Does it mean that for each map extent change I need to create a new local XML file and open a new dataset to read demanded bbox? Is this the only way for doing it? - From other site I noticed that QGIS downloads tiles separately? But how it knows which row/col and zoom should be used in GET request? Does it use GDAL for WMTS reading at all? [image: image.png] I will be grateful for any tip and trucks for a newbie ;-) Regards, Michal śr., 29 maj 2024 o 12:41 Even Rouault <even.roua...@spatialys.com> napisał(a): > Hi, > > The WMS cache (which is used underneath by the WMTS driver) writes each > tiles in a separate file. So if you use multi-threaded, as long as you read > in parallel different GDALDataset* object on the WMTS filename, and read > disjoint areas, that should be fine. There might be a slight risk of things > going bad if you happened to read the same tile from different GDALDataset* > object at the same time, as it could potentially read a partially written > cached tile, or concurrently write the tile in the cache and corrupt it. > The logic is in frmts/wms/gdalwmscache.cpp > > Even > Le 29/05/2024 à 10:14, Michał Kowalczuk via gdal-dev a écrit : > > Because this is not clear in documentation, especially in WMTS driver > docs, my question is strictly about this issue to programmers who have > already explored this topic. > > Regards > Michal > > W dniu śr., 29.05.2024 o 10:04 Rahkonen Jukka < > jukka.rahko...@maanmittauslaitos.fi> napisał(a): > >> Hi, >> >> >> >> No, I am not sure because I do not program myself. Reading this document >> https://gdal.org/user/multithreading.html makes me feel that it is >> possible to do some things in parallel, but the programmer must know how to >> do it right. >> >> >> >> -Jukka Rahkonen- >> >> >> >> *Lähettäjä:* Javier Jimenez Shaw <j...@jimenezshaw.com> >> *Lähetetty:* keskiviikko 29. toukokuuta 2024 10.41 >> *Vastaanottaja:* Rahkonen Jukka <jukka.rahko...@maanmittauslaitos.fi> >> *Kopio:* Michał Kowalczuk <michkowalc...@gmail.com>; >> gdal-dev@lists.osgeo.org >> *Aihe:* Re: [gdal-dev] GDAL WMTS get tiles no documentation >> >> >> >> >> >> >> >> On Wed, 29 May 2024 at 08:59, Rahkonen Jukka via gdal-dev < >> gdal-dev@lists.osgeo.org> wrote: >> >> Hi, >> >> >> >> When you have a RasterBand from the WMTS data source, it is abstracted >> and you can read the raster data just like from any other data source and >> raster band >> https://gdal.org/tutorials/raster_api_tut.html#reading-raster-data >> “There are a few ways to read raster data, but the most common is via the >> GDALRasterBand::RasterIO() method. This method will automatically take care >> of data type conversion, up/down sampling and windowing.” GDAL knows which >> tiles to read. >> >> >> >> I do not know if the WMTS driver can do parallel tile downloads. If not, >> it is possible to run many RasterIO() at the same time, each reading data >> from a different window like in this rasterio document >> https://rasterio.readthedocs.io/en/latest/topics/concurrency.html. >> >> >> >> Jukka, are you sure you can run several RasterIO in parallel (on the same >> dataset)? in GDAL GeoTIFF you cannot: the cache may be corrupted. In that >> case I open several datasets over the same file. I do not know about WMTS. >> >> >> >> >> >> -Jukka Rahkonen- >> >> >> >> *Lähettäjä:* gdal-dev <gdal-dev-boun...@lists.osgeo.org> *Puolesta *Michal >> Kowalczuk via gdal-dev >> *Lähetetty:* keskiviikko 29. toukokuuta 2024 9.08 >> *Vastaanottaja:* gdal-dev@lists.osgeo.org >> *Aihe:* [gdal-dev] GDAL WMTS get tiles no documentation >> >> >> >> Hi GDAL fellows >> >> This is my first post on this mailing list, so I'm asking for >> understanding. >> >> >> >> As all we know the purpose of using WMTS over WMS, I'd like to implement >> parallel downloading tiles from service using C API. >> >> In my opinion GDAL documentation ( >> https://gdal.org/drivers/raster/wmts.html) says nothing on this topic. >> >> I can get capabilities from WMTS, I can open the selected subdataset but >> how to get tiles for given extent? I could not find any information how to >> do it, even in the GDAL tests on github. >> >> >> >> I am kindly asking for tips. It also can be in python. How using pure >> GDAL API fetch tiles to dynamically complete the displayed map. This is my >> goal. >> >> >> >> Thank you! >> >> Michal >> >> _______________________________________________ >> gdal-dev mailing list >> gdal-dev@lists.osgeo.org >> https://lists.osgeo.org/mailman/listinfo/gdal-dev >> >> > _______________________________________________ > gdal-dev mailing > listgdal-dev@lists.osgeo.orghttps://lists.osgeo.org/mailman/listinfo/gdal-dev > > -- http://www.spatialys.com > My software is free, but my time generally not. > >
_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/gdal-dev