Mam dwie warstwy w ArcGIS: Jedna to punkt wektorowy, a druga to warstwa rastrowa. Chcę dołączyć wartość siatki danych rastrowych do punktu wektorowego. Problem polega na tym, że punkt wektorowy jest oddalony od wszelkich istniejących siatek rastrowych o wartości, więc polecenie „Próbka” nie zwraca żadnej wartości dla tego punktu wektorowego.
Więc moje pytanie brzmi: jak znaleźć najbliższą komórkę rastrową z danym punktem wektorowym i wyodrębnić wartość z komórki?
Właściwie muszę zrobić dwie rzeczy:
- Zidentyfikuj kontur w obrębie tropiciela (zwykle 1-2 komórki od mojego istniejącego rastra)
- Przypisz im wartość od najbliższego rastra, jeśli są w zakresie
Edytowano: Mam około 3000 punktów wektorowych i mój problem jest następujący:
Muszę dołączyć wartość rastra na podstawie lokalizacji do punktów wektora. Użyłem narzędzia „Próbka” i działa dobrze dla większości punktów.
Istnieje jednak taka sytuacja
Właściwy punkt może uzyskać wartość z rastra (działa „Próbka”), ale lewy punkt nie może z powodu problemów z wyrównaniem.
Raster to polygon nie działa, ponieważ pojawia się komunikat o błędzie, że nie mogę zamienić ich na wektor, ponieważ są one poza domeną. Też mam takie punkty
Te górne punkty nie powinny otrzymywać żadnych wartości, ponieważ znajdują się zbyt daleko od rastra.
Pomyślałem, że jakoś obejść:
Krok 1. Najpierw wykonaj „próbkę”
Krok 2. Wybierz wartość zerową po operacjach „przykładowych”
Krok 3. konstruuj strefy buforowe (z dokładnością do 1 stopnia dziesiętnego) na podstawie punktów zerowych
Krok 4. Użyj statystyk strefowych? ? lub inne narzędzia do pętli przez wszystkie komórki rastrowe w buforze, znajdź najbliższą, wyodrębnij jej wartość i umieść ją w punkcie wektorowym.
Utknąłem w kroku 4. Nie wiem, którego narzędzia w ArcSDK mogę użyć do osiągnięcia tej funkcji.
A może… Czy masz lepszy pomysł, aby sobie z tym poradzić?
Mam 20 takich warstw rastrowych i chciałbym zrobić to automatycznie (używając konstruktora modeli i arcobject).
Sample
narzędzia.