Feature #2560
closedProvide a proper databse backend for the dataserver
80%
Description
The NephelaeDataServer class implementation manages data samples on an ad-hoc basis.
- Performance:
- The current data model is 4 ordered lists with duplicated data
- Reading requires a bisection search O(log(n))
- Adding new samples requires a list insertion operation
- The search and insertion process is coded in python
- Design:
- No long-term data storage. Currently data is stored as a pickle memory save.
CAMS should use an existing data model and save format to ensure long-term data availability and interoperability with other geographic information systems.
Proposed solution¶
Use the standard OGC backed GeoPackage format for storage and an existing library to manipulate this file format:
- GDAL/OGR (lowlevel C library with python bindings)
- fiona (pythonic program interface to OGR)
- GeoPandas (Pandas-like interface to fiona)
Only GDAL provides the most fine-grained and most feature-full interface to GeoPackage at the expense of a rough API. Fiona is an interesting alternative but the current stable version lacks support for "select where" filters required to mimic the incumbent NephelaeDataServer search functionnality (the "2.0dev" version can do this nevertheless). Geopandas is better suited for post-mission analysis.