mpr to readable

Du suchst ein Programm für einen bestimmten Zweck?
alexatdebian
Beiträge: 117
Registriert: 19.07.2004 18:17:42

mpr to readable

Beitrag von alexatdebian » 11.11.2007 10:22:07

hallo,
ich kämpfe gerade damit meine top50 karten (mpr format) linuxtauglich zu machen (also z.B. als hintergrundmap für gpsman).

dabei habe ich den mpr2png converter gefunden, läuft aber nur auf IDL
http://www.mfraenz.de/top50/index.html

im zipfile ist die unten angegebene formatbeschreibung von mpr (welches NICHT dem IIwis mpr format entspricht).

hat jemand einen mpr2xy für linux geschrieben, oder es schon mal probiert?
sollte ja nicht so schwer sein, ich hab nur gerade null zeit....

gruß
alex




Dornier MPH/MPR files describe scanned raster maps.
A map is divided into tiles of maximal size 256x256 pixels.


Dornier MPH file structure:
The MPH file contains all auxiliary information like sizes, scales, names and colors

BYTE # comment
0-3 string endian marker
4-43 long words
12 x tilesize
16 y tilesize
20 x tiles
24 y tiles
596 string name of map
..... read until lonword 1 and longword > 1000 is reached
spos 2 long words: scale
spos+8 2 long words ?
spos+16 double pixel per mm of scan
spos+24 long number of calibration points

for each point read:
4 long words pixel pair
2 double latitude/longitude of pixel
32 bytes unknown

9 shorts color table header: header[4] gives number of colors colors
numcol*3 short words RGB values.

Dornier MPR file structure:
The MPR file describes the scanned image only with 1 record per tile.
Tiles start in the upper left corner of map going from left to right then top to bottom.

2 long: 1st record start address and length
then read (start adress)/4-2 times address/length pairs for all records.
then read each record into byte array:

Record structure:
1 short: number N of unicolor segments in tile
X bytes of color/length information for each segment, 1<segment size<256
color values are always 8bit, for 4bit color tables, these are pairs of colors.
reading:
read 8 bit color
read next length value only if previous was larger than 2
if first bit of next length value is 1, stick with previous lenghth
read next length value bit by bit until larger than previous one then go back 1 bit
if length=2 only color values follow, but start at full byte boundary

Y bytes of LZW encoded image data, encoding uses alphabet of where codes 0-255 colors,
codes 256-(255+N) segment indices.
coding starts with 9 bit and increases up to 12bit, new code length starts at byte boundary.


Markus Fraenz mfraenz@xxxxx March 2004 for non-commercial use only.

Benutzeravatar
scruffy
Beiträge: 85
Registriert: 08.07.2005 20:58:22

Beitrag von scruffy » 01.01.2008 19:17:12

hallo,
ich bin ebenfalls am Analysieren des Top50V3-Formats. Bitte schreib weitere Erkenntnisse hier ins Forum, wenn du welche hast (werde ich auch machen). Welches Programm willst du verwenden, wenn du die Daten lesen kannst?
Viele Grüße,
Ralf

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 01.01.2008 21:04:30

scruffy hat geschrieben:ich bin ebenfalls am Analysieren des Top50V3-Formats.
Vielleicht hilft dir das hier weiter:
http://www.rschlichte.de/geogrid/mph_mpr_format.html

Gruß,
Daniel

Benutzeravatar
scruffy
Beiträge: 85
Registriert: 08.07.2005 20:58:22

Beitrag von scruffy » 01.01.2008 23:53:23

Das hatte ich gerade auch gefunden. Die Spezifikationen für die mph-Datei scheinen zu stimmen, jedenfalls kann ich die Karte jetzt lesen (der Quellcode ist noch nicht veröffentlicht). Die MPR-Decodierung habe ich von einem anderen Projekt, das aus Top50V2 und Top50V1 hervorgegangen ist.

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 03.01.2008 12:25:33

