Can you please post some guidelines on how to set the programmes and how to draw such lines? I have not worked with GeoServer/Tools and I am not familiar with uDig either... unless it is very complicated and time consuming for you.
Thank you
I used GeoServer with a modified version of GeoTools. I never really finished the work so it's just been sitting in GitHub since then. https://github.com/smithkm/geotools/...-point-heatmap
The same modification ought to be usable in any GeoTools based software that can use Processes. You might be able to use it with something like uDig.
Can you please post some guidelines on how to set the programmes and how to draw such lines? I have not worked with GeoServer/Tools and I am not familiar with uDig either... unless it is very complicated and time consuming for you.
Thank you
If you're thinking of this as a graphics tool for "drawing lines" then this is not remotely the software for you. It's a spatial analysis tool which takes raw data like GPS traces and figures out how densely packed they are. Azelor's suggestion of using graphics software may be better. In essensce what the heatmap algorithm does is to draw shapes additively and then blur everything, then it's run through a colour map and optionally the contrast is stretched first. You can do much of that in graphics software. The benefit of this is that mostly that graphics software doesn't usually support high precision floating point channels or purely additive operations and doesn't support rasterizing GIS data, which it sounds like you don't have anyway. Also this is integrated with a full on GIS toolset.
If you can render the paths and overlay them meaningfully, then the heatmap approach still works, but I'm not sure how easy it will be to accomplish in typical graphics software. The process I am about to detail will work in any linear environment where you can use floating point colors and perform meaningful math on them.
Render each of your paths as a white line on black. Then put all of the lines in a layer stack with a simple add blend mode. This will push your color way above white, so now you need to divide the result by the number of layers in your stack. That will normalize the image to put your brightest colors back to no brighter than white. Once you have that, you can use the technique of your choice to make a gradient out of it, adjust the gamma for a pleasing look, or whatever.
Now, about that bit in the first paragraph: A linear, floating point environment is difficult to set up in the Gimp or Photoshop. I'm sure it can be done, but if I were performing this job, I'd probably use Blackmagic Fusion, which was conveniently just released for free. Fusion is a node-based image compositor used to make feature film visual effects. As such, it's ridiculously powerful, and a little difficult to wrap your brain around at first. If you'd like to go for it, though, I can set up a template for you and walk you through how to use it to achieve your goal. You can download the software here: https://www.blackmagicdesign.com/products/fusion
And yes, it really is free.
Bryan Ray, visual effects artist
http://www.bryanray.name
Man this is awesome piece of software! Unfortunately for my hobby map it would be a huge time-killer. Before I say "thank you, but no", let me summarize the knowledge I gathered so far.
A) I was thinking about a heat map of my rides. Road intersections have GPS coordinates
B) However not being able to set up (in fact I don't know how easy/difficult would it be and what kind of knowledge one should have) GeoServer and GeoTools, I took the approach which was suggested - to use some graphics software instead. I chose Inkscape which I used for other map.
C) I put my tracks on a paper map and divided them in sections (each being restricted by road intersection)
D) Each section I numbered and each number I summed so basically I received the number of times I passed the section in real life
E) These numbers I used to Normalize, to be able to calculate heat map colour (based on this formula: A_minimalist_heatmap_function)
F) Until now everything was fine and made on paper
1) I started drawing it in Inkscape so I made 1st layer which was a copy of a Google map road map
2) the uppermost layer would be left for captions
3) second layer would be used to draw lines = road sections as in D)
3a) first problem occurred: If I run through the same road section once or multiple times it does not need to be divided at each road intersection (for time saving reason). However if in future I used part of the road, I would need to divide it at the intersection where I stepped in. How would I number the sections so I knew where in the map it would be? (some of the roads do not have a number in real life so a naming method would have to be made. For those roads that have numbers, it would be rather difficult t use real life system because they may be more than 60 miles in length). The only option which I was able to figure out, was a number followed by a letter. Still the road section may be split (e.g. 1, divided in 1a and 1b. 1b can still be divided in 1b and 1c, however when I split 1b, I need to name 1b as 1ba and 1bb so that 1c can remain). The new numbers must be maintained and updated in a table for colour normalization (point E)
2b) There is one option how to resolve the issue in 2a) If I painted each track as a separate layer. But there would be problem with the fact that I would need to redraw each track individually but I don't know how it would work with colour merging so that the colours would make "heat map" effect.
I probably wrote more than you are keen to read, but I did it even for me to summarize my work so far, so I could come back and knew what I did and where the dead ends were.
Now comes the time to ask all of you and Midgardsormr especially. Have I put myself in a dead-end direction or am I going just through longer routes than necessary and would there be better tools or processes to use?
Thank you all. And thank you Midgardsormr for your will to give me a hand with Fusion.
BTW: sorry for typos and grammar mistakes as English is not my mother tongue
It sounds to me as if you're doing an awful lot of computation by hand instead of allowing the computer to do what it's good at.
Have you seen this? http://brunosan.eu/2012/07/20/a-heat...-in-runkeeper/
You haven't said how you're getting your data out of your GPS, but from what I understand the .gpx format is fairly common.
Bryan Ray, visual effects artist
http://www.bryanray.name
All the best in 2015 to all of you!
Thank you Midgardsormr for the useful link. It helped a lot. I followed the steps and imported the data (gpx reformated to shapefile format) to Tilemill. I used the shapefile road data sets, so there would be no need to use Mapbox for a background (the more can be done localy the better :-)). The only thing I wasn't able to solve, is the "heatmap" coloring (the more is a particular segment used, the more it should be colored - a scaled intensity; or how should I call it).
I came to a conclusion, which can be summarised as follows:
Tilemill is not able (or I wasn't able) to 1) align tracks to a road grid, 2) each track (even if it was done on the same segment of a road) may be displaced in relation to another due to inaccuracy of GPS and GPS recording application, 3) this results in multiple lines being next to each other instead of being on top of the previous. Thus the colored line(s) will not result in a traditional heatmap (compare the cut-outs below).
![]()
Anyway thank you for guiding me in a good direction which resulted in a nice map of my rides (rather sufficient for my level of drawing knowledge).
Glad it worked to an acceptable degree. There's probably some method available to improve the registration of your tracks, but never having worked with GPS data at all, I couldn't give any guidance.
Bryan Ray, visual effects artist
http://www.bryanray.name
The laziest way to reduce the impact of absolute accuracy is to increase the size of the individual spots or the width of the line segments. As the spots get larger, the jitter in samples becomes relatively smaller.