Suite

Réseau géométrique ArcGIS - Identifier un flux indéterminé

Réseau géométrique ArcGIS - Identifier un flux indéterminé


Nous avons un réseau géométrique avec des conduites d'égout dont la direction d'écoulement est basée sur la direction numérisée. Certains des tuyaux, cependant, ont un débit indéterminé. Nous aimerions trouver tous les tuyaux qui ont un débit indéterminé. Nous pouvons le faire en définissant les flèches de direction d'écoulement et en identifiant ces tuyaux visuellement/manuellement, cependant, étant donné qu'il s'agit d'un réseau assez grand, existe-t-il un moyen/un outil qui peut identifier tous les tuyaux qui ont un débit indéterminé d'une manière plus simple, en masse méthode? Nous utilisons ArcGIS 10.2.2.


A ma connaissance, il n'y a pas d'outil qui puisse faire ce que vous demandez, cela doit être fait de manière programmatique. Si VBA est installé et sous licence, le code suivant sélectionnera des bords indéterminés. Il suppose que le réseau géométrique est la première couche de votre table des matières et que vous devez modifier la ligne pour la mettre à jour avec le nom de votre jeu de données d'entités (actuellement, son jeu est le mien qui était eu_riv).

Public Sub SelectIndeterminateEdges() ' Description : Sélectionne toutes les arêtes d'un réseau géométrique qui sont indéterminées ' Auteur : Duncan Hornby ' Créé le 30/9/15 ' Get MapDocument Dim pMXD As IMxDocument Set pMXD = ThisDocument ' Get Map Dim pMap As IMap Set pMap = pMXD.FocusMap ' Get Layer (supposé être la première couche dans la table des matières) et son jeu de sélection Dim pFeatureLayer As IFeatureLayer Set pFeatureLayer = pMap.Layer(0) Dim pFeatureSelection As IFeatureSelection Set pFeatureSelection = pFeatureLayer Dim pSelSet As = ISelection Set Set pFeatureSelection ' Cast into Dataset Dim pDataset As IDataset Set pDataset = pFeatureLayer ' Get workspace Dim pWorkspace As IWorkspace Set pWorkspace = pDataset.Workspace ' Cast into FeatureWorkspace Dim pfeatureworkspace As IFeatureWorkspace Set pfeatureworkspace = pWorkspace ' Get FeatureDataset, notez que ce code suppose que vous connaissez le nom de ceci, dans cet exemple, c'est eu_riv Dim pFDS As IFeatureDataset Set pFDS = pfeatureworkspace.OpenFeature Dataset("eu_riv") ' Get Network Dim pNetColl As INetworkCollection2 Set pNetColl = pFDS Dim pGN As IGeometricNetwork Set pGN = pNetColl.GeometricNetwork(0) Dim pNet As INetwork Set pNet = pGN.Network ' Obtient une énumération sur tous les bords Dim pEnum As IEnum Set pEnum = pNet.CreateNetBrowser(esriETEdge) ' Cast into untilitynetwork Dim pUtilNet As IUtilityNetwork Set pUtilNet = pNet Dim pNetEle As INetElements Set pNetEle = pNet ' Boucle principale Dim eid As Long Dim i As Long Dim classid As Long Dim subid As Long As Long For i = 1 To pNet.EdgeCount eid = pEnum.Next If pUtilNet.GetFlowDirection(eid) = esriFDUninitialized Ou pUtilNet.GetFlowDirection(eid) = esriFDIndeterminate Then ' Trouvé un bord non initialisé ou indéterminé ' ajoutant au jeu de sélection pNetE .QueryIDs eid, esrieTEdge, classid, oid, subid pSelSet.Add oid End If Next i ' Refresh screen pMXD.ActiveView.Refresh End Sub

Voir la vidéo: 10 create new geometric network in arc catalogue arc map