[GRASS-dev] DEM, natural neighbor interpolation and Grass
Helena Mitasova
hmitaso at unity.ncsu.edu
Mon Jun 5 15:21:00 EDT 2006
Maciek Sieczka wrote:
> Hi!
>
> Maybe some of you remember my notes about the nnbathy (a natural
> neighbor interpolation program), it's usability for producing DEMs from
> clustered, heterogenous input and it's complicated interaction with
> Grass.
>
> nnbathy performs great. Now I wrote a script which is an easy to
> use interface between nnbathy and Grass. All you need to do to run it
> is to specify the input raster name and the output name. The script will
> transform your input into x,y,z which nnbathy accepts, let nnbathy
> interpolate the grid, then let awk do the processing from x,y,z nnbathy
> output into Grass ASCII raster, and, finaly, r.in.ascii imports.
>
Hamish - r.in.xyz should be able to import this directly ? so the awk
step could be skipped making the procedure
faster - this will help particularly for large data sets. Helena
> Please take a look at it and let me know what you think (also about the
> html man page). I'll be putting the script on WIKI in few days if
> nobody minds.
>
> In order to obtain nnbathy with serial input processing enabled (to
> interpolate any large grid with minor memory usage), please compile
> it yourself following the instructions in the man page. The prebuilt
> binaries at http://www.marine.csiro.au/~sakov don't have serial input
> processing turned on.
>
> Cheers
> Maciek
>
> P.S.
>
> Please note that nnbathy accepts quite few options which modify the way
> the output is produced. I have set the following ones in my script:
>
> '-W 0' which limits the output non-NULL area only to the convex hull
> encompasing the input data. You could let nnbathy extrapolate if
> you need to, by modyfing the number after -W.
>
> '-P alg=nn -n' which chooses the Sibson natural neighbor interpolation
> algorithm. However, other 2 are possible - non-Sibsonian natural
> neighbor, and linear (which looks exactly the same as the triangulation
> eg. in Saga).
>
> I haven't implemented controlling any nnbathy options through my
> script, because for DEM production I'm most happy with output produced
> by those particular settings I hardcoded. I guess you should be happy
> with the result too.
>
> There are several more options in nnbathy, if you want to experiment
> the script is easy to modify. Please consult with nnabthy help page to
> learn more.
>
> Maciek
>
>
> --------------------
> W polskim Internecie s? setki milion?w stron. My przekazujemy Tobie tylko najlepsze z nich!
> http://katalog.panoramainternetu.pl/
>
>
> ------------------------------------------------------------------------
>
>
> NAME
>
> /*r.surf.nnbathy*/ - Interpolate surface from rasterized input using
> nn <http://www.marine.csiro.au/%7Esakov/> natural neighbor
> intepolation library.
>
>
> SYNOPSIS
>
> *r.surf.nnbathy*
> *r.surf.nnbathy help*
> *r.surf.nnbathy* *input*=/name/ *output*=/name/
>
>
> Parameters:
>
> *input*=/name/
> Input raster name
> *output*=/name/
> Output raster name
>
>
> DESCRIPTION
>
> /r.surf.nnbathy/ is a Bash and Awk script. It is an interface between
> the external /nnbathy/ utility and Grass. /nnbathy/ is a surface
> interpolation program, which uses /nn/ - a natural neighbor
> interpolation library. /nnbathy/ and /nn/ were written by Pavel Sakov
> <http://www.marine.csiro.au/%7Esakov/>. /nn/ uses /triangle/ software
> by Jonathan Shewchuk <http://www.cs.berkeley.edu/%7Ejrs/> for
> performing the Delaunay triangulation.
>
> The *output* raster contains a continous surface interpolated from the
> *input* raster.
>
> There is no limitation in regard to the shape and distribution of the
> input cells. The input could be e.g. open or closed elevation contour
> lines, elevation points, areas and any combination of these. Natural
> neighbor algorithm exactly follows the input data and is able to
> produce a good result from very clustered, heterogenous input. It will
> preserve any rapid value gradient present in the input. It doesn't
> produce artificial bulges or hollows between the distant input data,
> only a linear, continous surface. It might lead to bogus flat areas in
> case of kidney-like shaped contour lines in input.
>
> /nnbathy/, if built with '-DNN_SERIAL' switch, is able to handle a
> grid of virtually any size, using very little memory. It reads,
> interpolates and writes one output point at a time only. This
> eliminates necessity to hold the whole output array in memory.
>
> In order to install /nnbathy/ with serial input processing enabled, do
> the following:
>
> 1. Download nn.tar.gz from http://www.marine.csiro.au/~sakov/
> <http://www.marine.csiro.au/%7Esakov/>
> 2. tar xzvf nn.tar.gz
> 3. cd nn
> 4. ./configure
> 5. make
> 6. gcc -o nnbathy nnbathy.c -g -O2 -Wall -pedantic -I.
> -DNN_SERIAL libnn.a -lm
> 7. chmod u+x ./nnbathy
>
> Now copy the /nnbathy/ executable to a directory listed in your PATH.
>
>
> NOTES & CAVEATS
>
> 1. The output extent and resolution will match the current
> region settings.
> 2. The output non-NULL area will be limited to the convex hull
> encompassing all the non-NULL input cells.
> 3. The output is double floating point raster.
> 4. Natural neighbor is a an /exact/ interpolation algorithm, so
> all non-NULL input cells have their value exactly preserved in
> the output.
> 5. The script will work with /nnbathy/ version 1.63 and higher.
>
> I'd like to thank Pavel Sakov
> <http://www.marine.csiro.au/%7Esakov/> for all his support in
> regard to /nn/ and /nnbathy/ usage, and especially for
> implementing serial input processing.
>
>
> SEE ALSO
>
> *v.to.rast*
> Pavel Sakov <http://www.marine.csiro.au/%7Esakov/>
>
>
> AUTHOR
>
> Maciej Sieczka, Wroclaw, Poland, 2006
> Wroclaw University, Intitute of Plant Biology
> ------------------------------------------------------------------------
> ------------------------------------------------------------------------
>
> _______________________________________________
> grass-dev mailing list
> grass-dev at grass.itc.it
> http://grass.itc.it/mailman/listinfo/grass-dev
--
Helena Mitasova
Department of Marine, Earth and Atmospheric Sciences
North Carolina State University
1125 Jordan Hall
NCSU Box 8208
Raleigh, NC 27695-8208
http://skagit.meas.ncsu.edu/~helena/
email: hmitaso at unity.ncsu.edu
ph: 919-513-1327 (no voicemail)
fax 919 515-7802
More information about the grass-dev
mailing list