scruffy hat geschrieben:Die Spezifikationen für die mph-Datei scheinen zu stimmen, jedenfalls kann ich die Karte jetzt lesen (der Quellcode ist noch nicht veröffentlicht).
Interessant, gibt es dazu weitere Infos?
scruffy hat geschrieben:Die MPR-Decodierung habe ich von einem anderen Projekt, das aus Top50V2 und Top50V1 hervorgegangen ist.
Was ist das denn für ein Projekt, wo kann ich das denn finden?

:-)

Gruß,
Daniel

Benutzeravatar
scruffy
Beiträge: 85
Registriert: 08.07.2005 20:58:22

Beitrag von scruffy » 06.01.2008 17:25:15

Es ist ein Kartenanzeigeprobramm, das nie veröffentlicht wurde. Das Programm wurde für privat geschrieben und deswegen sind viele Bestandteile nicht veröffentlichbar. Was für Kartenanzeigeprogramme gibt es denn sonst noch für Linux (so dass ich einen Importfiler beisteuern könnte)? Ich habe bisher nur openev gefunden, das allerdings nur sehr wenig für Linux gepflegt wird.

czietz
Beiträge: 21
Registriert: 09.01.2008 21:28:52
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von czietz » 09.01.2008 21:33:46

Ich habe einen bereits sehr gut funktionierenden Konverter von MPR nach GeoTIFF [1] entwickelt. Das Problem, welches bisher eine Veröffentlichung verhindert: Die rechtliche Lage. Das Dateiformat könnte einem Patent unterliegen [2], EADS/Dornier hat nach meinen Informationen auch schon seine Ansprüche daran gegen einen Software-Entwickler durchgesetzt.

Finanziell kann ich mir so einen Prozess nicht leisten. Mit entsprechender rechtlicher Beratung/Unterstützung wäre ich allerdings bereit, meinen Quellcode unter einer offenen Lizenz zu veröffentlichen.

[1] http://de.wikipedia.org/wiki/GeoTIFF
[2] http://eupat.ffii.org/patents/effects/g ... ex.en.html

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 09.01.2008 22:42:52

Hallo!
czietz hat geschrieben:Das Problem, welches bisher eine Veröffentlichung verhindert: Die rechtliche Lage. Das Dateiformat könnte einem Patent unterliegen
Die Frage dabei ist, wie lange dieses Patent noch gilt oder ob es schon ausgelaufen ist!

Ich habe mich mal etwas über das Patent EP 0218109 informiert:
http://v3.espacenet.com/textdoc?IDX=EP0218109

Demnach wurde es am 15. 4. 1987 veröffentlicht.

Wenn ich richtig informiert bin, dann liegt die maximale Laufzeit eines europäischen Patents bei 20 Jahren (gerechnet vom Anmeldetag) und wäre somit schon abgelaufen...

Da müsste man mal entsprechend weiter recherchieren.
czietz hat geschrieben:Finanziell kann ich mir so einen Prozess nicht leisten. Mit entsprechender rechtlicher Beratung/Unterstützung wäre ich allerdings bereit, meinen Quellcode unter einer offenen Lizenz zu veröffentlichen.
Verständlich, vielleicht könnte man diesbezüglich beim FFII etc. anfragen?

Gruß,
Daniel

czietz
Beiträge: 21
Registriert: 09.01.2008 21:28:52
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von czietz » 09.01.2008 22:53:15

Danielx hat geschrieben: Wenn ich richtig informiert bin, dann liegt die maximale Laufzeit eines europäischen Patents bei 20 Jahren (gerechnet vom Anmeldetag) und wäre somit schon abgelaufen...
In der Tat. Daran habe ich noch gar nicht gedacht.

Wie gesagt: Ich würde meinen Code ja gerne veröffentlichen, nur bin ich kein Jurist und angesichts der für mich unklaren Rechtslage habe ich mich bisher zurückgehalten. Mir wurde von der FSFE auch schon ein Anwalt empfohlen, ich befürchte nur, dass der ohne Bezahlung nicht tätig werden wird. Falls also Interesse an meinem Code besteht: Ich bräuchte auf irgendeine Art Hilfe bei der Klärung der juristische Fragen.

Christian

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 09.01.2008 23:53:06

