Marcin Sobiech

Marcin Sobiech doktorant,
Uniwersytet Mikołaja
Kopernika w Toruniu

Temat: Najdłuższa oś poligonu - ArcGis

Witam,

moje pytanie kieruję do użytkowników oprogramowania Arc Gis.

Mając daną pulę kilku tysięcy poligonów zróżnicowanych pod względem kształtu, wielkości, obrazujących dane przestrzenne szukam narzędzia umożliwiającego wyznaczenie kierunku ich biegu-tj. azymutu.

W tym celu najprostszym sposobem jest wyznaczenie osi poligonu, przez co od jakiegoś czasu nurtuje mnie problem wyznaczenia jej w sposób automatyczny gdyż "ręcznie" dla kilkunastu tysięcy obiektów nie wchodzi to w grę :)

Czy ktoś miał z podobnym problemem styczność? Liczę na podpowiedzi

Marcin
Łukasz Chabudziński

Łukasz Chabudziński asystent naukowo
dydaktyczny, umcs

Temat: Najdłuższa oś poligonu - ArcGis

z tego co wiem nie ma takiego narzędzia, które by wyznaczało "oś poligonu", nie czepiam się ale chyba powinno się używać pojęcia "długość maksymalna",
ten problem w ArcGIS można rozwiązać tworząc model albo skrypt, który tą "długość" będzie wyznaczał

pozdrawiam
Jarosław S.

Jarosław S. mgr inż. ochrony
środowiska,
specjalista GIS

Temat: Najdłuższa oś poligonu - ArcGis

To tylko wolna myśl, a nie przepis na rozwiązanie, ALE

można poligon przerobić na punkty. Potem zrobić analizę odległości pomiędzy punktami, i chyba wtedy stanie się wszystko jasne. Z tego co znam QGIS powinien sobie poradzić. Minusem tego podejścia jest sytuacja, gdy takich analiz trzeba zrobić w sposób automatyczny "n"...
Karol Stachura

Karol Stachura Nie ma na świecie
rzeczy niemożliwych
- są tylko mało
pra...

Temat: Najdłuższa oś poligonu - ArcGis

Jeśli chodzi tylko o oś a nie jej długość to dla każdego obiektu robiąc zakres w postaci prostokąta obejmującego obiekt dłuższa przekątna tego prostokąta powinna wyznaczyć to o co Ci chodzi. Chyba że z racji poranka popełniłem jakiś błąd logiczny w rozumowaniu. :):)
Piotr Kania

Piotr Kania leśnictwo

Temat: Najdłuższa oś poligonu - ArcGis

Jeśli Cię dobrze zrozumiałem - interesuje Cię wyznaczenie podłużnej osi poligonu (z angielska - "center line")?

Najdokładniejszy (i najbardziej pracochłonny sposób):
1) zamiana poligonu(ów) na linie
2)zagęszczenie werteksów na liniach (np. tak, żeby werteksy były co 10 m itd. - można to zrobić w Arcgisie za pomocą ETGeowizards - Polyline/Densify)
3) zamiana takowych linii na warstwę punktów
4) stworzenie poligonów Thiessena (Voronoia)
5) wybranie tylko tych poligonów Voronoia, które znajdują się w środku naszych "wejściowych " poligonów
6)granice poligonów Voronoia tworzą poszukiwaną linię środkową

Schematy poglądowe metody:
http://smathermather.wordpress.com/2011/09/16/what-is-...

