Trying to calculate a noise map

classic Classic list List threaded Threaded
21 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Trying to calculate a noise map

Rodolphe
This post was updated on .
Hi,

I executed a script to construct a noise map on the area of a commune (around 2000 buildings). I used the following parameters for BR_TriGrid3D: BR_TriGrid3D( 'buildings_def', 'H_FINAL', 'roads_src','DB_M','G_def', 'alt_def', 750,50,1.5,0,150,2,1,0.23);

To execute this function, the software needed around 400000 seconds with 6 core (not very powerfull). I know that my parameters are not optimised (but until I can compare the result with noise maps obtain by other means, optimizing it is hard…).

After this long calculation time, I used ST_TriangleContouring to compute the outputs… But it did not work (However I have used my script on smaller geometry and it worked perfectly fine). I obtained the following error: “ERROR [Thread-297] (ExecuteScriptProcess.java:160) - General error: "com.vividsolutions.jts.geom.TopologyException: Unhandled triangle splitting case :vertIso1Start(-1), vertIso1Stop(-1), vertIso2Start(-1), vertIso2Stop(-1), sideIso1Start(-1), sideIso1Stop(-1), sideIso2Start(2), sideIso2Stop(-1)"; SQL statement:”

Is there anything I can do about that ?

Thanks.
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Nicolas F.
Administrator
Hi,

What iso values have you used in ST_TriangleContouring ?

What are the Min-Max value of the columns W_V1, WV_2, WV_3 ?

Regards,

Nicolas Fortin

Rodolphe wrote
Hi,

I executed a script to construct a noise map on the area of a commune (around 2000 buildings). I used the following parameters for BR_TriGrid3D: BR_TriGrid3D( 'buildings_def', 'H_FINAL', 'roads_src','DB_M','G_def', 'alt_def', 750,50,1.5,0,150,2,1,0.23);

To execute this function, the software needed around 400000 seconds with 6 core (not very powerfull). I know that my parameters are not optimised (but until I can compare the result with noise maps obtain by other means, optimizing it is hard…).

After this long calculation time, I used ST_TriangleContouring to compute the outputs… But it did not work (However I have used my script on smaller geometry and it worked perfectly fine). I obtained the following error: “ERROR [Thread-297] (ExecuteScriptProcess.java:160) - General error: "com.vividsolutions.jts.geom.TopologyException: Unhandled triangle splitting case :vertIso1Start(-1), vertIso1Stop(-1), vertIso2Start(-1), vertIso2Stop(-1), sideIso1Start(-1), sideIso1Stop(-1), sideIso2Start(2), sideIso2Stop(-1)"; SQL statement:”

Is there anything I can do about that ?

Thanks.
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Rodolphe
Hi,

I used

create table tricontouring_noise_map AS SELECT * from ST_TriangleContouring('tri_lvl','w_v1','w_v2','w_v3',31622, 100000, 316227, 1000000, 3162277, 1e+7, 31622776, 1e+20);

Min-Max value for the three columns are 0 and a square... Ok, I am really lost :/

Thanks,
Rodolphe.
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Nicolas F.
Administrator

Hi,

Square ? May be it is the ∞ sign not recognized by java font under windows. ST_TriangleContouring does not manage infinite values. You should update your table in order to set a finite values. Something like:

UPDATE tri_lvl set W_V1 = 1e+20 WHERE W_V1 > 1e+20;
UPDATE tri_lvl set W_V2 = 1e+20 WHERE W_V2 > 1e+20;
UPDATE tri_lvl set W_V3 = 1e+20 WHERE W_V3 > 1e+20;

Regards,

-- 
Nicolas Fortin IRSTV FR CNRS 2488 GIS http://orbisgis.org Spatial DB http://h2gis.org Noise http://noisemap.orbisgis.org

Le 2015-02-25 14:01, Rodolphe [via OrbisGIS] a écrit :

Hi,

I used

create table tricontouring_noise_map AS SELECT * from ST_TriangleContouring('tri_lvl','w_v1','w_v2','w_v3',31622, 100000, 316227, 1000000, 3162277, 1e+7, 31622776, 1e+20);

Min-Max value for the three columns are 0 and a square... Ok, I am really lost :/

Thanks,
Rodolphe. 

 

 

Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Rodolphe
Hi.

You were right, ST_TriangleContouring works now (after fixing the max values of W_V1, W_V2, W_V3).

Sadly, I have other problems now. I fail the next step (aggregating the different triangles by IDISO). I think the problem is coming from the result of ST_TriangleContouring. The data I obtained from this function are not complete:



And once again, I don't know what to do.
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Nicolas F.
Administrator

Hi,

It seems that you have levels higher than 200dB. You should check the noise input data of BR_TriGrid. Check the min max of db_m values generated by br_evalsource.

Regards,

--

Nicolas Fortin
IRSTV FR CNRS 2488
GIS        http://orbisgis.org
Spatial DB http://h2gis.org
Noise      http://noisemap.orbisgis.org