Hier gibt es Infos zu dem Patent vom Europäischen Patentamt:
http://v3.espacenet.com/legal?IDX=EP021 ... =EP0218109

Gruß,
Daniel
Zuletzt geändert von Danielx am 03.04.2008 01:09:16, insgesamt 1-mal geändert.

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 10.01.2008 00:22:10

Uih, es war sogar schon jemand so mutig und hat sein Programm "MPRDecode" veröffentlicht:
http://www.stephanmantler.com/trac/MPRDecode/
Quellcode ist verfügbar, aber nur für Windows.
There exists a patent that is thought to have protected this file format (before it apparently expired in 2006), but I get the impression that it is actually on the digitization process and not the file format.
Der Autor ist auch der Meinung, dass das Patent 2006 ablaufe bzw. abgelaufen und sowiso nicht für das Dateiformat gültig sei.

:-)

Gruß,
Daniel

czietz
Beiträge: 21
Registriert: 09.01.2008 21:28:52
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von czietz » 10.01.2008 08:15:48

Danielx hat geschrieben:Uih, es war sogar schon jemand so mutig und hat sein Programm "MPRDecode" veröffentlicht:
http://www.stephanmantler.com/trac/MPRDecode/
Quellcode ist verfügbar, aber nur für Windows.
Nett. Es fehlt allerdings noch die Behandlung der diversen Varianten (bzgl. Kartendatum, Projektion, Koordinatensystem, Kompressionsverfahren ...), die bei den MPR/MPH-Dateien vorkommen. Evtl. sollte ich meinen Code doch mal aufräumen und eine Veröffentlichung riskieren...

Benutzeravatar
scruffy
Beiträge: 85
Registriert: 08.07.2005 20:58:22

Beitrag von scruffy » 10.01.2008 10:41:36

Ich möchte gerne nochmal fragen:
mit welchem Programm nutzt ihr dann die Kartenstücke, arbeitet ihr euch in ein kompliziertes Gis ein, oder gibt es auch freie Kartenviewer?

Benutzeravatar
scruffy
Beiträge: 85
Registriert: 08.07.2005 20:58:22

Beitrag von scruffy » 10.01.2008 20:58:21

Danielx hat geschrieben: Quellcode ist verfügbar, aber nur für Windows.
Das stimmt so nicht, du brauchst nur libgeotiff: http://www.remotesensing.org/geotiff/geotiff.html, installierst das und passt das Makefile von mprdecode an.

Benutzeravatar
scruffy
Beiträge: 85
Registriert: 08.07.2005 20:58:22

Beitrag von scruffy » 10.01.2008 21:14:29

mprdecode kann leider keine Umwandlung von big auf little endian und umgekehrt

Code: Alles auswählen

unknown tag 25600 at offset 4
Und wie schon gesagt werden viele Tags nicht ausgewertet. Ist aber trotzdem eine gute Basis! :D Danke![/quote]

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 14.01.2008 17:28:14

scruffy hat geschrieben:
Danielx hat geschrieben: Quellcode ist verfügbar, aber nur für Windows.
Das stimmt so nicht, du brauchst nur libgeotiff: http://www.remotesensing.org/geotiff/geotiff.html, installierst das und passt das Makefile von mprdecode an.
Ja, du hast recht.
Ich hatte es mir nur noch nicht so genau angesehen...

Habe mprdecode hier jetzt auch unter Linux laufen.
Werde es dann mal etwas testen. :-)

Gruß,
Daniel

Benutzeravatar
scruffy
Beiträge: 85
Registriert: 08.07.2005 20:58:22

Beitrag von scruffy » 14.01.2008 19:30:16

Das Programm hat leider keine Bigendian/Littleendian-Wandlung. Es gibt BE-Karten (z.B. Top50NRW) und LE-Karten (die der Author verwendet hat). Das ist leider nicht mal so eben eingebaut, weil das eine Designsache ist.

czietz
Beiträge: 21
Registriert: 09.01.2008 21:28:52
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von czietz » 14.01.2008 20:12:25

