Seth,
I finally got a chance to patch your enhancements from the GRASS 70 svn code I pulled last night.
I compiled with these options:
./configure --with-gdal --with-freetype --with-freetype-includes=/usr/include/freetype2 --with-proj --with-sqlite --enable-largefile --with-cxx --enable-64bit --with-python --with-blas --with-lapack --with-cairo --with-wxwidgets --with-spatialite --with-tcltk --with-tcltk-includes=/usr/include/tcl8.4 --with-liblas=/usr/local/bin/liblas-config --enable-largefile --with-openmp --with-readline
The computer uses an AMD Vishera 8 core cpu with 8GB DDR3 1333 RAM ( freshly updated home machine)
I used this 23 million cell raster of 20ft bare earth elevation in the mountains of western North Carolina.
Layer: nc_1@PERMANENT Date: Thu Jul 5 20:56:51 2012 |
| Mapset: PERMANENT Login of Creator: dnewcomb |
| Location: ncstpft |
| DataBase: /data1/grass7 |
| Title: bilinear interpolation with Tykhonov regularization ( nc_1 ) |
Timestamp: none |
|
Type of Map: raster Number of Categories: 7000 |
Data Type: DCELL |
Rows: 5328 |
Columns: 4375 |
Total Cells: 23310000 |
Projection: Lambert Conformal Conic |
N: 593000 S: 486439 Res: 20.00018769 |
E: 492500 W: 405000 Res: 20 |
Range of data: min = -8269.7102472716 max = 6999.76272107517 |
|
Data Description: |
generated by v.surf.bspline |
|
Comments: |
v.surf.bspline -z input=“nc_1@PERMANENT” raster=“nc_1” sie=40 sin=40\ |
method=“bilinear” lambda_i=0.01 layer=“1” solver=“cholesky” maxit=1\ |
00 error=0.000001 memory=300 |
|
±---------------------------------------------------------------------------+ |
First, with the default GRASS 7 svn pull from 2/9
GRASS 7.0.svn (ncstpft):~ > time r.horizon -d elevin=nc_1 horizonstep=90 horizon=test_normal
Calculating map 1 of 4 (angle 0.00, raster map <test_normal_0>)
100%
Calculating map 2 of 4 (angle 90.00, raster map <test_normal_1>)
100%
Calculating map 3 of 4 (angle 180.00, raster map <test_normal_2>)
100%
Calculating map 4 of 4 (angle 270.00, raster map <test_normal_3>)
100%
real 16m14.028s
user 16m11.993s
sys 0m1.860s
Second, patching r.horizon main.c with the diff file from your patch.
GRASS 7.0.svn (ncstpft):~ > time r.horizon -d elevin=nc_1 horizonstep=90 horizon=test_price
Calculating map 1 of 4 (angle 0.00, raster map <test_price_0>)
100%
Calculating map 2 of 4 (angle 90.00, raster map <test_price_1>)
100%
Calculating map 3 of 4 (angle 180.00, raster map <test_price_2>)
100%
Calculating map 4 of 4 (angle 270.00, raster map <test_price_3>)
100%
real 14m22.607s
user 14m20.582s
sys 0m1.836s
Using r.mapcal to subtract the normal r.horizon calculation from the modified calculation shows 0 difference between the two results
I usually run r.horizon on a 755 million cell grid and do 24 horizons, I am assuming the the benefits would scale proportionally?
Doug
On Mon, Feb 4, 2013 at 12:40 PM, Seth Price <seth@pricepages.org> wrote:
A while ago I made some simple, but significant, enhancements and submitted them to trac. They haven’t been picked up, so I wanted to point them out so someone can commit them before they diverge from the trunk.
http://trac.osgeo.org/grass/ticket/1624
This has had some activity recently, but it’s status is still “new” and it isn’t in trunk.
http://trac.osgeo.org/grass/ticket/1575
~Seth
via iPhone
grass-dev mailing list
grass-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-dev
–
Doug Newcomb
USFWS
Raleigh, NC
919-856-4520 ext. 14 doug_newcomb@fws.gov
The opinions I express are my own and are not representative of the official policy of the U.S.Fish and Wildlife Service or Dept. of the Interior. Life is too short for undocumented, proprietary data formats.