Hey all, just wanted to share some progress.

I created a project that is capable of asynchronously reading COG tiles.
It extends TIFFImageReader and overrides the read method to build a
collection of information for all tiles that need to be read, then
determines the byte ranges for groups of contiguous tiles.  The tiles are
read using HTTP range requests and stored in-memory via an ImageInputStream
implementation that simply uses a MemoryCacheImageInputStream as a
delegate.  Additionally, the project provides a caching image input stream
that uses ehcache to cache each tile.  I would eventually like to expand
this to support various cloud platform backends (implementing the
RangeReader interface), but for now it's just HTTP.  I can provide more
info/details if desired.  The repository is available here:

https://github.com/joshfix/cog-image-reader

Additionally, I have a project that is basically copied from the s3-geotiff
project, but implements the Azure library to read from Azure blob storage:

https://github.com/joshfix/azure-geotiff

And finally, a GDAL-based reader that accepts VFS paths.  This project
cherry picks (and thus duplicates) a lot of code from a lot of places in
GeoTools and imageio-ext, so contributing this might be ugly.  It works on
its own, but when used to build mosaics, there seem to be
nodata/transparency issues.  It is available here:

https://github.com/joshfix/gdal-vfs-reader

Any feedback would be appreciated, and I'd be happy to contribute anything
that the community might be interested in.

Josh
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to