I have written many programs for reading and writing various types of spatial data in the past but I must admit that the GeoTIFF format has often gotten the better of me. It's such a flexible format that writing code to read/write the variations that are commonly found in the wild is extremely challenging. So I am looking for a library that I can use for accomplishing this task.
Here are my requirements:
It must be developed in Java and exist as a single and ideally very small JAR file that can be easily incorporated in existing projects.
It must have a licence compatible with the GNU GPL.
It must be able to handle many different flavours of GeoTIFF including the various types of data compression.
The GeoTIFF web page recommends GeoTIFF-JAI (it's also recommended by the answerer of this GIS.SE question) however the project doesn't appear to have been maintained since 2001 and I am not able to find any documentation to describe its use. I am currently using a modified version of the UCAR GeoTIFF reader but it similarly is not actively maintained nor documented, and does not handle many types of modern GeoTIFFs (no compression formats). I am aware that GDAL can handle GeoTIFF quite well and that there is a JNI interface to link with Java but I am looking for a small-footprint native Java solution. I am also aware that GeoTools has a means of dealing with GeoTIFFs, but as the OP of this question points out, it actually requires a GDAL plugin, which unfortunately I need to avoid.
I realize that I am asking for a lot here but is anyone aware of a GeoTIFF library that meets these conditions? I thought I'd ask before spending another couple of days trying to hack together a solution for dealing with compressed formats.