Suite

Existe-t-il un moyen de convertir des polylignes 3D en points 3D dans ArcGIS ?

Existe-t-il un moyen de convertir des polylignes 3D en points 3D dans ArcGIS ?


Je dois convertir un grand nombre de polylignes 3D très denses (densifiées à 1 m) en points 3D. J'ai besoin de chaque sommet le long de la ligne et d'aucun doublon (deux des mêmes coordonnées XYZ) si possible. Existe-t-il un outil pour cela ? Chaque classe d'entités à convertir rapporte environ 1 à 2 millions de points. J'ai écrit mon propre module complémentaire pour cela et bien que j'utilise le curseur d'insertion (par opposition à iFeature:Store), il est assez lent, j'espère donc qu'il existe un meilleur moyen.


Avez-vous peut-être essayé ET GeoWizards ? Je sais qu'il peut faire des polylignes 2D vers des points dans la version gratuite, mais je ne suis pas sûr de la 3D.


Voici un ancien code VBA qui crée un fichier de formes de points 2D à partir de sommets de polylignes 2D. Je ne sais pas si cela fonctionne également sur les fonctionnalités 3D (pourquoi utilisez-vous des points 3D ?), mais cela pourrait fonctionner (mais cela ne fera qu'une partie de la solution) :

Private Sub UIButtonControl9_Click() 'Sub Test() Dim pMxDoc As IMxDocument Set pMxDoc = ThisDocument Dim WorkspaceName As String Dim TableName As String If pMxDoc.SelectedItem Is Nothing Then MsgBox "select layer in TOC first" Exit Sub End If If Not TypeOf pMxDoc. SelectedItem Is IFeatureLayer Then MsgBox "sélectionnez d'abord le calque dans la table des matières" Exit Sub End If DumpCoords pMxDoc.SelectedItem, "C:	empcoorddump.csv" MsgBox "Les sommets ont été exportés correctement." & Chr(13) & "La table des points de sommet est enregistrée dans C:	empcoorddump.csv" WorkspaceName = "C:	emp" TableName = "coorddump.csv" AddTextFile WorkspaceName, TableName 'AddXYEventLayer End Sub Sub DumpCoords(pFlayer As IFeatureLayer, sFile As String)"écrit OID,part#,point#,x,y des entités sélectionnées ' dans sFile (ou toutes les entités si aucune n'est sélectionnée) ' Si non (pFlayer.FeatureClass.ShapeType = esriGeometryPolyline Ou _ pFlayer.FeatureClass .ShapeType = esriGeometryPolygon) Then MsgBox "doit être polyligne ou polygone" Exit Sub End If Dim pFCur As IFeatureCursor Dim pFSel As IFeatureSelection Set pFSel = pFlayer If pFSel.SelectionSet.Count > 0 Then pFSel.SelectionSet.Search Nothing, False, Définir pFCur = pFlayer.FeatureClass.Search(Nothing, False) End If Open sFile For Output As #1 Dim StrHeader As String StrHeader = Chr(34) & "OIDp" & Chr(34) & Chr(44) & Chr(34) ) & _ "Part" & Chr(34) & Chr(44) & Chr(34) & "P_num" & Chr(34) & Chr(44) & _ Chr(34) & "XXX" & Chr(34) & Chr(44) & Chr(34) & "AAAA" & Chr(3 4) Print #1, StrHeader Dim pFeat As IFeature Set pFeat = pFCur.NextFeature Do Until pFeat Is Nothing Dim pGeomColl As IGeometryCollection Set pGeomColl = pFeat.Shape Dim l As Long For l = 0 To pGeomColl.GeometryCount - 1 I Dim pColleColl As Set pPointColl = pGeomColl.Geometry(l) Dim k As Long For k = 0 To pPointColl.PointCount - 1 Dim sOut As String sOut = pFeat.OID & "," & l & "," & k & "," & _ pPointColl.Point(k).x & "," & _ pPointColl.Point(k).Y Print #1, sOut Debug.Print sOut Next k Next l Set pFeat = pFCur.NextFeature Loop Close #1 End Sub Private Function UIButtonControl9_ToolTip () As String UIButtonControl9_ToolTip = "Extraire les coordonnées des sommets dans la table CSV" End Function

J'essaierais de convertir les polylignes 3D en un fichier lidar (LAS). Les outils qui gèrent les données lidar sont généralement conçus pour gérer un grand nombre de points.


si vous avez une licence arcinfo, vous pouvez simplement exécuter l'outil gp feature verteices to points. Il prend en entrée une classe d'entités linéaires ou poly et génère les sommets sous forme de points, avec leurs m et z.

pour ce qui est de vous assurer qu'aucun sommet en double n'est présent, vous pouvez consulter ces deux outils gp : intégrer et réparer la géométrie.

J'espère que cela t'aides.


Géométrie

Les géométries représentent des objets du monde réel en définissant une forme à un emplacement géographique spécifique. Ils sont utilisés dans l'ensemble de l'API pour représenter les formes des entités et des graphiques, les étendues de couches, les points de vue et les emplacements GPS. Ils sont également utilisés comme entrées et sorties d'opérations d'analyse spatiale et de géotraitement, et pour mesurer des distances et des surfaces, entre autres utilisations.

Géométrie dans ArcGIS Runtime

La classe Geometry fournit des fonctionnalités communes à tous les types de géométrie. Point , Multipoint , Polyline , Polygon et Envelope héritent tous de la classe de base Geometry et représentent différents types de formes.

Les caractéristiques géométriques courantes sont les suivantes :

  • Les géométries ont une référence spatiale indiquant le système de coordonnées utilisé par ses coordonnées.
  • Les géométries peuvent être vides, indiquant qu'elles n'ont pas d'emplacement ou de forme spécifique.
  • Les géométries peuvent avoir des valeurs z et/ou des valeurs m.
  • Les géométries peuvent être converties vers et depuis JSON pour être conservées ou être échangées directement avec les services REST.

La plupart des géométries sont créées et ne sont pas modifiées pendant leur durée de vie. Les exemples incluent les entités créées pour être stockées dans une géodatabase ou lues à partir d'une couche non modifiable, et les entités renvoyées à partir de tâches telles qu'une requête spatiale, une opération de géocodage, une trace réseau ou une tâche de géotraitement. Les géométries immuables (géométries qui ne peuvent pas être modifiées) offrent des avantages importants à votre application. Ils sont intrinsèquement thread-safe, ils aident à empêcher les modifications accidentelles et ils permettent certaines optimisations de performances.

Alors que les géométries immuables semblent présenter des problèmes pour l'édition des géométries existantes, ces problèmes sont résolus en utilisant des générateurs de géométrie. Les générateurs de géométrie sont conçus pour représenter l'état d'une géométrie en construction tout en permettant des modifications, permettant ainsi l'édition de workflows.

Les géométries ponctuelles représentent un point, un lieu ou un emplacement unique, tel qu'une adresse de maison géocodée dans un quartier ou l'emplacement d'un compteur d'eau dans un réseau de distribution d'eau. De plus grandes entités géographiques telles que les villes peuvent être représentées sous forme de points sur des cartes à petite échelle. Les points peuvent être utilisés comme géométrie d'entités et de graphiques et sont souvent utilisés pour aider à construire d'autres géométries.

Les points stockent un seul ensemble de coordonnées x,y qui représentent les coordonnées d'un emplacement (longitude et latitude par exemple) et une référence spatiale. En option, une valeur z (représentant des éléments tels que l'altitude par exemple) peut également être incluse. Des instances de Point peuvent être créées à l'aide de constructeurs, qui définissent la géométrie complète en un seul appel.

