Jak przyciąć obiekt wektorowy w zakresie istniejącego zestawu danych rastrowych za pomocą arcpy

9

Mam przycięty zestaw danych rastrowych z nałożonymi poliliniami (z narzędzia do konturowania) (patrz załącznik). Próbuję przyciąć polilinie do zakresu zestawu danych rastrowych, co wydaje się dość proste, ale próbowałem wielu rzeczy i nie mogę sprawić, by zadziałało. W końcu będę musiał to kodować za pomocą arcpy, ale myślę, że na razie wystarczy popchnąć we właściwym kierunku, które narzędzie to osiągnie, na razie mi pomoże.

Dzięki.

PS Używam ArcInfo 10.0

clipPolylinesToRasterExtent

niklas24
źródło

Odpowiedzi:

12

Można użyć zakresu zestawu danych jako geometrii wielokąta za pomocą narzędzia do przycinania, jak w przykładzie Korzystanie z geometrii w narzędziach do geoprzetwarzania .

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
źródło
Dziękuję Ci!! Zanim zobaczyłem ten post, byłem w stanie przynajmniej ręcznie to zrobić w Arc, ale wygląda na to, że moja droga jest nieco zawiła. Utworzyłem fikcyjny plik kształtu, a następnie zbudowałem wielokąt za pomocą narzędzi edytora, które wytyczyły granicę danych rastrowych. Następnie uruchomiłem narzędzie klipu na poliliniach, używając tego fikcyjnego pliku kształtu jako tego, co powinno je również przyciąć. Wystąpił błąd, ale potem użyłem funkcji do wielokąta i wykorzystałem wynik tego jako plik kształtu dla klipów polilinii i zadziałało !! Będę potrzebował arcpy, więc dziękuję za to !! :-)
niklas24
2

Jest na to prosty sposób.

Najpierw uzyskaj zasięg obrazu rastrowego.

ustaw go jako właściwość zasięgu środowiska

Następnie użyj na przykład funkcji kopiowania zamiast analizy klipu

arcpy.env.extent = arcpy.Extent(-107.0, 38.0, -104.0, 40.0)
...some code here to ...
arcpy.CopyFeatures_management(shapefile,outFeatureClass)
Shabeerali
źródło