Tuesday, February 7, 2012

Bob knows how to build a dam... with uDig and jgrasstools

Well, I assume everyone knows Bob the builder. Ok, my sisters kids had to teach me of his existence, but apart of my ignorance Bob seems to be a quite famous guy.

Anyway, we needed someone to build dams and human artefacts on raster, to better handle hydraulic simulations. This might be the case of many people playing with elevation models, since the available terrain models many times do not consider human works you need to consider and the surface models are not usable for certain purposes.

So we finally decided to implement the Bob The Builder Tool in jgrasstools. A tool the would give us the possibility to easily modify the elevation model in a assisted way.

So from the next jgrasstools release on in uDig you will be able to do what I will describe in the rest of this post.


Just for fun, assume you want to do some kind of simulation considering the presence of a dam.

First let's check the region we consider:


and the same in 3d (the arrow should help understanding where is where):


Let's define a smaller region on which we want to place the dam. The module will require two feature layers:
1) a polygon layer containing the bounds of the artefact
2) a point layer containing an elevation attribute, which will represent elevation points that will be used to interpolate the surface inside the polygon area.


The module then creates a new raster with the dam merged into the environment:


The aspect put with transparency on top of the dem gives the impression that not much happened, but the 3d doesn't lie:


The module creates the dam shape in every point in which the dam's elevation is higher than the terrain. There is also a possibility (a flag) to erode, if necessary, which in the above case would generate the following:


Thanks Bob :)











1 comment:

Marco Foi said...

I am pretty sure Bob did not comply with regulations on dams planning!

He did not asked for the advice of a geologist.

I am offering to support him!