Vancouver
Complete HTML5 entity reference with examples, entity names, unicode hex number, and character reference.
It’s been a while since I have done this, but I still get the occasional request on the topic, so I decided to revisit. The old post was not complete, so here is a rewrite along with some new information I learned since.
Unfortunately, I no longer have a working Magellan device (I had an Explorist, but it no longer works) and because Magellan never released non-windows software, I have switched to using Garmin. While I find Magellan’s GPS hardware is better and more precise, Garmin offers their software on multiple platforms and supports custom built maps.
Magellan’s .imi file is an archive with no compression. The structure of the archive consists of headers, table of contents (TOC), file data, and checksums. Numbers in the archives are in low-byte order. Here is an example of a file, with some of the TOC and most of data removed:
line/byte: 4 8 12 16 20 24 28 32
00000000: 80 00 00 00 80 00 00 00 30 30 62 72 65 6B 77 74 00 63 6C 74 00 00 00 00 28 0C 00 00 84 00 00 00 ........00brekwt.clt....(.......
0030: 30 30 62 72 65 6B 77 74 00 6C 61 79 00 00 00 00 AC 0C 00 00 34 05 00 00 00brekwt.lay........4...
...
0C00: 6E 7F E8 0C BB 00 00 00 9C C2 4D 41 47 45 4C 4C 41 4E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 n.........MAGELLAN..............
0C20: 00 00 00 00 00 00 00 00 ........
...
0CE88020: 30 74 30 2E 62 6C 78 0D 0A 00 4D 41 47 45 4C 4C 41 4E 42 3C 0t0.blx...MAGELLANB<
The first eight bytes hold the number of files in the archive. In this case, there are 128 files.
TOC starts with byte 9. Each TOC entry is 24 bytes long: 12 bytes for filename, 12 bytes for addressing. The filename is 8 bytes for name (with 0x00 fill bytes), 1 byte null (0x00) separator, and 3 bytes for an extension. The addressing portion consists of 4 unknown bytes, 4 bytes for file offset, and 4 bytes for file length.
Next, there is a 32 byte string, which I assume marks the end of TOC and beginning of the data section. This string contains “MAGELLAN” in it. After it follows file data, with the file terminated by an 11 byte string, which probably acts as end of file marker. It again contains “MAGELLAN” followed by two unknown bytes (probably a checksum).
The archive consists of some configuration files (.ini, .cfg), and lot of binary files which are mostly a database (.aux, .blx, .clp, .clt, .dat, .dax, .dbd, .dct, .dpo, .dsc, .dtx, .ext, .ics, .lay).
The configuration file add_maps.cfg seems to be there to let the device know which maps to load. It points to 00map.ini file, which seems to store some information about the database, as well as the name of the database file db00.
The database db00.dbd (and most of the other binary files that are part of it) are a Raima database files, specifically Raima Database Manager 4.5 [Build 17] (from the file headers).
The remaining files are icons (.ico), and couple unknown files which don’t seem to have any readable header (.lay, .blx).
This is where the fun begins. It is a proprietary database and I could not find any free/open source tools that were able to open it up. I started reverse engineering the database format based on the database files from the .imi file and what I expected to be in the database (by looking at the data accessible to Explorist), as well as a sample Raima database I found for a more recent release. The main thing to note is that the database uses big endian format.
I got as far as parsing the database records (tables in SQL speak) and fields (columns in SQL speak) and how they get referenced from the main database. Right around this time is where my unit stopped working and I lost interest as I replaced it with a Garmin unit.
The code is nowhere close to be consumed by public or documented. I’m sure those who are interested enough can get something out of it, so the code is posted in imiexplorer repository at BitBucket.
I could not find documentation for the older 4.5 Raima Database Manager system, but the documentation for a more recent 8.1 system was quite helpful.
If you have any ideas or suggestions, please let me know, but bear in mind I don’t have a Magellan GPS unit anymore, so all I can work with is the old .imi files.
The place aggregating the most information on this and other Magallan file-format information seems to be the OpenStreetMap Wiki.
I’ve previously driven to specific spots or short sections of the coast, but never as a whole. After years of wanting to do the full length of it, I finally got around to driving it all in the fall.
Before you set out, do a quick reality check of your plan, expectations, and timing. There are way too many things to see and do along the way, to do it all. If you have time constraints, don’t make the same mistake I did, and make at least a rough plan of stops and stick to it. Maybe a few backups or alternatives, but that’s about it. I didn’t have a plan, other than list of all the towns I was passing and what interested me in the area and instead of the three days I planned initially, I took a only week by skipping half go my list. There are lot of amazing places, hikes (short, day, multi-day), and history and you could be pulling over just about every few miles to check something out and before long you realize you barely traveled 50 miles a day.
I “started” the drive in Olympia, Washington taking Highway 8 heading for Aberdeen, onto 105 to drive along the coast, hooking back to the 101 in Raymond and making a minor detour though Long Beach, Washington.
The 105 isn’t quite a coastal drive, but I figured anything would beat inland driving in forests and clear cuts (nothing wrong with that, but I have enough that at home). It was a good call, the 105 makes for a nice evening drive while the sun starts going down. Long Beach was a new experience to me, being the first beach I’ve seen that was open to motorized vehicles. I drive out to the middle of nowhere and enjoyed the sunset.
Number of people I spoke along the way recommended driving around the Olympic Peninsula, that is heading north on to the 101 in Olympia, WA. I have considered it when I started driving, but decided not to because of time restrictions. Next time I’ll make sure to include that portion as well.
Once in Oregon I drove up to Fort Stevens State Park, as to start on the very tip of Oregon and at the same time check out the Columbia River and the shipwreck of Peter Iredale. From Fort Stevens it’s back to the highway and driving south again through Seaside, around Ecola State Park, which is well worth visiting, and into Cannon Beach and on.
There are number of spots where the 101 turns inland (sometimes for long stretches), but there are very scenic and worthwhile alternate routes. On the bottom of the north coast there is the Three Capes Scenic Loop.
On the central coast, the area around the Oregon Dunes National Recreation Area, while inland, is quite scenic, especially when you start realizing that in some spots the highway is built on top of bunch of sand hills. Looking out from the higher spots on the highway you can see dunes upon dunes all the way to the ocean, partially sand, partially covered by grass and trees. The dunes themselves are interesting too, and well worth venturing to. You can use your own vehicle or rent a quad, but remember this is real desert driving with dry sand, hills, and a little traction.
On the top of south coast there are number of places to check out such as Cape Argo or Cape Blanco, in otherwise daily mundane drive inland to Port Oxford, where you get back to coastal driving. Make sure to make a stop in Gold Beach for some beautiful sunsets or sunrises. Not far from Gold Beach you reach Brookings and Harris Beach State Park, the last stop in Oregon before you cross over to California.
If you’re seeking sunny weather, north and central Oregon won’t appeal to you much, as it is rare. Just accept it, the coastal fog can be beautiful in it’s own way, and if you need to dry off, just drive couple of hours inland and then bad to the coast. Some places in the towns along seem to close early (and on Wednesdays). I’m not sure if this was because it was off-season or if that’s normal. Also worth noting is that while there is plenty of camping all along the highway, the area around Cannon Beach seems to lack quite a bit, with the exception of couple of private campgrounds.
Once in California, the highway starts slowly veer inland and is fairly boring, but there are a few scenic detours, which are often the original highway 101. First comes Newton B. Drury Scenic Parkway (which in 2012 wasn’t passable because of a mudslide), and shortly after there is Avenue Of The Giants, a beautiful drive through redwood old growth forrest.
Shortly after Avenue Of The Giants, you hit Leggett, where the highway splits into highways 101 and 1. Highway 101 goes way inland, while Highway 1 tracks back to the coast over a really twisty and turny section of the road through a fairly dense forrest. I love twisty and turny roads and never get car sick, but at times I thought I would be sea sick and wasn’t sure which way north is. But then out of nowhere, the coast pops out.
There are number of spots where Highway 1 turns inland for a bit, but most of it is very true to “coast highway” and winds it’s way over cliffs and next to water just as the land does. Don’t plan to drive fast here, there is no point especially in the sections with 180 degree turns, just look out and enjoy the view.
Shortly before hitting San Francisco, it’s well worth visiting Point Reyes National Seashore. There aren’t many roads in the park, but there is a lot of day and multi day hiking. Unfortunately I didn’t have the time, so I opted for one of the few roads to the Point Reyes Lighthouse. It is quite the drive and takes you through lot of pastures and farms that used to supply San Francisco in the past. You also get to see the difference between coastal and inland weather, as the lighthouse is far out on the sea to have completely different weather.
From Point Reyes it’s off to San Francisco, where Highway 1 crosses paths with Highway 101. This is the end of the road for me as well as the current Highway 101. The original Highway 101 used to go all the way to to the Mexico border.