Comment découper une entité vectorielle dans la mesure d'un jeu de données raster existant à l'aide d'arcpy

9

J'ai un jeu de données raster découpé avec des polylignes (de l'outil de contour) superposées (voir ci-joint). J'essaie de couper les polylignes dans la mesure du jeu de données raster, ce qui semble assez simple, mais j'ai essayé plusieurs choses et je n'arrive pas à le faire fonctionner. Je devrai éventuellement coder cela en utilisant arcpy mais je pense que pour l'instant, juste un coup de pouce dans la bonne direction quant à l'outil qui va accomplir cela m'aidera pour l'instant.

Merci.

PS J'utilise ArcInfo 10.0

clipPolylinesToRasterExtent

niklas24
la source

Réponses:

12

Vous pouvez utiliser l'étendue du jeu de données en tant que géométrie de polygone avec l'outil de découpe, comme dans l'exemple Utilisation des géométries dans les outils de géotraitement .

import arcpy

pnt_array = arcpy.Array()
extent = arcpy.Raster(in_raster).extent
pnt_array.add(extent.lowerLeft)
pnt_array.add(extent.lowerRight)
pnt_array.add(extent.upperRight)
pnt_array.add(extent.upperLeft)

poly = arcpy.Polygon(pnt_array)

arcpy.Clip_analysis(in_lines, poly, "out_dataset")
om_henners
la source
Je vous remercie!! Avant de voir ce post, j'ai pu au moins le faire manuellement dans Arc, mais il semble que mon chemin soit légèrement alambiqué. J'ai créé un fichier de formes factice, puis j'ai construit un polygone avec les outils de l'éditeur qui délimitait les limites des données raster. Ensuite, j'ai exécuté l'outil de clip sur les polylignes en utilisant ce fichier de formes factice comme ce qu'il devrait également les clipser. J'ai eu une erreur, mais j'ai ensuite utilisé la fonction pour polygoner et j'ai utilisé le résultat comme fichier de formes pour les polylignes à découper et cela a fonctionné !! J'aurai besoin d'arcpy donc merci pour ça !! :-)
niklas24
2

Il existe un moyen simple de procéder.

Obtenez d'abord l'étendue de l'image raster.

définissez-la comme propriété d'étendue d'environnement

Utilisez ensuite la fonction de copie au lieu de l'analyse des clips, par exemple

arcpy.env.extent = arcpy.Extent(-107.0, 38.0, -104.0, 40.0)
...some code here to ...
arcpy.CopyFeatures_management(shapefile,outFeatureClass)
Shabeerali
la source