Don Plumpos
Geocacher
Hallo Community!
Diese kleine Anleitung kann für alle Geocacher/Sportler/Outdoor-Fans interessant sein, welche mit einem geeigneten Smartphone/GPS-Gerät/Navi ihre Offline-Maps selber erstellen und dadurch bestimmt folgendes Problem kennen: Der berüchtigte Speicher-Overhead auf der SD-Karte.
Bei mir sind folgende Vorraussetzungen:
- Android Smartphone Motorola Defy (mit 8 GByte SD-Karte)
- Software TrekBuddy und GeOrg
- PC mit Windows und der Software "Mobile Atlas Creator" (Mobac), unterstützt sehr viele Programme wie Andnav, Trekbuddy, Osmdroid, usw.
Vom Verhältnis Speicherbedarf<->Detailgenauigkeit bevorzuge ich OpenStreetMap-Mapnik. Wenn ich mit Mobac für Mitteldeutschland eine Karte mit Zoom-Stufe 17 erstelle, werden rund 1,38 Mios Kartenteile heruntergeladen. Das entspricht einer realen Speichergröße von rund 1,22 GByte. Auf der Platte werden aber gute 5,35 Gbyte benötigt Dies liegt an der kleinen Speichergröße eines einzelnen Kartenausschnitts, welches aber auf der Festplatte/SD-Karte einen ganzen Cluster (Reihe von Sektoren) belegt. Als Beispiel: ein Kartenausschnitt (also eine Datei) ist 1KByte groß, die Standard-Clustergröße ist aber 4 KByte, d.h. 3 KByte werden dadurch verschwendet. Bei über 1 Mios Teilen summiert sich dieser Platz auf ein Vielfaches der realen Größe auf dem Datenträger. Und genau hier muß man ansetzen: Ich habe mir überlegt, wie kann man die Clustergröße auf ein Minimum (kleinste Clustergröße entspricht einer Sektorgröße = 512 Byte) reduzieren? Folgendes Problem hat man nämlich: Standardmäßig kann die Clustergröße einer SD-Karte beim Formatieren nicht eingestellt werden (unter Windows jedenfalls, unter Linux habe ich es nicht ausprobiert). Nach einigem Suchen habe ich ein kostenloses Formatierungstool vom Heise-Verlag (bringt c't und iX raus) gefunden, welches 'h2format' heisst. Mit diesem Kommandozeilen-Programm lässt sich für das Formatieren die jeweilige Clustergröße angeben.
Beispiel: Laufwerk h: sei meine SD-Karte. Mit dem Befehl 'h2format h: 2' wird meine SD-Karte mit Fat32 und einer Clustergröße von 1 KByte (2 Sektoren, darum die 2 im Befehl) formatiert.
Nur gibt es ein Problem: h2format sperrt sich bei schon vorher mit Fat32-formatierten SD-Karten. Nun muss man einen Trick anwenden: Man muss vor dem Formatieren mit einem Disk Editor (z.B. Winhex, gibt aber auch andere) die letzten beiden Einträge des Boot Sektors der SD-Karte verändern (siehe liesmich.txt, welche bei h2format mit beiliegt).
Ich fasse zusammen:
1. Bootsektor der SD-Karte mit einem Disk Editor manipulieren.
2. mit h2format die SD-Karte mit einer kleinen Clustergröße formatieren.
3. Offline-Kartenmaterial auf SD-Karte kopieren (kann etwas dauern )
Auf diese Art und Weise konnte ich in meinem Beispiel den Overhead von 438% auf sage und schreibe 83% senken!!
Ist natürlich etwas kompliziert aber es funktioniert. Wer ein Formatierungsprogramm für SD-Karten kennt, welches ohne Manipulation des Bootsektors die Clustergröße einstellen kann, dann bitte hier posten. Das macht die ganze Sache um einiges einfacher
Gruß
Diese kleine Anleitung kann für alle Geocacher/Sportler/Outdoor-Fans interessant sein, welche mit einem geeigneten Smartphone/GPS-Gerät/Navi ihre Offline-Maps selber erstellen und dadurch bestimmt folgendes Problem kennen: Der berüchtigte Speicher-Overhead auf der SD-Karte.
Bei mir sind folgende Vorraussetzungen:
- Android Smartphone Motorola Defy (mit 8 GByte SD-Karte)
- Software TrekBuddy und GeOrg
- PC mit Windows und der Software "Mobile Atlas Creator" (Mobac), unterstützt sehr viele Programme wie Andnav, Trekbuddy, Osmdroid, usw.
Vom Verhältnis Speicherbedarf<->Detailgenauigkeit bevorzuge ich OpenStreetMap-Mapnik. Wenn ich mit Mobac für Mitteldeutschland eine Karte mit Zoom-Stufe 17 erstelle, werden rund 1,38 Mios Kartenteile heruntergeladen. Das entspricht einer realen Speichergröße von rund 1,22 GByte. Auf der Platte werden aber gute 5,35 Gbyte benötigt Dies liegt an der kleinen Speichergröße eines einzelnen Kartenausschnitts, welches aber auf der Festplatte/SD-Karte einen ganzen Cluster (Reihe von Sektoren) belegt. Als Beispiel: ein Kartenausschnitt (also eine Datei) ist 1KByte groß, die Standard-Clustergröße ist aber 4 KByte, d.h. 3 KByte werden dadurch verschwendet. Bei über 1 Mios Teilen summiert sich dieser Platz auf ein Vielfaches der realen Größe auf dem Datenträger. Und genau hier muß man ansetzen: Ich habe mir überlegt, wie kann man die Clustergröße auf ein Minimum (kleinste Clustergröße entspricht einer Sektorgröße = 512 Byte) reduzieren? Folgendes Problem hat man nämlich: Standardmäßig kann die Clustergröße einer SD-Karte beim Formatieren nicht eingestellt werden (unter Windows jedenfalls, unter Linux habe ich es nicht ausprobiert). Nach einigem Suchen habe ich ein kostenloses Formatierungstool vom Heise-Verlag (bringt c't und iX raus) gefunden, welches 'h2format' heisst. Mit diesem Kommandozeilen-Programm lässt sich für das Formatieren die jeweilige Clustergröße angeben.
Beispiel: Laufwerk h: sei meine SD-Karte. Mit dem Befehl 'h2format h: 2' wird meine SD-Karte mit Fat32 und einer Clustergröße von 1 KByte (2 Sektoren, darum die 2 im Befehl) formatiert.
Nur gibt es ein Problem: h2format sperrt sich bei schon vorher mit Fat32-formatierten SD-Karten. Nun muss man einen Trick anwenden: Man muss vor dem Formatieren mit einem Disk Editor (z.B. Winhex, gibt aber auch andere) die letzten beiden Einträge des Boot Sektors der SD-Karte verändern (siehe liesmich.txt, welche bei h2format mit beiliegt).
Ich fasse zusammen:
1. Bootsektor der SD-Karte mit einem Disk Editor manipulieren.
2. mit h2format die SD-Karte mit einer kleinen Clustergröße formatieren.
3. Offline-Kartenmaterial auf SD-Karte kopieren (kann etwas dauern )
Auf diese Art und Weise konnte ich in meinem Beispiel den Overhead von 438% auf sage und schreibe 83% senken!!
Ist natürlich etwas kompliziert aber es funktioniert. Wer ein Formatierungsprogramm für SD-Karten kennt, welches ohne Manipulation des Bootsektors die Clustergröße einstellen kann, dann bitte hier posten. Das macht die ganze Sache um einiges einfacher
Gruß