Istnieje plugin Openjumpa - JUMP Skeletonizer Plugin (http://speedy.sh/ABjCw/openjump.7z) który w taki sam sposób pracuje -> wystarczy tu na wejściu zapodać warstwę poligonową i warstwę punktową (powstałą z poligonowej, "nie zagęszczona"). Efekty są różne - czasami nie tworzą się linie środk. we wszystkich poligonach.

konto usunięte

Temat: Najdłuższa oś poligonu - ArcGis

W zbliżony sposób do powyższego opisu Piotra wykonuje tą czynność to narzędzie (model):
http://resources.arcgis.com/gallery/file/geoprocessing...
a wynik działania wygląda tak:

Obrazek
Mateusz K.

Mateusz K. Project manager and
python programmer

Temat: Najdłuższa oś poligonu - ArcGis

Witam,
zainstalowałem ten model, ale nie da się go uruchomić (mam ArcInfo 9.2).
Włączyłem edycję by sprawdzić o chodzi:
Dla Create Skeleton brak densify
Dla Trim Skeleton brak Trim Line
Moje pytanie brzmi, jak sobie poradzić z tym problemem tak aby ten model działał?
pozdrawiam
Mateusz

konto usunięte

Temat: Najdłuższa oś poligonu - ArcGis

Mateusz, to pytanie do autora. U siebie mam 10, nie mam możliwości zweryfikowania wcześniejszych wersji.
Marcin Sobiech

Marcin Sobiech doktorant,
Uniwersytet Mikołaja
Kopernika w Toruniu

Temat: Najdłuższa oś poligonu - ArcGis

Azymut poligonu, tj. linii łączącej skraje pkt...kąt obliczyć łatwo mając już linię bądź pkt...ale jak je wyznaczyć....

Jakie pomysły macie na ten problem?

konto usunięte

Temat: Najdłuższa oś poligonu - ArcGis

Jeśli chcemy zastosować wyznaczanie azymutu dla poligonów prostych (czyli np. działki rolne) to najlepszą metodą jest przyjąć, że najdłuższy bok poligonu jest jego "osią" i dla tego najdłuższego boku wyliczamy azymut. Najłatwiej jest to zrobić rozbijając poligon na linie bądź punkty (jak wspomniał kolega), zmierzyć długość linii lub odległości między punktami i dla najdłuższej krawędzi zmierzyć azymut i operacje powtórzyć dla wszystkich rekordów w warstwie. W ArcGIS niema narzędzia, ani skryptu który to automatyzuje, niemniej łatwo go napisać w Python'ie.

Jedynym rozwiązaniem gotowym, jest skrypt o dokładnie opisanej przeze mnie i kolegów funkcjonalności dla wersji Arcview 3.x w języku Avenue. Mogę go podesłać.

ps. Zdaje się że jest jeszcze makro w VBA do wersji wcześniejszych od 10. http://arcscripts.esri.com/details.asp?dbid=14570 ale nie mam pewności jak dokładnie się sprawdza, ponieważ w wersji 10 VBA już odszedł na dalszy plan.

Pozdrawiam.
Marcin Sobiech

Marcin Sobiech doktorant,
Uniwersytet Mikołaja
Kopernika w Toruniu

Temat: Najdłuższa oś poligonu - ArcGis

Całe zamieszanie jest z poligonami o zróżnicowanym kształcie o nawet kilkudziesięciu wierzchołkach...i cały czas siedzę nad tym...

Dzięki za podpowiedzi

Pzdrawiam

konto usunięte

Temat: Najdłuższa oś poligonu - ArcGis

To może podrzuć prntscr poligonów.
Marcin Sobiech

Marcin Sobiech doktorant,
Uniwersytet Mikołaja
Kopernika w Toruniu

Temat: Najdłuższa oś poligonu - ArcGis

Jasne


Obrazek

konto usunięte

Temat: Najdłuższa oś poligonu - ArcGis

A czemu będzie służyć wartość azymutu z punktu widzenia całej analizy? W tej sytuacji może być to trudne. albo nie oddawać faktycznego stanu.
Marcin Sobiech

Marcin Sobiech doktorant,
Uniwersytet Mikołaja
Kopernika w Toruniu

Temat: Najdłuższa oś poligonu - ArcGis

Badam ukierunkowanie rzeźby terenu różnymi metodami, w tym robię ekstrakcję form za pomocą oświetlenia i obraz jaki miałeś okazję oglądać jest wynikiem tych działań.
Różne parametry jakie uzyskuję prezentują zróżnicowaną jakość i nawet próba zrobienia "ręcznie" lineacji z tego dla zweryfikowania poprawności jest zbyt czasochłonna...

konto usunięte

Temat: Najdłuższa oś poligonu - ArcGis

Więc ja bym zaproponował wyznaczenie osi poligonów, następnie rozbicie ich na mniejsze odcinki (powiedzmy co 20m - zależnie od dokładności posiadanych danych). Dla każdego z odcinków wyznaczmy azymut i łącząc je ponownie obliczmy średni azymut dla osi. Można wyniki porównać z rezultatem działania narzędzia, które wyznacza azymut poligonów na podstawie najdłuższego boku (lecz przy tych kształtach może być rożnie).

A co do ogólnego pomysłu na analizę: jeśli dysponujesz dobrym DEM'em może warto wyznaczyć linie szkieletowe rzeźby i nimi mierzyć ukierunkowanie głównych form rzeźby. Dobrym pomysłem byłoby wykorzystanie narzędzi "hydro" ze Spatial analysta dla wyznaczenia wododziałów i przede wszystkim linii spływu. A dla grani oraz nie łapiących się w analizie hydro form wklęsłych zastosować filtrowanie DEM ( np. Laplacian 3x3 potem Focal Statistics Median filter, a następnie zaznaczenie określonych wartości ujemnych (wklęsłe) i dodatnich (wypukłe), gneralizacja, konwersja na wektor, następnie do linii, a dla linii azymut(jeśli jest potrzeba to z dzieleniem na mniejsze odcinki)). To tak na szybko.
Barbara Z.

Barbara Z. urbanista

Temat: Najdłuższa oś poligonu - ArcGis

Krzysztof L.:
W zbliżony sposób do powyższego opisu Piotra wykonuje tą czynność to narzędzie (model):
http://resources.arcgis.com/gallery/file/geoprocessing...
a wynik działania wygląda tak:

Wtyczka nazywa się Polygon to Centerline Tool for ArcGIS
Działający link: http://www.arcgis.com/home/item.html?id=bc642731870740...Ten post został edytowany przez Autora dnia 07.06.17 o godzinie 11:04



Wyślij zaproszenie do