Hi Daniele, thanks for chiming in. > I think that you can start from this example: > https://github.com/geotools/geotools/blob/main/modules/plugin/geotiff/src/test/java/org/geotools/gce/geotiff/GeoTiffReaderCogOnlineTest.java#L46
ok, that is where I took the code from. > Just make sure to define a reduced envelope when setting up the > requestedGridGeometry parameter so that it will only access the needed ranges > to populate the requested envelope. > > This section was setting same envelope but smaller raster area, to involve > overviews: > https://github.com/geotools/geotools/blob/main/modules/plugin/geotiff/src/test/java/org/geotools/gce/geotiff/GeoTiffReaderCogOnlineTest.java#L100 > > You can arrange it to actually request a cropped envelope with a fitting > raster. > At that point it should only read the ranges involved to get those tiles. Ok, I saw that and that is how I usually define GeneralParameters for reading a given gridgeometry: double n = 45.5; double s = 45.3; double e = 10.5; double w = 10.3; GeneralParameterValue[] readParams = new GeneralParameterValue[1]; ParameterValue<GridGeometry2D> readGG = AbstractGridFormat.READ_GRIDGEOMETRY2D.createValue(); GridEnvelope2D gridEnvelope = new GridEnvelope2D(0, 0, 2000, 2000); ReferencedEnvelope env = new ReferencedEnvelope(w, e, s, n, DefaultGeographicCRS.WGS84); GridGeometry2D gridGeometry = new GridGeometry2D(gridEnvelope, env); readGG.setValue(gridGeometry); readParams[0] = readGG; GeoTiffReader gtReader = new GeoTiffReader(getInputProvider()); GridCoverage2D coverage = gtReader.read(readParams); System.out.println(coverage); the print out is: GridCoverage2D["eu_dem_v22_itnord4326_cog512", GeneralEnvelope[(6.247905524, 44.028140992), (13.301164301, 47.257876053)], DefaultGeographicCRS["WGS 84"]] │ RenderedSampleDimension("GRAY_INDEX":[-1.7976931348623157E308 ... -1.7976931348623157E308]) │ ‣ Category("No data":[-1.7976931348623157E308 ... -1.7976931348623157E308]) └ Image=RenderedOp["ImageRead"] as you can see the region spans the complete dataset instead of the n,s,e,w. I am probably doing something wrong, but I can't spot it. Thank you, Andrea > > Please, let us know if you still have issues. > > Regards, > > Daniele Romagnoli > > == > GeoServer Professional Services from the experts! > > Visit http://bit.ly/gs-services-us for more information. > == > > Daniele Romagnoli > Senior Software Engineer > > GeoSolutions Group > phone: +39 0584 962313 > fax: +39 0584 1660272 > > https://www.geosolutionsgroup.com/ > http://twitter.com/geosolutions_it > ------------------------------------------------------- > > > Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE > 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa > che ogni circostanza inerente alla presente email (il suo contenuto, gli > eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i > destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per > errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei > comunque grato se potesse darmene notizia. > > This email is intended only for the person or entity to which it is addressed > and may contain information that is privileged, confidential or otherwise > protected from disclosure. We remind that - as provided by European > Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or > the information herein by anyone other than the intended recipient is > prohibited. If you have received this email by mistake, please notify us > immediately by telephone or e-mail. > > > On Tue, Sep 6, 2022 at 3:27 PM andrea antonello <andrea.antone...@gmail.com> > wrote: >> >> > > The s3-geotiff module is not doing range reads, it can read any tiff, >> > > even non cog, and does read blocks of 5MB caching them on disk. >> > > >> > > Full COG support is built into the gt-geotiff module... But has >> > > currently no caching and requires COG layout. You should find an example >> > > of usage among the tests. >> > >> > oh, I see, thank you so much. Will check that out. >> >> I am not sure what you mean by COG layout. I couldn't find any >> reference in the testcases or source code. >> I am assuming it should be set inside the GeneralParameters part? >> Right now using "standard" general parameters I again get the coverage >> of the complete tiff instead of a range of it. >> >> Even if setting the source SPI provider to (as seen in the test): >> >> String url = >> "https://minio.myinstance.org/cogs/eu_dem_v22_itnord4326_cog512.tif"; >> BasicAuthURI cogUri = new BasicAuthURI(url, false); >> HttpRangeReader rangeReader = new HttpRangeReader(cogUri.getUri(), >> CogImageReadParam.DEFAULT_HEADER_LENGTH); >> CogSourceSPIProvider input = new CogSourceSPIProvider(cogUri, new >> CogImageReaderSpi(), new CogImageInputStreamSpi(), >> rangeReader.getClass().getName()); >> >> Do you happen to have an example that uses COG layout? >> >> Thanks a lot, >> Andrea >> >> >> >> >> > > Il Mar 6 Set 2022, 09:46 andrea antonello <andrea.antone...@gmail.com> >> > > ha scritto: >> > >> >> > >> Hello, >> > >> I wanted to test the s3 geotiff module to read cogs from a minio >> > >> instance. >> > >> >> > >> It was actually quite simple to set up, but I have not been able to do >> > >> range requests. >> > >> The whole image seems to be read every time instead. >> > >> >> > >> Can anyone with experience tell me what I might be doing wrong? >> > >> >> > >> My super simple code is this: >> > >> >> > >> System.setProperty("s3.properties.location", "/path/to/s3.properties"); >> > >> S3GeoTiffReader reader = new S3GeoTiffReader(new >> > >> S3ImageInputStreamImpl("main://cogs/eu_dem_v22_itnord4326_cog512.tif")); >> > >> GeneralParameterValue[] generalParameter = // omitting the creation of >> > >> GP using the bounds values and resolution >> > >> GridCoverage2D coverage2D = reader.read(generalParameter); >> > >> >> > >> Is the use of generalParameter the right way to address this? >> > >> >> > >> Thanks for any hint, >> > >> Andrea >> > >> >> > >> >> > >> _______________________________________________ >> > >> GeoTools-GT2-Users mailing list >> > >> GeoTools-GT2-Users@lists.sourceforge.net >> > >> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users >> >> >> _______________________________________________ >> GeoTools-GT2-Users mailing list >> GeoTools-GT2-Users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users _______________________________________________ GeoTools-GT2-Users mailing list GeoTools-GT2-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users