2009-02-10 4 views
11

Ich habe eine Höhenkarte als Raster gespeichert. Ich würde gerne eine glatte "Vektor" -Kurve an die Konturen der konstanten Höhe anpassen. In meiner Anwendung sind die Daten tatsächlich geografische Erhebungen, aber das Problem könnte auf jede Funktion von zwei Variablen verallgemeinert werden.Wie wird eine Vektorkontur von einem Höhenraster angenähert?

Ich kann ein anderes Raster mit Anti-Aliased-Konturlinien erzeugen und dieses als Eingabe für den Vektoranpassungsprozess verwenden, wenn das hilft.

This question ist ähnlich, aber ich bin auf der Suche nach einer kostenlosen Bibliothek, die ich in meiner Java-Anwendung verwenden kann, oder eine Erklärung des Algorithmus ich (ein Nicht-Mathematiker) kann mich implementieren. Auch in meinem Fall habe ich bereits alle "Kanten" gefunden, die mir wichtig sind — Ich muss sie nur vektorisieren.

Another question berührt meine, aber das Plakat kehrte nie zurück, um zu erklären, wie er den letzten Schritt implementiert hat, was der Teil ist, den ich vermisse.

+2

Leider meist endet googeln mit Seiten, wie dies in ArcGIS oder Mapview zu tun. –

Antwort

2

Sie möchten wahrscheinlich zu geschlossenen Bezier-Splines (Kurven) passen.

Es gibt eine page with a Java applet, die solche Anpassung tut. Werfen Sie einen Blick auf ihre (unkommentiert, bleh) PSegment.java

Wenn das die Arbeit nicht gut genug macht, sollte Fitting B-Spline Curves to Point Clouds by Squared Distance Minimization Overkill für die Aufgabe sein.

Für weitere Informationen, Google (Scholar) sucht nach Dingen wie "B-Spline-Anpassung" und "Closed Bezier Spline" sollte helfen.

1

Ich verwende GDAL. Und meiner Meinung nach wahrscheinlich nicht wollen Bézier Splines erstellen, was die Komplexität erhöht. Kurze Liniensegmente sind gut genug.

Das einzige Problem ist, dass Sie die Konturen zur Datenvorbereitungszeit erstellen müssen, nicht in Ihrer Java-App.

Hier ist eine Karte mit einigen von USGS height data erstellt Konturen GDAL mit:

enter image description here

+0

Können Sie Beispiele oder Links für Konturen in GDAL bereitstellen? Bitte –

+0

Siehe http://www.gdal.org/gdal_contour.html. Leider habe ich meine Beispiele vor dreieinhalb Jahren nicht bekommen. –