N'oubliez pas que lorsque vous travaillez avec des instances de points qui ont une référence spatiale géographique, la coordonnée x est la longitude (est ou ouest) et la coordonnée y est la latitude (nord ou sud). Lorsque les coordonnées géographiques sont représentées sous forme de chaînes, elles sont généralement écrites sous la forme "(latitude, longitude)", où la coordonnée y vient avant la coordonnée x. Les valeurs de latitude au sud de l'équateur et les valeurs de longitude à l'ouest du premier méridien sont exprimées sous forme de nombres négatifs. Vous pouvez utiliser CoordinateFormatter pour convertir une chaîne au format latitude, longitude directement en Point , et également renvoyer une chaîne au format latitude, longitude à partir d'un point existant. D'autres notations de coordonnées, telles que Military Grid Reference System (MGRS) et United States National Grid (USNG) sont également prises en charge.

Les géométries d'enveloppe représentent des formes rectangulaires dont les côtés sont parallèles à l'axe x ou y du système de coordonnées. Le plus souvent, ils représentent l'étendue spatiale des couches ou d'autres géométries, ou définissent des zones d'intérêt pour les tâches. Ils peuvent être utilisés comme géométrie de graphiques et dans de nombreuses opérations géométriques, bien qu'ils ne puissent pas être utilisés comme géométrie d'entités.

Les nouvelles instances d'Envelope sont définies en spécifiant une coordonnée x minimale et maximale et une coordonnée y minimale et maximale, et une SpatialReference . En option, une valeur z minimale et maximale peut être spécifiée pour définir la profondeur de l'enveloppe.

Les géométries multipoints représentent une collection ordonnée de points. Ils peuvent être utilisés comme géométrie d'entités et de graphiques, ou comme entrée ou sortie d'opérations géométriques. Pour les entités constituées d'un très grand nombre de points partageant le même ensemble de valeurs attributaires, les multipoints peuvent être plus efficaces à stocker et à analyser dans une géodatabase que l'utilisation de plusieurs entités ponctuelles.

Les multipoints sont composés d'une seule collection de points en lecture seule. Pour construire un multipoint, créez un MultipointBuilder , ajoutez des points et la géométrie renverra un Multipoint .

Vous pouvez également utiliser des générateurs de géométrie pour modifier une géométrie existante.

Pour accéder à chaque point dans un multipoint existant, parcourez la collection de points en lecture seule renvoyée par la propriété points.

Les géométries polylignes représentent la forme et l'emplacement d'entités linéaires, par exemple, une rue dans un réseau routier ou un pipeline dans une raffinerie de pétrole. Ils peuvent être utilisés comme géométrie d'entités et de graphiques, ou comme entrée ou sortie de tâches ou d'opérations de géotraitement, telles que la sortie d'une trace de réseau.

