Extraire les élévations DEM raster en tables d'attributs vectoriels dans ArcGIS Desktop?

11

J'ai un projet ArcMap 10 avec plusieurs groupes de couches. Une couche est un DEM raster, un autre groupe de couches est un groupe de fichiers de formes vectorielles (y compris des points, des lignes et des polygones). Le client souhaite que toutes les données vectorielles contiennent des valeurs Z.

Remplir les tables d'attributs pour les données vectorielles avec des valeurs X et Y est assez facile, mais comment puis-je remplir les valeurs Z?

Existe-t-il un moyen d'utiliser la calculatrice de champ pour "saisir" les valeurs de hauteur de la couche DEM pour chaque entité vectorielle?

Je dois ajouter que nous n'avons pas de licence pour les extensions 3D Analyst ou Spatial Analyst.

Brad Torr
la source
ne peut pas être fait dans ArcGIS sans analyste 3D (ou analyste spatial). Même si vous aviez accès à 3D Analyst, vous ne pouvez le faire que pour les points et les polylignes à condition qu'il s'agisse de contours d'élévation ayant les mêmes valeurs d'élévation. L'outil Interpoler la forme créera des entités 3D, mais celles-ci auront une élévation variable. Vous ne pouvez tout simplement pas convertir facilement ces informations en attributs de valeurs Z à moins que les entités aient des élévations parfaitement plates. Tout convertir en points, puis interpoler la forme et calculer XYZ fonctionnerait.
Jakub Sisak GeoGraphics

Réponses:

15

Dans ArcGIS, je ne l'ai fait qu'avec des vecteurs ponctuels - je ne sais pas comment vous le feriez avec des polygones ou des entités linéaires. Malheureusement, vous avez cependant besoin de Spatial Analyst. Il existe un outil dans Spatial Analyst Tools \ Extraction \ Extract Multi Values ​​to Points et Extract Values ​​to Points . Extraire plusieurs valeurs en points est préférable, car il vous permet de renommer le nom du champ z vers lequel vous extrayez vos valeurs — Extraire des valeurs en points ne vous permet pas de le faire. J'ai du mal à le faire dans ArcMap (l'outil se bloque), mais cela fonctionne très bien dans ArcCatalog.

L' extension Hawths Analysis Tools (gratuite) pour ArcMap avait un outil Intersect Point, mais le développement de l'extension a été interrompu il y a quelques années. Il a été remplacé par l' environnement de modélisation géospatiale , que je n'ai jamais utilisé.

SAGA-GIS (logiciel autonome gratuit) a deux fonctions dans Formes - Grille \ Ajouter des valeurs de grille aux points et Formes - Grille \ Ajouter des valeurs de grille dans les formes qui peuvent probablement faire ce que vous voulez. Voici la description de l'outil Ajouter des valeurs de grille aux formes:

Jointure spatiale: récupère les informations des grilles sélectionnées aux positions des formes du calque de formes sélectionné et les ajoute au calque de formes résultant. Pour les points, cela est similaire au module «Ajouter des valeurs de grille aux points». Pour les lignes et les polygones, les valeurs moyennes seront calculées à partir des cellules de grille interférentes. Pour les polygones, le module «Statistiques de grille pour les polygones» offre des options plus avancées.

SAGA est votre meilleur pari, à mon avis.

J'espère que cela t'aides!

Hendra
la source
2
L'environnement de modélisation géospatiale dispose des outils suivants qui peuvent faire l'affaire: 1) isectpolyrst (intersection de polygones avec raster) 2) isectlinerst (intersection de lignes avec raster) 3) isectpntrst (intersection de points avec raster). Ces outils peuvent parfois être un peu tempérants, mais ils feront le travail.
Aaron
Notez que l'environnement de modélisation géospatiale est uniquement compatible avec ArcGIS 10.3 et versions antérieures
Tung
1

