Their documentations are simple and professional. But they don't mention too much about the relationship between these open source projects. When should I use which one? And which one is suitable for what scenario?
If you are a GIS developer who is familiar with these projects, can you explain?
In basic terms, GDAL is used for reading, writing and transforming raster data, while OGR can do the same with vector data. I am not as familiar with FDO, but it appears to be an API used to access (from database sources), manipulate and analyze all kinds of geospatial data, and relies on GDAL and OGR for those purposes.
The fundamental common denominator of all of the three software packages is that they all are data access abstractions. In particular, they provide access to geospatial data. In general, they all follow similar convention: - define collection of types and objects - define low-level data sources implemented in form of a set of drivers (as named in GDAL/OGR) or providers (as named in FDO)
FDO, GDAL and OGR are all implemented in C++ programming language.
Along with similarities, there are many differences. GDAL/OGR gives access to data stored in enormous number of geospatial formats, lots of data processing algorithms and operators. FDO provides those features too (interestingly, thanks to integration with GDAL/OGR in some places like FDO Provider for GDAL) but it feels more like a framework, whereas GDAL/OGR feels more like a library.
Anyhow, it is not possible to provide you with definitive answer which one fits where better.
You may find Matthew Perry's blog and following discussion helpful: FDO, GDAL/OGR and FME?
Note, GDAL and OGR are bundled together under the umbrella of common software project called simply GDAL. Both names seem to be acronyms and are explained in GDAL FAQ, check the following Q&A:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With