Les polylignes sont composées d'une série de segments connectés, où chaque segment définit une ligne continue entre un point de départ et un point d'arrivée. Vous pouvez également travailler avec des polylignes en utilisant des méthodes d'assistance basées sur des points.

Créez une polyligne à l'aide d'un PolylineBuilder . Ajoutez des points, et cela créera une série de segments de ligne droite reliant les points que vous avez spécifiés.

Les polylignes peuvent avoir plusieurs parties. Chaque partie est une série de segments connectés, mais les parties peuvent être disjointes les unes des autres, par exemple, dans une polyligne représentant une autoroute discontinue qui a une section inachevée. Les parties peuvent également se croiser à un ou plusieurs sommets, par exemple, dans une polyligne représentant une rivière et ses affluents. La classe Polyline hérite de Multipart , qui fournit des membres pour parcourir les segments et les points de chaque partie d'une polyligne.

Pour modifier une polyligne existante, utilisez PolylineBuilder .

Les géométries polygonales représentent la forme et l'emplacement de zones, par exemple, un pays ou un lac. Ils peuvent être utilisés comme géométrie d'entités et de graphiques, ou comme entrée ou sortie de tâches ou d'opérations de géotraitement, telles que la sortie d'une analyse du temps de conduite ou d'une opération de mise en mémoire tampon.

Les polygones sont similaires aux polylignes en ce sens qu'ils sont également composés d'une série de segments connectés. Cependant, les polygones définissent des zones fermées, de sorte que le point final du dernier segment est toujours au même emplacement que le point de départ du premier segment, formant une limite fermée. Comme pour les polylignes, vous pouvez travailler avec les sommets des segments d'un polygone en utilisant des méthodes d'assistance basées sur des points.

Pour construire un Polygon , créez un PolygonBuilder et ajoutez des points dans le bon ordre autour du périmètre du polygone. Ensuite, utilisez la méthode toGeometry() pour fournir le Polygon .

Lors de la définition d'un polygone, il n'est pas nécessaire de le fermer explicitement en répétant le point de départ comme dernier point. Les polygones sont toujours dessinés sous forme de zones fermées par ArcGIS Runtime. Cependant, vous devrez peut-être simplifier une géométrie pour la stocker dans une géodatabase.

Semblable aux polylignes, les polygones peuvent avoir plusieurs parties mais avoir des règles différentes de celles des polylignes à plusieurs parties. Chaque partie d'un polygone à plusieurs parties est une série de segments connectés formant un anneau fermé. Chaque pièce ne doit traverser aucune autre pièce mais peut se trouver complètement à l'intérieur ou à l'extérieur d'une autre pièce. Par exemple, un polygone représentant l'état d'Hawaï comprendrait huit parties disjointes, une représentant chaque île. Un polygone représentant le pays d'Afrique du Sud, qui entoure complètement l'enclave du Lesotho, comprendrait deux parties, l'une contenue dans l'autre. La classe Polygon hérite également de Multipart .

Multipartie (polygone et polyligne)

Polygone et Polyligne héritent de Multipart . Multipart permet d'accéder à une collection de pièces de géométrie. Chaque partie de la collection est une collection d'objets segment. Vous pouvez parcourir les segments ou les points de chaque pièce.

Vous pouvez parcourir les points qui représentent les sommets de toutes les parties. De la même manière que Polygon et Polyline sont immuables, les collections renvoyées par Multipart sont également immuables.

Un segment décrit une ligne continue entre un emplacement de départ et un emplacement de fin. Chaque partie d'une géométrie en plusieurs parties est une collection de segments où la fin d'un segment se trouve exactement au même endroit que le début du segment suivant. Le système ArcGIS prend en charge les segments droits et courbes, mais dans la version actuelle, seuls les segments droits sont pris en charge dans ArcGIS Runtime SDK. Les géométries en plusieurs parties peuvent être composées et décomposées en segments si nécessaire jusqu'à ce que les vraies courbes soient entièrement prises en charge, l'utilisation de méthodes basées sur des points offre une fonctionnalité égale.

Étant donné qu'un emplacement unique est partagé par des segments adjacents, un seul objet Point est utilisé pour représenter l'emplacement partagé lorsque vous parcourez les points d'une pièce. En conséquence, lors de l'itération à travers les points d'une partie d'une polyligne, il y aura un point de plus que le nombre de segments dans cette même partie.

Semblables aux géométries qu'ils comprennent, les segments sont immuables.

La signification des coordonnées dans une géométrie est déterminée par la référence spatiale de la géométrie. Ensemble, les sommets et la référence spatiale permettent à votre application de traduire un objet du monde réel de son emplacement sur la Terre à son emplacement sur votre carte ou scène.

Dans certains cas, une référence spatiale géométrique peut ne pas être définie. Les graphiques qui n'ont pas de référence spatiale sont dessinés à l'aide de la même référence spatiale que la vue cartographique dans laquelle ils sont dessinés. Lorsque vous utilisez un générateur de géométrie pour créer une géométrie de polyligne ou de polygone à partir de géométries de points, vous n'avez pas besoin de définir la référence spatiale de chaque point avant de l'ajouter au générateur, car la référence spatiale du générateur lui sera attribuée. x27 ajouté à. Dans la plupart des autres cas, comme lors de l'utilisation d'une géométrie dans des opérations de géométrie ou lors de la modification d'une table d'entités, la référence spatiale de la géométrie doit être définie.

