Flächenanalyse Kreiszylinder

by Julian @, (28 days ago)

Hallo Micha,

ich habe mit einem Laserscanner Brückenpfeiler gemessen (Kreiszylinder) um zu beobachten ob sich diese verschieben. Der Zylinder wurde aber nur einseitig gemessen weil das m.E. für die Kreiszylindermodellierung ausreicht. Ich habe mal einen Zylinder in einer Punktwolkensoftware berechnet und hätte als Näherungswerte den Radius bzw. Werte für die kleine Halbachse.

Nun Habe ich die Punktwolke auf 3 cm ausgedünnt um das für die Flächenanalyse in Juniform nicht zu weit aufzublasen.

Generell habe ich damit noch gar nichts gemacht aber die Punkte habe ich schon eingelesen. Nun kommen aber komische Werte raus die nicht ganz passen.

Für den Primär- und Sekundärbrennpunkt habe ich jeweils die Höhe des niedrigsten- und höchsten Punkt verwendet.

Was müsste ich hier noch einstellen damit ich eine Anpassung des Zylinders an die Punktwolke habe und geht es irgendwie das man den Zylinder in Autocad darstellen kann?

Mein Ziel wäre es das ganze auszugleichen und dann die Ausreisser-Punkte zu polieren.

Wie würdest du die Verschiebung zwischen den verschiedenen Messepochen auswerten? Ein Verschiebungsvektor der Zylinderoberkante und Unterkante wäre super.

Besten Dank vorab und viele Grüße
Julian :-)

PS: Auf deine E-Mail habe ich bisher noch nicht geantwortet weil das Projekt zur zeit aufgrund der Betreuung von Bachelor und Masterarbeiten still liegt.

Flächenanalyse Kreiszylinder

by Julian @, Reutlingen, (27 days ago) @ Julian

Hier noch ein paar Bilder von den momentanen Ergebnissen ohne großartig viele Einstellungen:

Den Brennpunkt habe ich mal Lagemäßig in mein Punktwolkenprogramm importiert. Gibt es für Juniform ein Wiki?

Die Lage des Brennpunktes kommt mir seltsam vor (s. Bild) und ebenso erscheinen mir die Abweichungen relativ hoch. ich weiß aber auch nicht genau was der Brennpunkt genau sein soll.

Ausgleichungsergebnisse Kreiszylinder:

[image]

Brennpunkt und Punktwolke Draufsicht:

[image]

Punktwolke perspektivische Ansicht:

[image]

Projekt-Punktwolken-Panorama-Ansicht :-):

[image]

Flächenanalyse Kreiszylinder

by Micha ⌂, Bad Vilbel, (27 days ago) @ Julian

Hallo,

ich habe den einen Datensatz (Säule2_2cm_80prozent_vollerfasst.txt) mal importiert, Kreiszylinder ausgewählt und direkt ausgleichen gedrückt - keine anderen Einstellungen. Ich erhalte vermutlich die Lösung, die Du auch bekommen hast. Zumindest sind die Zahlen aus Deinem Screenshot identisch mit meinen. Wenn ich Deine Daten nun plotte und die Zylinderachse einzeichne, die durch den geschätzten Aufpunkt und die geschätzte Achse definiert wird, dann erhalte ich ein plausibles Bild, siehe Screenhot.

[image]

Den Brennpunkt habe ich mal Lagemäßig in mein Punktwolkenprogramm importiert. Gibt es für Juniform ein Wiki?

Nein, aber in diesem Fall einen Artikel zur Modellierung und Bestimmung eines elliptischen Zylinders in der avn.

Die Lage des Brennpunktes kommt mir seltsam vor (s. Bild)

Es ist der Punkt, der am dichtesten am Ursprung Deines Koordinatensystems liegt.

und ebenso erscheinen mir die Abweichungen relativ hoch.

Die Residuen sind bei mit alle < 4.5 mm. Finde ich für einen Scan nicht hoch?!

ich weiß aber auch nicht genau was der Brennpunkt genau sein soll.

Wenn Du Dir den Grundfläche nicht als Kreis sondern als Ellipse vorstellst, dann hat diese auch zwei Brennpunkte. Bei einem Kreiszylinder fallen die Brennpunkte zusammen und sind der Mittelpunkt des Kreises.

