Comments (11)
You can reproduce the script by starting the orbisgis server by running
java -cp "bin/*:bundle/*:sys-bundle/*" org.h2.tools.Server -pg -trace
inside the project folder
Then execute noisemap.py
The script will fail with the aforementioned issue. Uncomment these lines to add a building in the marked gridcell and the script will run fine. https://github.com/CityScope/CSL_Hamburg_Noise/blob/7d97297ade14485051de3fe8888f3deddcf7de1f/noisemap.py#L42
from noisemodelling.
Than you very much.
We will take a look and come back as soon as possible.
Best regards
from noisemodelling.
Hi,
The submodule city_io_to_geojson is missing.
from noisemodelling.
As a side note
I think it should be way more efficient to import data using h2gis drivers:
http://www.h2gis.org/docs/1.5.0/SHPRead/
http://www.h2gis.org/docs/1.5.0/GeoJsonRead/
from noisemodelling.
Hi,
thank you so much for your quick reply!
If the submodule "city_io_to_geojson" is not loaded correctly - it was because I missed the .gitmodules file. It is pushed now. You can checkout the branch "buildings-error" from https://github.com/CityScope/CSL_Hamburg_Noise and Pull. You can init the submodule with git submodule init and git submodule update .
Start the database server by executing
java -cp "bin/:bundle/:sys-bundle/*" org.h2.tools.Server -pg -trace
then run
python noisemap.py
(it's python 2.7)
The script will fail with the aforementioned issue. Uncomment these lines to add a building in the marked gridcell and the script will run fine. https://github.com/CityScope/CSL_Hamburg_Noise/blob/7d97297ade14485051de3fe8888f3deddcf7de1f/noisemap.py#L42
Thanks for your hint on the GEOJSONREAD - I will look into it.
from noisemodelling.
NoiseModelling is executing a Constrained Delaunay mesh of your buildings.
The problem here is that the walls of your buildings are intersecting. It is possible to merge buildings that may be problematic with this operation:
drop table if exists BUILDINGS_SIMP_MERGE;
create table BUILDINGS_SIMP_MERGE as select ST_UNION(ST_SIMPLIFYPRESERVETOPOLOGY(ST_buffer(ST_ACCUM(the_geom),0),0.1)) the_geom from buildings;
drop table if exists buildings;
create table buildings(id serial, the_geom polygon) as select null, the_geom from st_explode('BUILDINGS_SIMP_MERGE');
drop table BUILDINGS_SIMP_MERGE;
You do not set an height for your buildings, is this expected ?
from noisemodelling.
Thank you so much for your tip. I will merge the buildings as suggested and try again.
I am a bit unclear on the handling of building height and actually wondered about this.
I was following mostly this paper, where it says the buidlings are a 2D geometry without information about height or topography. (https://github.com/CityScope/CSL_Hamburg_Noise/blob/buildings-error/documentation/literature/ifsttar.pdf, page 13)
Could you quickly link me to an explanation of the handling of building heights?
from noisemodelling.
Some tutorials cover buildings with height.
Technically it is an additional numeric field named "HEIGHT" in the buildings table.
Then this function must be used with the appropriate attributes:
https://github.com/Ifsttar/NoiseModelling/wiki/03-SQL-functions#br_trigrid3d
A tutorial with buildings with height:
https://github.com/Ifsttar/NoiseModelling/wiki/05-Ground-effect
https://github.com/Ifsttar/NoiseModelling/wiki/06-Modelling-barrier-using-digital-elevation-model
https://github.com/Ifsttar/NoiseModelling/wiki/08-Vertical-noise-map
As you "generate" the buildings, it should be appropriate to set a free space (at least 10cm) between buildings instead of trying to fix faulty polygons.
from noisemodelling.
Looks like it was the intersecting buildings that caused the problem.
I recreated the buildings table like this though
-- create table buildings(id serial, the_geom polygon) as select null, the_geom from st_explode('BUILDINGS_SIMP_MERGE');
create table buildings(the_geom GEOMETRY) as select the_geom from st_explode('BUILDINGS_SIMP_MERGE');
As it failed when creating it with a id column.
from noisemodelling.
As you "generate" the buildings, it should be appropriate to set a free space (at least 10cm) between buildings instead of trying to fix faulty polygons.
Yes, we adjust it so that we can put space in between seperate buildings and merge polygons for buildings stretching over several grid cells.
Thank you so much for your explanation of the 3D function. I will look into it.
from noisemodelling.
Thank you very much for your support and prompt answers!
from noisemodelling.
Related Issues (20)
- Error in Enrich_DEM_with_roads
- Exposition - Heath - etc. HOT 1
- Provide NoiseModelling native library for C and Python HOT 1
- Documentation on the absorption coefficient HOT 1
- Customize vehicle category HOT 12
- WSP Builder - Import Folder doesn´t work
- Error in doc RailWay
- How to create Lw_railway HOT 1
- Import file into NoiseModelling 4.0.5 HOT 2
- Propagation error in NM 4.0.5?? HOT 7
- Metric projection error HOT 10
- Solving WIDTH field is not taken into account in "Enrich_DEM_with_road.groovy"
- PK error HOT 2
- Delaunay grid bug HOT 1
- Maven artefact ? HOT 3
- Errors in calculation depending on the separation between receivers HOT 4
- Roads are not imported correctly from OSM data HOT 7
- Directivity calculation fails HOT 5
- Null data for a large proportion of receivers HOT 2
- Second order of reflection or higher HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from noisemodelling.