J'ai besoin de stocker et de gérer les données de géophysique archéologique qui sont collectées sous la forme d'un réseau rectangulaire d'échantillons - une image tramée.
- Chaque raster comprend généralement des échantillons à virgule flottante 20x20 ou 30x30, généralement échantillonnés à des intervalles de 1 m.
- Une enquête consistera en une ou plusieurs de ces images dans un emplacement donné.
- Il est possible que deux enquêtes différentes puissent avoir lieu dans différents pays ou zones qui utilisent des projections différentes, mais chaque enquête utilisera une et une seule projection.
- Ils ne sont jamais susceptibles d'être vus ensemble, chaque enquête sera généralement indépendante.
- Les données ne seront accessibles que par un frontal personnalisé, il n'y aura donc aucun utilisateur qui en aura le contrôle direct via
psql
ou similaire. - Chaque échantillon doit être stocké tel qu'il a été collecté, donc je ne peux pas le reprojeter dans un CRS commun tel que Web Mercator car un échantillon pourrait finir par couvrir plus ou moins de zone que dans la projection d'origine, et une analyse devra être effectuée sur les données.
Comment dois-je stocker au mieux les données dans une base de données PostGIS Raster? Les options que j'ai trouvées sont:
- Ignorez les contraintes SRID et stockez toutes les données dans une table, en écrivant mon code frontal pour gérer la manipulation des données de manière cohérente.
- Stockez toutes les données dans une table et réécrivez la contrainte SRID en tant que composé de SRID et d'ID d'enquête.
- Grâce à l'héritage de table, créez une nouvelle table pour chaque nouveau SRID.
- Grâce à l'héritage de table, créez une nouvelle table pour chaque enquête.
1 et 2 cassent certaines des belles parties automatisées de PostGIS, mais seront autrement cachées dans le code frontal. Mais les requêtes prendront probablement un peu plus de temps.
3 et 4 pourraient se retrouver avec une explosion de tables qui rendrait plus difficile la gestion des contraintes FK et ainsi de suite.
Dans la pratique, le nombre de rasters par enquête est compris entre 1 et 100 ou plus, et le nombre d'enquêtes est susceptible de se chiffrer par centaines. Mais le nombre de projections distinctes devrait rester très faible, ce qui favorise 3.