Unités linéaires, angulaires et surfaciques

Différents types d'unités de mesure peuvent être utilisés dans l'API ArcGIS Runtime. Les systèmes de coordonnées projetées définissent les coordonnées à l'aide de mesures linéaires, par exemple à l'aide de mètres ou de miles, qui sont représentés par LinearUnit . Les unités linéaires sont également utilisées pour renvoyer des mesures de distance, par exemple par certains membres de GeometryEngine . Les systèmes de coordonnées géographiques définissent les coordonnées à l'aide de mesures angulaires, par exemple à l'aide de degrés ou de radians, qui sont représentés par AngularUnit . Les méthodes qui calculent la taille des zones, par exemple en acres ou en kilomètres carrés, utilisent des unités de surface. Ceux-ci sont représentés par AreaUnit . Les unités linéaires, angulaires et surfaciques peuvent être définies en utilisant des énumérations des unités de mesure les plus courantes. Ils peuvent également être définis par un identifiant bien connu (WKID) ou un texte bien connu (WKT).

Projection, opérations topologiques et autres

La modification des coordonnées d'une géométrie pour que la même forme et le même emplacement soient représentés à l'aide d'une référence spatiale différente est appelée "projection" ou parfois "reprojection". Les géométries étant immuables, elles n'ont aucune méthode membre qui projette, transforme ou modifie autrement leur contenu.

La classe GeometryEngine fournit un large éventail de méthodes qui lisent le contenu des géométries et modifient ce contenu pour créer de nouvelles géométries. Il existe des méthodes pour projeter, faire pivoter, déplacer, couper, densifier et généraliser des géométries. Lorsque vous créez des géométries à l'aide d'emplacements à l'écran et que la carte est une carte en boucle, vous devrez peut-être également envisager de normaliser une géométrie avant de l'enregistrer dans une géodatabase ou de l'utiliser dans des tâches ou d'autres opérations.

Utilisez la classe GeometryEngine pour projeter des géométries sur une autre référence spatiale.

Conversion vers et depuis JSON

Les géométries peuvent être sérialisées et désérialisées vers et depuis JSON. La documentation de l'API REST ArcGIS décrit la représentation JSON des objets géométriques. Vous pouvez utiliser ce mécanisme d'encodage et de décodage pour échanger des géométries avec les services Web REST ou pour les stocker dans des fichiers texte.

La conversion vers ou depuis JSON peut ajouter des points aux géométries en plusieurs parties si la géométrie n'a pas suffisamment de points pour construire un segment.

Les géométries peuvent avoir des valeurs z, indiquant des valeurs le long de l'axe z, qui est orthogonal à la fois à l'axe x et à l'axe y. Les valeurs Z peuvent indiquer la hauteur au-dessus ou la profondeur au-dessous d'une surface, ou une élévation absolue. Par exemple, les valeurs z sont utilisées pour dessiner les emplacements des géométries dans les vues de scène. Notez que les géométries ne sont pas considérées comme de véritables formes 3D et sont drapées sur des surfaces dans la vue, ou dans certains cas, dessinées dans un seul plan à l'aide de valeurs z. Les valeurs Z sont stockées sur Point et Enveloppe . Par conséquent, comme toutes les autres géométries sont créées à partir de Point , tous les types de géométrie peuvent avoir des valeurs z.

Le fait qu'une géométrie ait ou non des valeurs z est déterminé lors de la création de la géométrie si vous utilisez une méthode qui a un paramètre de valeur z, la nouvelle géométrie aura des valeurs z (la géométrie hasZ sera vraie). Si vous créez des géométries à l'aide de constructeurs qui prennent des paramètres de valeur z, ou si vous passez dans le constructeur des points ou des segments qui ont des valeurs z, la nouvelle géométrie aura des valeurs z. Une géométrie avec des valeurs z est parfois appelée géométrie consciente de z.

Il se peut que tous les sommets de votre géométrie n'aient pas de valeur z définie. NaN est une valeur z valide utilisée pour indiquer une valeur z inconnue. Cependant, la valeur z par défaut est zéro. Il est important de noter que lorsque vous obtenez des valeurs z à partir d'une géométrie qui n'en a pas, la valeur par défaut de zéro est renvoyée. Vérifiez la propriété hasZ pour déterminer si une valeur z de zéro signifie qu'il n'y a pas de valeurs z dans la géométrie ou que la valeur z dans les coordonnées de la géométrie est vraiment zéro.

Les valeurs M sont utilisées dans les scénarios de référencement linéaire et, comme les valeurs z, chaque géométrie peut éventuellement stocker des valeurs m. La valeur m par défaut est NaN . Si une valeur m est spécifiée en tant que paramètre lors de la création d'une géométrie, la nouvelle géométrie aura des valeurs m (la géométrie hasM sera vraie). Notez que lorsque vous récupérez les valeurs m d'une géométrie, la valeur par défaut de NaN (différente de la valeur par défaut pour les valeurs z) est renvoyée pour les sommets qui n'ont pas de valeurs m. Une géométrie avec des valeurs m est parfois appelée géométrie prenant en compte les m.


