Je prépare une application où j'ai besoin de créer une grille vectorielle qui sera utilisée pour stocker et afficher une carte thermique. Il a les exigences suivantes:
- Peut couvrir la planète entière.
- La grande majorité des carrés de la grille n'auront pas de valeurs.
- Je ne veux pas avoir à stocker la grille elle-même; Je voudrais le calculer à la volée.
- L'échelle des données utilisées avec la grille peut varier considérablement.
- Je prévois de vouloir des carrés de grille allant de 1 km à 100 km. (Je sais combien cela sera (~ 510 millions pour 1 km, ~ 51 000 pour 100 km)).
- Les valeurs seront accumulées / agrégées pour chaque carré de la grille.
- Idéalement, je serais en mesure d'utiliser facilement des cellules de grille plus petites pour calculer les valeurs des plus grandes plutôt que de stocker les valeurs de cellule de grille plus grandes.
- Je vais utiliser OpenLayers pour le draper sur OpenStreetMap.
- Je vais le stocker dans SpatiaLite ou SQLite, donc de préférence pris en charge par ceux nativement (c'est-à-dire pour SpatiaLite = un CRS pris en charge; ou pour SQLite = un système basé sur des nombres purs).
Ma question est donc la suivante: quelle projection dois-je utiliser pour cette grille?
Aussi - existe-t-il un bon moyen de concevoir cela? Quelqu'un connaît-il une bonne solution potentielle à ce problème ou a-t-il déjà résolu des problèmes similaires? Ou peut me diriger dans une direction utile.
Modifier le cas d'utilisation - en gros, j'agrège des boîtes englobantes de différentes formes et tailles. Ils peuvent être de quelques hectares à des milliers de kilomètres carrés. Ils peuvent également être dans différentes projections.
Vous trouverez ci-dessous une version sur mesure du genre de choses que je souhaite accomplir automatiquement à plus grande échelle.
Merci beaucoup.
la source
Réponses:
Les tuiles OSM standard sont dans Spherical Mercator (SRID = 3857), il sera donc probablement plus facile de construire votre grille en utilisant la même projection.
Si vous utilisez SM, vous pouvez stocker les données au niveau de zoom le plus élevé pris en charge par OSM, ou au niveau de zoom le plus élevé, vous permettra aux utilisateurs de zoomer. Si la couverture est rare, utilisez une structure de données
XIndex, YIndex, Count
où les index sont les index dans la grille de tuiles au niveau de zoom souhaité, count est le nombre d'entités qui coupent cette tuile et n'incluent pas d'entrées pour les points où count est nul. Ensuite, vous pouvez simplement sélectionner le comptage par index ou, à des niveaux de zoom inférieurs, sélectionner la somme des comptages par plage d'index en sachant que si la requête retourne rien, le compte est nul pour la région donnée.
C'est bien sûr une abstraction, je suppose un niveau logiciel entre celui-ci et votre moteur de rendu de carte thermique. Une description plus détaillée de la façon dont vous allez rendre la carte thermique m'aiderait à donner de meilleurs conseils.
la source
La valeur stockée dans une cellule à partir d'une carte thermique est souvent normalisée par sa zone. Dans ce cas, je préfère suggérer une projection à surface égale afin que vous puissiez facilement agréger à plus grande échelle
la source
Ceci est une réponse à la façon dont vous pouvez concevoir une carte thermique. Ma suggestion est que vous examiniez le système de cellules de grille de quart de degré . QDGC représente un moyen de faire des carrés de surface (presque) égaux couvrant une zone spécifique pour représenter des qualités spécifiques de la zone couverte. Les carrés eux-mêmes sont basés sur les degrés carrés couvrant la terre. Autour de l'équateur, nous avons 360 lignes longitudinales et du nord au pôle sud, 180 lignes latitudinales. Ensemble, cela nous donne 64800 segments ou tuiles couvrant la terre. La forme des carrés devient plus rectangulaire à mesure que nous arrivons au nord. Aux pôles, ils ne sont pas du tout carrés ou même rectangulaires, mais se retrouvent en triangles allongés.
Les cellules de la grille peuvent être divisées en quatre, et les cellules de la grille résultantes à nouveau divisées en quatre. Le système fournit à l'utilisateur une convention de dénomination prévisible. En calculant les zones pour les différentes cellules de la grille, elles devraient convenir aux présentations dépendantes de la zone.
Des informations plus détaillées et des références à d'autres systèmes sont également disponibles dans un article que j'ai publié il y a quelques années. La norme est utilisée dans plusieurs atlas africains pour l'information environnementale.
Des fichiers de formes pour différents continents et pays sont disponibles en téléchargement sur mon site de blog.
J'ai joué avec l'idée d'étendre la norme, de sorte que les cellules de la grille au-dessus ou au-dessous d'une certaine latitude puissent être divisées en deux, fournissant ainsi un produit de carte plus agréable à regarder lorsqu'il est utilisé.
la source