Jak wykonać oszacowanie gęstości jądra z fizyczną barierą / granicą w QGIS?


18

Czy ktoś wie o programie, który pozwoli na jądro, które bierze pod uwagę granicę w swoich obliczeniach, zamiast po prostu maskować obszary, które są niemożliwe?

Do tej pory znalazłem: dodatek GME dla Arc10 (Hawthorne Beyer) - Za każdym razem, gdy określam graniczny plik kształtów, pojawia się błąd. Próbowałem wiele różnych typów plików kształtów i złożoności granic itp. Działa dobrze, gdy nie określam granicy.

Pakiet AdehabitatHR w R (Calange 2011) - działa to dobrze, ale określona granica musi być bardzo prosta - segmenty linii mają szerokość pasma jądra 3x i nie są zbyt kręte. Dla moich danych jest to duże uproszczenie.

Zastanawiam się więc, czy może to zrobić inne oprogramowanie, na przykład GRASS lub QGIS.

Dzięki


3
Ostatni artykuł z kodem R potencjalnego zainteresowania, stronniczością granicy i ważonymi ziarnami . Cały kod to tylko sposoby ważenia obserwacji w celu skorygowania odchylenia na granicy (jeśli możesz obliczyć wagi, możesz użyć dowolnego programu do oszacowania KDE, o ile tylko z wyjątkiem wag).
Andy W

1
Jak dokładnie chcesz „rozliczać” granicę? Istnieje wiele możliwych sposobów, od maskowania przez blokowanie rozprzestrzeniania się po korygowanie efektów brzegowych.
whuber

1
Dziękuję @AndyW i Whuber za odpowiedzi. Chcę uwzględnić granicę, zapobiegając rozprzestrzenianiu się przez nią jądra. Dane dotyczą lokalizacji żółwi morskich, więc wiem, że rozkład wykorzystania nie powinien rozprzestrzeniać się na ląd, ale wiele lokalizacji znajduje się bardzo blisko wybrzeża, więc nie chcę się opierać na tych lokalizacjach, po prostu maskując części jądra, które rozprzestrzenił się na ziemię. Dziękuję za link do artykułu - wygląda świetnie. Spróbuję użyć podobnego kodu dla moich danych.
KimS,

Odpowiedzi:


2

Podstawą oceny gęstości jądra jest pojęcie odległości. Najlepszym rozwiązaniem, jakie znam, jest zastosowanie lepszej miary odległości, która uwzględnia granice i różne koszty podróży. Najlepiej wybrać wskaźnik odległości, który pasuje do problemu, który próbujesz rozwiązać. Tarcie w terenie lądowym jest idealne do uprawiania turystyki pieszej, ale nie do rozpraszania aerozolu. Prądy wiatrowe są niezbędne do śledzenia żaglówki, ale nie mają znaczenia dla kierunków jazdy.
Teraz, gdy mam nadzieję, że pojęcie odpowiednich wskaźników odległości jest wystarczająco motywowane, mogę polecić powierzchnie kosztowe jako dobrą miarę odległości ogólnego zastosowania. Są dostępne we wszystkim, od ArcGIS, przez R, po JavaScript i są dość proste w budowie. Na przykład w qGIS można zbudować powierzchnię cierną rastra i użyć jej do obliczenia tras. Dostosuj powierzchnię cierną, aby uwzględnić swoje granice, a zobaczysz, że masa z ziaren wokół twoich punktów jest równomiernie rozłożona wokół przeszkód.


+1 To jest potencjalnie świetne podejście. Po zastosowaniu go w wielu problemach odkryłem, że główna trudność nie została tutaj wymieniona: dokładnie jak proponujesz rozłożenie jądra zgodnie z tą miarą? Gotowe rozwiązania nie mogą tego zrobić.
whuber

@ whuber To prawda, że ​​gotowe systemy zwykle nie są w stanie jednocześnie uwzględnić zarówno powierzchni kosztowych, jak i gęstości jądra. Moją sugestią byłoby użycie powierzchni ciernej do obliczenia odległości punkt-punkt, a następnie bezpośrednie zastosowanie funkcji jądra dla ciężaru. W qGIS lub ArcGIS można pisać używając normalnej funkcji dystrybucji w pythonie, aw R jest dnorm()funkcja.
JasonRDalton

Zrobiłem to dokładnie w niektórych przypadkach, ale przemyślenie procesu i kontrola wyników ujawniają pewne nieodłączne problemy. Najtrudniejszym wydaje się być sposób zagwarantowania zachowania masy: nie można po prostu rozłożyć wartości, powiedzmy, na ustaloną funkcję Gaussa, ponieważ całkowita wynikowa masa punktu rozproszenia nie będzie równa pierwotnej masie. Nie ma skutecznego sposobu na wykonanie tego obliczenia.
whuber



-2

Udało mi się to za pomocą Analityka Geostatystycznego, który jest rozszerzeniem ESRI ArcGIS. Możesz załadować zestaw danych elementów linii jako bariery, a wyniki są całkiem przyzwoite. Wykonuję testy, zmieniając parametry funkcji, aby uzyskać jasny obraz tego, jak skalibrować narzędzie. Aby zweryfikować wyniki, zalecam, jeśli masz wystarczająco duży zestaw danych, to usuń próbkę punktów, wygeneruj powierzchnię gęstości bez tych punktów, a następnie porównaj różnicę między wartościami usuniętych punktów z wartościami powierzchni w lokalizacja usuniętych punktów.


2
Czy mógłbyś trochę wzmocnić tę odpowiedź, aby wyjaśnić, w jaki sposób GA - który implementuje metody interpolacji - jest w stanie obliczyć oszacowanie gęstości jądra ? Czy podczas podwójnej kontroli poprawności rozwiązania sprawdzono, czy całka siatki GA była w przybliżeniu równa sumie wszystkich danych wejściowych?
whuber

1
W wersji 10.1 można wykonać interpolację jądra z barierami, ale nie daje to oszacowania gęstości. Chociaż biorąc pod uwagę metody, do których odwołuje się oryginalny post, zastanawiam się, czy nie są zainteresowani oszacowaniem jądra Gaussa, a nie oszacowaniem gęstości.
Jeffrey Evans
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.