A propos des services de géotraitement d'altitude

Une fois que vous avez publié les services d'analyse d'altitude, vous ne pouvez utiliser les services que dans ArcGIS 10.6.1 ou version ultérieure.

Pour obtenir des informations générales sur l'utilisation des services, consultez Utiliser un service de géotraitement dans ArcMap dans l'aide d'ArcGIS Server sous Publier > Types de services > Services de géotraitement > Utilisation des services de géotraitement > Utilisation des services de géotraitement dans ArcGIS Desktop .

Données d'altitude

Les données d'altitude utilisées par les services sont rassemblées et organisées par Esri et mises à disposition dans le cadre de l'installation d'ArcGIS Data Appliance 7.2. Un avantage clé est que les données d'altitude ont déjà été prétraitées et optimisées pour des performances rapides. Au fur et à mesure que de nouvelles zones et de meilleures résolutions seront disponibles, elles seront incluses dans les futures mises à jour.

Les données d'altitude proviennent du U.S. Geological Survey (USGS), de la U.S. National Geospatial-Intelligence Agency (NGA), de la U.S. National Aeronautics and Space Administration (NASA) et d'autres sources faisant autorité. Alors que les données d'altitude sont disponibles pour toute la surface de la terre, il existe des résolutions plus élevées disponibles pour des étendues géographiques particulières. Le tableau suivant répertorie les résolutions de données disponibles, la zone couverte par chacune et les sources principales. Les données sont en fait fournies dans un système de coordonnées sphériques avec des unités de secondes d'arc, mais elles sont répertoriées ici par ses approximations métriques pour plus de commodité.

1. Les États-Unis continentaux

2. Norvège, Finlande, Estonie, Danemark, Autriche, Espagne et Japon

Ensemble de données d'élévation nationale de l'USGS et autres sources faisant autorité.

1. Les États-Unis continentaux, le Canada et le Mexique

2. Afrique, Amérique du Sud, la plupart de l'Europe et de l'Asie continentale, les Indes orientales, la Nouvelle-Zélande et les îles du Pacifique occidental entre 60 degrés nord et 56 degrés sud

1. Ensemble de données d'altitude nationale de l'USGS.

2. L'ensemble de données de la mission SRTM (Shuttle Radar Topography Mission) d'une résolution d'une seconde d'arc (environ 30 mètres).

3. En Australie, l'outil est disponible sur la base du jeu de données SRTM DEM-S d'une résolution d'une seconde d'arc (environ 30 mètres) de Geoscience Australia.

La surface terrestre du monde entre 60 degrés nord et 56 degrés sud

Mission de topographie radar de la navette (SRTM).

1 000 mètres (30 secondes d'arc)

Toute la surface du monde

Carte bathymétrique générale des océans (GEBCO).

Les données bathymétriques pour les océans sont également incluses dans le service d'élévation globale, vous permettant de dériver des profils jusqu'au fond marin au-dessus des zones océaniques.

Contrôler la résolution

Les données source utilisées dépendent du réglage du paramètre Résolution DEM ainsi que de l'emplacement particulier de l'entité linéaire pour laquelle vous essayez de créer un profil.


Côte / Estuaire

Que diriez-vous de créer des isolignes à partir du raster ? Vous pouvez ensuite convertir les polylignes en points et exporter les valeurs X, Y et Z vers le fichier ASCII.
J'utilise généralement cette option pour les fichiers .xyz.
Si vous avez besoin de plus d'informations, faites le moi savoir.

Luca Castrucci, modifié il y a 4 ans.

RE : Raster vers fichier .xyz (ArcGIS)

Merci Dimitry pour l'astuce. Mais je ne pense pas avoir tout compris. Alors ce que tu fais c'est :
1) En utilisant "Analyse spatiale - Contour" vous créez des isolignes, quelle valeur utilisez-vous pour l'intervalle de contour ?
2) Comment convertissez-vous les isolignes en points ? Utilisez-vous l'outil "Outils de gestion des données - Échantillonnage - Générer des points le long des lignes" ?
3) Après avoir obtenu les points (X et Y), utilisez-vous l'outil "Spatial Analysis Tools - Extract Values ​​to Points" pour obtenir l'altitude (Z) ?
4) Pour autant que je sache, seuls les rasters semblent être exportables dans un fichier ASCII, mais je suis également plus récent sur ArcGIS, donc je me trompe probablement. Pouvez-vous entrer un peu plus dans les détails de votre procédure?

Dmitry Kushnir, modifié il y a 4 ans.

RE : Raster vers fichier .xyz (ArcGIS)

1) J'utilise Spatial Analyst >Surface> Isolines pour créer des isolignes à partir de raster. Pour l'intervalle de contour, une valeur arbitraire peut être choisie, sur la base du raffinement du modèle.
2) Pour convertir des isolignes en points : Outils de gestion des données> Entités > Sommets d'entités en points.
3) En fait, je n'utilise pas les outils d'analyse spatiale > Extraire les valeurs en points, car les valeurs Z auraient déjà dû être présentes dans le tableau attributif de la couche de points. Au lieu de cela, vous devrez ajouter les coordonnées x et y au tableau. Cela peut être fait via Data Management Tools>Feature>Add XY Coordinates.
4) Ensuite, vous devrez exporter la table attributive résultante dans le format de fichier approprié pour l'attraper dans Quickin.
Par exemple, vous pouvez envisager d'utiliser les outils de conversion>Table en dBase. Le format dBase est lisible par de nombreux autres programmes, par ex. Excel, d'où vous pouvez exporter vers le fichier .txt ACSII. Ou exportez directement le tableau vers le fichier .xls (Outils de conversion> Tableau vers Excel).

