[GRASS-user] Interpolation with faultlines?

Hamish hamish_b at yahoo.com
Tue Feb 26 00:23:50 EST 2008


Carlos wrote:
> I remember that some time ago, there was some discussion on
> interpolation using faultlines. Any advances in that subject?

After many years of not publishing my GRASS interpolation with barriers
module, I am today finally posting it publicly. I hope to publish an
article on the module soon.

It is now posted to the wiki addons page and housed in the GRASS addons
SVN.
  http://grass.gdf-hannover.de/wiki/GRASS_AddOns#Vector_add-ons
  http://trac.osgeo.org/grass/browser/grass-addons/vector/v.surf.icw

screenshot:
  http://grass.gdf-hannover.de/wiki/Image:Inlets_03_SurfSal_icw_big.png


It is designed to work with no more than a few dozen data points and is
very computationally expensive*. But results are worth the wait :)

For "simple" inverse true-distance-around-barriers interpolation make
your cost surface a 1/NULL map. For molasses barrier cases use a more
dynamic cost surface input raster (e.g. harder for invasive ground
critter to climb a sheer cliff than to walk around the back of the
mountain and spread up the gentle way; or harder (but still possible) to
diffuse upstream than downstream, ...). Unlike other half-baked (IMO
badly wrong) IDW barrier interpolation methods the input points do not
need to have line of sight to the raster cell to be considered.

I have just updated it from GRASS 6.0 to GRASS 6.2 coding style, and had
previously ported it from GRASS 5, so let me know if it breaks due to
introduced typos etc. There is still much internal code cleanup I could
do.

[*] Adding a 'r.cost max_cost=' step could help speed it up, but the level
for that would need to be dynamically calculated. Running in a RAM-disk
mapset then copying out the result could help save a lot of r.cost disk
thrashing and again help speed it up.


GRASS> v.surf.icw --help

Description:
 IDW interpolation, but distance is cost to get to any other site

Usage:
 v.surf.icw [-rv] input=string output=string column=string
   cost_map=string [post_mask=string] [friction=value]
   [null_string=string] [--overwrite] [--verbose] [--quiet]

Flags:
  -r   Use (d^n)*log(d) instead of 1/(d^n) for radial basis function
  -v   Verbose mode

Parameters:
        input   Name of existing vector points map containing seed data
       output   Name of new raster file to be used for output
       column   Column name in vector points map that contains data values
     cost_map   Name of existing raster file containing cost information
    post_mask   Name of existing raster file to be used as post-processing MASK
     friction   Friction of distance, (the 'n' in 1/d^n)
                options: 1-6
                default: 2
  null_string   Text string that represents "no data" in input data
                default: nan



enjoy,
Hamish


More information about the grass-user mailing list