<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>