[GRASS-user] denoising error (r.denoise)

Hello all,

When trying to denoise a DEM mdnoise.exe “stops working” and I get this:

__

(Wed Jan 23 11:16:54 2013)

r.denoise.bat input=teste@GDEM_V2_UTM output=teste_dn

Exporting points…

Denoising…

This application has requested the Runtime to terminate it in an unusual way.

Please contact the application’s support team for more information.

__

My system is a Win7 64bits and I’m using Grass 6.4.2

Anyone ever experienced this? I’m a new user to Grass so I’m sorry if this is a dumb question…

Would really appreciate some help.

Thanks

luis

hi,

what I've tested here on my win7-64bit-box with osgeo4w-wingrass6.4.3.svn:

as stated in the manual
http://trac.osgeo.org/grass/browser/grass-addons/grass6/raster/r.denoise/description.html

(1)
wget http://www.cs.cf.ac.uk/meshfiltering/index_files/Doc/mdsource.zip
unzip mdsource.zip
cd mdenoise

(2) built mdenoise within the osgeo4w-stack

g++ -o mdenoise mdenoise.cpp triangle.c

(3) and put the exe in the %PATH%
(e.g. C:\Users\xxxxxxx\AppData\Roaming\GRASS6\addons)

(4) projected location (epsg3035) with the Aster DEM v2 (~30m x ~30m)

(5)

g.region -p
projection: 99 (Lambert Azimuthal Equal Area)
zone: 0
datum: etrs89
ellipsoid: grs80
north: 2686202.52683254
south: 2627115.59422961
west: 4471032.62800725
east: 4541841.53570558
nsres: 22.717006
ewres: 22.717006
rows: 2601
cols: 3117
cells: 8107317

r.denoise --verbose input=aster24myrisel@PERMANENT output=aster24myriseldenoise
Exporting points...
Denoising...
Input File: C:\grassdata/alpslaeaepsg3035/testrmdenoise/.tmp/10536.0.xyz
Neighbourhood: Common Vertex
Threshold: 0.930000
n1: 5
n2: 50
Read Model...
Triangulation...
    93.789 seconds
Denoising Model...
Error malloc: Out of memory.

(6)

g.region -p -a rast=aster24myrisel@PERMANENT vect=smallisel@testrmdenoise align=aster24myrisel@PERMANENT
projection: 99 (Lambert Azimuthal Equal Area)
zone: 0
datum: etrs89
ellipsoid: grs80
north: 2657420.08023204
south: 2642086.10118283
west: 4497043.5998759
east: 4515580.67677094
nsres: 22.717006
ewres: 22.717006
rows: 675
cols: 816
cells: 550800

r.denoise --verbose input=aster24myrisel@PERMANENT output=aster24myriseldenoise
Exporting points...
Denoising...
Input File: C:\grassdata/alpslaeaepsg3035/testrmdenoise/.tmp/10656.0.xyz
Neighbourhood: Common Vertex
Threshold: 0.930000
n1: 5
n2: 50
Read Model...
Triangulation...
     5.148 seconds
Denoising Model... 11.232 seconds
Saving Model... 1.295 seconds
Reloading data...
command finished

=> IIUC mdenoise is very memory consuming, so adjust the region to a reasonable "small" extent.

as mentionded in the manual, the location should be projected.

geographic (lat-long) location requires projection during processing which I've never got to run.

HTH

best regards
Helmut

Gesendet: Donnerstag, 24. Januar 2013 um 20:45 Uhr
Von: "Nikos Alexandris"
An: "Helmut Kudrnovsky"
Cc: "Luís Mário Ribeiro"
Betreff: Re: [GRASS-user] denoising error (r.denoise)

Helmut,

with all the respect -- apologies for the PM. Could you please have a look,
if and whenever you have some time, on the issue that Luis reported in the
list?

