<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style type="text/css">body p { margin-bottom: 0cm; margin-top: 0pt; } </style>
  </head>
  <body bidimailui-charset-is-forced="true" bgcolor="#FFFFFF"
    text="#000000">
    <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>
  </body>
</html>