J'ai couru une petite expérience:
- généré 900 points aléatoires
- les a connectés en utilisant un arbre couvrant minimum
- évier choisi quelque part au milieu
- inversé les liens pour former un graphique directionnel, c'est-à-dire que chaque nœud finit par se décharger dans le même puits
- a exécuté un script que j'utilise pour agréger des bassins versants plus petits en plus gros en essayant d'obtenir une "taille" moyenne de 30.
RÉSULTAT:
Faites-moi savoir si cela vous intéresse, je peux déterrer le script (il est déjà publié quelque part sur ce site) ou expliquer le flux de travail plus en détail. J'ai utilisé ArcGIS.
-------------------------------------
** MISE À JOUR Sept 2017
Il est très similaire à ci-dessus, mais en utilisant l'approche raster, les outils de distance et d'hydrologie d'ArcGIS. La partie délicate est la création d'un arbre couvrant minimum et la recherche de débouchés pour les «bassins versants» au format raster.
Voici les étapes que j'ai suivies:
- Trianguler les nœuds (points à regrouper), extraire les arêtes de réseau triangulaires, convertir les nœuds en raster WEIGHT :
- Champ de calcul dans la table des bords: j'utilise (ShapeLength ^ 3 / 1e6). Convertissez en raster, remplissez les espaces avec une valeur très élevée pour créer un raster COST . Cela encourage le flux entre des points proches les uns des autres. On espère que les trajets d'écoulement ressembleront à un arbre couvrant minimum (MST) au lieu d'être près de lignes droites se dirigeant vers l'évier.
- Choisissez n'importe quel nœud (OUTLET / SINK) et créez un raster Cost Back Link, en utilisant la surface COST et SINK comme source. Convertissez le raster de liaison arrière en raster de direction de flux décent en utilisant
Int(Power(2,"backlink"-1))
. Accumulez le flux en utilisant la direction du flux et le raster de poids. Comme on peut voir l'astuce avec l'attribution des coûts produit vraiment quelque chose de similaire à MST:
J'ai décidé de regrouper les points par 50. En gardant à l'esprit la structure fractale du réseau, j'ai fixé la limite des points INLET légèrement inférieurs au début des «High Flow Streams», c'est-à-dire Con («FlowAccum»> 45,1). Entrées définies comme des cellules où
Un débit élevé existe et des statistiques focales = 2 et la cellule n'est pas un puits (aucune valeur de données dans la direction du débit) :
Utilisez les entrées comme points d'écoulement et direction d'écoulement pour définir les bassins versants. L'image montre 115 bassins versants dérivés:
Leurs statistiques: moyenne = 50,33, min = 46 et max = 74.
Pour obtenir un deuxième ensemble de bassins versants, il suffit d'effacer le raster WEIGHT sous des bassins versants déjà définis, de calculer l'acpiration du flux, etc.
La méthode fonctionnera pour des millions de points car elle est basée sur un raster, la triangulation de ce nombre de points ne sera pas non plus un problème.