(I don't have currently access on a win-box.)

Danke, Nikos

On Wednesday 23 of January 2013 11:27:20 Luís Mário Ribeiro wrote:

Hello all,

When trying to denoise a DEM mdnoise.exe �stops working� and I get this:

__

(Wed Jan 23 11:16:54 2013)

r.denoise.bat input=teste@GDEM_V2_UTM output=teste_dn

Exporting points...

Denoising...

This application has requested the Runtime to terminate it in an unusual
way.

Please contact the application's support team for more information.

__

My system is a Win7 64bits and I�m using Grass 6.4.2

Anyone ever experienced this? I�m a new user to Grass so I�m sorry if this
is a dumb question�

Would really appreciate some help.

Thanks

luis

Helmut Kudrnovsky wrote:

hi,

Hallo Helmut :slight_smile:

(Thank you so, very, much for your time!). Few comments below.

what I've tested here on my win7-64bit-box with osgeo4w-wingrass6.4.3.svn:

as stated in the manual
http://trac.osgeo.org/grass/browser/grass-addons/grass6/raster/r.denoise/des
cription.html

(1)
wget http://www.cs.cf.ac.uk/meshfiltering/index_files/Doc/mdsource.zip
unzip mdsource.zip
cd mdenoise

(2) built mdenoise within the osgeo4w-stack

g++ -o mdenoise mdenoise.cpp triangle.c

(3) and put the exe in the %PATH%
(e.g. C:\Users\xxxxxxx\AppData\Roaming\GRASS6\addons)

(4) projected location (epsg3035) with the Aster DEM v2 (~30m x ~30m)

(5)

g.region -p
projection: 99 (Lambert Azimuthal Equal Area)
zone: 0
datum: etrs89
ellipsoid: grs80
north: 2686202.52683254
south: 2627115.59422961
west: 4471032.62800725
east: 4541841.53570558
nsres: 22.717006
ewres: 22.717006
rows: 2601
cols: 3117
cells: 8107317

r.denoise --verbose input=aster24myrisel@PERMANENT
output=aster24myriseldenoise Exporting points...
Denoising...
Input File: C:\grassdata/alpslaeaepsg3035/testrmdenoise/.tmp/10536.0.xyz
Neighbourhood: Common Vertex
Threshold: 0.930000
n1: 5
n2: 50
Read Model...
Triangulation...
    93.789 seconds
Denoising Model...
Error malloc: Out of memory.

I think that this is, indeed, a (lack of enough) memory issue. On linux, with
32GB of RAM of course, denoising 20+ tiles was no problem.

(6)

g.region -p -a rast=aster24myrisel@PERMANENT vect=smallisel@testrmdenoise
align=aster24myrisel@PERMANENT projection: 99 (Lambert Azimuthal Equal
Area)
zone: 0
datum: etrs89
ellipsoid: grs80
north: 2657420.08023204
south: 2642086.10118283
west: 4497043.5998759
east: 4515580.67677094
nsres: 22.717006
ewres: 22.717006
rows: 675
cols: 816
cells: 550800

r.denoise --verbose input=aster24myrisel@PERMANENT
output=aster24myriseldenoise Exporting points...
Denoising...
Input File: C:\grassdata/alpslaeaepsg3035/testrmdenoise/.tmp/10656.0.xyz
Neighbourhood: Common Vertex
Threshold: 0.930000
n1: 5
n2: 50
Read Model...
Triangulation...
     5.148 seconds
Denoising Model... 11.232 seconds
Saving Model... 1.295 seconds
Reloading data...
command finished

=> IIUC mdenoise is very memory consuming, so adjust the region to a
reasonable "small" extent.

See above -- it worked out looping over many individual ASTER GDEM2 tiles.

as mentionded in the manual, the location should be projected.
geographic (lat-long) location requires projection during processing which
I've never got to run.

Right -- the module wont run if you set a geographic ref. system. No problem,
even from inside a WGS84 location. Setting a proper EPSG code refering to a
projected reference system is all that is required.

Best, Nikos

hi,

I think that this is, indeed, a (lack of enough) memory issue. On linux, with
32GB of RAM of course, denoising 20+ tiles was no problem.

here a win7-64bit box with 8 GB RAM

Right -- the module wont run if you set a geographic ref. system. No problem,
even from inside a WGS84 location. Setting a proper EPSG code refering to a
projected reference system is all that is required.

Best, Nikos

another way would be gdalwarp the DEM to a projected reference system before importing in a grass location;

in gdalwarp are some more resampling methods (http://www.gdal.org/gdalwarp.html)
[without looking in the r.denoise-code which resampling methode is used there]

best regards
Helmut