Il existe également un moyen plus simple d'exporter un raster au format ASCII (en ignorant la création d'isolignes) : Outils de conversion>Raster en point. En conséquence, nous obtenons une couche de points dans un format de fichier de forme avec des valeurs Z dans la table attributive. Ensuite, nous n'avons plus qu'à effectuer les étapes 3) et 4).

Luca Castrucci, modifié il y a 4 ans.

RE : Raster vers fichier .xyz (ArcGIS)

Merci pour vos lignes directrices. J'y ai travaillé aujourd'hui, mais j'ai eu un problème entre les étapes 3 et 4. Lorsque j'ai essayé d'ajouter les coordonnées X et Y, ArcGIS m'a donné l'erreur : "Out of memory. L'ensemble de données est trop volumineux pour terminer cette opération. Retour à l'état précédent". J'ai peut-être plus de points qu'ArcGIS ne peut en gérer. La chose étrange est que j'ai ce problème uniquement lorsque j'utilise l'outil de conversion > Raster to Points, avec des isolignes, cela fonctionne très bien. Avez-vous le même problème?
Quelles méthodes entre les deux utilisez-vous le plus ? Je pense que le Raster to point est le meilleur puisque tous les points sont sélectionnés, ce qui rend la bathymétrie sur QUICKIN plus précise.


Génération DXF à l'aide d'ezdxf : polyligne contenant des points de lissage de spline

Je développe un programme et l'une des exigences est de prendre DXF comme entrée. L'entrée est limitée au cas 2D uniquement. Le programme lui-même est en C++/Qt, mais pour le tester, j'ai besoin d'un échantillon d'entrée DXF. L'import de spline est déjà implémenté, la prochaine étape est la polyligne avec des points de lissage de spline ou des points de contrôle ajoutée. J'ai décidé d'utiliser Python/ezdxf pour générer une telle polyligne, car je n'ai pas Autocad.

