Comment utilisez-vous le v.kernel de GRASS?

12

Je suis déconcerté sur la façon d'utiliser v.kernel de GRASS.

J'ai une couche vectorielle d'environ 2,5 millions de points. Je veux faire une carte de chaleur en utilisant v.kernel pour montrer les concentrations, car j'ai des instances variables avec des points qui se chevauchent, parfois des chevauchements énormes.

J'ai déjà obtenu cette couche vectorielle dans GRASS, et elle s'affiche très bien.

J'ai essayé d'utiliser la commande v.kernel de GRASS sur la base de ce que j'ai vu ici et sur d'autres forums, et je n'arrive pas à faire quoi que ce soit à part produire un raster qui n'est qu'un carré rose.

Voici la commande que j'utilise:

v.kernel --verbose input=master_grass7 output=master_grass7a_heatmap stddeviation=.0001

J'ai varié la déviation standard à toutes sortes de valeurs de 1000000 à .000001, et cela n'a eu aucun effet.

J'ai lu la documentation de v.kernel à plusieurs reprises et je ne comprends pas vraiment à quoi elle sert . Au moins, les instructions sont sur des concepts ésotériques, rien de pratique. J'ai également vérifié le code source , et je ne le comprends pas vraiment non plus. Oui, je peux lire C. Le problème est que cela dépend de beaucoup de choses définies ailleurs dans GRASS GIS.

J'ai également effectué de nombreuses recherches sur Google et je ne trouve pas de guide complet. Tout ce que je reçois sont des copies éparses de la page doc / man de v.kernel ou des personnes qui ont apparemment réussi à le faire fonctionner sans problème.

J'ai également vérifié le concept d'estimation de la densité du noyau (KDE), et même dans ce cas, je ne vois pas comment utiliser la commande v.kernel. Cette commande semble être une interprétation spécifique de KDE; ses commutateurs ne semblent pas bien correspondre aux concepts génériques de KDE.

Revenons donc à la question principale ici: comment quelqu'un qui n'est pas familiarisé avec le développement de produits GRASS peut-il utiliser la commande v.kernel? Existe-t-il une traduction en langage clair?

Aren Cambre
la source

Réponses:

9

L' v.kernelalgorithme calcule la densité des points vectoriels pour chaque cellule d'une carte raster. Si vous n'avez jusqu'à présent utilisé que des objets vectoriels, il est probable que vous n'ayez pas configuré regioncorrectement (ce qui définit non seulement les étendues, mais aussi la résolution raster): vous avez probablement votre regionensemble sur une seule ligne et une seule colonne, ce qui signifie que l' v.kernelalgorithme ne calculera la densité du noyau que comme une seule valeur sur toute la carte. Un paramètre de région comme celui-ci est correct si vous n'utilisez aucune carte raster, car les cartes vectorielles ne se soucient pas des paramètres de résolution. Vérifiez les paramètres de votre région en utilisant g.region -p, et si rowset colsest réglé sur 1, augmentez la résolution en utilisant

g.region rows=<number of rows> cols=<number of columns>

ou

g.region res=<length>

<length>est la longueur d'une cellule de résolution en unités de carte.

Jake
la source