Comment faire une estimation de la densité du noyau avec une barrière / frontière physique dans QGIS?

18

Quelqu'un connaît-il un programme qui permettra le crénage qui prend en compte une limite dans son calcul plutôt que de simplement masquer les zones impossibles?

Jusqu'à présent, j'ai trouvé: module complémentaire GME pour Arc10 (Hawthorne Beyer) - J'obtiens une erreur chaque fois que je spécifie un fichier de formes de limite. J'ai essayé beaucoup de différents types de fichiers de formes et de complexités de limites, etc. Cela fonctionne bien lorsque je ne spécifie pas de limite.

Paquet AdehabitatHR dans R (Calange 2011) - cela fonctionne bien mais la limite que vous spécifiez doit être très simple - segments de ligne 3x largeur de bande du noyau de longueur, et pas trop tortueux. Pour mes données, c'est une grosse simplification.

Je me demande donc si un autre logiciel peut le faire, GRASS ou QGIS par exemple.

Merci

KimS
la source
3
Article récent avec code R d'intérêt potentiel, biais de frontière et noyaux pondérés . Tout le code n'est que des moyens de pondérer les observations pour corriger le biais de frontière (si vous pouvez déterminer les poids, vous pouvez utiliser n'importe quel programme pour estimer le kde aussi longtemps qu'il le fera sauf les poids).
Andy W
1
Précisément, comment voulez-vous qu'il "tienne compte" d'une frontière? Il existe de nombreuses façons possibles, allant du masquage au blocage de la propagation en passant par la correction des effets de frontière.
whuber
1
Merci @AndyW et whuber pour les réponses. Je veux tenir compte de la frontière en empêchant le noyau de se propager à travers elle. Les données sont des emplacements de tortues marines, donc je sais que la répartition de l'utilisation ne devrait pas s'étendre sur la terre, mais de nombreux emplacements sont très proches de la côte, donc je ne veux pas biaiser contre ces emplacements en masquant simplement les parties du noyau qui se propager dans la terre. Merci pour le lien vers le document - cela a l'air génial, je vais essayer d'utiliser un code similaire pour mes données.
KimS

Réponses:

2

Au cœur de l'estimation de la densité du noyau se trouve la notion de distance. La meilleure solution que je connaisse est d'utiliser une meilleure métrique de distance qui tient compte des limites et des coûts de déplacement variables. Il est préférable de choisir une mesure de distance qui correspond au problème que vous essayez de résoudre. Le frottement terrestre est idéal pour la randonnée, mais pas pour la dispersion des aérosols. Les courants de vent sont essentiels pour le suivi des voiliers, mais non pertinents pour les directions de conduite.
Maintenant que la notion de métriques de distance appropriées est, espérons-le, suffisamment motivée, je peux recommander des surfaces de coût comme bonne métrique de distance à usage général. Ils sont disponibles dans tout ArcGIS, R, JavaScript et sont assez simples à construire. Dans qGIS par exemple, vous pouvez construire une surface de friction raster et l'utiliser pour calculer des itinéraires. Personnalisez la surface de friction pour tenir compte de vos limites et vous verrez la masse des noyaux autour de vos points se propager proprement autour des obstacles.

JasonRDalton
la source
+1 C'est potentiellement une excellente approche. Après l'avoir appliqué dans de nombreux problèmes, j'ai trouvé que la principale difficulté n'est pas mentionnée ici: comment proposez-vous exactement d'étaler les noyaux selon cette métrique? Les solutions prêtes à l'emploi ne peuvent pas faire cela.
whuber
@whuber Certes, les systèmes prêts à l'emploi n'ont généralement pas la capacité de tenir compte à la fois des surfaces de coût et de la densité du noyau. Ma suggestion serait d'utiliser la surface de friction pour calculer la distance point à point, puis d'appliquer directement une fonction de noyau pour le poids. Dans qGIS ou ArcGIS, vous pouvez écrire en utilisant la fonction de distribution normale en python, et dans R il y a la dnorm()fonction.
JasonRDalton
J'ai fait exactement cela dans certains cas, mais la réflexion sur le processus et l'inspection des résultats révèlent des problèmes inhérents. Le plus difficile semble être de garantir la conservation de la masse: vous ne pouvez pas simplement répartir les valeurs selon, disons, une fonction gaussienne fixe, car la masse résultante totale d'un point d'étalement ne sera pas égale à la masse d'origine. Il n'existe aucun moyen efficace d'effectuer ce calcul.
whuber
0

Je vous suggère d'essayer le package spatstat pour R. Là, vous pouvez définir un owinobjet pour déterminer les limites de la zone d'étude. Il existe également un excellent tutoriel pour ce package.

SS_Rebelious
la source
0

J'aide en fait avec le plugin AniMove pour QGIS, qui vise à se débarrasser de la dépendance R pour l'estimation de la densité du noyau. Jetez un oeil ici .

EDIT: Le plugin est actuellement disponible comme expérimental dans le référentiel officiel des plugins QGIS

Et n'hésitez pas à demander sur la liste , si vous avez des suggestions

Jorge Arévalo
la source
-2

J'ai réussi à le faire en utilisant Geostatistical Analyst qui est une extension d'ESRI ArcGIS. Vous pouvez charger le jeu de données d'entités linéaires comme barrières et les résultats sont assez décents. Je fais des tests tout en modifiant les paramètres des fonctions pour avoir une idée claire de la façon de calibrer l'outil. Pour valider les résultats, ce que je recommande, c'est que si vous avez un ensemble de données suffisamment grand, supprimez un échantillon de points, générez la surface de densité sans ces points, puis comparez la différence entre les valeurs des points supprimés avec les valeurs de la surface à la emplacement des points supprimés.

Petya
la source
2
Pourriez-vous amplifier un peu cette réponse pour expliquer comment GA - qui met en œuvre des méthodes d' interpolation - est capable de calculer une estimation de la densité du noyau ? Pour vérifier l'exactitude de votre solution, avez-vous vérifié que l'intégrale de la grille GA était approximativement égale à la somme de toutes les données d'entrée?
whuber
1
En 10.1, il est possible d'effectuer une interpolation du noyau avec des barrières, mais cela ne donne pas lieu à une estimation de la densité. Bien que, compte tenu des méthodes auxquelles le post original fait référence, je me demande s'ils ne sont pas intéressés par une estimation du noyau gaussien et non une estimation de la densité.
Jeffrey Evans