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

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")

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)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.