EDIT: (Jan 13) I'm still seeking information on exactly how best to
store a 3 dimensional 16-bit integer BIP raster and be able to
efficiently query a single z-axis "column" of data. I don't want to
convert it to a 32-bit format (because that would double its file size
from its current 16-bit form).
Querying such a raster should not really pose large problems. You can read binary data directly using all program languages, and access is fast. Just make sure that you store your data in a file format which has all metadata in a seperate file. BIP is such a format
eg in php, assuming that the file is row major order (otherwise switch x and y), with $x and $y the position in your grid(counting from 0), $nx, $ny and $nz the number of pixels in each dimension and $nb the number of bytes per gridcell:
$fp = fopen('yourfile.bil', 'r');
fseek ($fp, $nz*$nb*($y*$nx +$x))//this is a very fast operation
// read some data
$data = fread($fp, $nz*nb);//this is also very fast
Just make sure that you access the right pixel: does counting start from top left or not, ...
Some extra info: After reading the data, you should convert it to floats. E.g.:
$dataf=unpack("f*", $data);
print_r($dataf);
In case your host does not support uploading large files, you could eg split up your bip file in eg 8 bip files.
Some more info on how I would do the rest of the website: since your data is static, you could generate a small mapviewer using gdal2tiles and openlayers. http://www.gdal.org/gdal2tiles.html
In fact, since you say that "I don't really need scalability--this project is mostly to enable a few peer researchers to have easier access to my data than sending an 8GB file and loading it in ENVI."you could maybe even do without using a webgis toolbox: just let your users click on the image and catch the coordinates: http://www.emanueleferonato.com/2006/09/02/click-image-and-get-coordinates-with-javascript/
(though you should find a way to present your 5000x5000 image nicely)
I've solved using Selenium Web Driver and OpenLayers 2.13.
For those that could be interested you can find some code examples here
https://github.com/cesaregerbino/TestSeleniumWebDriverOpenLayers (in italian)
The examples are the follow:
- InterActiveZoomIn
- MeasureAreaOpenLayers
- IdentifyOpenLayers
- GetFeatureInfoWMS
- EditingOpenLayers
- AreaProject
and, for each, there is the code and the buildfile.
You can find also a short video that shown the result.
I hope that this stuff could be useful.....
Best Answer
I think you should glance at Cartaro - Geospatial CMS which consists of all the tech. you use... I haven't used it but it looks like it was developed for gisCMS.
I hope it helps you...