Suite

Une projection globale de type grille pour créer des cartes thermiques


Je suis en train de monter une application où je dois créer une grille vectorielle qui sera utilisée pour stocker et afficher une carte thermique. Il a les exigences suivantes :

  • Peut couvrir toute la planète.
  • 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 ; J'aimerais le calculer à la volée.
  • L'échelle des données utilisées avec la grille pourrait varier considérablement.
  • Je prévois vouloir des carrés de grille allant de 1 km à 100 km de large. (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 pourrais facilement utiliser des cellules de grille plus petites pour calculer les valeurs des plus grandes plutôt que de stocker les valeurs de cellules de grille plus grandes.
  • J'utiliserai OpenLayers pour le draper sur OpenStreetMap.
  • Je vais le stocker dans SpatiaLite ou SQLite, donc de préférence pris en charge par ceux-ci 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 : 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 une solution similaire? Ou peut me diriger dans une direction utile.

Éditer Cas d'utilisation - en gros, j'agrége des cadres de délimitation de différentes formes et tailles. Leur taille peut aller de quelques hectares à des milliers de kilomètres carrés. Ils peuvent également être dans des projections différentes.

Vous trouverez ci-dessous une version sur mesure du genre de chose que je vise à accomplir automatiquement à plus grande échelle.

Merci beaucoup.


Les tuiles OSM standard sont en Mercator sphérique (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é sur lequel vous autoriserez les utilisateurs à zoomer. Si la couverture est clairsemée, utilisez une structure de données le long des lignes de

XIndex, YIndex, Compte

où les index sont les index dans la grille de tuiles au niveau de zoom souhaité, count est le nombre d'entités qui croisent cette tuile et n'inclut pas les entrées pour les points où count est de zéro. Ensuite, vous pouvez simplement sélectionner le nombre par index ou à des niveaux de zoom inférieurs, sélectionner la somme du nombre par plage d'index sachant que si la requête ne renvoie rien, le nombre est égal à zéro pour la région donnée.

Ceci est bien sûr une abstraction, je suppose qu'il existe un niveau logiciel entre cela 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 valeur stockée dans une cellule d'une carte thermique est souvent normalisée par sa superficie. Dans ce cas, je préférerais suggérer une projection de surface égale afin que vous puissiez facilement agréger à plus grande échelle


Ceci est une réponse à la façon dont vous pourriez concevoir une carte thermique. Ma suggestion est que vous vous penchiez sur le système Quarter Degree Grid Cell. QDGC représente un moyen de créer des carrés de surface (presque) égales 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 carrés de degrés couvrant la terre. Autour de l'équateur, nous avons 360 lignes de lignes longitudinales, et du nord au pôle sud, nous avons 180 lignes de latitude. Ensemble, cela nous donne 64800 segments ou tuiles couvrant la terre. La forme des carrés devient de plus en plus rectangulaire à mesure que le nord s'allonge. Aux pôles, ils ne sont pas du tout carrés ni même rectangulaires, mais se terminent par des 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 nommage prévisible. En calculant les surfaces pour les différentes cellules de la grille, elles devraient convenir aux présentations dépendantes de la surface.

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, offrant ainsi un produit cartographique plus agréable lorsqu'il est utilisé.