Viele Grüße
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Flächenanalyse Kreiszylinder

by Julian @, (27 days ago) @ Micha

Hallo Micha,

erstmal danke für die schnelle und einleuchtende Antwort.
Den Artikel hab ich mir gleich mal durchgelesen und auch den größten Teil verstanden. Aber für andere Dinge hab ich noch paar Fragen weil mir da noch der Dr-Titel fehlt :-).

Wie kann ich in jUniform für alle Punkte eine a-priori Dispersion (σₓ, σᵧ, σ_z) festlegen?
Und wie berücksichtige ich, dass die Punktgenauigkeit z. B. an Zylinderkanten oder in Schleifenden Bereichen schlechter ist? Hier könnte ich dann Werte aus Winkel und Distanzmessgenauigkeit sowie Registrierungsgenauigkeit berücksichtigen.

Ich habe jetzt dank deines Fachartikels verstanden, das der Zylinder immer unendlich ist, also ohne unter und Oberbegrenzung. Der Aufpunkt ist dann der Treffpunkt der Mantelfläche mit der XY-Ebene und kann somit bei schrägen Zylindern leicht negativ oder positiv sein. Ist das korrekt?

Die Residuen sind wie du sagst bei ca. 4,5mm, aber wieso ist dann die Unsicherheit des Aufpunktes bei 5-9mm in der Lage und bei Z sogar 15 mm?
Liegt es daran, dass die verschiebbare Achse (hier Z-Achse) immer ungenauer bestimmt werden kann?

Wie kann ich aus dem geschätzten Richtungsvektor n=(nx,ny,nz),
dem Aufpunkt P0 und dem niedrigsten und höchsten Punkt der Mantelfläche die Achslänge im Zylinder räumlich berechnen?

Was sagen denn die Maximal tolerierbaren Modellstörungen in x y und z aus? diese sind bei mir bei x und y bei maximal 1 m und bei z ca. 1,4 mm.

Die minimal aufdeckbare Modellstörung in x und y fallen noch höher aus, und zwar 4 m und in z Richtung maximal 6mm. Warum ist das so?

Bei der Varianzkomponentenschätzung wird kein Sigma angegeben bzw. Verhältnis.
Liegt das daran, dass die Punkte quasi als fehlerfrei angenommen werden, ohne Angabe einer a-priori-Dispersionsmatrix als Diagonalmatrix?

Jetzt habe ich dich nochmal mit Fragen durchlöchert :-)...

Ich habe auf den Säulen noch jeweils an der oberkante und unterkannte eine Zielmarke angebracht.
Wenn man diese in jeder Epoche tachymetrisch neu einmisst, könnte man in der Deformationsanalyse einen Verschiebungsvektor berechnen. Aber dafür müsste der Aufpunkt deutlich genauer bestimmt sein...

Viele Grüße
Julian

Flächenanalyse Kreiszylinder

by Micha ⌂, Bad Vilbel, (27 days ago) @ Julian

Hallo Julian,

Aber für andere Dinge hab ich noch paar Fragen weil mir da noch der Dr-Titel fehlt :-).

Wie Du am Artikel bzw. dem Veröffentlichungsjahr siehst, reicht dafür ein Dipl.-Ing. völlig aus. ;-)

Wie kann ich in jUniform für alle Punkte eine a-priori Dispersion (σₓ, σᵧ, σ_z) festlegen?

Indem Du drei weitere Spalten in Deiner Textdatei einfügst mit den entsprechenden Standardabweichungen in x, y, und z.

Und wie berücksichtige ich, dass die Punktgenauigkeit z. B. an Zylinderkanten oder in Schleifenden Bereichen schlechter ist? Hier könnte ich dann Werte aus Winkel und Distanzmessgenauigkeit sowie Registrierungsgenauigkeit berücksichtigen.

Das müsstest Du Dir entsprechend überlegen und daraus ein geeignetes stochastische Modell ableiten. Du kannst es also über die Standardabweichungen (oder sogar über die 3x3 Dispersionsmatrix des Punktes) berücksichtigen. Woher die Standardabweichungen kommen, ist für JUniForm nicht relevant - es sind Eingangsdaten.

