[GRASS-dev] [GRASS GIS] #2016: v.surf.idw: very incorrect results

#2016: v.surf.idw: very incorrect results
------------------------+---------------------------------------------------
Reporter: hamish | Owner: grass-dev@…
     Type: defect | Status: new
Priority: major | Milestone: 6.4.4
Component: Vector | Version: svn-develbranch6
Keywords: v.surf.idw | Platform: Linux
      Cpu: x86-64 |
------------------------+---------------------------------------------------
Hi,

I have noticed with some data very bad results with v.surf.idw. The
r.surf.idw and r.surf.idw2 modules do ok with the same data after
v.to.rast of the starting points. But the v.surf.idw results are not
realistic both spatially and numerically.

In my real data I was seeing bad slivering between sample sites, but can
recreate other little-relation to source data weirdness with synthetic
input.

commands to make the attached screenshot in grass6:
{{{
g.region -d # spearfish
# from addons:
r.surf.volcano out=gauss method=gaussian kurtosis=0.5 peak=5000
r.random in=gauss vect=gauss_rand_500 n=500
v.surf.idw in=gauss_rand_500 out=gauss_rand_500.vidw column=value
}}}

plot:
{{{
d.mon x0
d.resize w=666 h=1006
d.font Vera
d.split.frame frames=2
#
d.frame uno
MAP=gauss
r.colors "$MAP" col=bcyr
d.rast "$MAP"
d.vect gauss_rand_500 icon=basic/point fcolor=none color=60:60:60
d.legend "$MAP" at=5,60,2,5
echo "$MAP" | d.text color=black size=4
#
d.frame dos
MAP=gauss_rand_500.vidw
r.colors "$MAP" col=bcyr
d.rast "$MAP"
d.vect gauss_rand_500 icon=basic/point fcolor=none color=60:60:60
d.legend "$MAP" at=5,60,2,5
echo "$MAP" | d.text color=black size=4
}}}

fwiw I also notice that the module does not scale well to large region
sizes (at all).

thanks,
Hamish

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2016&gt;
GRASS GIS <http://grass.osgeo.org>

#2016: v.surf.idw: very incorrect results
------------------------+---------------------------------------------------
Reporter: hamish | Owner: grass-dev@…
     Type: defect | Status: new
Priority: major | Milestone: 6.4.4
Component: Vector | Version: svn-develbranch6
Keywords: v.surf.idw | Platform: Linux
      Cpu: x86-64 |
------------------------+---------------------------------------------------

Comment(by hamish):

for comparison, the working r.surf.idw* methods:
}}}
v.to.rast in=gauss_rand_500 out=gauss_rand_500.pts column=value
r.surf.idw in=gauss_rand_500.pts out=gauss_rand_500.ridw1
r.surf.idw2 in=gauss_rand_500.pts out=gauss_rand_500.ridw2
}}}

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2016#comment:1&gt;
GRASS GIS <http://grass.osgeo.org>

#2016: v.surf.idw: very incorrect results
------------------------+---------------------------------------------------
Reporter: hamish | Owner: grass-dev@…
     Type: defect | Status: new
Priority: major | Milestone: 6.4.4
Component: Vector | Version: svn-develbranch6
Keywords: v.surf.idw | Platform: Linux
      Cpu: x86-64 |
------------------------+---------------------------------------------------

Comment(by hamish):

Hi,

some more screenshots showing results of r.plane* + v.random + v.surf.idw,
including some derivative maps from r.slope.aspect (devbr6). The 1000
vector sampling points created by v.random are shown as black dots.

[*] trend-plane created by the r.cog addon for spearfish's elevation.dem

this example is not completely wrong (as is the case in the earlier
attached screenshot!), just a net of overlain noise on top. So there could
be two bugs here.

  - http://bambi.otago.ac.nz/hamish/grass/bugs/v.surf.idw/vsurfidw.png
  -
http://bambi.otago.ac.nz/hamish/grass/bugs/v.surf.idw/vsurfidw.slope.png
  -
http://bambi.otago.ac.nz/hamish/grass/bugs/v.surf.idw/vsurfidw.pcurv.png
  -
http://bambi.otago.ac.nz/hamish/grass/bugs/v.surf.idw/vsurfidw.tcurv.png

note the strands of noise in the NW corner in the curvature maps, and the
clump of it the center-right of the lower edge in the slope map. Try to
match them with the r.surf.idw slope map below.

----
for comparison, same-data slope map from v.surf.rst and r.surf.idw
modules.

  -
http://bambi.otago.ac.nz/hamish/grass/bugs/v.surf.idw/vsurfrst.slope.png
  -
http://bambi.otago.ac.nz/hamish/grass/bugs/v.surf.idw/rsurfidw.slope.png

r.surf.idw2 was very similar, but not identical, to r.surf.idw; so not
shown.
As expected, v.surf.rst is much smoother throughout although it suffers
from edge-effects and stitching of the quadtree segmentation around the
edges. This suggests the quadtree vector map should be created and the
outer row of segments from it discarded.

Hamish

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/2016#comment:2&gt;
GRASS GIS <http://grass.osgeo.org>

#2016: v.surf.idw: very incorrect results
------------------------+---------------------------------------------------
Reporter: hamish | Owner: grass-dev@…
     Type: defect | Status: new
Priority: major | Milestone: 6.4.4
Component: Vector | Version: svn-develbranch6
Keywords: v.surf.idw | Platform: Linux
      Cpu: x86-64 |
------------------------+---------------------------------------------------

Comment(by hamish):

Replying to [comment:2 hamish]:
> http://bambi.otago.ac.nz/hamish/grass/bugs/v.surf.idw/vsurfrst.slope.png
...
> As expected, v.surf.rst is much smoother throughout although it suffers
from
> edge-effects and stitching of the quadtree segmentation around the
edges.
> This suggests the quadtree vector map should be created and the outer
row
> of segments from it discarded.

funny that the artifacts only show up in the horizontal but not the
vertical splits..

Hamish

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/2016#comment:3&gt;
GRASS GIS <http://grass.osgeo.org>