<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Hi Micha, Moritz, <br>
</p>
<p><br>
</p>
<p>I successfully create the kernel density raster. Thanks a lot for
your support ;)</p>
<p>I tried with ~62.000 points on a computational region of +- 1000
cols by 1000 rows, with 10 m. spatial resolution. <br>
</p>
<p><br>
</p>
<p>FYI, I had to change the type of the weights column from "double
precision" to "integer" because I had this error message when it
was on double precision:</p>
<p><br>
</p>
<p><i><font size="-1">Error in matrix(rep(w, n[1]), nrow = n[1],
ncol = nx, byrow<br>
= TRUE) * :<br>
non-numeric argument to binary operator<br>
Calls: sp.kde -> fhat<br>
</font></i></p>
<p><br>
</p>
<p>Taïs<br>
</p>
<p><br>
</p>
<div class="moz-cite-prefix">Le 25/10/19 à 13:36, Micha Silver a
écrit :<br>
</div>
<blockquote type="cite"
cite="mid:3124640f-bf1f-db2e-7477-1f65913dc956@gmail.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">body p { margin-bottom: 0cm; margin-top: 0pt; } </style>
<p><font face="Helvetica, Arial, sans-serif">Hi </font>Taïs</p>
<p><br>
</p>
<p>Thanks for testing. </p>
<p>As Moritz mentioned, the important parameter in spatial kernel
density is the bandwidth.</p>
<p>Here attached is an improved script that uses the spatialEco R
package (instead of density.ppp from spatstat). To run this,
you'll need to install spatialEco in your R environment.</p>
<p><br>
</p>
<p>This package allows to specify both the bandwidth and the
target raster extents and resolution. In this script I take the
extents and resolution from the GRASS region. Bandwidth is
specified on the command line.</p>
<p>So to try this, in your running GRASS session:</p>
<p><br>
</p>
<p>Rscript kernel_density.R <GRASS point vector> <weight
column> <bandwidth></p>
<p><br>
</p>
<p>I also attached two images in a test I did, with bandwidths of
10,000 and 20,000.</p>
<p><br>
</p>
<p>Hope this helps,</p>
<p>Micha</p>
<p><br>
</p>
<div class="moz-cite-prefix">On 10/25/19 12:17 PM, Taïs wrote:<br>
</div>
<blockquote type="cite"
cite="mid:62f305e5-46c9-20c0-3ca0-de15f9ecae09@ulb.ac.be">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<p>Hi Micha, <br>
</p>
<p><br>
</p>
<p>I successfully run your R script. However to output is weird
and I don't know how to fix it. <br>
</p>
<p>In v.kernel, you can setup the "raduis" parameter to control
what I assume to be the size of the kernel (of the moving
window). I made one test with radius=300 and another with
value 3000. The result of the first is more what I would
expect in terms of spatial variability. <br>
</p>
<p><br>
</p>
<p>When I try your script, the output raster has a size of
128x128 which did not correspond at all to my computational
region, and thus the resolution is not the same as the one
defined in the computational region. <br>
</p>
<p><br>
</p>
<p>The other thing is that I'm wondering if it is possible to
control the size of the moving window with the "density"
function in R. I already tried the 'n' parameter but it
doesn't change anything.. <br>
</p>
<p><br>
</p>
<p>I also tried with real weights (the number of inhabitants)
and a unity weighting (value 1 for all points) to see it there
is a change and there is which proof the weights affect the
output :)<br>
</p>
<p><br>
</p>
<div class="moz-cite-prefix">Le 22/10/19 à 13:41, Micha Silver a
écrit :<br>
</div>
<blockquote type="cite"
cite="mid:305dc7c9-9b5d-cd22-2c1c-303dafdb15f2@gmail.com">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<style type="text/css">body p { margin-bottom: 0cm; margin-top: 0pt; } </style>
<p>Here is the script.</p>
<p>Let me know how it goes. (I might try to take time to make
it into a GRASS addon)</p>
<p><br>
</p>
<div class="moz-cite-prefix">On 10/22/19 2:33 PM, Taïs wrote:<br>
</div>
<blockquote type="cite"
cite="mid:d40a1138-065b-98f1-2f44-bf86f9a3ce7a@ulb.ac.be">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<p>Hi Micha, thanks for your repply.<br>
</p>
<p><br>
</p>
<p>For my own need, I think your solution is enough and I
would like to try if you agree to send the R script. <br>
</p>
<p><br>
</p>
<p><br>
</p>
<div class="moz-cite-prefix">Le 22/10/19 à 12:53, Micha
Silver a écrit :<br>
</div>
<blockquote type="cite"
cite="mid:72bfdf77-6ba0-d4ad-7070-c691c0c08338@gmail.com">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<style type="text/css">body p { margin-bottom: 0cm; margin-top: 0pt; } </style>
<br>
<div class="moz-cite-prefix">On 10/21/19 1:33 PM, Tais
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:d581c296-ec9e-b2a1-7733-45722647afa2@ulb.ac.be">Hi
all, <br>
<br>
I would like to compute a raster density map ("heat
map") from vector points using v.kernel. The points
represent house addresses. However, I would need to
weight the points with a value stored in the attribute
table (number of inhabitants). I saw on the module
manual page that this functionality is a "known issue".
<br>
<br>
I imagined a solution to by-passe the limitation:
duplicate each point as many time as needed (according
to the value stored in the attribute table) and use this
new layer directly in v.kernel. However, I think it will
definitely not be the most efficient way to do the
trick. Do you have an alternative in mind ? <br>
<br>
Of course the best solution would be that someone in the
development community would have the time and the
kindness to implement this function directly in the
module (I'm not skilled in C and thus cannot try
myself). <br>
<br>
</blockquote>
<p><br>
</p>
<p>Maybe not the answer you are looking for, but you can
create a weighted kernel density in R. I can send an R
script that is intended to be run from within a GRASS
session. It accepts a point vector and attrib column,
and creates a kernel density raster, weighted by the
attribute values (using the R defaults for bandwidth and
Gaussian kernel)</p>
<p>Requires, of course, that R is installed, with the
packages: spatstat, raster, rgrass7.<br>
</p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:d581c296-ec9e-b2a1-7733-45722647afa2@ulb.ac.be">NB:
Sorry if I should have posted this on the developer
mailing list. I hesitated but decided to post here
finally. <br>
<br>
Best, <br>
<br>
</blockquote>
<pre class="moz-signature" cols="72">--
Micha Silver
Ben Gurion Univ.
Sde Boker, Remote Sensing Lab
cell: +972-523-665918</pre>
</blockquote>
</blockquote>
<pre class="moz-signature" cols="72">--
Micha Silver
Ben Gurion Univ.
Sde Boker, Remote Sensing Lab
cell: +972-523-665918</pre>
</blockquote>
</blockquote>
<pre class="moz-signature" cols="72">--
Micha Silver
Ben Gurion Univ.
Sde Boker, Remote Sensing Lab
cell: +972-523-665918</pre>
</blockquote>
</body>
</html>