Dodam to dla każdego, kto w przyszłości przeczyta ten wątek.
Oto wszystko, czego nauczyłem się, zagłębiając się w ten problem i uzyskując pełną odległość między punktami.
Nasz pierwszy problem wynikał ze statycznej natury RasterCatalog. Zmiana rastrów, na których jest to oparte, NIE zmienia rastra w katalogu RasterCatalog. Okazało się, że nasza miała starożytną wersję, której nigdzie nie było w pobliżu mapy wybrzeża. Wyciągnięta lekcja: Odbuduj katalog Raster za każdym razem, gdy zmienisz rastry, na których jest oparty.
Dystansowy raster z dodanymi wagami staje się dość niewygodny do pracy. Spójrz na następujący scenariusz: Oryginalna wartość rastra to 1 łączna odległość, na którą chcę spojrzeć, to 117 km. Rozmiar komórki wynosi 1 metr. Jeśli raster ma teraz wartość ważoną 48, to łączna odległość, na którą chcę spojrzeć, wynosi 117 km * 48 !!! Zatem odległość w metodzie CostDistance nie jest odległością komórki, ale odległością ważoną, najwyraźniej dodając wartość w każdej komórce, aż suma każdej komórki = wartość przekazana dla całkowitej odległości. Nawet jeśli sam rozmiar komórki wynosi 1 metr !!!
Raster odległości jest skupiony na punkcie początkowym. Kiedy wywołujesz procedurę CostDistance, nie chcesz uwzględniać punktu początkowego na tej liście. jeśli to zrobisz, otrzymasz jeden punkt w odległości 0. (to nawet zakłopotane wsparcie ESRI)
Podczas gdy wiele metod wykorzystuje Obwiednię do ograniczenia swojego procesu, dwie najdroższe, ustawiając wartość rastra i wyodrębniając raster bez obszaru w wielokącie, ignorują wszystkie ustawienia obwiedni i automatycznie stosują to do całego rastra. Na nieszczęście dla nas możemy to tylko skrócić, tworząc masywne nakładające się segmenty i przypisując segment do określonego obszaru w ramce. Robiąc to, musimy jednak uważać (co jest trudne), aby główny obszar operacji nie istniał w niewłaściwym obszarze nakładającym się. (innymi słowy, wszystkie nasze nakładki muszą być starannie wybrane, aby nie zawierały żadnych głównych punktów zainteresowania!). Powodem tego jest to, że nawigujemy w katalogu Raster, wybierając właściwy raster na podstawie tego, gdzie istnieje wybrana stacja Straży Przybrzeżnej. Aby jeszcze bardziej skomplikować nasz proces, nakładanie się musi umożliwiać nam nawigację w odległości do 120 km od naszego punktu początkowego bez zbiegania z krawędzi mapy i nienakładania się na inne główne punkty zainteresowania. Do licha.
Jedyne inne rzeczy, których się nauczyłem, to łatwość matematyki do rastra, ale jeśli chcesz albo „wbić dziurę” w rastrze (zablokowanie), albo ustawić pączka o wartości, a wnętrze pączka ma wartość 1 (opóźnienia jak blokada) kończy się złożoną kombinacją narzędzi i wywołań ArcObject. Co prowadzi do wyciągniętej ostatniej lekcji: ArcObjects nie może zrobić wszystkiego. Czasami jestem zmuszony do robienia rzeczy za pomocą powolnych, uciążliwych narzędzi, które wszystkie zostały napisane w pythonie. Dowiedziałem się również, że twórcy narzędzi ESRI nie wiedzieli nic o utrzymywaniu spójności. Czasami korzystali z bazy danych rastrowych, innym razem potrzebowali rastra, a czasami potrzebowali zestawu funkcji. I nie zwracają danych w tym samym formacie, którego wymagają na wejściu!
Zmieszany? Nie martw się, to ESRI.