blocked.gif (164 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Rodolphe
Hi,

My db_m ranges between 48 dB and 109 dB before splitting between the different frequencies.

I have tried on a smaller zone, I have the same problem. Sadly in the error report, I cannot see the head of the first bloc because there are too much lines (with a lot of geometries). But the head of the second bloc (if it can help) is

'Caused by: com.vividsolutions.jts.geom.TopologyException: Found null DirectedEdge'

Regards,
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Nicolas F.
Administrator
You can find the logging file in the following folder:

linux: /home/rodolphe/.OrbisGIS/5.1/orbisgis.log
windows 7: %APPDATA%\.OrbisGIS\5.1\orbisgis.log

Topology and ground effect has not been extensively tested, can you try to compute a small zone without the tables 'G_def' and 'alt_def' ?

Regards,

​--
Nicolas Fortin
IRSTV FR CNRS 2488
GIS        http://orbisgis.org
Spatial DB http://h2gis.org
Noise      http://noisemap.orbisgis.org

Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Rodolphe
This post was updated on .
Hi,

I have no problem on a small zone with 'G_def' and 'alt_def'.

After some experiments, I think that I know where is the problem. It is the size of the map. If BR_TriGrid3D can process the specified area in one time, my results are perfectly fine and it works smoothly. But if BR_TriGrid3D has to split the calculation (in the log I see 'evaluate cell 1/x' then the percentage increases, reaching 100% it goes to 'evaluate celle 2/x' and count again... etc).

If BR_TriGrid3D has to split the map, the result of this function seems to be ok but the multipolygon_iso step does not work:

drop table if exists multipolygon_iso;
create table multipolygon_iso as select ST_UNION(ST_ACCUM(the_geom)) the_geom ,idiso from tricontouring_noise_map GROUP BY IDISO, CELL_ID;

Error:

ERROR [Thread-353] (ExecuteScriptProcess.java:160) - Exception calling user-defined function: "union(GEOMETRYCOLLECTION ([here, there is the list of all my geometries (a very very long one)])): found non-noded intersection between LINESTRING ( 852286.48 6517539.98, 852286.6612944758 6517539.98 ) and LINESTRING ( 852287.04 6517539.98, 852286.48 6517539.98 ) [ (852286.48, 6517539.98, 1.6000000000000048) ]"

The error seems to come from the intermediary step:

drop table if exists tricontouring_noise_map;
create table tricontouring_noise_map AS SELECT * from ST_TriangleContouring('tri_lvl','w_v1','w_v2','w_v3',31622, 100000, 316227, 1000000, 3162277, 1e+7, 31622776, 1e+20);

Even if these two lines compute without errors, the resulting tricontouring_noise_map is not complete (like shown in the picture of one of the previous post).


I think that I wrote is not very clear... Let me summarize it.

BR_TriGrid3D ==> split the map in its calculation but the result seems to be Ok.
tricontouring_noise_map ==> gives an incomplete output but does not triggered any error.
multipolygon_iso ==> my programm fails here.

I cannot be 100% sure, but each time BR_TriGrid3D splits into cells, my programm fails and if BR_TriGrid3D does not split, my programm works correctly...

Regards,
Rodolphe.
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Rodolphe
Hi,

I have succeeded... more or less... I tried to use my brain and I realize that the holes in my map come from triangles with 1e+20 values (value I fixed for the infinite values in my table). So I update the table and fix all the 1e+20 values to 1... And now my programm works. The result is not briliant as you can see

Does it look like a known bug/misuse ?

The interesting part is that it seems to happen only when BR_TriGrid3D has to split the map... I am calculating right now on a square big enough to be a good test but small enough to not be splitted when processed. I will post the result when I obtained it.

Thanks,
Rodolphe.
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Nicolas F.
Administrator
Hi,

Could you send me the input data of BR_Trigrid for a small area (with infinite values) ? You can use http://demo.ovh.eu

Regards,

--
Nicolas Fortin
IRSTV FR CNRS 2488
GIS        http://orbisgis.org
Spatial DB http://h2gis.org
Noise      http://noisemap.orbisgis.org
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Nicolas F.
Administrator
This post was updated on .
In reply to this post by Rodolphe
 

Hi,

Some comments about the input data. As you want take account of digital
elevation model there is missing Z values in your tables. Roads does not
have Z values. Buildings does not have Z values. Then you should not
give the table alt_def to BR_TRIGRID3D.

Do you really need the computation of noise map contours ? If you want
only to compute the exposure of population. You can follow EU Directive
(I have to found the reference) by defining measurement points at 4m
height and 2m from buildings facades.

You can use this SQL request in order to compute theses measurement
points:

DROP table IF EXISTS receivers_building ;
CREATE TABLE receivers_building as SELECT
ST_UPDATEZ(ST_LOCATEALONG(the_geom, 0.5, 2),4) as the_geom, ID from
BUILDINGS_DEF;

DROP TABLE if EXISTS receivers_facades;
CREATE TABLE receivers_facades(PK SERIAL, THE_GEOM GEOMETRY,ID INT) as SELECT DEFAULT, E.the_geom, E.ID
FROM ST_EXPLODE('receivers_building') E, GIP_CALC F WHERE
ST_Intersects(E.the_geom, F.the_geom) ;

You can then use BR_PTGRID3D( ) using receivers_facades as receivers
table.

I will try to fix the delaunay problem with your building data. Then
find and fix problem with infinite sound level that may be caused by
missing Z values.

You can compute level at receivers_facades using this request.

-- Compute level on each facades
create table pt_level as select * from BR_PTGRID3D('BUILDINGS_DEF',
'H_FINAL','ROADS_SRC','RECEIVERS_FACADES','DB_M','G_DEF','',750,50,2,1,0.23);

The computation time may be lower using this method.

Regards,


--

Nicolas Fortin
IRSTV FR CNRS 2488
GIS http://orbisgis.org
Spatial DB http://h2gis.org
Noise http://noisemap.orbisgis.org
 

blocked.gif (164 bytes) <http://orbisgis.3871844.n2.nabble.com/attachment/7575274/0/blocked.gif>
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Nicolas F.
Administrator
In reply to this post by Rodolphe

EU Directive

http://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32002L0049

..meaning the façade of a dwelling at which the value of Lden four metres above the ground and two metres in front of the façade..

Nicolas Fortin IRSTV FR CNRS 2488 GIS http://orbisgis.org Spatial DB http://h2gis.org

Le 2015-03-04 09:43, Rodolphe [via OrbisGIS] a écrit :

 

 

Hi,

I have succeeded... more or less... I tried to use my brain and I realize that the holes in my map come from triangles with 1e+20 values (value I fixed for the infinite values in my table). So I update the table and fix all the 1e+20 values to 1... And now my programm works. The result is not briliant as you can see

Does it look like a known bug/misuse ?

The interesting part is that it seems to happen only when BR_TriGrid3D has to split the map... I am calculating right now on a square big enough to be a good test but small enough to not be splitted when processed. I will post the result when I obtained it.

Thanks,
Rodolphe.


If you reply to this email, your message will be added to the discussion below:
http://orbisgis.3871844.n2.nabble.com/Trying-to-calculate-a-noise-map-tp7575240p7575272.html
To start a new topic under NoiseM@p, email [hidden email]
To unsubscribe from NoiseM@p, click here.
NAML

 

 

Noise http://noisemap.orbisgis.org

Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Rodolphe
In reply to this post by Nicolas F.
Ok. Thanks a lot for these pieces of advice.

I was thinking that knowing the height of the buildings, the Z values of both buildings and roads would not be needed and they will stick on the ground model by alt_def. If it is not the case, how can I put a Z value in buildings and roads. I add a column Z with the corresponding values in each table ?
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Nicolas F.
Administrator
Using field effect (with G values) I obtain NaN (Not a Number) values. I have to debug this. You should not use the field effect for the moment.

If you have not the height of roads you can not set an arbitrary value. If you cannot retrieve the Z of roads then you should not use your table ALT_DEF.
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Rodolphe
Ok but if I have the z values, where should I put it ? Should I add a distinct column with the z values ? I mean, in the function, it asks for the table roads containing the_geom and the columns containing the source in db. It never asks for a column with z values. Should it be included in the_geom ?
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Nicolas F.
Administrator
Hi,

Yes it should be included in the geometry. A road is made by a linestring of multiple x,y,(z) points.

Regards,

Nicolas
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Rodolphe
Hi,

And the same is needed with buildings ? The multipolygon points must have a z value ?

Thanks,
Rodolphe.
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Nicolas F.
Administrator

Hi,

If Z values are not given for buildings it is automatically extracted from DEM. However it is more accurate if buildings Z is given.

Regards,

-- 
Nicolas Fortin IRSTV FR CNRS 2488 GIS http://orbisgis.org Spatial DB http://h2gis.org Noise http://noisemap.orbisgis.org

Le 2015-03-10 08:22, Rodolphe [via OrbisGIS] a écrit :

Hi,

And the same is needed with buildings ? The multipolygon points must have a z value ?

Thanks,
Rodolphe.


If you reply to this email, your message will be added to the discussion below:
http://orbisgis.3871844.n2.nabble.com/Trying-to-calculate-a-noise-map-tp7575240p7575280.html
To start a new topic under NoiseM@p, email [hidden email]
To unsubscribe from NoiseM@p, click here.
NAML

 

 
Reply | Threaded
Open this post in threaded view
|

Re: Trying to calculate a noise map

Rodolphe
Hi,

Ok if I need to add a Z coordinates for each point of the MULTILINESTRING defining the roads, is it possible to extract this information frome the DEM. (the roads will "fit" the surface).

I also have the Z_initial and Z_final for the roads but in a lot of cases the MultiLineString contain more than two points.

Thanks for your answer,
Rodolphe.
12