Der Aufpunkt ist dann der Treffpunkt der Mantelfläche mit der XY-Ebene und kann somit bei schrägen Zylindern leicht negativ oder positiv sein. Ist das korrekt?

Fast, der Aufpunkt besitzt den kürzesten Abstand zum Ursprung. Stell Dir einen Zylinder vor, dessen Hauptachse nicht durch den Ursprung geht. Dann kannst Du eine Ebenen definieren, die diese Zylinderachse als Normalenvektor hat. Nun verschiebst Du diese Ebene solange entlang der Hauptachse, bis diese den Koordinatenursprung enthält. In dieser Ebene liegt der Aufpunkt. Es ist aber nicht die XY-Ebene, da man sonst keine Zylinder bestimmen könnte, die bspw. parallel zur X-Achse liegen.

Die Residuen sind wie du sagst bei ca. 4,5mm, aber wieso ist dann die Unsicherheit des Aufpunktes bei 5-9mm in der Lage und bei Z sogar 15 mm?

Weil dieser in Deinem Beispiel auch extrem weit weg ist von Deinen Punkten. Die Extrapolation geht natürlich bei der Bewertung mit ein. Der Aufpunkt und der Achsvektor bilden aber eine Gerade. Wenn Du nun einen Punkt auf der Geraden bestimmst, der mitten in Deinem Zylinder liegt und für diesen dann mittels Varianz-Kovarianz-Fortpflanzung die Streuung ausrechnest, dann wird die entsprechend kleiner sein.

Wie kann ich aus dem geschätzten Richtungsvektor n=(nx,ny,nz),
dem Aufpunkt P0 und dem niedrigsten und höchsten Punkt der Mantelfläche die Achslänge im Zylinder räumlich berechnen?

Dazu müsste klar sein, wodurch der Zylinder begrenzt ist, sodass Anfang und Ende klar definiert sind. Per Definition hat eine Zylinder zunächst keine solche Begrenzung - ähnlich wie eine Gerade oder Ebene die eine unendliche Länge oder Ausbreitung haben.

Die Geradengleichung für die Zylinderachse lautet:

$ \begin{pmatrix} x \\ y \\ z \end{pmatrix} = \begin{pmatrix} x_0 \\ y_0 \\ z_0 \end{pmatrix} + s \begin{pmatrix} n_x \\ n_y \\ n_z \end{pmatrix} $

Da der Richtungsvektor normiert ist auf die Länge 1 ist $s$ der Abstand vom Aufpunkt. Du müsstest nun also den kleinsten und größten Abstand bestimmen und würdest aus der Differenz die Länge des physischen Zylinders erhalten.

Was sagen denn die Maximal tolerierbaren Modellstörungen in x y und z aus? diese sind bei mir bei x und y bei maximal 1 m und bei z ca. 1,4 mm.

Die minimal aufdeckbare Modellstörung in x und y fallen noch höher aus, und zwar 4 m und in z Richtung maximal 6mm. Warum ist das so?

Die Notation und Bedeutung entspricht der aus JAG3D. Ich habe keine neuen Bewertungskriterien eingeführt. Der eine Wert gibt an, wie große eine Abweichung sein kann ohne den a-posteriori Varianzfaktor signifikant zu verändern und der andere Parameter gibt die Größe eine Modellstörung an, die mit dem gewählten Fehler I+II Art detektiert werden kann.

Bei der Varianzkomponentenschätzung wird kein Sigma angegeben bzw. Verhältnis.

Doch. Aber es hat eine Größenordnung, bei der zwei Nachkommastellen nicht ausreichen. Kopiere Dir einfach die Zeile aus der Tabelle und füge sie in einen Editor Deiner Wahl ein. Du wirst etwas erhalten wie:

GLOBAL 24723 8236.0 0.011014523216659857 1.3373631880354367E-6 false 

Liegt das daran, dass die Punkte quasi als fehlerfrei angenommen werden, ohne Angabe einer a-priori-Dispersionsmatrix als Diagonalmatrix?

