Suite

Support de projection cylindrique Lambert dans PostGis

Support de projection cylindrique Lambert dans PostGis


PostGis prend-il en charge la projection cylindrique Lambert ou existe-t-il un moyen d'en ajouter une prise en charge? Je cherche probablement les mauvais termes, mais google n'apporte rien d'utile. Toute aide est appréciée.

EDIT : si ce n'est pas Lambert, existe-t-il d'autres projections cylindriques de surface égale qui peuvent être utilisées dans PostGis.


C'est intégré. POSTGis utilise la bibliothèque Proj.4 pour les projections. Le code source pour l'aire égale de Lambert est PJ_cea.c (dans la version 4.7.0) ; une version mieux documentée apparaît sous le nom de cea.js dans Proj4js version 1.0.2. Voici l'en-tête de la version .js :

NAME LAMBERT CYLINDRICAL EQUAL AREA OBJECTIF : Transforme la longitude et la latitude d'entrée en abscisse et en nord pour la projection Lambert Cylindrical Equal Area. Cette classe de projection comprend les projections de Behrmann et Gall-Peters. La longitude et la latitude doivent être en radians. Les valeurs d'abscisse et d'ordonnée seront renvoyées en mètres.

Revenons à votre problème initial, car nous l'avons peut-être perdu de vue lors des questions intermédiaires :

Fondamentalement, je génère une table de grille. Ensuite, je ferai une requête de jointure sur certains points et la table de la grille et je les regrouperai par cellule dans laquelle ils se trouvent pour créer des histogrammes.

Vous pouvez le faire facilement sans générer de grille du tout, parce que les formules pour une grille rectangulaire de surface égale en degrés décimaux sont simples :

Soit la largeur souhaitée w et la zone souhaitée soit UNE. Sur le plan, la hauteur d'un rectangle serait nominalement h = UNE / w. Une fois pour toutes, convertissez-vous w et h des mètres aux degrés décimaux, en utilisant une conversion d'environ 10 000 000/90 mètres par degré. Supposons que l'origine de la grille (coin inférieur gauche) se trouve à (x0,y0) comme longitude et latitude. Pour déterminer dans quelle cellule de grille un point avec (lon,lat) égal à (x,y) tomberait,

  1. Calculez x-x0 (en degrés décimaux) et divisez-le par w. Arrondissez le résultat à l'entier supérieur : c'est l'index des colonnes de la grille, j.

  2. Calculer sin(y)-sin(y0) et diviser par h. Arrondir à l'entier supérieur : c'est l'indice de ligne de la grille, je.

La paire ordonnée (i,j) identifie la cellule de la grille : utilisez-la pour regrouper les points dans l'histogramme. Cela ne vous permettra pas de faire un dessin de la grille, mais peut-être n'en avez-vous pas besoin pour votre analyse…


Voir la vidéo: Install PostGIS on Windows