Kalibierung funktioniert nicht

  • Hallo,


    ich habe die neueste Version von Glopus, aber noch nicht registriert (will ich aber unbedingt machen, nur soll die Kalibierung auch bei mir funktionieren).


    Die Kalibierung funktioniert zunächst tadellos und ich speichere sie, so dass eine .kal Datei entsteht wie etwa in der Anleitung beschrieben, mit meinen Kalibrierungsdaten (nur die Bilddateibezeichnnung erscheint am Ende statt am Anfang - ist wohl Folge einer Versionsänderung).


    NUR: Beim nächsten Aufrufen von Glopus wird die Kalibirierung ignoriert, obwohl die richtige .kal Datei im selben Verzeichnis liegt.


    Was mache ich falsch? - ich habe es mit png und jpg Dateien versucht, Grösse ab 600 KB bis 3600 KB.


    Vielen Dank für jeden Hinweis!


    Thomas

  • Schaue doch mal in die Kalibrierdaten, ob die plausibel sind.


    Für die Glopus-zu-GoogleSuperOverlay-Kalibrierfunktion musste ich die Plausibilitätsprüfung abschalten, weil einige von GMM generierte Kalibrierpunkte ausserhalb der Kachel lagen. Andere haben im GMM beim Kartenteilen auch negative Pixelpositionen bekommen. Ob das zulässig ist? Zumindest kann es beim Programmieren so leicht zu Vorzeichenfehlern führen wenn man annimmt, das wäre ein positives INTEGER.

  • @tstephan: Wenn die Kalibrierung mit Glopus gemacht und gespeichert wird, sehe ich momentan keine Grund, warum sie nicht wieder geladen wird. Starte mal "Kartenindex neu erstellen" und starte dann außerdem mal Glopus neu. Vielleicht ist da bei der ganzen Umstallerei noch irgendwo ein Wurm drinnen.


    frank334: Wo wird denn definiert, dass die Kalibrierungspunkte in der Karte liegen müssen und nicht negativ sein dürfen? :) Aber bei "Hand kalibrierten Karten" sollte so etwas nicht auftauchen, das kann hier nicht das Problem sein.

  • Tja, da gab's ja keine Definition, daher die Annahme, ein adressierter Bildpixel sollte auch Teil des Bildes sein. Bei manchen Paramtern sichere ich mich dann durch eine Plausibilitätsprüfung ab. Nur gab's dann kürzlich ein Superoverlay bei mir, in dem alle Kacheln rausgeflogen sind ...
    Kein Problem, aus Bequemlichkeit hatte ich auch für positive Zahlen immer "int" statt "unsigned int" geschrieben und die Kalibrierformel lief auch mit den "out-of-range"-Werten, nachdem die Prüfung deaktiviert wurde. Das SuperOverlay-Update vom 14.1. wurde entsprechend geändert.
    Also, ich notiere, Kalibrierpixel dürfen ausserhalb des Bildes liegen.

  • Zitat

    Original von frank334
    Also, ich notiere, Kalibrierpixel dürfen ausserhalb des Bildes liegen.

    Hallo,


    man kann ja vieles definieren - auch Unsinn . . .


    Grüsse - Anton

  • Mathematisch ist das in der Formel zum Kalibrieren und Punktetransformieren egal. Im Superoverlay verschiebe ich sowieso die Punkte auf die Kachelecken, anhand einer linearen Formel. Die Sache ist nur, wenn man die "out-of-range" Pixel einmal zulässt wird man später nicht mehr davon loskommen um kompatibel zu bleiben.

  • Wenn ich eine Kachel in kleinere Bitmaps aufteile, ist es in der Tat vorteilhaft, wenn ich für die Teilkacheln weiterhin mit den Binär gleichen Fixpunkten weiterrechne (OpenGl, Direct X und einige andere Grundlagen lassen grüßen). Danke macnetz, für den wiedermal mächtig hilfreichen und begründeten Einwand.

  • Danke für die schnelle Antwort.


    Nun, ich habe jetzt noch einmal nachkalibriert, hin und her probiert und festgestellt, dass die Kalibrierung nur geladen wird, wenn auch "automatisch neue Karte laden" eingestellt ist.


    Warum, weiss ich nicht. Immerhin ist das Verhalten jetzt reproduzierbar und vermeidbar.


    Danke noch einmal.

  • Peter, was mir zum Thema gerade eingefallen ist: es gäbe eine Möglichkeit mit großen Mercatorkarten-Bitmaps zurechtzukommen, ohne das Glopus-Programm selbst zu ändern.


    Ich habe noch so eine große Bitmap, die aktuell ohne Reprojektion (d.h. Verunstaltung) nicht in Glopus dargestellt werden kann.


    Und zwar reichen 4 Kalibrierpunkte wohl aus um die Mercatorparameter zu bestimmen (denke ich so, als Nichtkartograph), evtl. mit Angabe des Zentralmeridians einer UTM. Also, wenn du im GlopusMapManager beim Kartenzerteilen fragen würdest, um welche Projektion es sich handelt, könnten die erzeugten Teilkacheln jeweils 4 Kalibrierpunkte bekommen, die im Sinne der Mercatorprojektion korrekt sind. Das sind evtl. nur ein paar Formeln zur Umrechnung. Momentan stimmen ja die Kachelkalibrierpunkte nicht, wenn das Ausgangsmaterial Mercatorprojeziert ist.


    Die Einzelkacheln passen wiederum in der LongLat-Projektion sehr gut zueinander. Auch im Superoverlay hatte es mich überrascht, wie klein doch die Differenzen der Top25-Mercatorkarte an den Kachelgrenzen sind (nachdem ich den Rotationsparameter verbessert hatte).


    Na, was meinst du? Die Formeln zur Umrechnung findest du auch im "proj" C-Code. Oder du rufst gleich das externe "proj"-Tool auf um die Transformation zu machen. Da sind so ziemlich alle Projektionsarten drin. Falls innerhalb der Kacheln noch Projektionsverzerrungen sind, bei großflächigen Kacheln, müsste zwar noch die Pixel-zu-Koordinate-Funktion in Glopus angepasst werden. Aber für Topo-Karten liesse sich durch Reprojektion der jeweils 4 Teilkachel-Kalibrierpunkte schon viel erreichen ohne Glopus-Modifikation.

  • Zitat

    Original von Peter Kirst
    Danke macnetz, für den wiedermal mächtig hilfreichen und begründeten Einwand.

    Hallo Peter,


    gerne geschehen :gap


    denn manchmal habe ich den Eindruck, dass du mit Glopus das kartografische Rad neu erfinden willst und dabei weder nach links noch rechts noch sonstwo über den Tellerrand schaust.


    SCNR - Anton

    Einmal editiert, zuletzt von macnetz ()

  • Na ja, so ganz stimmt das nicht: Wenn z.B. GMM Kacheln aus einem Programm generiert, dann stimmen sehr wohl die Kalibrierungspunkte für jede Art Projektion, aber es entstehen Fehler durch die lineare Interpolation an den anderen Kartenpunkten. Wie groß dieser Fehler ist, hängt vom Maßstab, der Projektion und der Lage ab (z.B. wird der Fehler bei Mercator zu den Polen hin größer.) Sehr gut hat man dies in der kleinen html GM Seite gesehen, die ich in in dem anderen Thread als Dokumentation reingestellt habe. Aber noch mal: Für Top25, Top50 und etwas größere Maßstäbe ist bei der gängigen Glopus-Kachelgröße (1000*1000) der Fehler kleiner als ein Pixel und somit könnte ich sogar featuremäßig für diese Maßstäbe zumindest die Mercator Projektion aufnehmen.
    Karten im Europamaßstab darf man in Glopus in einer falschen Projektion korrekterweise nicht benutzen, wenn man eine pixelgenaue Darstellung will.


    GMM könnte hier insofern nur Hinweise geben: Nachdem 4 Punkte kalibriert sind, könnte er einen 5. Punkt in der Bildmitte über das Programm georeferenzieren und mit den linear interlopierten Werten gegenchecken. Ist der Fehler zu groß, könnte eine Warnung kommen. Inwieweit ich dann irgendwann auch für solche Maßstäbe richtige Projektionen unterstütze, will ich jetzt nicht festlegen. Auf meine Frage kam auch nur eine Antwort, die sich nicht auf die Projektion sondern auf die Datumsumrechnung bezog. Momentan stehen andere Punkte in meiner ToDo obenan zumal ich in der Regel weiß: ich bin in Europa, in Deutschland; die richtige Straße bzw. die Position im Wald sagt mit Glopus mit der maximal möglichen Genauigkeit von GPS und Kartenmaterial.


    Übrigens Umrechnungsformeln für Mercaor und einige andere sind in Glopus schon drinnen.

  • Zitat

    Original von macnetz
    denn manchmal habe ich den Eindruck, dass du mit Glopus das kartografische Rad neu erfinden willst und dabei weder nach links noch rechts noch sonstwo über den Tellerrand schaust.


    Ich war der Meinung, dass wir die Grenzen von Glopus genau beschrieben haben und bzl. kartografischen Fehlern einer Meinung waren. Zumindest hast du mir bei meinem Versuch z.B. den Glopus Mercator Feher zu beschreiben nicht widersprochen. Wo genau bist du der Meinung, dass ich etwas neu erfinden will?

  • Zitat

    Original von Peter Kirst
    Na ja, so ganz stimmt das nicht: Wenn z.B. GMM Kacheln aus einem Programm generiert, dann stimmen sehr wohl die Kalibrierungspunkte für jede Art Projektion, aber es entstehen Fehler durch die lineare Interpolation an den anderen Kartenpunkten. Wie groß dieser Fehler ist, hängt vom Maßstab, der
    ...


    Klar, wenn du die Einzelkacheln aus Top50 kalibrierst sind die Punkte exakt und auch die Verzerrungen darin vernachlässigbar. Was ich meinte waren aber die generierten Kalibrierpunkte nach GMM-Kachelteilung. Das geht für große gescannte Mercatorkarten (z.B. Alpen, Deutschland, Mexiko, mein xxxx Urlaubsland) dann nicht mehr. Dabei wäre es durchaus denkbar, solche große Mercatorkarten in kleine Kacheln zu zerteilen, die in der Glopus-LongLat-Projektion gut rüberkommen. Dazu müssen aber die einzelnen Kachel-Projektionspunkte umgerechnet werden. Das ist relativ wenig Aufwand (ein paar Formeln), geht aber nur wenn man fragt welcher Projektionstyp vorliegt.

  • Zitat

    Original von Peter Kirst
    Wo genau bist du der Meinung, dass ich etwas neu erfinden will?

    Hallo Peter,


    Kartografie ist - gerade für Einsteiger - ein komplexes Feld.
    Ich hatte den Eindruck, dass du für die Glopus-Kalibrierung etwas neues eingeführt hast, nämlich Kalibrierungs-Punkte ausserhalb des Kartenbildes.
    Ich finde es besser, wenn Karten und die Programme unabhängig voneinander nutzbar sind. Das geht aber nur, wenn die Grundlagen diesselben sind. Ich bin kein Freund von unterschiedlichen Formaten und dann nötigen Konvertierungen. Am Besten wäre es, wenn alle Rasterkarten-Programme World-Files lesen und schreiben könnten. Das ist meiner Ansicht nach der beste allgemeine Standard für Kalibrierung von Rasterkarten. Zu den World-Files gehören dann noch die Angaben zu Projektion und Kartendatum.
    Dann sind die Einzelkacheln beliebig nutzbar und nicht auf ein Programm beschränkt.


    Grüsse - Anton