Page 2 of 2

PostPosted: Wed Nov 08, 2006 1:59 am
by Aaron
Hi Monks,

Reading through it now...

Just noticed on this page that Ben Discoe is credited as 'Ben Gisco'.

Done! Wow, very thorough, and excellent results. This is yet another reason to make a start on that rivers plugin I've been promising (with mask extraction, etc.)


PostPosted: Wed Nov 08, 2006 11:32 am
by monks
Hi DT, yep sure, link away!
I'll add a link on ME-DEM to your Texture forum as well.


PostPosted: Wed Nov 08, 2006 11:34 am
by monks
Hi Aaron, cheers, just as long as it's not 'Disco' eh? hehe

Yeah Seer spent a lot of sweat on that and did a great job.

wow- the river plugin sounds really nice. I think contours, rivers and tiling are the big needs; for us anyway :wink: '
You did a smart thing going multi threaded too- I was reading your log- quadros are round the corner- yikes!


PostPosted: Wed Nov 08, 2006 1:32 pm
by DeathTwister
Hay guys,

KK, Monks done /smiles.

Yes, Seer did a very nice job..../cheers Hehe I am a dumb artist and most was way over my head, but yup, he did a very good job. /winks

Wow a river plugin, /drools on his keyboards................

DT :twisted:

PostPosted: Wed Nov 08, 2006 4:42 pm
by SeerBlue
Hey DT, thanks, yes a river plugin would be nice, but I think that is way over my head,,,I spent a very long time trying to get to grips with javascript for the upcoming ME-DEM Google map (so far 4 layers deep , 575 meg, sitting on my local machine server), and I am still fiddling with xml for MS Virtual Earth/World Wind/ and Ceaser.
Saga Gis itself is open source, so (I think) all the "math" is available within the source download package, but I have never browsed through it,,,I probably should. I have no idea how one would sset a plugin up, but I do have some basic ( :D very basic) idea of what may be needed.
Saga uses a heightfield and a grid system (which defines the extents/size of the heightfiled) as the base for all calculations.
I then run the Preprocessing modules Sink Drainage Route Detection and Sink Removal(deepen drainage routes). My understanding of this Sink Drainage Route Detection bit is that the algorythm(?) uses the grid and heightfield and then identifies the height of a given pixel, finds the escape route from that pixel to one which is lower, and continues on until the edges of the heightfiled are encountered. Then each pixel is identified with a numeric between 0 and 8 which identifies the direction the flow escapes, If you run this module in saga you wil get a nice image showing the routes, in order to see the numeric identifiers you must zoom way in.
Sink Removal(deepen drainage routes) uses the grid, heightfiled and the results from the Sink Drainage Route Detection to identify blockages and then lower them to connect existing Drainage routes. It does a pretty intelligent search, connecting the closest routes . Depending on the heightfield in use you can end up with some pretty deep canyons.
I have run some hi res real world dems of Northern New Hampshire, where I grew up, thru Saga and it did a real good job of identifying old dry stream beds and , for some reason, railbeds, that i i would expect it to give realistic output of fictional heightfields.
After that it would get a little more difficult to decide which way to go for algorythms, I like the ones that produce the wetness index, LS-Factor, and catchment area, because the png's are easy to visualize as watercourses (they have a nice sinouos appearence and vary in color) and to manipulate in PhotoShop , but I have no idea how they operate or what they require to function as far as other info at the moment, everything is on the main comp ( I guess I should look)..
And then the question arises of how to manipulate that data within L3DT to alter the heightfieldd ( as manipulating it in Photoshop before mergiing in Leveller as a second heightfield does). Slider inputs to vary the greyscale range, numeric input to set the min as a negative height and the max as zero,,and the subtract it from the original heightfield...erosion masks ala WM.
So I guess I really should look a little deeper, and then come up with a better idea of what is needed.. and continue after going to by balloons for my rather insitent 19 month old boss. SeerBlue

PostPosted: Wed Nov 08, 2006 4:49 pm
by SeerBlue
Guess I should have scrolled up a bit, thanks Aaron,,,I guess I mixed Discoe and GIS, as the VTP is an excellant resource for my GIS maunderings, so I think. Yes, do make a river plugin, for some reason rivers have come to intrigue me greatly,, odd for some one who has a near drowning induced phobia of cold New England rivers and old canoes.

PostPosted: Wed Nov 08, 2006 6:29 pm
by SeerBlue
After running out and buying ballons for the Boss, aka Lena Marie, the 19 month old Commander in Chief, I took a look thru the source files for Saga Gis, which are available from SourceForge, it is mostly beyond me, but for those programmers who have a good understanding of the dark arts of mathmatics and heightfields , the algo's in the files may be a good place to start to build your own plugins for L3DT. I should note that each has a copyright notice in the index.cpp, and I don't know enough about open source licensing to know just how they can be used/modified. And some of the comments are in German/Deutsch.
Even at my limited understanding of "int n, x, y, i, ix, iy;
double z, d, dz[8], dzSum, c, s;" type mumbo, I was able to follow pretty well thru the steps of what aspects of the terrain where read and used to get from step 1 to the end, so you folks who stayed awake during class should be able to whip up a river building plugin for the rest of us in no time

PostPosted: Thu Nov 09, 2006 10:35 am
by Aaron
Hi SeerBlue,

Saga GIS is released under the GNU General Public License (GPL), which amongst it's various clauses requires any project that contains code released under the GPL to itself be released under the GPL. Crucially, this extends to library linkage, which means that only GPL'd programs are allowed to use GPL'd plugins. L3DT is not released under GPL, and since some of the libraries upon which L3DT relies are not themselves GPL'd, it cannot be either (there are other reasons too.) The upshot? No plugin written with code from Saga GIS can be used with L3DT without violating their license.

Anhyoo, the "Sink Drainage Route Detection" algorithm you described sounds very much like the erosion flow algorithm in L3DT (not surprising; there are only so many ways to program the same thing,) so making that available to plugins will get us part of the way there. I don't have an equivalent of the "Sink Removal" algorithm, but I don't think it will be too hard to bash something together. In fact, a slight modification of the existing flow algorithm might just provide the desired effect. Hmm...I'll experiment with that.


PostPosted: Thu Nov 09, 2006 3:38 pm
by SeerBlue
I thought the open source license would affect the use of the code, hence my comment about the copyright. But I was also thinking, incorrectly, that some of the L3DT users with enough math and programming skills, but perhaps not alot of gis or terrain analysis knowledge could look at the algo's and say "ok, here they are using slope, aspect and curvature to define this and that" and then write their own algo to get similiar data. But as you have your own erosion flow algo, perhaps they can start there. Can't wait to see what you bash some more together :D
Like you said there are only so many ways to get the same thing done , which I noticed when I was reading tons of papers and thesis' on terrain analysis and trying to figure out what some of the Saga Modules with names like rho 8 and recursive upward processing really were. Alot of the papers would credit previous algo's as the basis for there refined version..
Thanks for the clarification , I would not want to some one to invest alot of time and effort into a plugin using Saga's work and not have it be legally usable.

PostPosted: Mon Nov 13, 2006 12:05 am
by Aaron
Hi SeerBlue,

SeerBlue wrote:But I was also thinking, incorrectly, that some of the L3DT users with enough math and programming skills, but perhaps not alot of gis or terrain analysis knowledge could look at the algo's and say "ok, here they are using slope, aspect and curvature to define this and that" and then write their own algo to get similiar data.

You might be right there. Looking at the code then writing one's own version might be OK, depending on your local copyright laws. However, I am not a lawyer, and this does not constitute legal advice ;)