[gdal-dev] UFO format / GDAL 3.0
Even Rouault
even.rouault at spatialys.com
Wed Apr 1 05:16:05 PDT 2015
Hi,
Since some time a few ideas came to my mind and I felt today was a good one to
share them and get feedback.
Considering the never ending proliferation of GIS file formats, currently 220
handled in GDAL trunk, it seems wise to put an end to it. Especially since the
counter used to iterate over the drivers is a unsigned 8 bit, so we will soon
be unable to add more, or at the expense of sacrificing our ports to Intel 8008
or Motorola 6800, which would be pretty sad.
Therefore I'd like to propose the UFO format, which stands for Universal
Format Oh-yeaaah!
The basic idea of UFO is that it isn't a fixed format, but a varying and self-
described one. XML (or perhaps EXI?) + XSD + XSLT + XPath + Schematron could
probably do it, but for efficiency I thought to a byte-code interpreted by
libgdal and whose interface with libgdal would match the GDAL driver
interface. So basically each dataset would contain its own driver. The big
plus is that you could write image translators that would generate binary
encodings optimized for the particular dataset being encoded: for example, it
is kind of stupid to write the values of each pixel of a Mandelbrot fractal
whereas its mathematical description fits into a few lines of code.
Furthermore, still pursuing with that example, we could even have raster of
arbitrary resolution, since that's a characteristics of fractals. And many GIS
datasets have indeed fractal charasterics, such as coastlines (
http://en.wikipedia.org/wiki/Coastline_paradox )
For security reason, we should aim at supporting only simple & verifiable
languages, so Brainfuck (Brainf**k for the most puritans of us) seems to be a
good fit : http://en.wikipedia.org/wiki/Brainfuck. Basically it is a Turing
complete language with only 8 commands. So as much powerful as needed, while
being very easy to learn and implement. To save some efforts, I'd humbly
suggest we adopt libbf ( http://savannah.nongnu.org/projects/libbf ), an older
project of mine that also incorporates a on-the-fly optimizer & compiler for
most popular architectures.
The plan would be to have an initial version of the UFO driver ready for GDAL
2.0 and push strongly for its widespread adoption in all GIS, remote sensing,
OSS & proprietary vendors, etc.... Perhaps we should establish a dedicated
workgroup at OGC to make it a standard ? Then we could deprecate and remove
all existing drivers and at the time of GDAL 3.0, UFO would be the only one
remaining driver, making the Intel 8008 port very happy!
Happy to hear from your thoughts before formalizing that as a RFC,
Even
--
Spatialys - Geospatial professional services
http://www.spatialys.com
More information about the gdal-dev
mailing list