Hello Simone
Simone Giannecchini a écrit :
1>What kind of rasters do you usually store in terms of number of
dimensions (2d,3d, time..), size (mb, hundreds of mb, gb?), number of
bands, type of the source (remote sensing, models), data types,
etc....
The sources are remote sensing images: Sea Surface Temperature (SST), Chlorophylle-a (CHL), Sea Level Anomaly (SLA), Ekman Pumping (EKP), etc. We could also take numerical model outputs, anything as long as it is a grid coverage.
The format is anything supported by Image I/O. I use mostly PNG, RAW and ASCII formats.
The data types that work best are unsigned byte, unsigned short and float.
The number of bands can be any, as long as the image format support them. I use images with 1 band and images with 3 band.
Each image, when taken individually, is two-dimensional. Images are grouped in Series. "Sea Surface Temperature" is a Series, "Sea Level Anomaly" is an other Series, etc. A Series is usually a single directory on disk, but this is not mandatory. The Series is the third dimension. In current version, the third axis is time, but we could try to generalize that. This mean that each individual image in a Series represents a feature like Temperature at a specific time (actually a time range, usually a few days). The whole series cover a range of time of a few years.
One individual image is a few MB. A full Series can be a few GB.
From the programmer point of view, a Series is a big three-dimensional coverage. The Java code on seagis.sourceforge.net construct automatically a org.geotools.coverage.CoverageStack from a Series name. Nothing more needed on the user side. Image are loaded only when needed, cached as much as possible, conversions from "pixel" to "geophysics" values applied, interpolations performed as needed, etc.
No tiling at this time for individual images. We need to merge your work on image mosaic and image pyramid, so the two works are really complementary :). The Seagis work did not attempt to solve the "loading one big image" problem. It was targetting the "Those 6000 images represent dynamic phenomenons changing with time over the same geographic area" problem.
Seagis can restricts the image portion to load however, using ImageReadParam source area. The source are is automatically converted from geographic coordinates to pixel coordinates.
An OpenOffice plugin exists for that too :). User can enter the following formula in an OpenOffice cell:
=EVALUATE("SST", -12.6, -8.5, 20/11/1998)
and get the sea surface temperature in °C interpolated at this specific geographic coordinate and date. Quite convenient for an oceanographer wanting to do some analysis in his favorite tool; most scientists work mostly with spreadsheet.
2>Since you are very much interested in observations (if I am right of
course) did you have a look at what the Sensor Web Enablemetn Group is
doin in OGC? If you had it, what is your impression?
I'm very interrested in observations, and tried to design seagis along the time of OGC "Observation and Measurements" discussion paper. At this time, it was only a discussion paper. Now it is in a more advanced stade, but I didn't had the time to update myself yet, nor to read the sensor web enablement work. I'm very interrested to that, but too many things to do right now :(.
3>Why the heck you did not publicize more this raster+db thing?
It was initially quite specific to a particular work. I tried progressively to make it more general (it is now much more generic than it was 2 years ago), but more work would probably be good. I was not expecting a strong interrest, and I'm actually pretty glad to find someone who may find it useful :).
4>I am quite excited about reusing this work of yours somehow by
hopefully combining with the work I have been carrying over with
ImageIO, JAI and (J)GDAL. I think I am going to bother you a lot next
week trying to integrated all these approaches into one and possibly
putting all this behind some new and more stable interfaces, as we
planned during our quick talk at FOSS. Please send as much as you can
to the list, I do not mind if it is in french, we could try to
transalte part of it.
As said previously, I think that our works are very complementary :). We created a small copy of this database for experimental work on our server. I think that we can give you an access to the PostgreSQL database on port 5432 so you can take a look at it, and we can try to modify it together if needed? If this is of interest for you, we would need the IP number of your machine for opening access (Vincent, are you okay with that?).
Martin