scruffy hat geschrieben:Das Programm hat leider keine Bigendian/Littleendian-Wandlung.
Mein Code kann das (und noch mehr). Motiviert mich mal ein bisschen ;-) , auf dass ich Lust und Zeit finde, ihn mal veröffentlichungsreif zu machen.

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 14.01.2008 21:44:38

Du machst mich ja richtig neugierig! :)

Die Linux-Gemeinde würde dir sehr dankbar sein, wenn du dein Programm veröffentlichungsreif machen würdest!
:hail:

Die Nachfrage ist definitiv da, bei meiner Recherche bin ich da über einige Anfragen gestolpert.
Außerdem wird sich sicherlich auch jemand finden, der dabei hilft, den Code weiter zu pflegen bzw. zu entwickeln.
Mich eingeschlossen, wenn ich wieder etwas mehr Luft habe.

Gruß,
Daniel

Benutzeravatar
scruffy
Beiträge: 85
Registriert: 08.07.2005 20:58:22

Beitrag von scruffy » 15.01.2008 09:51:20

Ich wäre auch dabei. Ich könnte Code beisteuern für Top50V1 und V2, so dass ein Programm
top50togeotiff rauskäme.

czietz
Beiträge: 21
Registriert: 09.01.2008 21:28:52
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von czietz » 15.01.2008 23:11:56

OK, überzeugt, ich bin wieder dran an meinem Code. Lasst mir aber bitte noch etwas Zeit. Ich programmiere zur Zeit schon 7 Stunden am Tag für meinen Arbeitgeber, da muss ich mich immer etwas aufraffen, das auch in der Freizeit zu tun.

Jedenfalls habe ich gestern und heute mal meinen Code durch den GNU Profiler geschickt, um Flaschenhälse zu identifizieren und zu beseitigen. Die Bibliothek zum Lesen der MPR-Dateien ist schon ziemlich fertig, da fehlt hauptsächlich noch die Doku. Am GeoTIFF-Konverter muss ich hingegen noch etwas arbeiten, insbesondere an dem Mapping der diversen MPR-Kartenvarianten auf GeoTIFF-Tags.

Aber ich bin wieder dabei.

czietz
Beiträge: 21
Registriert: 09.01.2008 21:28:52
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von czietz » 20.01.2008 21:38:06

Kleines Update: Ich habe dank eines Reviewers u.a. einen großen Flaschenhals meine Codes bei der LZW-Dekodierung beseitigen können und eine deutliche Geschwindigkeitssteigerung verbracht. Den heutigen Tag habe ich erfolgreich damit verbracht, den Code mittels Doxygen zu dokumentieren. In der nächsten Woche ist der GeoTIFF-Konverter dran. Es geht also in großen Schritten voran.

czietz
Beiträge: 21
Registriert: 09.01.2008 21:28:52
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von czietz » 01.02.2008 20:27:54

Es sind noch ein paar Details zu erledigen, bevor ich den Quellcode veröffentlichen kann.

[... edit ... Rest ist nicht mehr wichtig ...]
Zuletzt geändert von czietz am 04.02.2008 18:05:49, insgesamt 1-mal geändert.

czietz
Beiträge: 21
Registriert: 09.01.2008 21:28:52
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von czietz » 03.02.2008 20:39:15

So, meine Bibliothek zum Lesen der mph/mpr-Karten libmpr und der Konverter mpr2geotiff sind jetzt auch als Source-Code veröffentlicht und zwar unter der MIT-Lizenz. Zu finden ist das ganze unter http://libmpr.origo.ethz.ch/.

Benutzeravatar
scruffy
Beiträge: 85
Registriert: 08.07.2005 20:58:22

Beitrag von scruffy » 04.02.2008 11:31:54

Hallo Christian,

erstmal vielen Dank für die Arbeit. Leider funktioniert mpr2geotiff für meine tiop50 nrw nicht, bricht mit der Standardfehlermeldung ab. Ich könnte das debuggen. Hast du eine Version mit mehr debugcode als im svn (du hast das doch nicht einfach so aus dem Kopf aufgeschrieben, oder? :)):

Viele Grüße,
Ralf

Antworten