Kiedyś polegałem na XTools, ale w moim obecnym środowisku nie mam do niego dostępu.
Próbuję to zrobić w ArcMap10.
Celem jest podzielenie reprezentacji liniowej strumienia na zestaw punktów o równych odstępach, aby ostatecznie określić wartości Z w tych punktach, dzięki czemu mogę określić gradient.
Mój planowany przepływ pracy jest taki.
- podziel strumień na punkty
- przecinaj punkty za pomocą DEM za pomocą GME
- Określając odległość między punktami, powinienem być w stanie określić, że gradient jest.
- Wydaje się, że sensowne byłoby zintegrowanie danych punktowych z powrotem z pierwotnymi usprawnieniami. Nie jestem pewien tego kroku.
Doceniam wszelkie krytyki mojej metody, ale moim priorytetem w tym momencie jest konwersja tych strumieni na punkty.
Dziękuję Ci!
arcgis-10.0
algorithm
Jacques Tardie
źródło
źródło
Odpowiedzi:
Nie korzystam jeszcze z ArcGIS 10, ale w 9.3.1 możesz rozpocząć sesję edycji na warstwie linii, zaznacz funkcję, którą chcesz podzielić, a następnie na rozwijanym pasku narzędzi edytora wybierz opcję Podziel. Tutaj możesz określić odległość, przez którą ma zostać podzielony wybrany obiekt. Następnie możesz użyć narzędzia Eksportuj węzły w ET GeoWizard (darmowe narzędzie), aby uzyskać warstwę punktową dla każdego podzielonego segmentu linii.
Możesz użyć sprzężenia przestrzennego, aby umieścić informacje o danych punktów z powrotem w warstwie linii. Kliknij warstwę liniową prawym przyciskiem myszy w ArcMap TOC i wybierz Połącz i Relacje> Dołącz. Przy pierwszym menu rozwijanym wybierz opcję „Połącz dane z innej warstwy na podstawie lokalizacji przestrzennej”.
źródło
Nie znam narzędzia w interfejsie użytkownika, które to robi, ale można to zrobić programowo poprzez interfejs IMSegmentation3 .
źródło
Możesz utworzyć bufor na jednym końcu strumienia, a następnie zidentyfikować punkt, w którym bufor przecina strumień. Następnie możesz po prostu powtarzać ten krok. Nie dałoby to dokładnej odległości strumienia (ponieważ jest to prosta linia, a nie długość strumienia), ale gdybyś mógł następnie podzielić linię na sekcje w oparciu o te punkty i używając długości tych linii oszacuj gradient.
To może być napisane w Pythonie, jeśli byłoby to godne podejście!
źródło