Ma première approche consistait à créer une spline à partir de points de lissage en utilisant add_spline_control_frame , puis à la convertir en polyligne. Le problème est qu'il s'est avéré qu'il n'y avait pas eu de conversion de spline en polyligne (bien que je pense l'avoir vu dans la documentation, mais je ne peux plus le trouver).

L'approche actuelle consiste à créer une polyligne par add_polyline2d(points) , en faisant en sorte que chaque point soit avec le champ d'indicateur DXF égal à 8 (sommet de spline créé par ajustement de spline). Le problème est que les points doivent être de type DXFVertex (docs state Vertex , mais il est absent), et ce type est privé pour ezdxf.

Veuillez partager vos approches soit des problèmes que j'ai rencontrés avec ezdxf, soit du problème initial.


Importer des données de rue OSM

« OpenStreetMap est un projet visant carrément à créer et à fournir des données géographiques gratuites telles que des plans de rues à tous ceux qui le souhaitent. » -openstreetmap.org

OpenStreetMap

OSM est un format basé sur XML utilisé pour décrire des données vectorielles dans une carte. Il définit trois types de données de base (nœuds, chemins et chemins fermés) qui sont utilisés pour décrire tous les autres éléments :

  • Nœuds : points entre lesquels les segments sont dessinés.
  • Chemins : liste ordonnée de nœuds, affichés comme connectés par des segments de ligne dans l'éditeur.
  • Chemins fermés : chemins qui forment une boucle complète. Ils sont utilisés pour décrire des zones telles que des parcs, des lacs ou des îles.

Exporter un fichier OSM depuis OpenStreetMap

Recherchez le fichier .osm dans le dossier de données de votre projet CityEngine actuel.

Importer un fichier OSM dans CityEngine

  1. Ouvrez un nouveau fichier de scène en cliquant sur Fichier > Nouveau > CityEngine > Scène CityEngine .
  2. Faites glisser le fichier dans la fenêtre 3D.
  3. Dans la boîte de dialogue d'importation OSM, choisissez les couches à importer. En règle générale, toutes les rues se trouvent dans la couche autoroute et les bâtiments se trouvent dans la couche bâtiment. Utilisez la case à cocher Sélectionner/désélectionner tout pour désélectionner tous les calques si nécessaire.
  4. Définissez les options supplémentaires comme indiqué dans la capture d'écran suivante :
  5. Cliquez sur Terminer.
  6. Acceptez le système de coordonnées suggéré WGS 1984 UTM Zone 33N.
  7. Cliquez sur OK .

Largeurs des rues

Si vous regardez attentivement les formes de rue générées, vous remarquerez qu'elles diffèrent en largeur. Lors de l'importation de données OSM avec l'option Map OSM tags activée, CityEngine crée des attributs de couche qui définissent les largeurs de rue à partir des types de rue OSM.

Sélectionnez un segment de rue et notez ses paramètres dans l'inspecteur.

Dans la capture d'écran suivante, une rue avec une route principale de type autoroute a attribué des paramètres de largeur de rue et de trottoir en fonction du mappage d'attributs de couche à partir de la couche OSM importée OSM_Streets :

Vous pouvez modifier manuellement la largeur de la rue en définissant une nouvelle valeur de largeur pour le paramètre streetWidth (la valeur deviendra une valeur définie par l'utilisateur) ou en utilisant l'outil Street Edit sur la barre d'outils.

Mappage d'attributs OSM

  1. Sélectionnez la nouvelle couche de réseau graphique dans l'éditeur de scène et examinez le code d'attribut de la couche dans l'inspecteur.

Le segment de rue dans l'image précédente est de type tertiaire et est mappé à 6 mètres dans la fonction streetWidthByClass. Vous pouvez modifier le mappage ici comme vous le souhaitez.

Conflits de données

Les données OSM importées ne sont souvent pas très propres et entraînent des conflits (par exemple, des rues qui se chevauchent). Les blocs ouverts ou les lignes pointillées rouges sont des indications de segments non connectés ou de rues qui se chevauchent, ce qui peut conduire à des blocs invalides. Il existe plusieurs manières de gérer de tels conflits :

  • Utilisez l'outil Cleanup Graph avec différents paramètres.
  • Sélectionnez moins de rues dans la couche d'autoroute dans la boîte de dialogue d'importation.
  • Définissez les largeurs des rues et des trottoirs sur des valeurs inférieures (d'où moins de rues qui se chevauchent).
  • Nettoyez manuellement le réseau routier après l'importation en combinant ou en supprimant les croisements ou les rues parallèles à proximité.

Les captures d'écran suivantes montrent un exemple de nœuds de graphique non connectés avant et après le nettoyage :

Les données de rue OSM contiennent généralement des données d'élévation (attribut level ), mais elles peuvent être défectueuses. Si vous activez l'option Exécuter l'outil de génération de ponts, CityEngine élabore automatiquement une solution possible pour résoudre ce problème.

Ajouter une couche de carte avec des images satellites géoréférencées

  1. Cliquez sur Fichier > Importer > Calques CityEngine > Importer la texture .
  2. Accédez au fichier pompeii_satellite.tif dans le dossier maps.
Le fichier mondial pompeii_satellite.tfw accompagne le fichier pompeii_satellite.tif et stocke les informations de géoréférencement de l'image. Par conséquent, les paramètres Taille (limites) et Décalage (emplacement) sont automatiquement définis. Voir les jeux de données raster de fichiers mondiaux pour plus d'informations.

CityEngine ne reprojette pas les images lors de l'importation. Le choix du système de coordonnées lors de l'import d'image n'est utilisé que pour calculer les informations de localisation correctes. Il est donc crucial d'avoir des données d'images préparées dans la projection utilisée dans la scène CityEngine. (Dans l'exemple précédent, l'image satellite de Pompéi a été reprojetée dans ArcMap vers WGS 1984 UTM Zone 33N (le système de coordonnées de la scène utilisé pour cette scène du didacticiel).

La capture d'écran suivante montre la carte satellite ajoutée aux données de rue OSM :

Générer des modèles

  1. Sélectionnez toutes les formes dans le calque OSM_Shapes dans l'éditeur de scène.
  2. Affectez le fichier de règles osm_generic.cga.

Étant donné que certaines formes ont déjà un jeu de règles de début valide, la boîte de dialogue Définir la règle de début s'affiche.

La capture d'écran suivante montre des modèles génériques simples générés sur des données OSM :

Existe-t-il un moyen de convertir des polylignes 3D en points 3D dans ArcGIS ? - Systèmes d'information géographique

Si vous n'effectuez qu'une seule mise à niveau de votre système cette année, cela devrait être la mise en œuvre d'un logiciel de productivité. Notre produit ToolPac a été conçu pour éliminer les nombreux goulots d'étranglement de la CAO. Il contient plus de 750 fonctions conçues dans un seul but, vous faire gagner du temps.

ToolPac est utilisé aujourd'hui par des milliers d'architectes, d'ingénieurs et de concepteurs ! Cette collection complète d'outils de productivité fonctionne avec AutoCAD (LT non pris en charge), BricsCAD Pro ou supérieur ou IntelliCAD (voir le tableau en bas pour les versions requises). Il fonctionne aussi bien dans tous les environnements, y compris l'architecture, l'ingénierie, le civil, la mécanique et la conception.

Installation facile : Le programme d'installation peut ajouter toutes ces fonctionnalités dans un seul menu qui est automatiquement inséré dans votre profil actuel. Ajoutez la fonctionnalité ToolPac à un logiciel tiers et même des menus personnalisés sans problème.

Liste partielle des fonctions
La liste ci-dessous détaille certaines des fonctionnalités de ToolPac.

Choix d'interface
Contrôlez l'application avec votre choix d'entrée de ligne de commande, de menu déroulant ou d'interface ruban.


Surface TIN en surface Civil 3D. Quelle est la meilleure façon de procéder?

700 000 dans le TIN écrêté) qu'il faut une éternité pour les exporter même en CAO. Je me demande s'il y a une meilleure façon d'aborder cela. Je ne travaille pas beaucoup avec les TIN ou les rasters.

Oui en utilisant arcmap. LandXML était l'un de mes premiers instincts dans ce domaine, mais à moins que je n'aie pas assez cherché, Arc ne peut pas exporter vers LandXML.

Convertissez l'étain arcgis en arêtes, exportez-le en tant que fichier de formes et importez-le en CAO (en supposant que civil 3d).

J'ai essayé ceci mais le grand nombre de fonctionnalités résultantes fait planter mon civil 3d :(

Il existe un plugin arcgis pour civil3d, l'avez-vous ? Je suis presque sûr que c'est gratuit. De plus, c'est terriblement imprécis, mais pouvez-vous exporter des contours ? Puis les importer ?

Je n'ai pas ce plugin, mais je vais me renseigner. Je ne pense pas que les contours me donneraient la précision dont j'ai besoin pour cela. À moins que j'aie fait un petit intervalle, ce qui peut finir par revenir à mon problème d'origine de trop de polylignes à gérer pour Civil 3D.

Convertissez votre étain en raster dans arcgis à l'aide de la commande étain en raster. Choisissez une taille de cellule appropriée pour la tâche à accomplir. Découpez le raster dans la mesure nécessaire pour l'analyse. Dans civil 3D, créez une nouvelle surface vide (étain ou dem), puis ajoutez le raster découpé à votre surface civil 3D. Si le raster est au format de grille esri, choisissez le fichier .adf qui a la plus grande taille de fichier.


Pro: Create 3D points along a 3D line

by ThomasColson

Perhaps this is already offered/idea, but I can find neither. A very common request that GIS folks get in land management agencies, where there are lots of trails going up and down mountains, is "how far is it? What are the mile posts? Where is the middle? How far to the stream crossing/bridge/water source?". Using 2d interpolation and measurements just doesn't work, where the difference between 2d and 3d line length can be a 1 to 1.5 ratio in some cases (a trail in 2d measure 1 mile, where in fact it is 1.5 miles due to terrain). This is handily summarized in Construct Points on polyline at 3d distance ,Creating point file along line (trail) at regular distances (0.20 miles) using ArcGIS Desktop? - Geo. ,http://www.arcgis.com/home/item.html?id=afb3cb8727c54ceba30c1df1c734f97a ,ArcGIS Toolbox - Create Points on Polylines with ArcPy – Ian Broad , and solved in Arc with http://www.arcgis.com/home/item.html?id=9416fbdf13474923b462567e750417df

With linear referencing I can create true 3d length and use hatching to show those miles, but I can't convert the hatches to a feature class. How To: Create a route with measured values that reflect the 3D length of a line


AutoCad :: Adding Layers To Drawings In Bulk

I am trying to add two layers (A-FURN-3-CGDS-VV-1 & A-FURN-3-CGDS-HH-1) to about 4,700 DWG files, any way to bulk process something like this. We use blocks for furniture symbols, and have about 4,700 of them that need these specific layers in them in order to work with a rendering software we use that is based on the layer names. I will also need to go in and select parts of the drawings to put on one layer, and other parts for the other manually, but if I could start with the DWG files having the layers in them it would save a little time.

How to have the bulk process put everything in the DWG file onto one of the layers (VV) while processing.


"Non-NURBs" Dialog Box Options:

This panel controls the output of non-NURBS primitive data, such as meshes, lines and points.

Polygon Export Method The following two radio buttons choose the method by which the polygons will be stored within the IGES file:

Output Each Polygon As a Bilinear NURBS Patch Each and every polygon will be converted to an un-trimmed bilinear NURBS patch. This is extremely in-efficient but there are some CAD/CAM programs which can only read NURBS data (and not polygons), hence this is the only method available to get polygon data into these programs.

Output Polygons as Entity # 106:12 (copious data)

Polygon meshes will be output to the IGES file using 'copious data' entity # 106, form # 12. This is the default method. Not all programs which read in IGES will be able to accept and display copious data (many CAD/CAM programs can only deal with NURBS data, not polygons).

Output all polygons as 3-sided triangles If this checkbox is enabled then all polygon data will be triangulated first prior to export.

Reverse orientation of polygons

Output vertex normals (#106, form 13)

If this checkbox is enabled then vertex normals (if available) will be stored along with the raw vertex coordinate data. Cette option est activée par défaut. This vertex normal information is useful for programs which require such data to make a rendered object appear smooth.

Flip vertex normals If this checkbox is enabled then the vertex normals output to the IGES file will be 'flipped' so that they point in the opposite direction.

This combo box determines how line segments are output to the IGES file. Internally, lines are "polylines" in which each polyline can handle 2 or more vertices, and each object definition can have one or more polylines. IGES allows for various ways of handling line segments and polylines:

No lines will be output to the IGES file.

2-point line elements (110)

Linear 3D paths (copious data # 106:12)

Linear BSpline curves (126)

Group lines together (#402)

This combo box determines how 3D pointsets ("point clouds") are output to the IGES file.

No 3D points will be output to the IGES file.


Voir la vidéo: Exploration 3D dans ArcGIS