GDAL Web driver

Network file systems or web services got you down? Sidestep them with a lightweight and high performance GDAL filesystem implemented on HTTP:

People sometimes talk about “RESTful” services on the web, and I’ll admit that there’s a lot to that that I don’t really understand. I’ll admit that the tiff format is not designed to have HTTP ‘links’ to each pixel — but I think the fact that by fetching a small set of header information, GDAL is then able to find out where the metadata is, and request only that data, saving (in this case) more than a gigabyte of network bandwidth… that’s pretty frickin’ cool.

Part of what makes this work is the Web's built-in support for byte range requests and partial representations. See RFC 2616 section 14.35.1 and HTTPbis part 5:

Since all HTTP entities are represented in HTTP messages as sequences of bytes, the concept of a byte range is meaningful for any HTTP entity.

Make a small byte range request for TIFF metadata so you can map pixel and row (and maybe pyramid depth) to an entity byte range and then request just the right subset of the image.

For what it's worth, there's a W3C Media Fragments Working Group with a mission of making image subsets more addressable.

Comments

Re: GDAL Web driver

Author: Christopher Schmidt

Hey, I recognize some of that text.

I'm not really sure how your second quote addresses my actual "I don't understand" section (which is terribly worded, bad on me for writing under the influence of sudafed). The HTTP spec surely describes byte ranges as meaningful, but does that mean that accessing things via byte ranges is RESTful?

Re: GDAL Web driver

Author: Sean

I should edit my post to make it clear that the second quote isn't meant to be a rebuttal or counterpoint to your first one. Partial representations aren't part of "textbook" REST, but aren't inconsistent with it.