Suite

Requête pour dissoudre les polygones à proximité sur Hive


J'utilise le cadre spatial ESRI pour Hadoop, qui étend Hive pour utiliser des types et des opérations spatiaux.

Mon objectif est de traduire un ensemble de requêtes simples sur PostGIS en Hadoop, afin d'atteindre une scalabilité horizontale.

J'ai une grille avec un compte pour chaque cellule.

L'objectif de ma requête est de sélectionner toutes les cellules dont le nombre est supérieur à un certain seuil et de regrouper (fusionner) toutes les cellules qui sont ensemble. Par exemple dans ce cas, je finirais avec quelque chose comme ça : 4 polygones.

Pour ce faire dans PostGIS, j'utilise une combinaison de ST_Dump et ST_SnapToGrid

CREATE TABLE a éclaté AS SELECT (ST_Dump(st_union)).geom FROM (SELECT ST_Union(ST_SnapToGrid(geom,0.0001)) FROM grid où ptcnt > 'threshold) as q;

Malheureusement, aucune de ces fonctions n'est disponible sur le cadre spatial d'ESRI.

Je peux effectuer le filtre de seuil, mais je n'ai aucun moyen d'agréger les géométries proches en fonction de la proximité (une astuce réalisée par la grille):

créer une table éclatée en tant que select u as geom from (select geom as u from grid_cnt où ptcnt > 11467) as q;

Quelqu'un peut-il penser à une solution de contournement (peut-être en utilisant Union) ?


LeST_BinetST_BinEnveloppefonctions (ajoutées en 2014) peuvent aider à la place deST_SnapToGrid. Il y a un exemple à l'étape 4 de ce tutoriel.

LeST_Aggr_Unionfonction peut également être utile. Il y a un exemple dans le billet de blog annonçant les fonctions d'agrégat.

(Divulgation : je suis un collaborateur des outils SIG pour Hadoop chez Esri.)


Entrée : une grille nommée ("polygon_grid"), avec les noms des champs "id" et "count" indiqués dans la figure ci-dessous.

Sortie : cellules fusionnées par une certaine valeur.

Exécutez la requête :

WITH tbla AS (SELECT id, (ST_Dump(geom)).geom FROM polygon_grid WHERE count<=185 OR count>=963 GROUP BY id) SELECT (ST_Dump(geom)).geom FROM (SELECT ST_Union(geom) geom FROM tbla ) toto ;

Voir la figure ci-dessous pour le résultat.

J'ai joué avec les données de l'EPSG 4326.

Des solutions originales…


Voir la vidéo: vocabulaire polygone (Octobre 2021).