Jedem Punkt wird eine Abweichung zugeteilt sonst gäbe es keine Residuen. Wenn kein spezielles stochastisches Modell vorgegeben wird, werden die Punkte als unabhängig und gleichgenau betrachtet. In diesem Fall erhält man einen Orthogonal-Distance-Fit, bei dem die Residuen senkrecht auf der Kurve bzw. Fläche stehen.

Aber dafür müsste der Aufpunkt deutlich genauer bestimmt sein...

Siehe oben. Schieb den Aufpunkt in Deine Punktwolke und Du wirst sehr kleine Unsicherheiten für diesen bekommen. Insofern sollte dies kein Problem sein.

Beste Grüße
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Tags:
JUniForm, Parameter, Kreiszylinder, Gerade

Flächenanalyse Kreiszylinder

by Julian @, (27 days ago) @ Micha

Wie Du am Artikel bzw. dem Veröffentlichungsjahr siehst, reicht dafür ein Dipl.-Ing. völlig aus. ;-)

Du bist einfach sehr bescheiden, dass habe ich doch immer wieder feststellen müssen ;-).

Fast, der Aufpunkt besitzt den kürzesten Abstand zum Ursprung. Stell Dir einen Zylinder vor, dessen Hauptachse nicht durch den Ursprung geht. Dann kannst Du eine Ebenen definieren, die diese Zylinderachse als Normalenvektor hat. Nun verschiebst Du diese Ebene solange entlang der Hauptachse, bis diese den Koordinatenursprung enthält. In dieser Ebene liegt der Aufpunkt. Es ist aber nicht die XY-Ebene, da man sonst keine Zylinder bestimmen könnte, die bspw. parallel zur X-Achse liegen.

ungefähr so? Ich glaube wir müssen auch da mal mit JavaFX die Ergebnisse veranschaulichen :-D.
Könnte mir auch vorstellen das man das evtl mit Three.js in einen html-report einbauen kann.

[image]

Weil dieser in Deinem Beispiel auch extrem weit weg ist von Deinen Punkten. Die Extrapolation geht natürlich bei der Bewertung mit ein. Der Aufpunkt und der Achsvektor bilden aber eine Gerade. Wenn Du nun einen Punkt auf der Geraden bestimmst, der mitten in Deinem Zylinder liegt und für diesen dann mittels Varianz-Kovarianz-Fortpflanzung die Streuung ausrechnest, dann wird die entsprechend kleiner sein.

In der jUniform-Ausgabe sehe ich nur die Standardabweichungen der Modellparameter (σₓ₀, σᵧ₀, σz₀, σₙₓ, σₙᵧ, σₙz), aber nicht die zugehörigen Kovarianzen.
Für die Varianz-Fortpflanzung entlang der Zylinderachse (z. B. zur Bestimmung der Streuung an Unter- und Oberkante) benötige ich jedoch die vollständige Kovarianzmatrix Σᵤ.
Berechnet jUniform intern bereits den Achsmittelpunkt (z. B. an der Stelle minimaler Parameterstreuung), oder muss ich diesen Punkt grundsätzlich selbst über Fehlerfortpflanzung bestimmen?

Dazu müsste klar sein, wodurch der Zylinder begrenzt ist, sodass Anfang und Ende klar definiert sind. Per Definition hat eine Zylinder zunächst keine solche Begrenzung - ähnlich wie eine Gerade oder Ebene die eine unendliche Länge oder Ausbreitung haben.

hmm man könnte die aber berechnen indem man mit der ebene von der du vorhin gesprochen hast die minimalen und maximalen Berührpunkte sucht

Jedem Punkt wird eine Abweichung zugeteilt sonst gäbe es keine Residuen. Wenn kein spezielles stochastisches Modell vorgegeben wird, werden die Punkte als unabhängig und gleichgenau betrachtet. In diesem Fall erhält man einen Orthogonal-Distance-Fit, bei dem die Residuen senkrecht auf der Kurve bzw. Fläche stehen.

Damit könnte man ja theoretisch das Messrauschen bestimmen oder?

Viele Grüße
Julian

Flächenanalyse Kreiszylinder

by Micha ⌂, Bad Vilbel, (27 days ago) @ Julian

Guten Abend,

ungefähr so?

