Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
J'ai une table avec de nombreux points dont certains endroits montre une densité importante de ces points. Je cherche à faire une requête pour regrouper des points en un seul en fonction de la densité en non d'un centroide. J'ai trouvé la fonction kmeans qui correspondrait à ce que je recherche mais il faut installer le module et je n'ai pas la possibilité de l'installer sur le server où je trouve postgres.
Seriez-vous m'aiguiller?
Merci d'avance,
lea
Hors ligne
Bonjour,
Si vous n'avez pas les droits sur le serveur et que votre administrateur ne veut pas installer l'extension, vous ne pourrez pas l'utiliser. Point de salut de ce coté, ce qui est dommage car elle correspond à votre besoin.
Il y a plusieurs autres pistes :
1/ si le langage PL/R est installé et que vous avez le droit de l'utiliser, il y a des fonctions de clustering dans R qui répondront à votre besoin. Peu de chance que ce soit accessible par défaut.
2/ Snapper les points sur une grille, et les regrouper avec un aggrégat sur la géométrie (fonction st_snaptogrid)
3/ faire une grille géométrique, intersecter les points avec cette grille, et regrouper ceux qui sont au dessus d'un certain seuil au centroide de l'élément de grille
4/ Implémenter un algo de clustering en Pl/pgsql.
La 3 vaut mieux que la 2 dans le sens ou les points correspondant aux zones non-denses ne seront pas affectés.
On peut aussi s'en sortir de la meme façon pour la 2,en reprenant tous les points qui sont uniques dans l'agrégats en leur redonnant leur position initiale.
Pas mal d'éléments de réponse, y compris pour la 4, ici :
http://gis.stackexchange.com/questions/ … th-postgis
J'espère que ça aide, ce ne sont que des pistes. Il y a surement d'autres moyens aussi.
Hors ligne
Pages : 1