Je n'ai pas essayé cela pour les polygones mais cela fonctionne vraiment bien pour les points. Dans Arcmap 10, si vous avez accès à un outil d'analyste 3D, vous pouvez rechercher la forme d'interpolation d' outils. Ensuite, vous sélectionnez votre fichier raster et votre couche vectorielle ajustez les valeurs z si vous voulez des élévations en pieds et votre DEM en mètres et laissez cela s'exécuter . Une fois qu'il est terminé, vous recherchez l'outil ADD XY et sélectionnez votre couche nouvellement créée et il calculera ensuite vos valeurs X, Y, Z dans ce tableau d'attributs de couches.

Pete
la source
0

vous pourriez peut-être utiliser gdallocationinfo pour récupérer toutes les valeurs Z en lui passant les valeurs X, Y. une fois que vous avez les valeurs Z, utilisez la calculatrice feild pour ajouter la valeur Z aux points qui composent chaque entité. Il y aurait des scripts impliqués mais en théorie cela devrait fonctionner.

dango
la source
0

Selon vos unités ou la résolution requise, vous pouvez toujours exporter le raster DEM dans un fichier de formes polygonal, directement à partir de la boîte à outils, puis effectuer une jointure spatiale - c'est plus facile pour les points. Si vous avez besoin de valeurs Z pour des lignes ou des polygones, vous aurez évidemment besoin de segments ou de subdivisions de polygones définis à chaque changement d'altitude tel que rapporté par la grille DEM vectorisée. Cela peut être fait via des outils de géotraitement standard et des jointures spatiales, mais vous devez prêter une attention particulière à vos exigences de résolution et à la quantité de traitement qu'un grand ensemble de données consommera.

Garenne
la source
0

Je recommande d'obtenir une licence 3D Analyst et d'utiliser Ajouter des informations de surface . Vous pouvez également utiliser Interpoler la forme, puis Ajouter des informations Z, ce qui permet à certaines fonctionnalités de renvoyer des valeurs NA sans planter le programme entier. Sinon, il existe deux méthodes gratuites éprouvées qui nécessitent plus de travail. Il est possible de les implémenter à partir de QGIS , de sorte que vous n'ayez pas à quitter votre environnement SIG confortable.

Adam Erickson
la source
0

L'outil ESRI que vous cherchez à utiliser est le "Ajouter des informations Z". Vous pouvez peut-être obtenir un essai et voir si l'outil pourrait vous être utile. Si obtenir l'extension 3D Analyst n'est pas une option, la seule chose qui vient à l'esprit (autre qu'une solution de programmation) est d'extraire vos données d'ESRI et d'utiliser l'une des options gratuites telles que SAGA-GIS / qGIS leur "Ajouter une grille" Value to Shapes "ou" Grid Statistics for Polygons "n'est pas aussi flexible que ESRI mais fait la même chose si vous recherchez la hauteur moyenne le long du polygone / ligne.

user67765
la source
-1

Je sais comment faire cela pour les points. Les lignes et les polygones sont différents car ils traversent plusieurs cellules de la grille du DEM. Vous pouvez faire des points le long des lignes ou quelque chose comme ça et extraire des valeurs pour ceux-ci. Dans Arc, vous aurez besoin d'un analyste spatial pour obtenir les valeurs, mais vous pouvez les obtenir via Qgis (gratuit), mais pas aussi utile. Vous devrez être habile à travailler avec des fichiers Excel et à les convertir dans les deux sens à partir de fichiers de formes. Le Qgis générera un fichier de formes qui n'a que les élévations de points extraites, vous devrez donc copier et coller cela dans votre table d'origine en tant que fichier Excel (avec les valeurs X, Y, afin que vous puissiez le faire revenir dans un fichier de formes avec "afficher les données x, y"). Vous devrez garder une trace de vos projections pour vous assurer de choisir la bonne lors de la reconversion en fichier de formes.

Michael
la source
Lorsque vous répondez à une question, veuillez être précis au lieu de pointer vers des directions différentes. par exemple, l'utilisateur a besoin d'une réponse dans ArcGIS (pas QGIS).
Farid Cheraghi