Genau so, ja,

Ich glaube wir müssen auch da mal mit JavaFX die Ergebnisse veranschaulichen :-D.

Für den einfachen Zylinder sicher noch machbar, aber für den elliptischen wird man schon keine Standardgeometrien mehr nutzen können - und wenn man erst noch zusammengesetzte Dinge hat... Überrasch mich. ;-)

In der jUniform-Ausgabe sehe ich nur die Standardabweichungen der Modellparameter (σₓ₀, σᵧ₀, σz₀, σₙₓ, σₙᵧ, σₙz), aber nicht die zugehörigen Kovarianzen.
Für die Varianz-Fortpflanzung entlang der Zylinderachse (z. B. zur Bestimmung der Streuung an Unter- und Oberkante) benötige ich jedoch die vollständige Kovarianzmatrix Σᵤ.

Im Report findest Du die Korrelationsmatrix der Parameter, sodass damit auch die Kovarianzmatrix vorliegt. Man könnte sich sicher auch ein Reporttemplate erzeugen, dass direkt wieder die Kovarianzmatrix ausgibt. Sofern Matlab vorhanden ist, enthält auch dieser Export die Korrelationsmatrix.

Berechnet jUniform intern bereits den Achsmittelpunkt (z. B. an der Stelle minimaler Parameterstreuung), oder muss ich diesen Punkt grundsätzlich selbst über Fehlerfortpflanzung bestimmen?

Alle Parameter, die bestimmt werden, werden auch ausgegeben. Beim Zylinder bestimmt JUniForm den Achsmittelpunkt aus den beiden Brennpunkten. Für den Kreiszylinder wird die Identität zwischen den Brennpunkten durch Restriktionen hergestellt. Der Achsenmittelpunkt fällt dann mit den Brennpunkten zusammen. Da die Achse durch einen beliebigen Punkt und eine Richtung definiert ist, kann man sich beliebige Achspunkte leicht selbst ausrechnen. JUniForm macht dies (gegenwärtig) nicht und der Entwickler sieht hierzu keine Veranlassung im Moment.

hmm man könnte die aber berechnen indem man mit der ebene von der du vorhin gesprochen hast die minimalen und maximalen Berührpunkte sucht

Ja, das könnte der Anwender tun, wenn dieser Wert benötigt wird. ;-)

Damit könnte man ja theoretisch das Messrauschen bestimmen oder?

Du hast die Residuen, die die Abweichungen zwischen Beobachtung und Modell charakterisieren. Wenn die Oberflächenqualität (Rauigkeit, Reflektivität usw.) es erlaubt, kannst Du daraus Streumasse für den Messsensor ableiten, ja.

Schönen Abend
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Flächenanalyse Kreiszylinder

by Julian, (23 days ago) @ Micha

Hallo,

Für den einfachen Zylinder sicher noch machbar, aber für den elliptischen wird man schon keine Standardgeometrien mehr nutzen können - und wenn man erst noch zusammengesetzte Dinge hat... Überrasch mich. ;-)

ich versuche es, aber mit java fx probiere ich es erst gar nicht :-x :cool:

Im Report findest Du die Korrelationsmatrix der Parameter, sodass damit auch die Kovarianzmatrix vorliegt. Man könnte sich sicher auch ein Reporttemplate erzeugen, dass direkt wieder die Kovarianzmatrix ausgibt. Sofern Matlab vorhanden ist, enthält auch dieser Export die Korrelationsmatrix.

Probiere ich und evtl. muss ich dann nochmal nachfragen wenn es nicht funktioniert.

Evtl. poste ich dann in diesem Thread nochmal eine Beispielrechnung.

Du hast die Residuen, die die Abweichungen zwischen Beobachtung und Modell charakterisieren. Wenn die Oberflächenqualität (Rauigkeit, Reflektivität usw.) es erlaubt, kannst Du daraus Streumasse für den Messsensor ableiten, ja.

laut M3C2 Vergleich in CloudCompare ist das Messrauschen ca. bei 0.5mm. Da hätte ich dann schonmal einen Vergleichswert. Wir parlieren... :-)

Danke für die vielen Ratschläge und schönen Abend
Julian

RSS Feed of thread