Archive for the 'Mapping' Category

Today’s ride following natural disaster

Friday, January 14th, 2011

I went looking for my grandmother today, who lives on the bank of the Brisbane River in Wivenhoe Pocket. I didn’t find her, but I’ve been assured she is safe.

  • Video

    Fernvale bridge 32 hours after peaking during major flood. The edge of the water is 830 metres from the bridge which is typically used to traverse the river. The width of the river is estimated to be over 1.5km.

    The dried mud on the bitumen road indicates the peak height that was reached.

    Note the street sign indicating a side street ahead. Coominya State School lies completely submerged in the water ahead.

    Map location
    The marker denotes the edge of the water as seen in the video to within a few metres.

  • Video

    Alice Street and Queen Street, Goodna, Brisbane 32 hours after Brisbane River peaks in major flood disaster.

    The peak height of the river can be seen at 0:01 when the road changes to a dirty colour.

    Map location

  • Video

    Schmidt Road, Fernvale 32 hours after Brisbane River peaks in major flood disaster.

    The peak height of the river can be seen in the debris that hangs in the fences.

    Map location

Parsing map data using a lazy language

Sunday, January 10th, 2010

Haskell is a pure lazy programming language. The laziness of Haskell allows certain performance improvements without sacrificing compositional program properties. I have recently written parsers for XML map data formats that allow a user to “read a data file into a collection of immutable objects.” If I told you I used the parser library to “read in” a 140GB map data file and you’re not familiar with a lazy language, you might have asked how I did this within the constraints of memory requirements. Easy of course; I used a lazy language. The implications of a lazy (and therefore, pure) language are widely misunderstood, so I say “easy” wishing it really was easy for all people, but I know it isn’t (keep practicing!).

HXT is a parsing library for XML that is based on Hughes’ arrows and allows a user to piece together their own specific XML parser. I used it to parse the GPS Exchange (GPX) and OpenStreetMap (OSM) data formats.

Here are some example uses of parsing GPX files and here are examples parsing OSM files. My favourite is a very simple example (there are more complex ones) that removes waypoints from a GPX file. This question (how to remove waypoints from gpx?) was asked on the OSM mailing list quite a while ago; questions like these partially inspired me to write these libraries.

import Data.Geo.GPX
 
removeWpts :: FilePath -> FilePath -> IO ()
removeWpts = flip interactGpx (usingWpts (const []))

The implementation is very simple. The interactGpx function takes two file names and a function that transforms a Gpx data structure to a new Gpx. The interactGpx function reads in the first given file name to a Gpx, executes the given function to produce a new Gpx, then writes the result to the other given file name.

interactGpx :: FilePath -> (Gpx -> Gpx) -> FilePath -> IO ()

The usingWpts function takes a function that transforms a list of waypoints to a new list of waypoints and a Gpx value and returns a new Gpx value with the waypoints transformed.

usingWpts :: ([WptType] -> [WptType]) -> Gpx -> Gpx

Of course, since we want to remove all waypoints, we ignore the given list of waypoints and return an empty list (const []). Pretty neat I reckon!

You can get either of these libraries from hackage:

Here is each of their home page:

Mount Mee State Forest

Tuesday, March 24th, 2009

I once wrote about the mapping of tracks, campgrounds and points of interest in Mount Mee State Forest. Since I have been trapped in my house for many months due to injury, I have entered all my mapping data into OpenStreetMap including Mount Mee State Forest.

Here is a link to the PotLatch map of Mount Mee, however, I much prefer JOSM for entering map data — a surprisingly usable and relatively bug-free Java application (no really!).

If you have track logs — particularly in GPX format — and you’re willing to donate them, I’d be happy to enter them in or use them to tighten up some of the tracks already entered.

Mount Mee State Forest Campgrounds

Saturday, November 29th, 2008

I am an avid GPS user and I visit Mount Mee State Forest regularly on my dirt bike (Husqvarna TE450). I encounter queries on forums for the locations of the campgrounds in this forest, so here they are:

Neurum Creek Campground
-27.061853° 152.696228°
-27°03′42.67″ 152°41′46.42″

Archer Campground
-27.016317° 152.697767°
-27°00′58.74″ 152°41′51.96″

You can get to Neurum Creek Campground by taking Sellin Road then turning onto Neurum Creek Road and following it north. Archer Campground can be found by taking Sellin Road then Lovedays Road, however, it is easier to approach from the north side of the forest and head south. Both of these campgrounds require a permit through the Environmental Protection Agency (EPA) or you can book online.

There is another campground called Neurum Creek Bush Retreat but this is a different campground to those two mentioned. It is privately owned and I have personally stayed a weekend there and recommend it, especially if you have children or want a weekend of dirt bike riding (though the operators are understandably strict about noise control) since you can head south into Mount Mee State Forest or head over to Beerburrum State Forest. This campground is even further north of the state forest than the other two (which are situated in the forest boundaries), but is a short ride on gravel to the forest entrance.


Here
is a reasonably comprehensive GPX file of Mount Mee State Forest including the two campgrounds and many dirt trails. I’d upload it to OpenStreetMap but I have yet to figure that out.

I use a Garmin 60Cx unit.

I hope this helps ;)

Update: I have uploaded all tracks to OSM See here