Hi All,
...Tavi and I got a question about how to convert a java.awt.image from
an OGC Web Map Server (WMS) [1] or a Web Coverage Server [2] to a
FlatField..:
Our problem:
1. Web map servers render a map as an image from different geospatial
datasets (raster and vector). We want to request a geotiff image (grey
values) from the server and interpret this as a digital elevation model
(or better, as a function (latitude, longitude)---> altitude).
2. To connect to the service, we use vividsolution's JUMP library [3],
[4] - (Java Uniform Mapping Platform)
We initialize the service with jump like this:
WMService ourWMS = new WMService(URL);
MapRequest OurReq = ourWMS.createMapRequest();
and finally request the image with
OurReq.getImage();
The return value of OurReq.getImage() is a java.awt.image that we now
want to convert into a VISAD data object.
We then use DataUtility to create a FlatField:
imageField = DataUtility.makeField(image);
This imageField
System.out.println("FuncType = " + imageField.getType().prettyString());
System.out.println("Range dimension in refresh is " +
imageField.getRangeDimension());
now has a function type (image row, image column) --> (r,g,b)
That means, java.awt.image is a 24bit image rather than the 8bit or 16
bit grey value tiff we originally requested.
Does someone have a good idea to create an appropriate FlatField, or is
this even a wrong way to deal with it?
Furthermore -- I think a VISAD wiki could help as a documention and FAQ
platform -- what do you think?
Thanks in advance for your ideas and suggestions,
Tavi and Chris
[1] http://www.opengeospatial.org/standards/wms
[2] http://www.opengeospatial.org/standards/wcs
[3] http://www.vividsolutions.com/jump/
[4] http://www.jump-project.org