Achskonvertierung (Geodäsie/Vermessung)

philipp, Friday, 14.08.2009, 23:35 (vor 5579 Tagen)

Hallöchen Micha,

mal folgende Frage:
Wäre es möglich, daß du den FileConverter so erweiterst, daß er horizontale und vertikale (Gradiente) Achsdaten von A nach B konvertiert?
Eventuell wäre sogar ein eigenes kleines "Progrämmchen" angebracht, da mir eine Einbahnstraßenkonvertierung vorschwebt ohne die großen Auswahlmöglichkeiten an Formaten im FileConverter...

Folgende Situation:
Ich bekomme schon länger öfters Achsdateien in den amtlichen Straßenbauformaten .d40 (oder auch .040) und .d21 (oder auch .021 (Gradiente)). Die brauch ich natürlich mal wieder in .gsi (bevorzugt gsi-8 ;-)). Von .gsi in .040/.021 dagegen sehe ich keinen Sinn - deshalb die "Einbahnstraße". Ein anderes Format als .gsi als Ziel kann ich jetzt auch nicht nennen (kennt einer das Trimble-Format?), so daß Dank der Ausgangsdaten das Ziel eigentlich feststehen müsste.

Die nötigen Daten mehrerer Achsen (3 bis 4) in beiden Formaten könnte ich zum Zwecke der Umsetzung liefern. Auch eine Umrechnungsanleitung für die Gradiente (da ist es mit einfachem Umsetzen nämlich nicht getan, da die .gsi-Gradiente Daten benötigt, die man teilweise aus den .021-Daten heraus berechnen muss) würde ich erstellen.

Dank einer neuen Großbaustelle und dem mühseligen stundenlangen manuellem Umsetzen der dort benötigten Daten (allerdings nicht zum ersten Mal in meiner "Karriere"! :-| ) hab ich einfach mal gedacht, dich jetzt hier danach zu fragen.
Wie stehen die Chancen einer Umsetzung deinerseits?
Mit tatkräftiger Unterstützung durch meine Wenigkeit wäre natürlich zu rechnen!!!

Grüße aus Thüringen :waving:,
Philipp

Avatar

Achskonvertierung

MichaeL ⌂, Bad Vilbel, Saturday, 15.08.2009, 00:58 (vor 5579 Tagen) @ philipp

Guten Abend,

mal folgende Frage:
Wäre es möglich, daß du den FileConverter so erweiterst, daß er horizontale und vertikale (Gradiente) Achsdaten von A nach B konvertiert?

Vielleicht ist eine Erweiterung nicht angebracht, wie Du selbst schon bemerkt hast, und ein eigenständiges Tool die bessere Wahl. Auf meiner Seite kannst Du ja unten sehen, welche Software ich noch pflege in Zukunft und welche nicht. Ich bin gerade dabei meine Seite umzuschreiben und in der neuen Version wird es den FC nicht mehr geben. Bei SF.net wird der FileConverter weiterhin vorhanden sein. Auf unserer Seite sicher auch - wobei hier im Moment der Download afaik nicht geht, da SF.net was umgestellt hat. :-(

Folgende Situation:
Ich bekomme schon länger öfters Achsdateien in den amtlichen Straßenbauformaten .d40 (oder auch .040) und .d21 (oder auch .021 (Gradiente)).

Ich kenne diese Dateien nicht, wie Du Dir sicher denken kannst. Aufbau und Inhalt sind mir somit fremd um den Aufwand abschätzen zu können.

Die brauch ich natürlich mal wieder in .gsi (bevorzugt gsi-8 ;-)).

ASCII zu ASCII ist sicher keine Kunst und eher Fleißarbeit als wirklich spannend. Das haben auch schon andere hinbekommen ;-)

(kennt einer das Trimble-Format?)

M5, soweit ich weiß. Aber Leica hat seit der 1200er Generation auch GSI abgeschafft. Kann also sein, dass es inzwischen auch was anderes gibt. Uwe weiß da vll etwas mehr...

Die nötigen Daten mehrerer Achsen (3 bis 4) in beiden Formaten könnte ich zum Zwecke der Umsetzung liefern. Auch eine Umrechnungsanleitung für die Gradiente (da ist es mit einfachem Umsetzen nämlich nicht getan, da die .gsi-Gradiente Daten benötigt, die man teilweise aus den .021-Daten heraus berechnen muss) würde ich erstellen.

Aha, klingt ja doch etwas aufwendiger, wie es aussieht. Anschauen kann ichs mir ja mal. Wie gut sind Deine (restlichen) JAVA-Kenntnisse zwecks Hilfe?

Mit tatkräftiger Unterstützung durch meine Wenigkeit wäre natürlich zu rechnen!!!

Ich nehme Dich beim Wort: tatkräftige Unterstützung hast Du zugesichert ;-)

Was im Forum geht, würde ich auch im Forum regeln - die Konkurrenz ist klein aber vorhanden...


Schöne Grüße aus Baden
Micha

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

Tags:
Leica, Konverter, Achsen, GSI

Avatar

Achskonvertierung

AWO, Nussbaumen AG, Saturday, 15.08.2009, 11:16 (vor 5579 Tagen) @ MichaeL

ich habe hier ein programm, dass 040 daten in ein leica gsi format (wahlweise 8 oder 16) exportieren kann (nicht für die 1200er, da diese ja eine datenbank nutzen).

es gibt dort manchmal fehlinterpretationen der vorzeichen von klothoiden, die ich damals in der gsi nachträglich per hand anpassen musste.

das programm sollte auch gradienten exportieren, hab ich aber nur einmal versucht und bin gescheitert. die option ist auf jeden fall erhalten. ich habe aber ein gradientenfile für die höhe 0. das reichte mir und den anderen buntevermessern damals für die absteckarbeiten aus.

das "dos"-programm nennt sich leica40 und kann ich euch zur verfügung stellen.
vielleicht hilft es euch, ein perfektes programm zu erzeugen oder vielleicht reicht philipp es auch so?

040 und 021 daten könnte ich euch zur genüge anbieten, da stratis diese exportieren kann.

das prog ist winzig (<1mb). also lass mir ne mailaddy zukommen phillip, dann kannst das schonmal haben.

Avatar

Achskonvertierung

MichaeL ⌂, Bad Vilbel, Saturday, 15.08.2009, 12:42 (vor 5579 Tagen) @ AWO

Hi Andy,

das "dos"-programm nennt sich leica40 und kann ich euch zur verfügung stellen.
vielleicht hilft es euch, ein perfektes programm zu erzeugen oder vielleicht reicht philipp es auch so?

Gut, das müsste Flip dann mal austesten. Wenn die Berechnungen nun nicht ausufern, soll es aber auch an einer neuen Version mit GUI nicht scheitern aber bisher habe ich ja noch nicht gesehen, was alles zu tun ist umd den Aufwand abschätzen zu können.

Bei Dir alles klar in der Schweiz?

Schöne Grüße aus dem sonnigen Baden
Micha

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

Tags:
Leica, GSI, Achskonvertierung

Achskonvertierung

philipp, Saturday, 15.08.2009, 14:28 (vor 5579 Tagen) @ MichaeL

Ja also STRATIS is wohl so 'ne Sache...
Meine (neue) Firma hat's auch und auch ich soll es kriegen (ist bloß die Frage, wann). Aber der Kollege, der mir die Daten zwischenzeitlich umsetzten sollte musste für die 040er mehr als nur STRATIS bemühen und saß da am Ende pro Achse bestimmt 5 Minuten dran (inklusive gefühlten 354 Mausklicks ;)).

Bei der Gradiente hatte er dann gleich abgewunken, daß das wohl nicht gehen würde...

Ich dachte mir deshalb, daß es toll wäre, wenn der FileConverter (oder eben ein Extra-Proggi) das genauso handhabt wie bei gsi zu 001 oder pkt etc.!
Einfach raufschieben - (eventuell noch 1-2 Klicks wie z.B. Name und Zielpfad) - fertig!

Was den Aufwand angeht:
Bei der Horizontalen sollte das wirklich nur umsetzen sein. Da muss meiner Meinung nach nix mehr berechnet werden, da werden nur die Daten und Zahlen anders angeordnet bzw. ein gsi-typischer Code je nach Situation (Gerade, Bogen, Klothoide) eingefügt.

Bei der Gradienten gibt es folgende Situation: In der 021er-Datei werden die Tangentenschnittpunkte bei Kuppen- und Wannenausrundungen angegeben, während gsi diese gar nicht braucht, dafür aber Station und Höhe von Kuppen-/Wannenbeginn und Kuppen-/Wannenende benötigt. Das kann man aber aus den vorhandenen 021er-Daten heraus berechnen.

Hier wäre der Aufwand also größer, sollte nach einmaligem Verständnis und Implementieren aber reproduzierbar sein. Ich würde das ganze mal in einer Excel-Tabelle durchexerzieren - da sieht mann dann auch die dahinterliegenden Berechnungsformeln.

Mit meinen Java-Kenntnissen steh ich eher nackt da! :-D
'Ne große Hilfe wäre ich da wohl eher nicht, eher bei Aussagen zu den eigentlichen Daten und Zielen der Umsetzung bzw. den Formeln und Berechnungen (Gradiente) dahin.

Andy, weitere Vorlagendaten wären vll. nicht schlecht!
Ich habe hier nämlich im Moment z.B. keine Achse mit Klothoiden zur Verfügung (bzw. nicht in beiden Formaten zur Verfügung). Auch eine Eilinie (Klothoide zwischen 2 Bögen) hab ich schon mal gesehen, aber nicht in beiden Formaten zur Hand.
Bei der Gradiente hab ich auch nur Beispiele, in denen ausschließlich Geraden und Radien vorkommen. Es soll da auch noch was anderes geben (mein Trasseneditor hat da noch was parabelmäßiges im Angebot), gesehen habe ich das aber noch nie! Zudem kenn/hab ich auch nur Gradienten, wo Ausrundungen nicht aneinanderstoßen, also immer mindestens eine Gerade (oder auch mal mehrere) zwischen 2 Ausrundungen vorkommen.
Wenn's da doch mal Spezialfälle gibt, hätte ich solche nicht zur Verfügung - aber wie gesagt: Gesehen habe ich sowas auch noch nie, "meine" Gradienten waren da immer nach dem gleichen Muster gestrickt.

Ich mach einfach mal die Excel-Umsetzung fertig und schicke sie dir, Micha, mit meinen 40er/21er-Daten rüber. Dann kannst du schon mal den Aufwand absehen.

In der Zwischenzeit gucke ich mir Andys Programm gerne mal an (ich schicke dir meine Adresse - ist aber eigentlich immer noch die alte). Aber wenn der die Gradienten auch nicht richtig macht...!?
Und was ist eine Gradientenfile mit der Höhe 0? Gradienten haben/ermöglichen doch gerade tausend verschiedene Höhen, dafür sind sie doch da!?

Na ich leg mal los. Denke mal, daß ich es irgendwann am Abend rüberschicke...

So denn,
vielen Dank schon mal für eure Hilfe,
bis später,
Flip

Avatar

Achskonvertierung

AWO, Nussbaumen AG, Saturday, 15.08.2009, 16:01 (vor 5579 Tagen) @ philipp

Daten sind raus. Aber soviele Gradientenfiles sind nicht dabei. Kann aber unter der Woche diese noch erzeugen. Meldet Euch falls ihr sie braucht, dann exportiere ich diese.

Das Gradientenfile mit der Höhe 0 ist nur, dass dein Leica im Achsabsteckungsmodus eine Höhe ausgibt. Meiner Meinung nach wird eine Gradientendatei benötigt, zumindest mein altes TC1100 wollte sie für Achsabsteckungen haben.

Wenn Du natürlich eine 021 umgesetzt kriegst, ist das natürlich alles hinfällig ;)

Bei Fragen zum Programm "Leica40" steh ich zur Verfügung, aber hängt auch ne Anleitung dran. Müsste mir dann noch nen 32-bit Betriebssystem aufspielen, denn unter 64bit will es nicht laufen.

Deinen obigen Stratisteil versteh ich nicht. Was hat dein Kollege versucht?
Eine 040/021 kannst dort im Datenmanager importieren und exportieren.
Achsdatenbank erstellen
Achse - neu - importieren (040 auswählen)
Gradiente - neu - importieren (021 auswählen)

Oder meinst Du die Umsetzung von 040/021 in GSI?

Achskonvertierung

philipp, Saturday, 15.08.2009, 17:28 (vor 5579 Tagen) @ AWO

Daten sind raus.

Hab eben schnell reingeguckt (muss gleich weg).
Das "roaded" nutze ich in einer höheren Version auch zur manuellen Dateneingabe.
Das "leica40" muss ich mir mal in Ruhe angucken - aber wenn es Gradienten eh nicht kann...!? Und: Wenn ich noch eine Anleitung brauch wäre mir ein selbsterklärendes Drag-and-drop made by Micha erst recht lieber! :cool:
Rohdaten sind sicher (meist) in gsi-16? Ich benötige ja eher gsi-8 (in dem sind auch meine Rohdaten). Wäre vll. für Micha gut zum gucken, wie sich diese Versionen im Endprodukt unterscheiden.

Meiner Meinung nach wird eine Gradientendatei benötigt, zumindest mein altes TC1100 wollte sie für Achsabsteckungen haben.

Also mein TC1103 steckt auch ohne Gradiente ab. Dann gibt das zwar keine Höhenangabe, aber ohne richtige Gradiente ist ja auch wurscht, ob er mir gar nix anzeigt oder einen Phantasiewert (letzteres ist vll. sogar schädlich, wenn plötzlich jemand (z.B. deine Krankheitsvertretung) diese Höhen für bare Münze nimmt...).

Deinen obigen Stratisteil versteh ich nicht. [...]
Oder meinst Du die Umsetzung von 040/021 in GSI?

Genau!
Eingelesen hat er das auch bekommen. Die Umwandlung in gsi war wohl das Problem und geht nicht so einfach.

---

Bin mit meinem Excel-Umwandlungsfile quasi fertig - muss aber noch mal getestet werden. Mache ich nachher und schicke es dann samt 040/021+gsi an den "Admin"...

So denn...

Avatar

Achskonvertierung

AWO, Nussbaumen AG, Saturday, 15.08.2009, 19:13 (vor 5579 Tagen) @ philipp

Leica 40 kann auch in gsi8 konvertieren. Das Format bestimmst Du.
Für die Achse ist es KINDERLEICHT (ich schätze mal so 10 Tastendrucks)...

Mit Gradiente musst mal testen, habs damals ohne Anleitung versucht, da ich nicht wusste, dass ich ne Anleitung auf meinem Rechner hab... Es wurde mir zwar eine erstellt, aber die funktionierte im Gerät nicht. Naja ohne deinen Einsatz wirste es nicht rausfinden. Ich hab jetzt nen 1200er und kanns nicht mehr testen.

Die Anleitung ist übrigens 2 fette DIN A4 Seiten lang... Das Ganze könnte Euch ne Menge Arbeit ersparen.
Naja mir ist es Banane, wollts nur loswerden.

Umwandlung in gsi (nur 1200er?) funzt bei Stratis nur über ein Modul was man kaufen muss.

Zum Phantasiewert in der Achsabsteckung: Wenn Du die 0-Gradiente hinterlegt hast, siehst du zB die NN-Höhen und keine Phantasiewerte. Manchmal sind die Höhen ja nach Deckenbuchberechnungen oder Querprofilen bekannt.

Nichtsdestotrotz kann ich noch mit anderen Rohdaten dienen. Lasst es mich wissen.

Schönes WE noch.

Gruß aus CH

Avatar

Achskonvertierung

MichaeL ⌂, Bad Vilbel, Saturday, 15.08.2009, 21:09 (vor 5578 Tagen) @ AWO

Hi Ihr beiden,

Die Anleitung ist übrigens 2 fette DIN A4 Seiten lang... Das Ganze könnte Euch ne Menge Arbeit ersparen.

Richtrig, also, wenn es damit bereits gehen sollte, würde ich das natürlich irgendwie favoritisieren ;-)
Wenn Dich nur der DOS-Anwendung stört, könnte man auch eine Wrapper-GUI zur Not basteln, die die Dateien an dieses Tool einfach durchreicht. Also etwas in der Art, was Andy und ich damals auch für WaSoft gemacht haben, Du erinnerst Dich?

Flip, teste das ganze mal in Ruhe aus und dann gib Bescheid, wie's aussieht.

Schönes WE
Micha

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

Achskonvertierung

philipp, Sunday, 16.08.2009, 00:11 (vor 5578 Tagen) @ MichaeL

Huch - jetzt hab ich gerade eben schön was los geschickt an dich, Micha.
Und jetzt erst die letzten Meldungen gelesen...

Ja also ich werde das mal testen die nächsten Tage. Nur gerade der wichtigere Teil (die Gradiente) scheint ja laut Andys Aussage eh nicht so recht zu wollen.
Warum wichtiger?: Weil hier eben noch gerechnet werden muss.
Aus der 040 kann man zur Not auch "abschreiben" - bei der 021 aber ist es damit nicht getan und somit massiver Zeitverlust einzuplanen beim "konvertieren".

Ich hab zwar wie gesagt wenig (Rest)ahnung von Java, aber ich glaube eigentlich nicht, daß der Aufwand so riesig sein kann. Hät ich besser aufgepasst könnte ich das jetzt vll. auch selbst, aber programmieren (am PC) konnte ich noch nie so richtig.
Andererseits: Mit Excelformeln und auch (in vereinfachter Form) am Casio-Taschenrechner hab ich's jeweils in 1h hinbekommen.

Nun ja - ich hab's wie gesagt eben gemailt. Guck rein, wenn du willst (aber lass dich nicht vom Text abschrecken :D) oder lass es liegen, wenn du keine Zeit/Lust hast.

Tschö mit ö,
Flip

Achskonvertierung

philipp, Sunday, 16.08.2009, 16:19 (vor 5578 Tagen) @ philipp

So, jetzt hab ich "Andys Programm" - also das Leica40 aus seiner Mail - mal schnell getestet.

Fazit: Nur bedingt brauchbar...

Horizontale macht er gut und genauso wie in meiner gsi-Vergleichsvorlage, aber bei der Gradienten gibt es wie schon von Andy angedeutet Probleme bei der Ergebnisdatei. Er wirft zwar was raus, was auch optisch dem Soll-Ergebnis ähnelt (Zeilen- und Spaltenanzahl, Aufbau, etc.), aber die Zahlen hauen nicht hin.

Oder hab ich in dem Wust von Einstellungen was falsch ausgewählt?
Genau DAS finde ich daran übrigens auch unglücklich: einfaches drag-and-drop mit maximal 1-3 Klicks wie im FileConverter wäre schöner als diese Auswählerei.
Wenn's funktionieren würde könnte man sicher mit leben (schneller als per Hand abschreiben/neu eintippen ist es alle mal), aber Michas Programme sind ja nicht umsonst so beliebt bei uns... [/Ende Scheimmodus :lol2:]

Avatar

Achskonvertierung *.040 --> *.GSI

MichaeL ⌂, Bad Vilbel, Sunday, 16.08.2009, 16:26 (vor 5578 Tagen) @ philipp

Hallo Flip,

habe Deine Mail mit unmengen an Daten bekommen, die ich erstmal nicht alle durchgeschaut habe. Nunja, wir fangen mal klein an und bleiben bei den *.040 --> *.GSI. Die Konvention ist, wenn ich Deine Mail richtig verstanden habe:

040+Achsnummer,Station,Stationsdifferenz,Radius,Klothoidenparameter,Tangentenrichtung,y,x

und sieht zB so aus:

04001     0.000   0.000      0.0000    0.000  99.6926664  428375.746  611777.234
04001    21.891  21.891    500.0000    0.000  99.6926664  428397.637  611777.340
04001    42.125  20.234      0.0000    0.000 102.2689621  428417.867  611777.028
04001    60.692  18.567  -1000.0000    0.000 102.2689621  428436.422  611776.366
04001    66.045   5.353      0.0000    0.000 101.9281807  428441.772  611776.190
04001    77.332  11.286   -100.0000    0.000 101.9281807  428453.054  611775.848

Wenn ich mir Andys Dateien ansehe, fällt auf, dass bei ihm alles in Millimeter ist bspw.:

04040  39996930       0   -20518930        0  2150519900  3431497165  5805669054
04040  40001683    4753           1    45000  2149045240  3431496057  5805664432
04040  40046683   45000      450000        0  2467355130  3431478709  5805623450

Woran erkenne ich die Einheit?

Was die Einsen in Andys Beispielen bei den Stationierungen und Radien
sollen (es entspricht ja 0,001 oder gar 0,0001) weiß ich übrigens auch nicht.

Wo Du welche gesehen hast, weiß ich übrigens auch nicht. Sonderfälle sollst Du nicht in irgend welchen ZIP-File verstecken sondern auch bennen. Ich habe mir 3 Dateien von Andy angesehen und nirgens eine 0,001 oder 0,0001 gesehen...

Zur Konvertierung *.040 --> *.GSI

04001     0.000   0.000      0.0000    0.000  99.6926664  428375.746  611777.234
04001    21.891  21.891    500.0000    0.000  99.6926664  428397.637  611777.340
04001    42.125  20.234      0.0000    0.000 102.2689621  428417.867  611777.028
04001    60.692  18.567  -1000.0000    0.000 102.2689621  428436.422  611776.366

wird laut Deinem Beispiel zu:

41....+00000001 42....+HZALIGNM 43....+STACOORD 
11....+00000000 71....+STRAIGHT 72....+00000NON 73....+00000NON 81..10+28375746 82..10+11777234 
11....+00021891 71....+000CURVE 72....+00500000 73....+00000NON 81..10+28397637 82..10+11777340 
11....+00042125 71....+STRAIGHT 72....+00000NON 73....+00000NON 81..10+28417867 82..10+11777028 
11....+00060692 71....+000CURVE 72....-01000000 73....+00000NON 81..10+28436422 82..10+11776366 

Die erste Zeile wird per Default eingetragen. Block 11, 72, 73 sowie 81 und 82 sind klar - meine ich. Aber woran erkenne ich die Schlüsselwörter, die in 71 rein kommen aus der Datenzeile?

  • STRAIGHT
  • CURVE
  • SPIROUT
  • SPIRIN
  • CURVEOUT
  • CURVEIN

Gruß Micha

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

Tags:
Konverter, Achsen, GSI

Achskonvertierung *.040 --> *.GSI

philipp, Sunday, 16.08.2009, 17:17 (vor 5578 Tagen) @ MichaeL

habe Deine Mail mit unmengen an Daten bekommen, die ich erstmal nicht alle durchgeschaut habe.

Später schreibst du, ich sollte es genau benennen (siehe unten). Aber wegen der schieren Menge an Daten hab ich den Großteil ja extra gepackt (und somit quasi "versteckt" ), um dich nicht gleich zu erschlagen

Die Konvention ist, wenn ich Deine Mail richtig verstanden habe:

040+Achsnummer,Station,Stationsdifferenz,Radius,Klothoidenparameter,Tangentenrichtung,y,x


[...]
und sieht zB so aus:
[...]
Wenn ich mir Andys Dateien ansehe, fällt auf, dass bei ihm alles in Millimeter ist bspw.:
[...]
Woran erkenne ich die Einheit?

Alles Korrekt.
Das war die Sache mit den Kommazeichen, die ich schon mal erwähnt hatte gestern (in der Mail?). Bei Andy gibt es sie eben nicht. Und offensichtlich ist beides erlaubt in der 040!
Die jeweiligen Nachkommastellen sind in meinem Beispiel zu sehen und sollten bei Andy analog laufen.
Heißt z.B.: Stationen haben 3 Nachkommastellen (bei Andy wird aus 39996930 also 39996.390), Radien 4 Nachkommastellen (aus -20518930 wird -2051.8930) usw.
Bei fehlenden Kommas habe ich also vorne eine Stelle mehr zur Verfügung, hinten aber bleibt die Nachkommastellenanzahl konstant.

Wo Du [Einsen] gesehen hast, weiß ich übrigens auch nicht. Sonderfälle sollst Du nicht in irgend welchen ZIP-File verstecken sondern auch bennen. Ich habe mir 3 Dateien von Andy angesehen und nirgens eine 0,001 oder 0,0001 gesehen...

Richtig - 0,0001 kannst du auch nicht sehen, aber eben 1, siehe hier (der mittlere Radius):

04040  39996930       0   -20518930        0  2150519900  3431497165  5805669054
04040  40001683    4753           1    45000  2149045240  3431496057  5805664432
04040  40046683   45000      450000        0  2467355130  3431478709  5805623450

Wie eben gesagt gibt es beim Radius 4 Nachkommastellen, diese 1 steht also für 0,0001. Und diesen Radius möchte ich draußen lieber nicht abstecken müssen! ;)
In der gleichen Zeile steht bei der Klothoide 45000, also 45,000 (3 Nachkommstellen bei Klothoiden!) Das zweite Element ist also eine Klothoide und macht die 1 davor noch überflüssiger als sie eh schon ist.

Zur Konvertierung *.040 --> *.GSI
[...]
Die erste Zeile wird per Default eingetragen.

Fast. 41....+00000001 steht ganz oben links, weil die Achse 01 heißt (4. und 5. Spalte in der 040er-Datei: 04001)
Steht da 83, wird in der gsi wohl 41....+00000083 eingetragen.
Warum der Achsname nur läppische 2 Stellen hat entzieht sich übrigens meiner Kenntnis!

woran erkenne ich die Schlüsselwörter, die in 71 rein kommen aus der Datenzeile?

  • STRAIGHT
  • CURVE
  • SPIROUT
  • SPIRIN
  • CURVEOUT
  • CURVEIN

Wie in meiner Mail beschrieben. STRAIGHT bei einer Geraden, also wenn sowohl Radius als auch Klothoidenparameter 0 sind in der 040-Datei (Spalten 4 und 5).
CURVE bei einem Bogen (Spalte 4 ungleich 0, Spalte 5 = 0). SPIRxxx ist eine Klothoide. OUT, wenn sie zwischen einem Bogen und einer Geraden liegt (in Stationierungsrichtung), IN, wenn sie zwischen einer Geraden und einem Bogen liegt (in Stationierungsrichtung). In Spalte 5 muss also eine Zahl stehen ungleich 0, Spalte 4 muss 0 sein (oder eben +-1). Zudem muss wohl drauf geguckt werden, was in der Zeile davor steht (Gerade oder Bogen)(wegen IN oder OUT).

Bei CURVEIN / CURVEOUT sieht es ähnlich aus, nur das hier die anliegenden Elemente vor und hinter der Klothoide gleich sind, also 2 Bögen (OUT) oder 2 Geraden (IN). Letzteres hab ich allerdings noch nie "in echt" gesehen, deshalb denke ich mir das nur. Aber da es im Trasseneditor CURVEIN gibt und ich CURVEOUT schon "in echt" gesehen habe (eben als Klothoide zwischen 2 Bögen = Eilinie) sollten wir das vll. einfach mal so annehmen...

CURVEOUT ist recht selten und bedarf wohl 2 Zahlenwerte ungleich 0 (oder 1) in Spalte 4 und 5. Guck mal in Andys Achsen 40 (Zeile 8 in der 040) und 80 (Zeile 4 in der 040), da siehst du das sehr gut, wenn du 040 und gsi direkt vergleichst. Der Radius in der Klothoidenzeile stimmt dabei übrigens jeweils mit dem Radius eine Zeile drüber überein - logisch, denn dort startet ja die Klothoide abgehend vom vorherigen Bogen).

Philipp

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Sunday, 16.08.2009, 18:56 (vor 5578 Tagen) @ philipp

sry Philipp hat ja schon geschrieben^^ gar nicht gesehen.

trotzdem hab ich noch nie nen curvein bzw -out gesehen. habe hier auch daten mit mehreren bögen nacheinander. alles wurde mit curve bezeichnet
Bsp ALN122 der A39 (sämtliche Daten der A39 sollten übrigens vom Amt sein):

*41....+0000000000ANr122 42....+00000000HZALIGNM 43....+00000000STACOORD 
*11....+0000000122000000 71....+00000000000CURVE 72....+0000000000370000 73....+0000000000000NON 81..40+0000004412915706 82..40+0000005796609501 
*11....+0000000122016807 71....+00000000000CURVE 72....-0000000000800000 73....+0000000000000NON 81..40+0000004412932442 82..40+0000005796611040 
*11....+0000000122052885 71....+00000000000CURVE 72....+0000000000024000 73....+0000000000000NON 81..40+0000004412968365 82..40+0000005796614337 
*11....+0000000122059482 71....+00000000000CURVE 72....+0000000000012000 73....+0000000000000NON 81..40+0000004412974939 82..40+0000005796614183 
*11....+0000000122067478 71....+00000000000CURVE 72....+0000000000036000 73....+0000000000000NON 81..40+0000004412981850 82..40+0000005796610462 
*11....+0000000122080202 71....+00000000STRAIGHT 72....+0000000000000NON 73....+0000000000000NON 81..40+0000004412988648 82..40+0000005796599784 
*11....+0000000122082833 71....+00000000000CURVE 72....+0000000000100000 73....+0000000000000NON 81..40+0000004412989649 82..40+0000005796597351 
*11....+0000000122100891 71....+0000000000000EOP 72....+0000000000000NON 73....+0000000000000NON 81..40+0000004412994977 82..40+0000005796580123 

edit: toll, dass ich das nicht auf meinen kommentar geantwortet hab^^ alles wieder durcheinander ;)

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Sunday, 16.08.2009, 18:40 (vor 5578 Tagen) @ MichaeL

Ja Micha,

straight = Gerade
curve= bogen (curvin, curcout sollte es nicht geben)
spirin (klothoide von Gerade auf Bogen)
spirout (klothoide von Bogen auf Gerade)

Erkennen tust du die natürlich an den Rohdaten (4+5. Spalte)
radius 0 und kp !=0 => spirin
radius !=0 und kp!=0 => spirout
radius !=0 und kp=0 => curve
radius=0 und kp=0 => straight

Ich hoffe, dass ich dich richtig verstanden habe ;)

Zu der Millimeterangabe. Meine Dateien kommen entweder aus einem Stratisexport oder vom Amt. Ich denke die Darstellung sollte REB-konform sein.

Avatar

Achskonvertierung *.040 --> *.GSI

MichaeL ⌂, Bad Vilbel, Sunday, 16.08.2009, 19:35 (vor 5578 Tagen) @ AWO

Hi Andy,

radius 0 und kp !=0 => spirin
radius !=0 und kp!=0 => spirout
radius !=0 und kp=0 => curve
radius=0 und kp=0 => straight

Ich hoffe, dass ich dich richtig verstanden habe ;)

Ich verstehe zumindest das, was Du mir sagen willst. Wenn es auch noch richtig ist, wäre es ja doch recht einfach ;-)

Zu der Millimeterangabe. Meine Dateien kommen entweder aus einem Stratisexport oder vom Amt. Ich denke die Darstellung sollte REB-konform sein.

Was ist REB? Mir solls egal sein. Ist mir nur aufgefallen. Bis jetzt habe ich noch keine Zeile Code erstellt. Ich arbeite gerade an einem Redesign meine Homepage.

Gruß Micha

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

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Sunday, 16.08.2009, 20:02 (vor 5578 Tagen) @ MichaeL

REB = Regelungen für die elektronische Bauabrechnung

Bin nicht sicher ob das Format von dort geregelt wird, weil ich auf die Schnelle nichts gefunden habe. Aber diese 040/021-Daten sind auch Austauschformate von Behörden, die wiederum Massenberechnungen uvm nach REB-Richtlinien prüfen.

Damit wollte ich nur sagen, dass diese Millimeterdarstellung auf jeden Fall bei Behörden anerkannt ist.

derletztekick wird neu gestaltet? Ich werde mal bei Gelegenheit reinschauen. Zumal ich wahrscheinlich bald Deformationsmessungen vor mir habe. Dann werde ich mal dein Programm nutzen ;) Aber alles zu seiner Zeit.

Schönen Sonntag noch.

Achskonvertierung *.040 --> *.GSI

philipp, Sunday, 16.08.2009, 22:44 (vor 5577 Tagen) @ AWO

zur REB-Konformität:

Ohne die Trennzeichen (also die Punkte als Kommas) ist es wahrscheinlich richtiger als mit den Punkten. Wenn nur eine Version zu programmieren geht, solltest du Andys Version nehmen. Nur wenn dein noch zu erstellendes Proggi mehrere Ausgangsversionen der 040 erkennen könnte, wären die Punkte eventuell mit anzunehmen.

Die meisten 040er, die ich gesehen habe, haben auch keine Punkte als Kommazeichen, sondern wie bei Andy nur Ziffern. Aber meine zuletzt erhaltenen Daten (nicht vom Amt, sondern von unserer übergeordneten Baufirma) hatten eben diese Punkte mit drin.
Egal: Die Punkte kann man zur Not auch streichen, sollte dein Proggi das später mal nicht beherrschen. Das wäre dann wohl ein vertretbarer manueller Vor-Aufwand... ;)

zu CURVEIN und CURVEOUT:

Andy, schmeiß mal dein RoadEd-Proggi an und leg eine Achse an. Bei der Elementauswahl (bei der manuellen Eingabe) gibt es diese beiden Punkte - und wie gesagt hab ich CURVEOUT schon in "freier Wildbahn" gesehen, als Klothoide zwischen 2 Bögen. Das gibt's ja eigentlich nicht, kommt als Eilinie (auch Eiklothoide genannt) aber eben doch vor.
Zudem: Guck dir die Achsen 40 und 80 an (Bramsche). [Und wie auch ich gerade eben beim nochmaligen reingucken sehe, wird dann auch noch eine Extrazeile (Index 74) exklusiv bei diesem CURVEOUT eingefügt (soll wohl den nur hier nötigen 2. Krümmungsradius darstellen!?)]
Nur das CURVEIN kenn ich eben auch nur aus dem RoadEd und hab mir dessen Aussehen eben zusammengereimt. Zur Not ignorieren wir das jetzt mal...

Avatar

Achskonvertierung *.040 --> *.GSI

MichaeL ⌂, Bad Vilbel, Monday, 17.08.2009, 09:12 (vor 5577 Tagen) @ philipp

Hi,

ich werde vll diese Woche mal anfangen, die 040 einzulesen. Das sollte ja recht fix gehen. Wenn Ihr dann die Bedingungen bezüglich der Textblöcke geklärt habt, können wir den Export/Umwandlung machen.

Im Moment mache ich meine Seite neu und mitte der Woche bin ich in Wettzell und hole HEIMDALL Heim. Damit habe ich dann auch 2.5Monate Daten, die sich auf eine Auswertung freuen. Es eielt ja alles nicht, oder?

Gruß Micha

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

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Monday, 17.08.2009, 18:15 (vor 5577 Tagen) @ philipp

@Philipp

oh ein curveout ;)

Das ist mir noch nie aufgefallen. Dann solltet ihr das aber auch nicht vernachlässigen.

wenn du natürlich auch ein curvein im roaded gesehen hast, könnte es sein, dass es eine klothoide als zwischenstück von bogen mit großem radius auf bogen mit kleinerem radius sein, da curveout von kleinen auf größeren radius ist. kann es leider jetzt nicht testen. Machst du es?

dann hat micha nen spzialfall für radius!=0 und KP!=0, was vorher laut meiner these spirin sein sollte. nun muss man schon die elemente vorher und nachher abfragen und gucken ob die klothoide zwischen 2 bögen liegt. aber immer noch machbar.

@Micha

Viel Glück bei der Auswertung ich hoffe, es kommt das raus, was du dir wünscht ;)
hast schon eine idee, was die auswertung der alten messung verzerrte? Sonneneinstrahlung? oder doch etwas anderes?
Sei fleissig ;)

Achskonvertierung *.040 --> *.GSI

philipp, Monday, 17.08.2009, 20:26 (vor 5577 Tagen) @ AWO

@ Micha:
Nö, extrem eilen tut es nicht. Da kommt das jetzt auf eine Woche mehr oder weniger auch nicht an. Ging ja bisher auch (wenn auch schlecht), dann geht das auch noch eine Zeit weiter so...

Auch ich wünsche übrigens viel Erfolg bei deinen Daten(auswertuntgen)!

oh ein curveout ;)
wenn du natürlich auch ein curvein im roaded gesehen hast, könnte es sein, dass es eine klothoide als zwischenstück von bogen mit großem radius auf bogen mit kleinerem radius sein, da curveout von kleinen auf größeren radius ist. kann es leider jetzt nicht testen. Machst du es?

Nun ja - interessante Theorie. Aber wie testet man sowas? Einfach CURVEIN im RoadEd klicken und Phantasiewerte eingeben wird ja wohl nicht klappen, oder?
Das müsste dann ja schon ein passendes Beispiel sein. Und wie ich mir das zurecht bastel, wüsste ich momentan nicht so wirklich... :confused:

Könnte es zudem nicht Zufall sein, daß CURVEOUT in unseren Beispielen immer von klein auf groß ist? Andererseits klingt deine Theorie gar nicht so blöde...
Welchen gsi-Leica-Fachmann können wir fragen? Andy, fahr mal fix vorbei bei dir in der schweizer Nachbarschaft... :-P

Wie dem auch sei: Für Micha stellt sich nicht das Problem, ein CURVExxx zu erkennen (Radius und Klotho-Parameter in einer Zeile), die Frage ist nur, ob IN oder OUT. Da müsste dann wohl analog zur "normalen" Klothoide (SPIRIN/OUT) schon die nächste Zeile mit heran geführt werden (oder die vorherige - eine von beiden sollte aber reichen, da der Radius beim CURVExxx ja immer mit einem der beiden benachbarten Radien übereinstimmen sollte nach deiner Theorie (Radius wie zuvor: CURVEOUT, Radius wie danach bzw. wie nicht davor: CURVEIN))

Das blöde gsi hätte aber auch selbst erkennen können, wir rum das krümmt (vor allem bei der "normalen" Klothoide), wenn vorher 'nen Bogen läuft und danach 'ne Gerade kommt.
Hilft nix - müssen wir jetzt durch. Bis auf CURVExxx ist es ja klar, und bis Micha richtig loslegt haben wir beide, Andy, das hoffentlich auch noch geklärt!


EDIT: Fällt mir gerade dirket nach dem lossenden ein:
Wenn man die vorhandene Achse mit dem CURVEOUT einfach umdreht, also das Ende der Anfang wird und umgekehrt - dann müsste unser CURVEOUT-Element doch auch andersrum "kurven" und laut Andys Theorie zum CURVEIN werden!?
Da muss ich in einer ruhigen Minute (wahrscheinlich nicht vor Samstag) mal manuell bei und den Rotz einfach mal andersrum eingeben im RoadEd. Wenn das Gerät dann immer noch die gleiche Koordinate abstecken will bei den koinzidierenden Stationen müsste deine Theorie ja bestätigt sein...

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Monday, 17.08.2009, 21:10 (vor 5576 Tagen) @ philipp

hab roaded nie zum manipulieren von achsen benutzt.

aber kann dein programm, was du jetzt nutzt, 040 exportieren?

dann leg einen linienzug an, mit 2 bögen und leg ne klothoide dazwischen, wandle es in eine achse um , exportier es als 040 und wandel es in gsi um (mit leica40). kA ob das mit deinem programm auch so ist, aber bei stratis wäre das einfach der beste weg.

teste dabei alle varianten von bögen durch (also r groß und r klein, sowie r+ und r-) letzteres kann ich mir zwar nicht vorstellen (da sollten 2klothoiden besser sein), aber in irgendeiner kombination sollte ja mal ein curvin rauskommen. oder es hat eine vollkommen andere funktion, die ich mir gerade nicht vorstellen kann.

ich habe morgen volles programm, mittwoch vielleicht auch, aber zum wochenende hin könnte es ruhiger werden. vielleicht finde ich ja mal zeit dafür.

Achskonvertierung *.040 --> *.GSI

philipp, Monday, 17.08.2009, 22:41 (vor 5576 Tagen) @ AWO

hab roaded nie zum manipulieren von achsen benutzt.

Naja - was man richtig rum eingeben kann, geht halt auch "falsch" rum, dachte ich mir. Das kann man dann gerne "Manipulation" der Achse nennen, ergibt aber immerhin eine 100%ig richtige Achse mit allem, was dazu gehört (wenn man sich denn nicht vertippt)...

aber kann dein programm, was du jetzt nutzt, 040 exportieren?

Ich sag es mal so...: Nein
Oder vielleicht auch: Eventuell, aber ich weiß nicht wie
AutoCAD allein kann jedenfalls keine Klothoiden, der Tiefbau-Aufsatz sollte es eigentlich können, aber einlesen ging auch nicht so recht, wie soll da auslesen laufen?
Ist eben ein nicht mehr gepflegtes, altes Stück Software (welches mir zu allem Überfluss auch nie richtig erklärt wurde außerhalb der Dinge, die ich seinerzeit dringend können musste). Wird Zeit für Stratis auf meiner Firmen-Platine (mit einer dann hoffentlich ordentlichen Einweisung)!!!

ich habe morgen volles programm, mittwoch vielleicht auch, aber zum wochenende hin könnte es ruhiger werden. vielleicht finde ich ja mal zeit dafür.

So ungefähr geht es mir auch, wobei ich eher morgen etwas mehr Ruhe habe als Mi/Do. Wenn ich schon immer allein 90 Minuten Anfahrt und 90 Minuten Abfahrt habe bei meinem neuesten Projekt kommt man zu kaum was anderem. Aber das Thema vertiefe ich dann auch mal am WE hier im anderen Thread...

@Micha:
Sehr schön! Wir bemühen uns, wie du liest. Glücklicherweise betrifft das ja eher Spezialfälle der Trassierung - aber auch die sollen natürlich ordentlich erfasst sein!

Avatar

Achskonvertierung *.040 --> *.GSI

MichaeL ⌂, Bad Vilbel, Monday, 17.08.2009, 22:03 (vor 5576 Tagen) @ philipp

Hallo,

@ Micha:
Nö, extrem eilen tut es nicht.

Mein Projekt Homepage ist erstmal soweit fertig, dass sie online ist --> derletztekick.com. Zwar fehlen noch ein paar Sachen aber inhaltlich sollte alles da sein soweit.

Ich werde vermutlich Ende der Woche mit den 40ern anfangen. Bis dahin habt Ihr dann vll noch ein paar Tests gemacht.

Gruß Micha

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

Avatar

Achskonvertierung: Schlüsselwort ermitteln

MichaeL ⌂, Bad Vilbel, Tuesday, 18.08.2009, 17:10 (vor 5576 Tagen) @ AWO

Hi,

Erkennen tust du die natürlich an den Rohdaten (4+5. Spalte)
radius 0 und kp !=0 => spirin
radius !=0 und kp!=0 => spirout
radius !=0 und kp=0 => curve
radius=0 und kp=0 => straight

Das war verständlich aber beinhaltet nicht die beiden Sonderfälle, wenn ich das richtig verstanden habe. Kann das noch mal einer Zusammenfassen:

 
 public String getGSIStationKeyword(int stationNumber) {
 
  AxisStation preStation     = stationNumber>0?this.getStation(stationNumber-1):null;
  AxisStation behindStation  = stationNumber<this.countStations()-1?this.getStation(stationNumber+1):null;
  AxisStation currentStation = this.getStation(stationNumber);
 
  if ( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() == 0) {
   return "STRAIGHT";
  }
  else if ( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() != 0) {
   return "SPIRIN";
  }
  else if ( currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0) {
   return "SPIROUT";
  }
  else if ( currentStation.getRadius() != 0 && currentStation.getClothoidParameter() == 0) {
   return "CURVE";
  }
 
 
  return null;
 }
 

Es gibt mit currentStation die Station, von der ich wissen möchte, was es für ein Typ ist und den zugehörigen Vorgänger preStation und Nachfolger behindStation.
Bekommt Ihr das hin, die if-Bedingung zu vervollständigen?

Micha

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

Avatar

Achskonvertierung: Schlüsselwort ermitteln

AWO, Nussbaumen AG, Tuesday, 18.08.2009, 18:22 (vor 5576 Tagen) @ MichaeL

Nach dem momentanen Stand (incl veränderter spirout und angenommenen curvout) müsste es so aussehen:


 public String getGSIStationKeyword(int stationNumber) {
 
  AxisStation preStation     = stationNumber>0?this.getStation(stationNumber-1):null;
  AxisStation behindStation  = stationNumber<this.countStations()-1?this.getStation(stationNumber+1):null;
  AxisStation currentStation = this.getStation(stationNumber);
 
  if ( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() == 0) {
   return "STRAIGHT";
  }
  else if ( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() != 0) {
   return "SPIRIN";
  }
  else if (( currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && preStation.getRadius() = 0 && behindStation.getRadius() != 0) || ( currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && preStation.getRadius() != 0 && behindStation.getRadius() = 0)) {
   return "SPIROUT";
  }
  else if ( currentStation.getRadius() != 0 && currentStation.getClothoidParameter() == 0) {
   return "CURVE";
  }
  else if ( currentStation.getRadius() != 0 && currentStation.getClothoidParameter() && != 0 && preStation.getRadius() !=0 && behindStation.getRadius !=0 && preStation.getRadius() < behindStation.getRadius() ) {
   return "CURVEOUT";
  }
 
 
 
  return null;
 }

Mit meinen low-level-javaskills würde ich sagen es stimmt so ;)
Wahrscheinlich kann man spirout (mit cleverer Klammersetzung) noch etwas kürzen oder?

Seh gerade die Klammersetzung stimmt nicht, aber keine zeit mehr das zu ändern^^

Avatar

Achskonvertierung: Schlüsselwort ermitteln

MichaeL ⌂, Bad Vilbel, Tuesday, 18.08.2009, 22:41 (vor 5575 Tagen) @ AWO

Hi,

Seh gerade die Klammersetzung stimmt nicht, aber keine zeit mehr das zu ändern^^

Die sollte sich einer von Euch beiden nehmen da ich eben nicht in der Lage bin, irgendwas zu testen. Bei den Schlüsselwörten nehme ich nachher die Methode und kopiere sie rein.

In Deiner Version (korrigiert von mir) fehlt noch CURVEIN oder gibts das doch nicht (mehr)?

  if ( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() == 0) {
   return "STRAIGHT";
  }
  else if ( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() != 0) {
   return "SPIRIN";
  }
  else if (( currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && preStation.getRadius() == 0 && behindStation.getRadius() != 0) || ( currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && preStation.getRadius() != 0 && behindStation.getRadius() == 0)) {
   return "SPIROUT";
  }
  else if ( currentStation.getRadius() != 0 && currentStation.getClothoidParameter() == 0) {
   return "CURVE";
  }
  else if ( currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && preStation.getRadius() !=0 && behindStation.getRadius() !=0 && preStation.getRadius() < behindStation.getRadius() ) {
   return "CURVEOUT";
  }

Weiterhin: SPIROUT und CURVEOUT gehen nicht, wenn es das erste bzw. letzte Element der Achse ist - laut Deinem Code, da preStation und behindStation dann nicht definiert wären.

Passt das auch?

Gruß Micha

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

Avatar

Achskonvertierung: Schlüsselwort ermitteln

AWO, Nussbaumen AG, Wednesday, 19.08.2009, 06:57 (vor 5575 Tagen) @ MichaeL

Laut Philipp sollte ein Curvein existieren. Fragt sich nur, wann das auftritt. Werde versuchen in den nächsten Tagen mal verschiedene 040 erzeugen. Wenn dabei kein curvin exportiert wird, dann weiß ich auch nicht...

Richtig Micha, dass natürlich kein Element am Anfang bzw Ende stehen kann, wo man behind- und prestation abfragt. Daran hab ich natürlich nicht gedacht ;)

Denke aber, dass das eigentlich kaum vorkommen sollte. Und da Achsen eigentlich immer weit über das Baugebiet hinausragen, könnte man das Element eigentlich auch zur Not entfernen, wenn es denn wirklich auftaucht. Müsste Philipp sich mal zu äußern, wie er sowas behandelt haben möchte. Er könnte theoretisch in dem Fall seine Achse ja auch manuell verlängern. Also nen Bogen oder eine Gerade rankonstruieren (und wenn das Element nur 1mm lang ist).

Naja das muss er wissen. Ich kann das Programm eh nicht nutzen, da ich ein 1200er im Einsatz habe. Ich könnte das Programm dann aber ehemaligen guten Kollegen weiterempfehlen. Dann ist es zumindest nicht nur für eine Person interessant ;)

So ich muss zur Arbeit. Frohes Schaffen!

Achskonvertierung: Schlüsselwort ermitteln

philipp, Wednesday, 19.08.2009, 22:06 (vor 5574 Tagen) @ AWO

Laut Philipp sollte ein Curvein existieren. Fragt sich nur, wann das auftritt.

Am WE werde ich mal mein Achs-Umdreh-Experiment starten. Dann gucken wir mal, ob Andys zuvor geäußerte (- mir immer logischer erscheinendere - ) Theorie zu CURVEIN stimmt!

Und da Achsen eigentlich immer weit über das Baugebiet hinausragen...

Hä?
Also die Anfänge und Enden meiner Achsen sind in der Regel mit abzustecken und nicht bloß "schmückendes Beiwerk".
Kilometer 43,2 auf der A39 mag ja überflüssig sein, aber meine Achsen sind meist unter 1 km lang und haben somit keine "Extras".

Allerdings fangen Achsen meist mit Geraden an und hören auch mit diesen auf. Vll. mal ein Bogen am Achsrand - aber eine Klothoide...? Kann mich nicht erinnern, daß mal gesehen zu haben.

Ich bin allerdings immer noch der Meinung, daß die Abfrage vom vorherigen Element oder (nicht und) dem nachfolgenden Element reichen müsste.
Zum Beispiel ist eine Klothoide dann SPIROUT, wenn zuvor ein Bogen liegt. Danach kommt die Gerade, aber das ist ja wurscht, weil logisch. Kommt doch noch ein 2. Bogen, ist es ja kein SPIROUT, sondern ein CURVEOUT (Eilinie) - diese erkennt man aber schon daran, daß in ihrer eigenen Zeile Radius und Klotho-Parameter auftauchen - passiert nicht bei normaler Klothoide.
[Vll. wäre es noch ein CURVEIN (falls Andy Theorie dazu denn stimmt) statt einem CURVEOUT, aber auch da würde wohl eine Nachbarzeile reichen zur Festlegung]

Usw.

Nur am Anfang oder Ende müsste man sich einmalig was anderes "ausdenken", da Schema-F ja 1x nicht anwendbar sein wird (z.B. vorheriges Element beim 1. Element). Und auch das alles ja nur, wenn beim Klotho-Parameter nicht 0 steht in besagter erster (oder eben letzter) Zeile...

Ich könnte das Programm dann aber ehemaligen guten Kollegen weiterempfehlen. Dann ist es zumindest nicht nur für eine Person interessant ;)

Das ist doch schön, wenn es mehr potentielle Nutzer als nur mich gibt... :D

Avatar

Achskonvertierung: Schlüsselwort ermitteln

AWO, Nussbaumen AG, Thursday, 20.08.2009, 07:01 (vor 5574 Tagen) @ philipp

zu dem absatz mit "hä" (hab immer noch keine AHnung wie ich hier zitieren kann...)

Ich bin nicht von einer kompletten Achse ausgegangen. Hätte ich wohl dazu schreiben sollen.
Wenn man ein Teilstück einer (großen, besser gesagt langen) Straße bekommt (zb bei einer Sanierung etc), wirst Du vielleicht nicht unbedingt die komplette Achse der Straße bekommen. Genau in diesem Fall könnte theoretisch die zur Verfügung gestellte Achse mit einer Klothoide anfangen oder enden. Also theoretisch mit einem Curveout oder einer Spir-variante. In diesem Fall wird das Teilstück der Achse aber noch so lang sein, dass "sie über das Baugebiet hinausragt".

Habe gerade mehrere Teilstücke von Achsen auf dem Tisch zu liegen, die zwar nicht mit Klothoiden anfangen, könnten sie aber theoretisch (weil irgendjemand des Rest einfach "abschneidet";). Und genau so einen Fall sollte die Umsetzung berücksichtigen, meiner Meinung nach. Weil die Achse dann aber noch so lang gelassen wird, dass sie weit über das Baugebiet hinausragt, könnte man solche Elemente abschneiden.

Beispiel Bramsche Achse 40:

curvout in der Mitte:
04040 40321687 51200 -1250000 0 349944540 3431499245 5805784486
04040 40361195 39508 -1250000 -80000 148734880 3431514263 5805820850
04040 40405284 44089 -9000000 0 20870190 3431519002 5805864606

spirout in der Mitte:
04040 40523894 37684 -4500000 0 3963626490 3431515865 5805983122
04040 40570748 46854 -4500000 -180000 3897341270 3431510761 5806029676
04040 40642748 72000 0 0 3846411690 3431495433 5806100004

Beide Elemente haben Radius und Klothoidenparameter in ihrer Zeile stehen. Erkennt man aber nur, weil bei Spirout das nachfolgende Element eine Gerade ist. Also muss man für dieses Beispiel beide (vorheriges und fogendes) Element abfragen, um zu sehen, ob das zu betrachtende Element zwischen 2 Bögen liegt.


Kannst Du mir folgen Philipp, oder bin ich heute morgen noch nicht ganz bei der Sache und auf nem Holzweg?

Avatar

Achskonvertierung: Schlüsselwort ermitteln

MichaeL ⌂, Bad Vilbel, Thursday, 20.08.2009, 15:46 (vor 5574 Tagen) @ AWO

Hi,

wenn Ihr beide Euch einig seid, wie die Schlüsselwörter zustande kommen, wäre der Konverter 040->GSI fertig. Mit der bisherigen Methode von Andy stimmt es nicht ganz, wie ich bei einem Beispiel gesehen habe. Dort gibt's auch falsche Zuordnungen.

Wie gesagt, es ist das einzige was hier noch fehlt.

Und Andy, das 1200er kann GSI-Dateien verarbeiten: Hauptmenü -> Convert -> Import ASCII/GSI Data to Job
Du bist also noch im Rennen ;-)

[image]

Micha

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

Tags:
GSI, 040, Achse

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Thursday, 20.08.2009, 18:28 (vor 5574 Tagen) @ AWO

kommt der fehler bei spirout?

ich habs jetzt mal kürzer:

 
  else if ( currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && behindStation.getRadius() = 0)
   return "SPIROUT";

Also danach muss eine Gerade sein (Radius 0). Das sollte bei Spirout reichen.

Curveout bzw -in werde ich noch nicht angucken, da noch nicht 100%ig feststeht, wie dort unterschieden wird.

Kannst den Code mal testen Micha? Oder kommt woanders nen Fehler?

Avatar

Achskonvertierung *.040 --> *.GSI

MichaeL ⌂, Bad Vilbel, Thursday, 20.08.2009, 20:46 (vor 5573 Tagen) @ AWO

Hallo Andy,

ich habe eine 40er Datei, wo ich auch eine GSI-Datei zu habe, aus Deinem Ordner (von FLIP bekommen) gewandelt. Nachfolgend die Datei, die ich gelesen habe, was rausgekommen ist, die SOLL-Datei und ein Vergleich der Schlüsselwörter.

Am Ende noch die Methode, wie sie im Moment aussieht.


Folgende Eingangsdaten (von Dir):


04040  39996930       0   -20518930        0  2150519900  3431497165  5805669054
04040  40001683    4753           1    45000  2149045240  3431496057  5805664432
04040  40046683   45000      450000        0  2467355130  3431478709  5805623450
04040  40166471  119788      450000    45000   162014390  3431401750  5805664926
04040  40211471   45000           0        0   480324270  3431426442  5805701950
04040  40270487   59016          -1   -80000   480324270  3431466863  5805744950
04040  40321687   51200    -1250000        0   349944540  3431499245  5805784486
04040  40361195   39508    -1250000   -80000   148734880  3431514263  5805820850
04040  40405284   44089    -9000000        0    20870190  3431519002  5805864606
04040  40486210   80926          -1        0  3963626490  3431518017  5805945499
04040  40523894   37684    -4500000        0  3963626490  3431515865  5805983122
04040  40570748   46854    -4500000  -180000  3897341270  3431510761  5806029676
04040  40642748   72000           0        0  3846411690  3431495433  5806100004
04040  40698230   55482           0        0  3846411690  3431482177  5806153879
04040  40698231       1           0        0  3846411690  3431482177  5806153880

Die GSI, die ich daraus mache, lautet:


*41....+0000000000000040 42....+00000000HZALIGNM 43....+00000000STACOORD 
*11....+0000000039996930 71....+00000000000CURVE 72....-0000000020518930 72....+0000000000000NON 81..10+0000003431497165 82..10+0000005805669054 
*11....+0000000040001683 71....+00000000CURVEOUT 72....+0000000000000001 72....+0000000000045000 81..10+0000003431496057 82..10+0000005805664432 
*11....+0000000040046683 71....+00000000000CURVE 72....+0000000000450000 72....+0000000000000NON 81..10+0000003431478709 82..10+0000005805623450 
*11....+0000000040166471 71....+000000000SPIROUT 72....+0000000000450000 72....+0000000000045000 81..10+0000003431401750 82..10+0000005805664926 
*11....+0000000040211471 71....+00000000STRAIGHT 72....+0000000000000NON 72....+0000000000000NON 81..10+0000003431426442 82..10+0000005805701950 
*11....+0000000040270487 71....+00000000STRAIGHT 72....-0000000000000001 72....-0000000000080000 81..10+0000003431466863 82..10+0000005805744950 
*11....+0000000040321687 71....+00000000000CURVE 72....-0000000001250000 72....+0000000000000NON 81..10+0000003431499245 82..10+0000005805784486 
*11....+0000000040361195 71....+00000000STRAIGHT 72....-0000000001250000 72....-0000000000080000 81..10+0000003431514263 82..10+0000005805820850 
*11....+0000000040405284 71....+00000000000CURVE 72....-0000000009000000 72....+0000000000000NON 81..10+0000003431519002 82..10+0000005805864606 
*11....+0000000040486210 71....+00000000000CURVE 72....-0000000000000001 72....+0000000000000NON 81..10+0000003431518017 82..10+0000005805945499 
*11....+0000000040523894 71....+00000000000CURVE 72....-0000000004500000 72....+0000000000000NON 81..10+0000003431515865 82..10+0000005805983122 
*11....+0000000040570748 71....+000000000SPIROUT 72....-0000000004500000 72....-0000000000180000 81..10+0000003431510761 82..10+0000005806029676 
*11....+0000000040642748 71....+00000000STRAIGHT 72....+0000000000000NON 72....+0000000000000NON 81..10+0000003431495433 82..10+0000005806100004 
*11....+0000000040698230 71....+00000000STRAIGHT 72....+0000000000000NON 72....+0000000000000NON 81..10+0000003431482177 82..10+0000005806153879 
*11....+0000000040698231 71....+0000000000000EOP 72....+0000000000000NON 72....+0000000000000NON 81..10+0000003431482177 82..10+0000005806153880 


Die GSI, die entstehen solle, lautet aber:

*41....+0000000000ANr 40 42....+00000000HZALIGNM 43....+00000000STACOORD 
*11....+0000000039996930 71....+00000000000CURVE 72....-0000000002051893 73....+0000000000000NON 81..40+0000003431497165 82..40+0000005805669054 
*11....+0000000040001683 71....+0000000000SPIRIN 72....+0000000000045000 73....+0000000000000NON 81..40+0000003431496057 82..40+0000005805664432 
*11....+0000000040046683 71....+00000000000CURVE 72....+0000000000045000 73....+0000000000000NON 81..40+0000003431478709 82..40+0000005805623450 
*11....+0000000040166471 71....+000000000SPIROUT 72....+0000000000045000 73....+0000000000000NON 81..40+0000003431401750 82..40+0000005805664926 
*11....+0000000040211471 71....+00000000STRAIGHT 72....+0000000000000NON 73....+0000000000000NON 81..40+0000003431426442 82..40+0000005805701950 
*11....+0000000040270487 71....+0000000000SPIRIN 72....-0000000000080000 73....+0000000000000NON 81..40+0000003431466863 82..40+0000005805744950 
*11....+0000000040321687 71....+00000000000CURVE 72....-0000000000125000 73....+0000000000000NON 81..40+0000003431499245 82..40+0000005805784486 
*11....+0000000040361195 71....+00000000CURVEOUT 72....-0000000000125000 73....+0000000000000NON 74....-0000000000900000 81..40+0000003431514263 82..40+0000005805820850 
*11....+0000000040405284 71....+00000000000CURVE 72....-0000000000900000 73....+0000000000000NON 81..40+0000003431519002 82..40+0000005805864606 
*11....+0000000040486210 71....+00000000STRAIGHT 72....+0000000000000NON 73....+0000000000000NON 81..40+0000003431518017 82..40+0000005805945499 
*11....+0000000040523894 71....+00000000000CURVE 72....-0000000000450000 73....+0000000000000NON 81..40+0000003431515865 82..40+0000005805983122 
*11....+0000000040570748 71....+000000000SPIROUT 72....-0000000000180000 73....+0000000000000NON 81..40+0000003431510761 82..40+0000005806029676 
*11....+0000000040642748 71....+00000000STRAIGHT 72....+0000000000000NON 73....+0000000000000NON 81..40+0000003431495433 82..40+0000005806100004 
*11....+0000000040698230 71....+00000000STRAIGHT 72....+0000000000000NON 73....+0000000000000NON 81..40+0000003431482177 82..40+0000005806153879 
*11....+0000000040698231 71....+0000000000000EOP 72....+0000000000000NON 73....+0000000000000NON 81..40+0000003431482177 82..40+0000005806153880 

Direkter Vergleich:

HZALIGNM  HZALIGNM ok
   CURVE     CURVE ok
  SPIRIN  CURVEOUT FEHLER
   CURVE     CURVE OK
 SPIROUT   SPIROUT OK
STRAIGHT  STRAIGHT OK
  SPIRIN  STRAIGHT FEHLER
   CURVE     CURVE OK
CURVEOUT  STRAIGHT FEHLER
   CURVE     CURVE OK
STRAIGHT     CURVE FEHLER
   CURVE     CURVE OK
 SPIROUT   SPIROUT OK
STRAIGHT  STRAIGHT OK
STRAIGHT  STRAIGHT OK
     EOP       EOP OK

Die Methode sieht, mit Deiner gemachten Änderung, nun so aus:

private String getGSIStationKeyword(int stationNumber) {
  // letztes Element --> EOP
  if (stationNumber==this.countStations()-1)
   return "EOP"; 
 
  AxisStation preStation     = stationNumber > 0?this.getStation(stationNumber-1):null;
  AxisStation behindStation  = stationNumber < this.countStations()-1?this.getStation(stationNumber+1):null;
  AxisStation currentStation = this.getStation(stationNumber);
 
  if ( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() != 0) {
   return "SPIRIN";
  }
 
  else if ( currentStation.getRadius() != 0 && currentStation.getClothoidParameter() == 0) {
   return "CURVE";
  }
 
  else if ( preStation != null && currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && behindStation.getRadius() == 0)
   return "SPIROUT";
 
  else if ( preStation != null &&  currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && preStation.getRadius() !=0 && behindStation.getRadius() !=0 && preStation.getRadius() < behindStation.getRadius() ) {
   return "CURVEOUT";
  }
  else //( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() == 0) {
   return "STRAIGHT";
 
 }

Wie Du siehst, frage ich preStation != null ab. Ich mache es, um zu prüfen, ob es überhaupt ein Vorgänger gibt. Wenn preStation null ist, ist das aktuelle Element das erste und es gibt keinen Vorgänger - das nur zur Erklärung.

Ich hoffe, das hilft weiter.
Gruß Micha

P.S. Code 74 in der GSI habe ich auch noch nicht ganz kapier, wann kommt der?

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

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Thursday, 20.08.2009, 21:26 (vor 5573 Tagen) @ MichaeL

Hmm wenn ich mir das so angucke, scheint aber die Zeile mit straight falsch zu sein, da der Radius -1 ist:

04040  40486210   80926          -1        0  3963626490  3431518017  5805945499

Weiterhin sitzt eine spirin zwischen 2 Bögen...

04040  39996930       0   -20518930        0  2150519900  3431497165  5805669054
04040  40001683    4753           1    45000  2149045240  3431496057  5805664432
04040  40046683   45000      450000        0  2467355130  3431478709  5805623450

hmm... wird der große Radius des ersten Elements bei leica40 (mit einer folgenden Klothoide) als Gerade interpretiert?

curvout kannst erstmal raus nehmen. muss man erstmal checken, wann das eintrifft.

oder kannst ja mal das übernehmen:

  else if ( preStation != null &&  currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && preStation.getRadius() !=0 && behindStation.getRadius() !=0) {
   return "CURVEOUT";
 


damit sollte dann das 2. Element als Curvout interpretiert werden. was auch "falsch" wäre laut dem "Ergebnis".

sieht so aus, als wenn die 74 nur bei nem curveout kommt. sieht wie der Anschlussradius des folgenden Elements aus.


Philipp kannst das mal nochmal mit leica40 umsetzen, oder mit roaded angucken? Stimmt das angebliche Ergebnis überhaupt? Oder gibts Fehlermeldungen mit roaded?

Ich hoffe morgen Zeit auf Arbeit zu finden... Kann aber nichts versprechen :(

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Thursday, 20.08.2009, 21:40 (vor 5573 Tagen) @ AWO

Weiterhin fällt mir auf, dass diese Zeie:

04040  40270487   59016          -1   -80000   480324270  3431466863  5805744950

als Gerade interpretiert wird (bei Dir Micha).
Komischerwiese ist klar definiert, dass straight keinen klothoidenparameter haben kann.

Wenn ich das so betrachte, ist es wohl keine Arbeit, die schnell nebenbei gemacht ist :)

Hab meine Sachen schonmal auf nen Stick geschrieben. Ich hoffe, Zeit zu finden.

Gehabt Euch wohl, gn8

Avatar

Achskonvertierung *.040 --> *.GSI

MichaeL ⌂, Bad Vilbel, Thursday, 20.08.2009, 22:46 (vor 5573 Tagen) @ AWO

Hallo,

04040  40270487   59016          -1   -80000   480324270  3431466863  5805744950


als Gerade interpretiert wird (bei Dir Micha).
Komischerwiese ist klar definiert, dass straight keinen klothoidenparameter haben kann.

Woran erkennst Du an dieser Zeile, dass es keinen Klothoidenparameter gibt? Keinen Radius okay (muss ich das Vorzeichen eigentlich speichern für irgendwas oder sind negative Werte hier immer Tabu?) Der K.-Parameter ist -80000, ist der okay oder ?!? Darf der negativ sein?

Micha

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

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Thursday, 20.08.2009, 23:06 (vor 5573 Tagen) @ MichaeL

Hallo,

04040  40270487   59016          -1   -80000   480324270  3431466863  5805744950


als Gerade interpretiert wird (bei Dir Micha).
Komischerwiese ist klar definiert, dass straight keinen klothoidenparameter haben kann.

Woran erkennst Du an dieser Zeile, dass es keinen Klothoidenparameter gibt?

Doch es gibt einen (-80000), aber lt dem, dürfte es keine Gerade werden:

 
  else //( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() == 0) {
   return "STRAIGHT";


zum "Ergebnis", was wir als richtig annehmen:
Wenn man sich mal genauer Spirin anguckt, scheint auf einmal Radius und Klothoidenparameter vertauscht zu sein.

*11....+0000000040211471 71....+00000000STRAIGHT 72....+0000000000000NON 73....+0000000000000NON 81..40+0000003431426442 82..40+0000005805701950 
*11....+0000000040270487 71....+0000000000SPIRIN 72....-0000000000080000 73....+0000000000000NON 81..40+0000003431466863 82..40+0000005805744950

bei der gerade steht für 73 Radius NON -> ok 73 scheint radius zu sein
darunter steht spirin für 73 scheinbar der klothoidenparameter mit -80000 ...

Diese Datei muss erstmal geprüft werden. Man sollte vll erstmal eine andere 040 zum testen nehmen.

EDIT: sehe gerade dein post. scheint also zu funktionieren ;)
Komisch, komisch ... Wieso ist jetzt der radius wieder richtig rum?^^ oO es ist vll zu spät dafür, ich muss ins Bett :P

Avatar

Achskonvertierung *.040 --> *.GSI

MichaeL ⌂, Bad Vilbel, Friday, 21.08.2009, 09:08 (vor 5573 Tagen) @ AWO

Hallo,

Doch es gibt einen (-80000), aber lt dem, dürfte es keine Gerade werden:

 
else //( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() == 0) {
return "STRAIGHT";

Doch, da es der ELSE-Zweig ist und die Bedingung, die noch da steht, auskommentiert ist und nicht berücksichtigt wird. Es wird also immer eine Gerade, wenn keine Deiner anderen Bedingungen zu trifft. Wenn es dann keine Gerade ist, stimmt etwas vorher nicht.

bei der gerade steht für 73 Radius NON -> ok 73 scheint radius zu sein
darunter steht spirin für 73 scheinbar der klothoidenparameter mit -80000 ...
Diese Datei muss erstmal geprüft werden. Man sollte vll erstmal eine
andere 040 zum testen nehmen.

Ich werde mal schauen, ob es hier ggf. noch ein Copy&Past Fehler habe. Ich hatte bisher immer nur auf die Schlüsselwörter geschaut. Unwahrscheinlich ist, dass es in einer Zeile geht und in einer anderen nicht, da ich die Datensätze in einer Schleife abarbeite. Also entweder der Radius ist immer falsch oder eben immer richtig. Zwischen 2 Zeilen darf da nichts mehr variieren.

Komisch, komisch ... Wieso ist jetzt der radius wieder richtig rum?^^

Ich habe nur geändert, dass ein kleiner Radius von 1mm als Radius Null angenommen wird - siehe Hinweis von Flip. Ob das schon das Problem vollständig löst, weiß ich aber nicht. Am WE ist sicher Zeit, das eine oder andere zu testen. Ich werde eine BAT nebst JAR fertig machen und zustellen.

Micha

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

Achskonvertierung *.040 --> *.GSI

philipp, Thursday, 20.08.2009, 21:38 (vor 5573 Tagen) @ MichaeL

Andy, zum zitieren, musst du im Antwortfeld direkt darüber das blaue "zitieren"-Schriftstück drücken und dann händisch löschen/schieben/zwischendurch-antworten...

Gibt es tatsächlich Klothoiden (SPIRIN/OUT), wo neben dem Parameter auch ein Radius steht bzw. ist das immer so (hab jetzt gerade keine passenden Dateien zur Hand auf die Schnelle)? Dann hast du recht, dann muss in 2 Richtungen (vorher/nachher) abgefragt werden!

@Micha:
Ohne jetzt lange drüber nachgedacht zu haben: Könnten deine Differenzen an den "Einsen" in der .040 liegen, die ich hier schon mal vorsorglich erwähnt hatte?
Denn 1 oder -1, was ja +-0,001 entspricht und somit quasi 0 ist, ist ja trotzdem nicht genau =0. Falls du aber nach einer 0 suchst oder eben gerade nicht, verfälscht es das Ergebnis.

Kurt gefasst: +-1 bei Radius (und wohl auch bei Klothoidenparameter) soll eigentlich 0 heißen. Da hat wohl irgendein automatisch ausgebendes Stück Software beim Achsplaner zu genau gerechnet und du interpretierst jetzt die +-1 als "echten" Radius statt als Rundungsanomalie.
Nur so ein Gedanke, aber z.B. in Zeile 11 der .gsi (Zeile 10 in .040) wäre das wohl die Erklärung...

[Überhaupt sehe solch ein Radius von 0,001 m in der Örtlichkeit eher "bescheiden" aus (ganz davon abgesehen, daß die Bogenlänge, die es abzustecken gibt, auch nicht gerade exorbitant lang wäre ;)).]


EDIT: Jetzt war der Andy wieder schneller... :)
Also ich gedenke mal ab WE Zeit zu finden - dann können wir gerne mal mit roaded und co. Achsen kreieren!

Avatar

Achskonvertierung *.040 --> *.GSI

MichaeL ⌂, Bad Vilbel, Thursday, 20.08.2009, 22:40 (vor 5573 Tagen) @ philipp

Hallo Ihr beiden,

@Andy: Ich habe Dein neues CURVEOUT drin - Methode am Ende des Postings!

ich kann einen Radius von 1 mm abfangen. Das habe ich mal wie folgt gemacht:

this.radius = Math.abs(r)<=1?0.0:r;

Wenn der Radius kleiner-gleich Eins [mm] ist, dann setze ich diesen zu 0 (Null) beim Erzeugen der Instanz. Bin ich zwar nicht so begeistert von aber das muss ich wohl auch nicht ;-)

Wenn ich es dann durchlaufen lasse, dann erhalte ich:

*41....+0000000000000040 42....+00000000HZALIGNM 43....+00000000STACOORD 
*11....+0000000039996930 71....+00000000000CURVE 72....-0000000020518930 72....+0000000000000NON 81..10+0000003431497165 82..10+0000005805669054 
*11....+0000000040001683 71....+0000000000SPIRIN 72....+0000000000000NON 72....+0000000000045000 81..10+0000003431496057 82..10+0000005805664432 
*11....+0000000040046683 71....+00000000000CURVE 72....+0000000000450000 72....+0000000000000NON 81..10+0000003431478709 82..10+0000005805623450 
*11....+0000000040166471 71....+000000000SPIROUT 72....+0000000000450000 72....+0000000000045000 81..10+0000003431401750 82..10+0000005805664926 
*11....+0000000040211471 71....+00000000STRAIGHT 72....+0000000000000NON 72....+0000000000000NON 81..10+0000003431426442 82..10+0000005805701950 
*11....+0000000040270487 71....+0000000000SPIRIN 72....+0000000000000NON 72....-0000000000080000 81..10+0000003431466863 82..10+0000005805744950 
*11....+0000000040321687 71....+00000000000CURVE 72....-0000000001250000 72....+0000000000000NON 81..10+0000003431499245 82..10+0000005805784486 
*11....+0000000040361195 71....+00000000CURVEOUT 72....-0000000001250000 72....-0000000000080000 81..10+0000003431514263 82..10+0000005805820850 
*11....+0000000040405284 71....+00000000000CURVE 72....-0000000009000000 72....+0000000000000NON 81..10+0000003431519002 82..10+0000005805864606 
*11....+0000000040486210 71....+00000000STRAIGHT 72....+0000000000000NON 72....+0000000000000NON 81..10+0000003431518017 82..10+0000005805945499 
*11....+0000000040523894 71....+00000000000CURVE 72....-0000000004500000 72....+0000000000000NON 81..10+0000003431515865 82..10+0000005805983122 
*11....+0000000040570748 71....+000000000SPIROUT 72....-0000000004500000 72....-0000000000180000 81..10+0000003431510761 82..10+0000005806029676 
*11....+0000000040642748 71....+00000000STRAIGHT 72....+0000000000000NON 72....+0000000000000NON 81..10+0000003431495433 82..10+0000005806100004 
*11....+0000000040698230 71....+00000000STRAIGHT 72....+0000000000000NON 72....+0000000000000NON 81..10+0000003431482177 82..10+0000005806153879 
*11....+0000000040698231 71....+0000000000000EOP 72....+0000000000000NON 72....+0000000000000NON 81..10+0000003431482177 82..10+0000005806153880 

bzw. im direkten Vergleich:

HZALIGNM   HZALIGNM
   CURVE      CURVE
  SPIRIN     SPIRIN
   CURVE      CURVE
 SPIROUT    SPIROUT
STRAIGHT   STRAIGHT
  SPIRIN     SPIRIN
   CURVE      CURVE
CURVEOUT   CURVEOUT
   CURVE      CURVE
STRAIGHT   STRAIGHT
   CURVE      CURVE
 SPIROUT    SPIROUT
STRAIGHT   STRAIGHT
STRAIGHT   STRAIGHT
     EOP        EOP

Scheint alles okay zu sein. Trotzdem sollte einer das nachher mal auf Herz und Nieren testen - einer von Euch beiden nicht ich ;-)

Ich habe mir noch keine Gedanken zu der anderen Datei (*.021) gemacht, daher habe ich noch keine Oberfläche. Würde Euch eine *.BAT reichen, wo man die Eingabedatei anpassen muss zum Testen?

Gruß Micha


Die derzeit verwendete Methode:

/**
 * Liefert die GSI-Schluesselwoerter fuer die Achsenelemente
 * @param stationNumber
 * @return keyWord
 */
private String getGSIStationKeyword(int stationNumber) {
 // letztes Element --> EOP
 if (stationNumber==this.countStations()-1)
  return "EOP"; 
 
 AxisStation preStation     = stationNumber > 0?this.getStation(stationNumber-1):null;
 AxisStation behindStation  = stationNumber < this.countStations()-1?this.getStation(stationNumber+1):null;
 AxisStation currentStation = this.getStation(stationNumber);
 
 if ( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() != 0) 
  return "SPIRIN";
 
 else if ( currentStation.getRadius() != 0 && currentStation.getClothoidParameter() == 0) 
  return "CURVE";
 
 else if ( preStation != null && currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && behindStation.getRadius() == 0)
  return "SPIROUT";
 
 else if ( preStation != null &&  currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && preStation.getRadius() !=0 && behindStation.getRadius() !=0) 
  return "CURVEOUT";
 
 else //( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() == 0) {
  return "STRAIGHT";
 
}

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

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Thursday, 20.08.2009, 23:50 (vor 5573 Tagen) @ MichaeL

Auch wenn ich nun alles durcheinander poste muss ich noch drauf antworten, weil mir in der Zigarettenlänge noch was aufgefallen ist.

Das Programm liefert momentan 2x die 72. Eins davon sollte 73 sein. Aber das ist das kleinere Problem. Super Arbeit schonmal Micha.

Aber ich glaube, dass dort noch Klärungsbedarf ist:
Mich macht noch das irgendwie wuschig, was ich hier schon ansatzweise erwähnte: http://forum.diegeodaeten.de/index.php?id=2594
Ich poste es hier nochmal egal, damit alle Punkte in diesem letzten Post stehen...

Das was wir momentan als richtiges Ergebnis ansehen liefert ja das:

*41....+0000000000ANr 40 42....+00000000HZALIGNM 43....+00000000STACOORD 
*11....+0000000039996930 71....+00000000000CURVE 72....-0000000002051893 73....+0000000000000NON 81..40+0000003431497165 82..40+0000005805669054 
*11....+0000000040001683 71....+0000000000SPIRIN 72....+0000000000045000 73....+0000000000000NON 81..40+0000003431496057 82..40+0000005805664432 
*11....+0000000040046683 71....+00000000000CURVE 72....+0000000000045000 73....+0000000000000NON 81..40+0000003431478709 82..40+0000005805623450 
*11....+0000000040166471 71....+000000000SPIROUT 72....+0000000000045000 73....+0000000000000NON 81..40+0000003431401750 82..40+0000005805664926 
*11....+0000000040211471 71....+00000000STRAIGHT 72....+0000000000000NON 73....+0000000000000NON 81..40+0000003431426442 82..40+0000005805701950 
*11....+0000000040270487 71....+0000000000SPIRIN 72....-0000000000080000 73....+0000000000000NON 81..40+0000003431466863 82..40+0000005805744950 
*11....+0000000040321687 71....+00000000000CURVE 72....-0000000000125000 73....+0000000000000NON 81..40+0000003431499245 82..40+0000005805784486 
*11....+0000000040361195 71....+00000000CURVEOUT 72....-0000000000125000 73....+0000000000000NON 74....-0000000000900000 81..40+0000003431514263 82..40+0000005805820850 
*11....+0000000040405284 71....+00000000000CURVE 72....-0000000000900000 73....+0000000000000NON 81..40+0000003431519002 82..40+0000005805864606 
*11....+0000000040486210 71....+00000000STRAIGHT 72....+0000000000000NON 73....+0000000000000NON 81..40+0000003431518017 82..40+0000005805945499 
*11....+0000000040523894 71....+00000000000CURVE 72....-0000000000450000 73....+0000000000000NON 81..40+0000003431515865 82..40+0000005805983122 
*11....+0000000040570748 71....+000000000SPIROUT 72....-0000000000180000 73....+0000000000000NON 81..40+0000003431510761 82..40+0000005806029676 
*11....+0000000040642748 71....+00000000STRAIGHT 72....+0000000000000NON 73....+0000000000000NON 81..40+0000003431495433 82..40+0000005806100004 
*11....+0000000040698230 71....+00000000STRAIGHT 72....+0000000000000NON 73....+0000000000000NON 81..40+0000003431482177 82..40+0000005806153879 
*11....+0000000040698231 71....+0000000000000EOP 72....+0000000000000NON 73....+0000000000000NON 81..40+0000003431482177 82..40+0000005806153880 
 

Mir fällt dabei auf, dass das bei mit allen Klothoiden der Klothoidenparameter auf einmal in der 72 steht, wo bei den Bögen der Radius drin steht.
Und bei 73 steht dauerhaft NON drin. Das scheint also nicht der Klothoidenparameter zu sein.
Irgendwas ist so noch nicht stimmig. Oder die GSI die läuft so nicht.

Scheiße nun ist es extrem spät. Andere 040/GSI werd ich jetzt nicht mehr durchgucken ;)

Naja ist ja bald Wochenende, dann wäre mehr Zeit.
Kannst mir die *.bat ja mal zuschicken Micha.

btw Die 3-Minuten-Editierzeit gehen mir tierisch auf die Nüsse^^ Mach bitte 10 draus ;)

So nun aber -> gn8!

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Friday, 21.08.2009, 18:08 (vor 5573 Tagen) @ AWO
bearbeitet von MichaeL, Friday, 21.08.2009, 20:18

So habe neue Tests gemacht. Leider fehlt noch eine Kombination. Habe es eilig gemacht, und deswegen ging es mir wohl durch die Lappen... Leider brauchen wir noch mindestens eine andere Möglichkeiten, um abschließend zu sagen wie was definiert wird...

Test 1:

04000    341424    0000     1701518     0000  3876941500      522651      330034
04000    361983   20559     1701518   -49995  3953862003      519929      350399
04000    411745   49762      387812     0000   455389841      531352      397486
04000    437191   25446      387812     0000   873098315      552948      410064
*41....+00000000000ANr 0 42....+00000000HZALIGNM 43....+00000000STACOORD 
*11....+0000000000341424 71....+00000000000CURVE 72....+0000000000170152 73....+0000000000000NON 81..40+0000000000522651 82..40+0000000000330034 
*11....+0000000000361983 71....+000000000CURVEIN 72....+0000000000170152 73....+0000000000000NON 74....+0000000000038781 81..40+0000000000519929 82..40+0000000000350399 
*11....+0000000000411745 71....+00000000000CURVE 72....+0000000000038781 73....+0000000000000NON 81..40+0000000000531352 82..40+0000000000397486 
*11....+0000000000437191 71....+0000000000000EOP 72....+0000000000000NON 73....+0000000000000NON 81..40+0000000000552948 82..40+0000000000410064 

Test 2:

04004      7513    0000      260262     0000  1388179314      756279      281425
04004     36131   28618      260262   -10000  2088183775      767151      256495
04004     39864    3733      132009     0000  2223851302      766289      252870
04004     49433    9569      132009     0000  2685331077      760159      245796


*41....+00000000000ANr 4 42....+00000000HZALIGNM 43....+00000000STACOORD 
*11....+0000000000007513 71....+00000000000CURVE 72....+0000000000026026 73....+0000000000000NON 81..40+0000000000756279 82..40+0000000000281425 
*11....+0000000000036131 71....+000000000CURVEIN 72....+0000000000026026 73....+0000000000000NON 74....+0000000000013201 81..40+0000000000767151 82..40+0000000000256495 
*11....+0000000000039864 71....+00000000000CURVE 72....+0000000000013201 73....+0000000000000NON 81..40+0000000000766289 82..40+0000000000252870 
*11....+0000000000049433 71....+0000000000000EOP 72....+0000000000000NON 73....+0000000000000NON 81..40+0000000000760159 82..40+0000000000245796 

Test 3:

04001      0000    0000     -387812     0000  2873098620      552948      410064
04001     25446   25446     -387812    49995  2455390689      531352      397486
04001     75208   49762    -1701518     0000  1953862003      519929      350399
04001     95766   20559    -1701518     0000  1876941500      522651      330034

*41....+00000000000ANr 1 42....+00000000HZALIGNM 43....+00000000STACOORD 
*11....+0000000000000000 71....+00000000000CURVE 72....-0000000000038781 73....+0000000000000NON 81..40+0000000000552948 82..40+0000000000410064 
*11....+0000000000025446 71....+00000000CURVEOUT 72....-0000000000038781 73....+0000000000000NON 74....-0000000000170152 81..40+0000000000531352 82..40+0000000000397486 
*11....+0000000000075208 71....+00000000000CURVE 72....-0000000000170152 73....+0000000000000NON 81..40+0000000000519929 82..40+0000000000350399 
*11....+0000000000095766 71....+0000000000000EOP 72....+0000000000000NON 73....+0000000000000NON 81..40+0000000000522651 82..40+0000000000330034 

Test 4:

04003      0000    0000     -132009     0000   685331073      760159      245796
04003      9569    9569     -132009    10000   223851300      766289      252870
04003     13302    3733     -260262     0000    88183775      767151      256495
04003     41920   28618     -260262     0000  3388179314      756279      281425


*41....+00000000000ANr 3 42....+00000000HZALIGNM 43....+00000000STACOORD 
*11....+0000000000000000 71....+00000000000CURVE 72....-0000000000013201 73....+0000000000000NON 81..40+0000000000760159 82..40+0000000000245796 
*11....+0000000000009569 71....+00000000CURVEOUT 72....-0000000000013201 73....+0000000000000NON 74....-0000000000026026 81..40+0000000000766289 82..40+0000000000252870 
*11....+0000000000013302 71....+00000000000CURVE 72....-0000000000026026 73....+0000000000000NON 81..40+0000000000767151 82..40+0000000000256495 
*11....+0000000000041920 71....+0000000000000EOP 72....+0000000000000NON 73....+0000000000000NON 81..40+0000000000756279 82..40+0000000000281425 

Test 5: (Wendeklothoide)

04002      0000    0000     8041609     0000    40888110     1118166     -105915
04002    379240  379240     8041609  -193943   341116199     1229213      253036
04002    426014   46774       00000   193943   359630644     1253867      292782
04002    695004  268990    -1398331     0000  3747313363     1316937      543050
04002    730462   35458    -1398331     0000  3585884789     1299252      573673


*41....+00000000000ANr 2 42....+00000000HZALIGNM 43....+00000000STACOORD 
*11....+0000000000000000 71....+00000000000CURVE 72....+0000000000804161 73....+0000000000000NON 81..40+0000000001118166 82..40-0000000000105915 
*11....+0000000000379240 71....+000000000SPIROUT 72....+0000000000193943 73....+0000000000000NON 81..40+0000000001229213 82..40+0000000000253036 
*11....+0000000000426014 71....+0000000000SPIRIN 72....-0000000000193943 73....+0000000000000NON 81..40+0000000001253867 82..40+0000000000292782 
*11....+0000000000695004 71....+00000000000CURVE 72....-0000000000139833 73....+0000000000000NON 81..40+0000000001316937 82..40+0000000000543050 
*11....+0000000000730462 71....+0000000000000EOP 72....+0000000000000NON 73....+0000000000000NON 81..40+0000000001299252 82..40+0000000000573673 

Wie man erkennt, wird bei COURVEOUT bzw CURVEIN eine 74 angelegt, die den Wert des Anschlussradius hat. Also den Radius, des folgenden Bogens.

Weiterhin werden bei den Bögen die Radien in die 72 geschrieben und bei Klothoiden werden die Klothoidenparameter in die 72 geschrieben.

Nun zur Definition von Curvein btw Curveout:
Curvein wird hier erstellt, wenn es von einem großen auf kleinen Radius wechselt. Leider haben die Bögen in beiden Beispielen postive Radien (KP=negativ)...

Curveout wird erstellt, wenn es von einem kleinen auf großen Radius wechselt, aber leider haben hier in beiden Beispielen die Bögen negative Radien (KP=positiv) :(

Philipp, du müsstest mal ein eine Klothoide zwischen 2 Bögen erzeugen, wo die Radien negativ sind UND von groß auf klein wechseln. Oder natürlich das Gegenbeispiel.

Wenn das geklärt ist, sollten die letzten Bedingungen feststehen.

Ich habe übrigens die Achse 40 (das Beispiel, was wir die ganze Zeit durchgekaut haben) mit Roaded getestet und sie wird als fehlerfrei erkannt.

Weiterhin habe ich ja im letzten Test eine Wendeklothoide getestet. Genau in diesem Fall hat Leica 40 versagt, den negativen Klothoidenparameter zu setzen. Ich musste den Fehler per Hand beseitigen... Mal nen Auge auf Michas Programm haben, aber ich denke, dass sollte da nicht vorkommen ;)

edit: Danke Micha für die 15Minuten, um abschließend noch was zu editieren :)

Achskonvertierung *.040 --> *.GSI

philipp, Friday, 21.08.2009, 19:07 (vor 5573 Tagen) @ AWO

Curvein wird erstellt [...]
leider haben die Bögen in beiden Beispielen positive Radien (KP=negativ)
Curveout wird erstellt [...]
leider haben in beiden Beispielen die Bögen negative Radien (KP=positiv)

Hhmm - ich zitiere nochmals Wikipedia:
Als Eiklothoide (auch Eilinie) werden Klothoiden bezeichnet, die zwei Radien mit demselben Krümmungssinn verbinden

Die Betonung liegt auf dem fetten Teil: derselbe Krümmungssinn = gleiches Vorzeichen
Einmal positiv und einmal negativ und dazwischen noch 'ne Klothoide ist wohl somit nicht möglich. Allerdings müssen dann alle 3 Elemente das gleiche Vorzeichen haben, was in deinen Beispielen ja auch so ist (warum schreibst du dann also "KP=negativ" bei den positiven Radien?)...

Verschiedene Vorzeichen bei den Radien benötigen wohl zwanghaft immer mindestens 2 Klothoiden - da haben wir dann die Wendeklothoide (der Name täuscht also, es sind 2 Klothoiden!).
Auch das hast du ja soweit im Beispiel verarbeitet.

Wo liegt jetzt also das Problem, welches ich testen soll?
Von groß auf klein mit negativen Werten statt positiven Radien?
Von klein auf groß mit positiven Werten statt negativen Radien?
Nun ja - ich kann gerne mal experimentieren, wenn nötig (by the way: Woher kommen plötzlich die CURVEIN-Beispiele? Gefunden? Ausgedacht/konstruiert?), aber wenn die dahinterstehenden Formeln passen, sollte das eigentlich klappen (müssen), da die Vorzeichen letztendlich ja eh nur die Richtung der Krümmung angeben (in Stationierungsrichtung linksrum oder rechtsrum sozusagen) und nicht plötzlich für völlig andere Rechenformeln sorgen, oder?

Ich schmeiße dann jetzt mal mein TC1103 an und guck mal, ob das Gerät denn glücklich ist mit Andys Achsen. Das prüft ja auch immer noch mal. Mal gucken...

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Friday, 21.08.2009, 19:18 (vor 5573 Tagen) @ philipp
bearbeitet von AWO, Friday, 21.08.2009, 19:33

Hhmm - ich zitiere nochmals Wikipedia:
Als Eiklothoide (auch Eilinie) werden Klothoiden bezeichnet, die zwei Radien mit demselben Krümmungssinn verbinden

Die Betonung liegt auf dem fetten Teil: derselbe Krümmungssinn = gleiches Vorzeichen
Einmal positiv und einmal negativ und dazwischen noch 'ne Klothoide ist wohl somit nicht möglich. Allerdings müssen dann alle 3 Elemente das gleiche Vorzeichen haben, was in deinen Beispielen ja auch so ist (warum schreibst du dann also "KP=negativ" bei den positiven Radien?)...

siehe da:
positive Radien, aber KP ist negativ. Oder was ist die -49995?

04000    341424    0000     1701518     0000  3876941500      522651      330034
04000    361983   20559     1701518   -49995  3953862003      519929      350399
04000    411745   49762      387812     0000   455389841      531352      397486
04000    437191   25446      387812     0000   873098315      552948      410064

und bei negativen Radien ist der KP positiv. Warum das so ist, kann ich nicht sagen, geht aber eindeutig aus den erzeugten 040/GSI so hervor. Kann es sein, dass das Vorzeichen des Wertes nicht den Richtungssinn, sondern eine Verengung (groß auf klein) bzw Erweiterung (klein auf groß) bedeutet?

Wo liegt jetzt also das Problem, welches ich testen soll?
Von groß auf klein mit negativen Werten statt positiven Radien?
Von klein auf groß mit positiven Werten statt negativen Radien?

Du musst nur eins der Beispiele testen. Das andere sollte sich dadurch schon ergeben.

by the way: Woher kommen plötzlich die CURVEIN-Beispiele? Gefunden? Ausgedacht/konstruiert?

Ausgedacht und konstruiert. Wollte eigentlich alle Varianten ausprobieren... Leider hab ichs nur so auf die Schnelle nebenbei gemacht. Somit habe ich beide Varianten doppelt getestet, was ich eigentlich gar nicht wollte. Naja, somit steigt die Zuverlässigkeit ;)

Ich schmeiße dann jetzt mal mein TC1103 an und guck mal, ob das Gerät denn glücklich ist mit Andys Achsen. Das prüft ja auch immer noch mal. Mal gucken...

Sollte laufen, da Roaded keinen Fehler meldet.

EDIT:
Und jetzt fällt mir erst auf, dass bei Klothoiden dieser Form in die 72 die Anfangsradien eingetragen werden und bei 74 die Endradien. Danke für den Denkanstoß ;)

Achskonvertierung *.040 --> *.GSI

philipp, Friday, 21.08.2009, 19:48 (vor 5573 Tagen) @ AWO

Also ich sprach eher von den gsi-Dateien - denn da hat jeweils alles das gleiche Vorzeichen. Allerdings hast du Recht mit dem KP in der 040 - der ist andersrum, fällt ja aber auch wieder raus in der gsi. Da taucht ja nicht mehrr ein KP auf!!! Toll!!! :)
Und ob das in der 040 nun so gehört mit den verschiedenen Kennzeichen sollten wir mal besser nicht erörtern, da wir da ja herkommen und nicht hinwollen, gelle? ;)

Ich habe jetzt mal Andys erstes Beispiel von 18:08 in diesen 4 Varianten durchgenudelt am Gerät:

CURVEIN und COURVEOUT (also manuell manipuliert) von Andy direkt hier raus kopiert und das gleiche mit der umgeandelten 040 (Michas Testversion).

So...:

Andy - Curvein: Ett löööft
Andy - Curveout: Nix löööft - Gerät hängt sich auf!!! Statt gleich abzuschmieren hätte er mir ja mal sagen können, das CURVEOUT falsch ist. Man man...

Micha (beide Versionen): Es erscheint folgender Text gleich am Anfang:
"In der Datei für die Horizontalachse fehlen Daten im ersten Datenblock"

Hhmm - die fehlen eingentlich nicht, aber mir sind 3 andere Sachen aufgefallen, die ein laufen wohl verhindern:
1. Bei dir kommt CURVEOUT raus und nicht CURVEIN!?
2. Er schmiert mir wohl nicht ab, weil er zuvor wohl den fehlenden 74er-Index bemerkt
3. Du hast alle 4 Nachkommastellen beim Radius übernommen, Andy hat 3 (was wohl auch richtiger sein sollte)

EDIT: 4. Es gibt 2x den 72-Index (0x den 73er) und es taucht auch der KP auf (was er wohl eigentlich nicht darf)


Soweit bisher.
Jetzt schmeiß ich auf dem Firmen-PC mal RoadEd an und guck mir die Varianten mal optisch an...

EDIT @ Micha: Deine beigelegte Riesen-040 von mir wandelt er gar nicht um (zumindest erscheint keine gsi-Datei!?)

Achskonvertierung *.040 --> *.GSI

philipp, Friday, 21.08.2009, 20:08 (vor 5573 Tagen) @ philipp

Also das "aufhängen" klappt auch andersrum - wenn ich OUT durch IN ersetzte.
Vll. rechnet er ja auch nur nach und ich bin zu ungeduldig - aber nach über 3 min warten bringt das ja nix mehr!

Somit scheint zumindest schon mal Andys IN-and-OUT-Theorie bestätigt zu werden...

Auch schön:
Bei OUT zeigt er beim Übergang vom Kreis zur Klothoiden "Kreis/Klothoide" an, bei IN aber "Klothoide/Kreis".
Bei einer Station direkt auf der Klothoiden zeigt er bei OUT "Klothoide R-> [unendlich]" an, bei IN "Klothoide R-> 0".

Das kenn ich auch von SPIRIN/OUT, wo das ja auch tatsächlich so ist (sie läuft ja entweder zur Geraden (unendlich) oder zum Kreis/Bogen (soll wohl durch die Zahl 0 symbolisiert werden als Abgrenzung zum Unendlich-Zeichen).

Hat man wohl wieder an IN und OUT beim CURVEIN/OUT festgemacht analog zur SPIRxxx...

Achskonvertierung *.040 --> *.GSI

philipp, Friday, 21.08.2009, 20:18 (vor 5573 Tagen) @ philipp

RoadEd:

Michas macht er gar nicht erst auf --> "contains invalid or missing data"
Naja - ich hatte ja auch schon 3-4 Punkte gefunden, die ihn nicht glücklich machen werden...

Andy erste Achse:
Sieht geschmeidig aus bei IN. Und beim manipulierten OUT... na?...
Ich glaub ich breche das "alignment checken" dann mal ab!:lol:

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Friday, 21.08.2009, 20:10 (vor 5573 Tagen) @ philipp
bearbeitet von AWO, Friday, 21.08.2009, 20:20

Ich habe jetzt mal Andys erstes Beispiel von 18:08 in diesen 4 Varianten durchgenudelt am Gerät:

CURVEIN und COURVEOUT (also manuell manipuliert) von Andy direkt hier raus kopiert und das gleiche mit der umgeandelten 040 (Michas Testversion).

So...:

Andy - Curvein: Ett löööft
Andy - Curveout: Nix löööft - Gerät hängt sich auf!!! Statt gleich abzuschmieren hätte er mir ja mal sagen können, das CURVEOUT falsch ist. Man man...

Am Gerät sind meine GSI falsch? Roaded erkennt keine Abweichungen... Dann teste mal die Achse 40 von den Tagen zuvor (mit curveout) am Gerät
Oder mit Michas Prog umgewandelt? Das kann noch nicht gehen.

Hhmm - die fehlen eingentlich nicht, aber mir sind 3 andere Sachen aufgefallen, die ein laufen wohl verhindern:
1. Bei dir kommt CURVEOUT raus und nicht CURVEIN!?

Du musst erst das eine Beispiel machen. Curvein wurde noch nicht definiert und curveout zu schwammig. Um es gleich richtig zu machen, brauchen wir dein Ergebnis ;)

EDIT: 4. Es gibt 2x den 72-Index (0x den 73er) und es taucht auch der KP auf (was er wohl eigentlich nicht darf)

Das mit dem KP hab ich am Anfang mal so lapidar gesagt. Aber vorhin ist es mir erst aufgefallen, dass die Radien drinstehen.
Ich würde sagen, dass die Datei erst angefasst werden sollte, wenn alle großen Unklarheiten beseitigt wurden ;) Sonst machen wir das noch tausend mal^^

Achskonvertierung *.040 --> *.GSI

philipp, Friday, 21.08.2009, 20:21 (vor 5573 Tagen) @ AWO

Ich habe deine IN-Datei per Hand absichtlich zum OUT manipuliert, um zu gucken, was passiert. Es ist also absichtlich falsch (von mir so gemacht)!!!

Und siehe da: Es läuft nix (auch nicht bei RoadEd) -> ergo wäre OUT hier nun tatsächlich fehl am Platz und IN ist richtig!

Wegen Michas Datei: Ich hatte das so verstanden, daß ich das mal testen soll, wenn ich schon dabei bin (sonst hätte man mit dieser Beta doch noch warten können)...

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Friday, 21.08.2009, 20:23 (vor 5573 Tagen) @ philipp

OK, hab schon gedacht dein Gerät mag die gepostete GSI nicht. Dann hätten wir ein großen Problem mehr. Nun gut, dass ist ja alles in Butter ;)

@ Micha kriegt man die *.jar nur mit dem Java-editor auf?

Avatar

Achskonvertierung *.040 --> *.GSI

MichaeL ⌂, Bad Vilbel, Friday, 21.08.2009, 20:43 (vor 5572 Tagen) @ AWO

Nun gut, dass ist ja alles in Butter ;)

Ich bin irgendwo vor 5 min (oder 40 Postings von Euch) ausgestiegen ;-)

@ Micha kriegt man die *.jar nur mit dem Java-editor auf?

Die JAR kannst Du mit winRAR öffnen, wenn Du an den Inhalt willst. Ich habe Eclipse genommen und nicht den JavaEditor

-------------------- Aus einem anderen Posting --------------------------

Weiterhin werden bei den Bögen die Radien in die 72 geschrieben und bei
Klothoiden werden die Klothoidenparameter in die 72 geschrieben.

Ist das ein fehler bei mir oder ein Hinweis, wie es sein muss??? Wenn es so sein muss, dann:

Heißt, wenn es SPIRIN oder SPIROUT ist, werden die KPs in den 72-Block geschrieben, richtig?

Wenn es hingegen CURVEIN oder CURVEOUT ist, dann kommt in den 72-Block der Radius, richtig?

Bei 73 kommt dann immer NON rein?

Was ist bei CURVE?

Wie man erkennt, wird bei COURVEOUT bzw CURVEIN eine 74 angelegt, die den Wert
des Anschlussradius hat. Also den Radius, des folgenden Bogens.

Okay, bei CURVEIN oder COURVEOUT muss ich den Radius des folgenden Elements abfragen und in 74-Block schrieben.

Bei EOP sind alle Felder NON?

Können wir das erstmal klären?

Dann mach ich weiter.

Micha

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

Achskonvertierung *.040 --> *.GSI

philipp, Friday, 21.08.2009, 20:55 (vor 5572 Tagen) @ MichaeL

Heißt, wenn es SPIRIN oder SPIROUT ist, werden die KPs in den 72-Block geschrieben, richtig?

Wenn es hingegen CURVEIN oder CURVEOUT ist, dann kommt in den 72-Block der Radius, richtig?

Ich würde sagen, so ist es. Ob Radius oder KP im 72er steht erkennt das 1103 wohl am Schlüsselwort. Komische Sache, daß sich ein Block 2 Informationen "teilt", aber dank des Schlüsselwortes zuvor ist das wohl so gewollt...

Bei 73 kommt dann immer NON rein?

Anscheinend auch richtig. Aber frag jetzt bloß nicht, warum! :-P
Da hätte man ja stattdessen die 74er-Info einfügen können, wenn sie denn ausnahmsweise mal nötig ist, so hätte man 74 gespart und 73 wäre nicht völlig ohne Funktion.
Wer weiß, was sich die Programmierer da damals gedacht haben...

Was ist bei CURVE?

Bei CURVE kommt in die 72 der Radius - und fertig. KP gibt's ja eh nicht und das Schlüsselwort klärt ja alles...

Wie man erkennt, wird bei CURVEOUT bzw CURVEIN eine 74 angelegt, die den Wert
des Anschlussradius hat. Also den Radius, des folgenden Bogens.

Okay, bei CURVEIN oder CURVEOUT muss ich den Radius des folgenden Elements abfragen und in 74-Block schrieben.

Genau. Hoffentlich kommt dann kein CURVEIN/OUT am Ende... :surprised:

Bei EOP sind alle Felder NON?

Nein, hinten bei 81 und 82 kommen die Koordinaten des Achsendes rein. Aber unabhängig vom letzten Element kommt bei 72 (73 ja sowieso) tatsächlich immer ein NON, wie es aussieht (wäre auch logisch, da hier ja kein Radius oder KP für das kommende Stück benötigt wird, da kein Stück mehr kommt).
[EDIT: Vll. kommt ja im Falle einer CURVEIN/OUT am Schluss in der letzten EOP-Zeile bei der 72 doch was hin - nämlich der benötigte "folgende" Radius? Hach ich weiß es auch nicht... :cool: )

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Friday, 21.08.2009, 20:57 (vor 5572 Tagen) @ MichaeL

Die JAR kannst Du mit winRAR öffnen, wenn Du an den Inhalt willst. Ich habe Eclipse genommen und nicht den JavaEditor

ok, danke

Heißt, wenn es SPIRIN oder SPIROUT ist, werden die KPs in den 72-Block geschrieben, richtig?

ja, sieht so aus.

Wenn es hingegen CURVEIN oder CURVEOUT ist, dann kommt in den 72-Block der Radius, richtig?

bei den beiden Varianten kommt der Radius vom preElement rein.

Bei 73 kommt dann immer NON rein?

hab noch in keiner gsi der letzten Tage was anderes gesehen.

Was ist bei CURVE?
Okay, bei CURVEIN oder COURVEOUT muss ich den Radius des folgenden Elements abfragen und in 74-Block schrieben.

Ja

Bei EOP sind alle Felder NON?

Eop ist die Station und Koordinate des letzten Punktes und sollte 72 und 73 null sein

Avatar

Achskonvertierung *.040 --> *.GSI

MichaeL ⌂, Bad Vilbel, Friday, 21.08.2009, 21:02 (vor 5572 Tagen) @ AWO

Hallo,

Heißt, wenn es SPIRIN oder SPIROUT ist, werden die KPs in den 72-Block geschrieben, richtig?

ja, sieht so aus.

Wenn es hingegen CURVEIN oder CURVEOUT ist, dann kommt in den 72-Block der Radius, richtig?

bei den beiden Varianten kommt der Radius vom preElement rein.

Vom preElement??? Also vom Vorgänger?

Bei 73 kommt dann immer NON rein?

Hier kommt also per default NON rein? Es gibt kein Element, was hier was anderes benötigt?

Was ist bei CURVE?

Frag bleibt.

Okay, bei CURVEIN oder COURVEOUT muss ich den Radius des folgenden Elements abfragen und in 74-Block schrieben.

Ja

und bei 72 der vom Element davor? Wo kommt der Radius vom aktuellen Element (current) hin?

Eop ist die Station und Koordinate des letzten Punktes und sollte 72 und 73 null sein

Gut.

Ich habe noch Probleme mit den Umrechnen. Kann mir mal einer die Einheiten nennen? Koordinaten und Station [mm], Kp [??] und Radius [cm]?

Micha

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

Achskonvertierung *.040 --> *.GSI

philipp, Friday, 21.08.2009, 21:09 (vor 5572 Tagen) @ MichaeL

Das mit CURVE hatte ich schon geschrieben - ist aber auch sch..., wenn wir hier zeitgleich zu dritt schreiben!

(U.a.) deshalb werde ich mal langsam rausgehen, nur noch schnell das hier:
Im RoadEd hab ich mal bei CURVEIN/OUT rumgespielt. Sobald der 2. (Nachfolge-)Radius auch nur 1 mm zu groß (IN) oder zu klein (OUT) wird, macht das Programm komplett dicht.

Daher jetzt mal als offizielle Schlussansage zu diesem Thema von mir:
CURVExxx, wenn eine Klothoide zwischen 2 Bögen!
CURVEIN, wenn der 2. Radius kleiner ist, CURVEOUT, wenn der 2. Radius größer ist als der erste!
Vorzeichen sind dabei egal, weil sie, falls es nichts wird, schon in der 040 falsch sein müssen. Haben wir dort also einmal + und einmal - bei den Anschlussradien stimmt in der 040 was nicht.

Und weg... :waving:

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Friday, 21.08.2009, 21:13 (vor 5572 Tagen) @ MichaeL
bearbeitet von AWO, Friday, 21.08.2009, 21:26

Ja moin, sry vergessen...
Tini hat sich gerade beschwert weil ich kein Skype an hatte...

Vom preElement??? Also vom Vorgänger?

ja

Bei 73 kommt dann immer NON rein?

Hier kommt also per default NON rein? Es gibt kein Element, was hier was anderes benötigt?

sieht so aus, bin aber nicht 100% sicher. In den letzten GSI war die immer NON

Was ist bei CURVE?

Frag bleibt.

Wie meinst das?

Okay, bei CURVEIN oder COURVEOUT muss ich den Radius des folgenden Elements abfragen und in 74-Block schrieben.

Ja

und bei 72 der vom Element davor? Wo kommt der Radius vom aktuellen Element (current) hin?

Curveout bzw -in haben keinen stetigen Radius, da es abgetrennte Klothoiden sind würd ich sagen.
Also von einen Radius auf einen anderen. Somit kommt in die 72 der Radius vom PreElement und in 74 der Folgeradius. Der Klothoidenparameter scheint rechenbar zu sein.

Ich habe noch Probleme mit den Umrechnen. Kann mir mal einer die Einheiten nennen? Koordinaten und Station [mm], Kp [??] und Radius [cm]?

sollte alles mm sein.

Wenn Du schon was verändern willst, hier noch die vermuteten Definitionen (das "größer/kleiner als" kann man so schreiben?) :

  else if ( preStation != null &&  currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && preStation.getRadius() !=0 && behindStation.getRadius() !=0 && behindStation.getRadius() !=0 && behindStation.getRadius() > preStation.getRadius() ) {
   return "CURVEOUT";


  else if ( preStation != null &&  currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && preStation.getRadius() !=0 && behindStation.getRadius() !=0 && behindStation.getRadius() !=0 && behindStation.getRadius() < preStation.getRadius() ) {
   return "CURVEIN";

Aber wie gesagt noch nicht sicher. Kann auch mit den Vorzeichen der Radien zu tun haben. Glaube ich zwar nicht, aber wer weiß...

Avatar

Achskonvertierung *.040 --> *.GSI

MichaeL ⌂, Bad Vilbel, Friday, 21.08.2009, 21:38 (vor 5572 Tagen) @ AWO

Abend,

ICQ habe ich an...

Achselement:

 
 /**
  * Liefert Typ des Achsenelementes
  * @param stationNumber
  * @return keyWord
  */
 private int getType(int stationNumber) {
  // letztes Element --> EOP
  if (stationNumber==this.countStations()-1)
   return Axis.EOP; 
 
  AxisStation preStation     = stationNumber > 0?this.getStation(stationNumber-1):null;
  AxisStation behindStation  = stationNumber < this.countStations()-1?this.getStation(stationNumber+1):null;
  AxisStation currentStation = this.getStation(stationNumber);
 
  if ( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() != 0) 
   return Axis.SPIRIN;
 
  else if ( currentStation.getRadius() != 0 && currentStation.getClothoidParameter() == 0) 
   return Axis.CURVE;
 
  else if ( preStation != null && currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && behindStation.getRadius() == 0)
   return Axis.SPIROUT;
 
  else if ( preStation != null &&  currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && preStation.getRadius() !=0 && behindStation.getRadius() !=0 && behindStation.getRadius() !=0 && behindStation.getRadius() < preStation.getRadius() ) 
   return Axis.CURVEIN;
 
  else if ( preStation != null &&  currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && preStation.getRadius() !=0 && behindStation.getRadius() !=0 && behindStation.getRadius() !=0 && behindStation.getRadius() > preStation.getRadius() )  
   return Axis.CURVEOUT;
 
  else //( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() == 0) {
   return Axis.STRAIGHT;
 
 }
 

Einheiten: In Deinen Beispielen ist der Radius zB 1701518 mm/10 = 170.1518m aber Deine Koordinaten nur 330034mm = 330.034m. Sehe ich das richtig? Ist der Radius immer "genauer" als alle anderen Werte oder gibts auch Radien in mm?

Micha

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

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Friday, 21.08.2009, 21:47 (vor 5572 Tagen) @ MichaeL

ICQ habe ich an...

Hab meine ICQ Nummer nicht mehr... Hast Du sie gespeichert? Dann könnt ich an den Account nochmal rankommen.

Einheiten: In Deinen Beispielen ist der Radius zB 1701518 mm/10 = 170.1518m aber Deine Koordinaten nur 330034mm = 330.034m. Sehe ich das richtig? Ist der Radius immer "genauer" als alle anderen Werte oder gibts auch Radien in mm?

Die Koordinate ist so klein, weil ich einfach ein neues Projekt in Stratis aufgemacht hab, wo wahrscheinlich 0/0 in der Nähe war.

Hmm scheinbar steht in der 040 der Radius in Zehntelmillimeter ... In der GSI steht wirklich 170m...

ok ich nehm meine Aussage zurück, dass es immer mm sind ;) Mal gucken, obs wirklich nur der Radius ist.

Achskonvertierung *.040 --> *.GSI

philipp, Friday, 21.08.2009, 21:53 (vor 5572 Tagen) @ AWO

Ja, der Radius hat 4 Nachkommastellen in der 040, der Rest (von der unwichtigen Tangentenrichtung mal abgesehen) hat 3. In der gsi sollten dann alle 3 haben!

Habt ihr meine Meldungen zwischen euren eigentlich noch wahrgenommen?

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Friday, 21.08.2009, 21:59 (vor 5572 Tagen) @ philipp

Ja, der Radius hat 4 Nachkommastellen in der 040, der Rest (von der unwichtigen Tangentenrichtung mal abgesehen) hat 3. In der gsi sollten dann alle 3 haben!

jo sieht so aus.

Habt ihr meine Meldungen zwischen euren eigentlich noch wahrgenommen?

Natürlich nicht^^ Sry...
Würde mir in einer andere Ansicht (Board?) nicht passieren.

Habs jetzt mal umgestellt. Dann sehe ich wenigstens alle Posts ;)

Das mit CURVE hatte ich schon geschrieben - ist aber auch sch..., wenn wir hier zeitgleich zu dritt schreiben!

hehe

Vorzeichen sind dabei egal, weil sie, falls es nichts wird, schon in der 040 falsch sein müssen. Haben wir dort also einmal + und einmal - bei den Anschlussradien stimmt in der 040 was nicht.

Nicht einen Radius ändern, sondern beide.
Also eine Klothoide zwischen 2 Bögen mit positiven Radien und von klein auf groß wäre interessant.

So bin nun mal ne halbe Stunde raus, damit ich die Konversation nicht störe ;)

Achskonvertierung *.040 --> *.GSI

philipp, Friday, 21.08.2009, 22:15 (vor 5572 Tagen) @ AWO

So bin nun mal ne halbe Stunde raus, damit ich die Konversation nicht störe ;)

Bei Micha klang das aber auch nach Abschied für heute. Und ich bin auch gleich raus. Morgen geht's dann weiter mit dem fröhlichen durcheinander-geschreibe...

Vorzeichen sind dabei egal, weil sie, falls es nichts wird, schon in der 040 falsch sein müssen. Haben wir dort also einmal + und einmal - bei den Anschlussradien stimmt in der 040 was nicht.


Nicht einen Radius ändern, sondern beide.
Also eine Klothoide zwischen 2 Bögen mit positiven Radien und von klein auf groß wäre interessant.

Ich meinte das eher allgemein - beide Anschlussradien MÜSSEN gleiches Vorzeichen haben bei CURVEIN/OUT - sonst ist was faul (in der 040). Das wollte ich nur mal gesagt haben!

Zu dem experimentieren hatte ich zwischenzeitlich auch schon was geschrieben, hier nun noch mal:

--> Im RoadEd hab ich mal bei CURVEIN/OUT rumgespielt. Sobald der 2. (Nachfolge-)Radius auch nur 1 mm zu groß (IN) oder zu klein (OUT) wird, macht das Programm komplett dicht. <--

Nicht alles + oder alles - ist also die Frage, sondern wie der 2. Radius zum 1. steht. DA wird es interessant - und ich denke, es gilt somit noch immer, was ich ebenfalls schon hier schrieb:

--> Daher jetzt mal als offizielle Schlussansage zu diesem Thema von mir:
CURVExxx, wenn eine Klothoide zwischen 2 Bögen!
CURVEIN, wenn der 2. Radius kleiner ist, CURVEOUT, wenn der 2. Radius größer ist als der erste!
<--

Avatar

Achskonvertierung *.040 --> *.GSI

MichaeL ⌂, Bad Vilbel, Friday, 21.08.2009, 22:23 (vor 5572 Tagen) @ philipp
bearbeitet von MichaeL, Friday, 21.08.2009, 22:49

Abend.

Bei Micha klang das aber auch nach Abschied für heute.

Hä? Ich kann halt nur eins; hier sabbeln oder auch mal wieder ein paar Zeilen Java produzieren.

--> Daher jetzt mal als offizielle Schlussansage zu diesem Thema von mir:
CURVExxx, wenn eine Klothoide zwischen 2 Bögen!
CURVEIN, wenn der 2. Radius kleiner ist, CURVEOUT, wenn der 2. Radius größer ist als der erste!
<--

Und was soll ich damit? Bitte als Formel (möglichst in JAVA) - siehe schon x-mal gepostete Funktion von Andy und mir. Alles andere ist Käse

Micha

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

Avatar

Achskonvertierung *.040 --> *.GSI

AWO, Nussbaumen AG, Friday, 21.08.2009, 22:28 (vor 5572 Tagen) @ philipp

--> Daher jetzt mal als offizielle Schlussansage zu diesem Thema von mir:
CURVExxx, wenn eine Klothoide zwischen 2 Bögen!
CURVEIN, wenn der 2. Radius kleiner ist, CURVEOUT, wenn der 2. Radius größer ist als der erste!
<--

Mutig ohne es getestet zu haben... Aber ich muss damit auch keine Straßen abstecken... Vll gibt das Gerät nen Fehler aus, oder Du steckst was falsch ab, wer weiß...

Ich machs vll Dienstag, ist der einzige Tag in der nächsten Woche, wo ich eventuell Zeit dafür habe. Ein blöder Test und man weiß was los ist...

Mittwoch bis Samstag=Umzug... i freu mi :P

Bis morgen!

Avatar

Achskonvertierung *.040 --> *.GSI

MichaeL ⌂, Bad Vilbel, Friday, 21.08.2009, 21:56 (vor 5572 Tagen) @ AWO

Hi,

Deine Nummer habe ich nicht mehr, Desaster. Aber vll Flip. Ich versuch nun noch fix was wegen der Dezimalstellen und dann werd ich eine neue Version hochladen zum Spielen. Die könnt Ihr dann morgen auseinander nehmen.

Ich brauch jetzt erstmal ein wenig Zeit


Gruß Micha

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

Avatar

Testversion online

MichaeL ⌂, Bad Vilbel, Friday, 21.08.2009, 18:18 (vor 5573 Tagen) @ philipp

Hallo,

die erste Testversion habe ich hochgeladen. Einfach eine 040 auf die BAT ziehen (so gehts zumindest bei mir). Achtet darauf, das der Pfad keine Leerzeichen enthält!!!

Gruß Micha

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

Avatar

Testversion online

MichaeL ⌂, Bad Vilbel, Friday, 21.08.2009, 22:48 (vor 5572 Tagen) @ MichaeL

Hallo,

die zweite Testversion habe ich hochgeladen.

Denkt bitte dran, dass keine Leerzeichen im (absoluten) Pfad enthalten ist - klassischer Fehler ist "Dokumente und Einstellungen" im Pfad. Am Besten also direkt auf eine Platte kopieren. Wer nicht klar kommt, BAT öffnen und Hirn ein wenig anstrengen ;-)

So, dann schießt mal los, was alles nicht geht.

Micha

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

Avatar

Testversion online

AWO, Nussbaumen AG, Friday, 21.08.2009, 22:59 (vor 5572 Tagen) @ MichaeL

bei mir kommt das:
[image]

Liegts an 64bit oder fehlt eine java-insallation?

Avatar

Test: Habe ich Java installiert?

MichaeL ⌂, Bad Vilbel, Friday, 21.08.2009, 23:02 (vor 5572 Tagen) @ AWO

Hallo,

was kommt, wenn Du auf der Konsole

java -version

eingibst? Sowas oder ein Fehler?

Micha

P.S. Wie nutzt Du nur all meine anderen Tools? :-)

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

Avatar

Test: Habe ich Java installiert?

AWO, Nussbaumen AG, Friday, 21.08.2009, 23:05 (vor 5572 Tagen) @ MichaeL

Nen Fehler ;)
Eine gewisse "jxpinstall" (der Firma Sun) hab ich schonmal installiert. Reicht das nicht? ;)

Avatar

Test: Habe ich Java installiert?

MichaeL ⌂, Bad Vilbel, Friday, 21.08.2009, 23:11 (vor 5572 Tagen) @ AWO

Hi,

Eine gewisse "jxpinstall" (der Firma Sun) hab ich schonmal installiert. Reicht das nicht? ;)

Kommt drauf an....

http://www.java.com/de/

Micha

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

Avatar

Test: Habe ich Java installiert?

AWO, Nussbaumen AG, Friday, 21.08.2009, 23:27 (vor 5572 Tagen) @ MichaeL

Hab nochmals installiert ("diese Version ist schon vorhanden";)

und wieder selber Fehler !?

Avatar

Test: Habe ich Java installiert?

MichaeL ⌂, Bad Vilbel, Friday, 21.08.2009, 23:32 (vor 5572 Tagen) @ AWO

Hi,

Hab nochmals installiert

Installation überprüfen, was sagt die? Was sagt java -version, was sagt Kaspersky?

Micha

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

Avatar

Test: Habe ich Java installiert?

AWO, Nussbaumen AG, Friday, 21.08.2009, 23:40 (vor 5572 Tagen) @ MichaeL

Firefox wollte nicht (plugin fehlt (jre), manuell installation fehlgeschlagen)
IE gaukelte mir vor, dass alles da ist.
Nun hab ich ne 64bit version gefunden, leider hab ich nen neuen Fehler ;)
[image]

Avatar

Test: Habe ich Java installiert?

MichaeL ⌂, Bad Vilbel, Friday, 21.08.2009, 23:49 (vor 5572 Tagen) @ AWO

Blöd. Google?

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

Avatar

Test: Habe ich Java installiert?

AWO, Nussbaumen AG, Friday, 21.08.2009, 23:58 (vor 5572 Tagen) @ MichaeL

Daten aufm Desktop und bat auf C: funktioniert nicht. (sozusagen dein erwähnter "klassischer fehler" ;) )

Nun liegen alle Daten auf C:

Erster Test mit Curvein = erfolgreich ;)

Werde mal morgen noch Stichproben machen. Wird mir sonst zu spät heute.

Bis morgen und gn8!

Gute Arbeit :ok:

Avatar

Test: Habe ich Java installiert?

MichaeL ⌂, Bad Vilbel, Saturday, 22.08.2009, 01:51 (vor 5572 Tagen) @ AWO

Abend,

Daten aufm Desktop und bat auf C: funktioniert nicht. (sozusagen dein erwähnter "klassischer fehler" ;) )

Alles auf dem Desktop (im selben Ornder) sollte aber auch gehen. Ich denke, hier liegt es ehr an fehlenden Schreibrechten (Datei erstellen) unter VISTA.

Erster Test mit Curvein = erfolgreich ;)

Weiter so ;-)


Gute Nacht
Micha

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

Avatar

Tests

AWO, Nussbaumen AG, Saturday, 22.08.2009, 09:01 (vor 5572 Tagen) @ MichaeL

Moin moin,

mir fällt gerade eins auf:

Keine Ahnung, ob das auf dem Gerät ein Poblem werden kann, aber Du schreibst die 74 hinter der 72 und danach die 73 bei curvein/-out.

leica 40 erzeugt 72 - 73 - 74.

Avatar

LeAxe Tests

MichaeL ⌂, Bad Vilbel, Saturday, 22.08.2009, 11:54 (vor 5572 Tagen) @ AWO

Hi Andy,

Keine Ahnung, ob das auf dem Gerät ein Problem werden kann, aber Du schreibst die 74 hinter der 72 und danach die 73 bei curvein/-out.

Ich denke nicht, dass dies zu einem Problem führen wird. Das GSI-Format ist nicht fest sondern sehr flexibel und ich hoffe, die Geräte auch.

Da der 73-Block per Default keinen Inhalt hat - so Eure Meinungen - füge ich ihn am Ende erst ein. Sonst müsste ich ihn in jeder Bedingung extra aufführen. Ich zeig Dir mal den Code, ich denke, Du kannst Ihn lesen:

 
      pw = new PrintWriter(new BufferedWriter(new FileWriter( f )));
 
      // 41....+00000001 42....+HZALIGNM 43....+STACOORD 
      if (this.gsiType == Axis.GSI16) 
       pw.print("*");
      pw.print( "41...." + this.formGSIString(String.valueOf(this.axisid)) );
      pw.print( "42...." + this.formGSIString("HZALIGNM") );
      pw.print( "43...." + this.formGSIString("STACOORD") );
      pw.println();
      // 11....+00000000 71....+STRAIGHT 72....+00000NON 73....+00000NON 81..10+28375746 82..10+11777234 
      // 11....+00021891 71....+000CURVE 72....+00500000 73....+00000NON 81..10+28397637 82..10+11777340 
 
      for (int i=0; i<this.countStations(); i++) {
       AxisStation as = this.getStation(i);
       if (this.gsiType == Axis.GSI16) 
        pw.print("*");
 
       // Methode von Andy zum Ermitteln des Kurvensegments SPIRIN, SPIROUT usw.     
       int type = this.getType(i);
 
       pw.print( "11...." + this.formGSIString( as.getStation()*1000.0 ) );
       pw.print( "71...." + this.formGSIString( this.keyWords[type] ) );
 
 
       if (type == Axis.SPIRIN || type == Axis.SPIROUT) {
           pw.print( "72...." + this.formGSIString(as.getClothoidParameter()*1000.0) );
       }
 
       else if (type == Axis.CURVE) {
        pw.print( "72...." + this.formGSIString(as.getRadius()*1000.0) );
       }
 
       else if ((type == Axis.CURVEIN || type == Axis.CURVEOUT) && i>0 && i<this.countStations()) {
        AxisStation asPre = this.getStation(i-1);
        AxisStation asBeh = this.getStation(i+1);
        pw.print( "72...." + this.formGSIString(asPre.getRadius()*1000.0) );
        pw.print( "74...." + this.formGSIString(asBeh.getRadius()*1000.0) );
       }
 
       else { //EOP und STRAIGHT
        pw.print( "72...." + this.formGSIString("NON") );
       }
// 73 Block immer leer also ans Ende per default       
       pw.print( "73...." + this.formGSIString("NON") );
       pw.print( "81..10" + this.formGSIString( as.getY()*1000.0 ) );
       pw.print( "82..10" + this.formGSIString( as.getX()*1000.0 ) );
 
       pw.println();
      }

Dieses this.formGSIString formatiert nur den String GSI gerecht (Auffüllen mit Nullen, auf Länge trimmen, GSI-8 vs. GSI-16)


Gruß Micha

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

Tags:
LeAxe, Java, GSI, Achse

Avatar

LeAxe Tests

AWO, Nussbaumen AG, Saturday, 22.08.2009, 12:14 (vor 5572 Tagen) @ MichaeL

Hab mir gerade Roaded auf meinen Rechner gespielt. Es funktioniert im Gegensatz zu Leica40 (die Version mag kein 64bit).
Das Programm testet ja Achsdaten. Aber stürzt ab, bzw verursacht eine Endlosschleife, wenn die 73 hinter der 74 steht. Ich glaube nicht, dass es dann auf einem Gerät läuft.


So sollte es gehen, oder? Oder bringt das Nachteile mit sich? Sicherlich nicht besonders schön verpackt ;)

pw = new PrintWriter(new BufferedWriter(new FileWriter( f )));
 
      // 41....+00000001 42....+HZALIGNM 43....+STACOORD 
      if (this.gsiType == Axis.GSI16) 
       pw.print("*");
      pw.print( "41...." + this.formGSIString(String.valueOf(this.axisid)) );
      pw.print( "42...." + this.formGSIString("HZALIGNM") );
      pw.print( "43...." + this.formGSIString("STACOORD") );
      pw.println();
      // 11....+00000000 71....+STRAIGHT 72....+00000NON 73....+00000NON 81..10+28375746 82..10+11777234 
      // 11....+00021891 71....+000CURVE 72....+00500000 73....+00000NON 81..10+28397637 82..10+11777340 
                // bei Curvein bzw -out incl 74....-0000000000170152 
 
      for (int i=0; i<this.countStations(); i++) {
       AxisStation as = this.getStation(i);
       if (this.gsiType == Axis.GSI16) 
        pw.print("*");
 
       // Methode zum Ermitteln des Kurvensegments SPIRIN, SPIROUT usw.     
       int type = this.getType(i);
 
       pw.print( "11...." + this.formGSIString( as.getStation()*1000.0 ) );
       pw.print( "71...." + this.formGSIString( this.keyWords[type] ) );
 
 
       if (type == Axis.SPIRIN || type == Axis.SPIROUT) {
           pw.print( "72...." + this.formGSIString(as.getClothoidParameter()*1000.0) );
                                pw.print( "73...." + this.formGSIString("NON") );
       }
 
       else if (type == Axis.CURVE) {
        pw.print( "72...." + this.formGSIString(as.getRadius()*1000.0) );
                                pw.print( "73...." + this.formGSIString("NON") );
       }
 
       else if ((type == Axis.CURVEIN || type == Axis.CURVEOUT) && i>0 && i<this.countStations()) {
        AxisStation asPre = this.getStation(i-1);
        AxisStation asBeh = this.getStation(i+1);
        pw.print( "72...." + this.formGSIString(asPre.getRadius()*1000.0) );
                                pw.print( "73...." + this.formGSIString("NON") );
        pw.print( "74...." + this.formGSIString(asBeh.getRadius()*1000.0) );
       }
 
       else { //EOP und STRAIGHT
        pw.print( "72...." + this.formGSIString("NON") );
                                pw.print( "73...." + this.formGSIString("NON") );
       }
                        // 81 und 82 Block ans Ende scheiben     
       pw.print( "81..10" + this.formGSIString( as.getY()*1000.0 ) );
       pw.print( "82..10" + this.formGSIString( as.getX()*1000.0 ) );
 
Avatar

LeAxe Tests

MichaeL ⌂, Bad Vilbel, Saturday, 22.08.2009, 12:22 (vor 5572 Tagen) @ AWO

Hi,

Aber stürzt ab, bzw verursacht eine Endlosschleife, wenn die 73 hinter der 74 steht.

Oha, das hätte ich nicht erwartet. Die flexible Idee ist doch die Schlüsselzahl beim Leicaformat, mit dem die Info ausgelesen werden kann...

Ich glaube nicht, dass es dann auf einem Gerät läuft.

Gut, das müssen wir nun nicht extra testen sondern ändern es im Code.

So sollte es gehen, oder? Oder bringt das Nachteile mit sich?

Naja, so hatte ich es und habe gesehen, dass die Zeile nun in jeder Bedingung drin ist - vorher wars nur einmal. Habs geändert - neue Testversion

Gruß Micha

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

Tags:
Leica, Konverter, LeAxe, GSI, Achse

Avatar

LeAxe Tests

AWO, Nussbaumen AG, Saturday, 22.08.2009, 12:29 (vor 5572 Tagen) @ MichaeL

So funktionierts ;)

Bin nachher nochmal unterwegs und werde am späteren Nachmittag weitere Tests machen.

Gute Arbeit :ok:

btw: Kann man ein Überschreiben von Daten auch abfragen lassen? Also beim Schreiben der GSI?

LeAxe Tests

philipp, Saturday, 22.08.2009, 15:36 (vor 5572 Tagen) @ AWO

Hallöchen,

sorry, aber die Technik...
Hab gestern Abend meine Passwörter bei t-online geändert und vergessen, das auch im Modem/Router zu tun. Nach ein paar Telefonaten mit der Hotline weiß ich das nun auch und bin wieder online...

Ich werde dann mal sogleich das 1103 anschmeißen und die 74-vor-73-Version durchspielen. Mal gucken, ob neben RoadEd auch das Gerät murrt...

Avatar

LeAxe Tests

MichaeL ⌂, Bad Vilbel, Saturday, 22.08.2009, 15:44 (vor 5572 Tagen) @ philipp

Hallo,

Ich werde dann mal sogleich das 1103 anschmeißen und die 74-vor-73-Version durchspielen. Mal gucken, ob neben RoadEd auch das Gerät murrt...

Okay, das ist aber schon behoben. Wichtiger erscheint mir, dass Du das durchspielst, worum Andy Dich die ganze Zeit gebeten hat - diesen einen noch fehlenden Sonderfall.

Ich bin jetzt an der 021. Habe aber gerade erst angefangen mit dem Einlesen der Datei. <geheimSchrift>Viel blöder hätte man die Formate ja kaum gestalten können.</geheimSchrift>

Kurze Fragen:


02101 119113510   97652    77600000  
021 1   350.000 511.390  1000.000 0 

Dieser Zwischenraum zwischen der Formatkennung (021) und der Achse kann sicher auch bei der 40er Datei vorhanden sein, oder? Werde ich in der nächsten Version zumindest mal berücksichtigen. Einfach am Leerzeichen zu trennen, ist es ja bei diesem ?'3§$%8 nicht...
Und, die beiden Nullen am Ende der ersten Zeile sind auch ein Parameter, oder? Hat der einen Namen? Gibt es den immer?

Micha

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

LeAxe Tests

philipp, Saturday, 22.08.2009, 16:08 (vor 5572 Tagen) @ MichaeL

Ja ich merke gerade die gestrige Version hab ich auch gar nicht mehr.
Trotzdem solltest du noch nicht die 040 außer Acht lassen, denn:
Deine Achse 40 wird falsch umgewandelt!!!

Es ist ein CURVEOUT, nicht CURVEIN!
Ich schätze mal, du fragst ab, ob der kommende Radius größer/kleiner ist!?
-9000000 ist zwar mathematisch kleiner als -1250000, aber da das Minus ja nur die Richtung angeben soll, ist der Radius in Wirklichkeit größer!

Fazit: Du musst die Absolutwerte abfragen, nicht die ganzen mit den Vorzeichen.
Dann sollte es funktionieren...

Wegen dem Spezialfall:
Es ist wahrscheinlich gestern untergegangen in meinen "ignorierten" Meldungen, aber ich hatte im RoadEd durchgespielt, was sich bei Änderung des 2. Radiuses so tut.
Ich kann den 2. Wert durchaus ändern, aber sobald er auch nur 1 mm größer (CURVEIN) ist oder 1 mm kleiner (CURVEOUT) als der 1. Radius passiert nix mehr im Gerät/RoadEd. Dabei sind die Vorzeichen egal, so lange sie nur bei beiden Radien jeweils gleich sind.
Die "anderen Spezialfälle" habe ich jetzt also nicht als 100%ige Achsen zur Hand (ich wüsste auch auf Anhieb gar nicht, wie ich die mit meinem AutoCAD konstruieren sollte), jedoch habe ich besagte jeweilige andere Vorzeichenkombination bei IN und OUT im RoadEd durch "Radien-angleichen/verändern" in den vorhandenen Achsen durchgespielt.

Avatar

LeAxe Tests

MichaeL ⌂, Bad Vilbel, Saturday, 22.08.2009, 16:25 (vor 5572 Tagen) @ philipp

Hallo,

wenn Du, wie angekündigt, tatkräftig helfen willst, wäre es schön, wenn Du besagte Funktion immer gleich anpasst und postest. Man muss ja von Java nicht mehr soviel Ahnung haben aber ein Relationszeichen oder das Prüfen auf Gleichheit wird ja noch drin sein. Ich bin hier als Fachfremder nicht in der Lage, immer alles sofort zu blicken.

Du meinst, es müsse so aussehen (mit Math.abs())?

 
/**
 * Liefert Typ des Achsenelementes
 * @param stationNumber
 * @return keyWord
 */
private int getType(int stationNumber) {
 // letztes Element --> EOP
 if (stationNumber==this.countStations()-1)
  return Axis.EOP; 
 
 AxisStation preStation     = stationNumber > 0?this.getStation(stationNumber-1):null;
 AxisStation behindStation  = stationNumber < this.countStations()-1?this.getStation(stationNumber+1):null;
 AxisStation currentStation = this.getStation(stationNumber);
 
 if ( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() != 0) 
  return Axis.SPIRIN;
 
 else if ( currentStation.getRadius() != 0 && currentStation.getClothoidParameter() == 0) 
  return Axis.CURVE;
 
 else if ( preStation != null && currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && behindStation.getRadius() == 0)
  return Axis.SPIROUT;
 
 else if ( preStation != null && currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && preStation.getRadius() !=0 && behindStation.getRadius() !=0 && Math.abs(behindStation.getRadius()) < Math.abs(preStation.getRadius()) ) 
  return Axis.CURVEIN;
 
 else if ( preStation != null && currentStation.getRadius() != 0 && currentStation.getClothoidParameter() != 0 && preStation.getRadius() !=0 && behindStation.getRadius() !=0 && Math.abs(behindStation.getRadius()) > Math.abs(preStation.getRadius()) )  
  return Axis.CURVEOUT;
 
 else //( currentStation.getRadius() == 0 && currentStation.getClothoidParameter() == 0) {
  return Axis.STRAIGHT;
 
} 

Wie ich gerade gesehen habe gibt es den Fall kleiner/größer-gleich nicht. Es werden nur zwei Fälle abgefangen:

 
Math.abs(behindStation.getRadius()) < Math.abs(preStation.getRadius())
// und
Math.abs(behindStation.getRadius()) > Math.abs(preStation.getRadius())
 

Gibt es die?

Micha

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

LeAxe Tests

philipp, Saturday, 22.08.2009, 16:38 (vor 5572 Tagen) @ MichaeL

wäre es schön, wenn Du besagte Funktion immer gleich anpasst und postest. Man muss ja von Java nicht mehr soviel Ahnung haben aber ein Relationszeichen oder das Prüfen auf Gleichheit wird ja noch drin sein. Ich bin hier als Fachfremder nicht in der Lage, immer alles sofort zu blicken.

Also bei JAVA fühl ich mich leider fachfremd.
Bevor ich jetzt wild in eurem Code editiere dachte ich, es geht schneller mit "Ansagen". Du hast ja recht, daß es "nur" das ABS ist, aber wie und wo genau ich das einzufügen habe, damit es auch läuft...?

Du meinst, es müsse so aussehen (mit Math.abs())?
[...]

Ich denke ja. Bei den Vorzeichen bleibt alles gleich, nur bei der größer/kleiner-Abfrage muss es kurz ignoriert werden.

Wie ich gerade gesehen habe gibt es den Fall kleiner/größer-gleich nicht. Es werden nur zwei Fälle abgefangen:

 
Math.abs(behindStation.getRadius()) < Math.abs(preStation.getRadius())
// und
Math.abs(behindStation.getRadius()) > Math.abs(preStation.getRadius())
 

Gibt es die?

Du meinst, ob es auch den Fall von gleich großen Radien gibt?
Tja, warum eigentlich nicht. Aber ob dann IN oder OUT ist?
Ich teste...

LeAxe Tests

philipp, Saturday, 22.08.2009, 17:01 (vor 5572 Tagen) @ philipp

Du meinst, ob es auch den Fall von gleich großen Radien gibt?
Tja, warum eigentlich nicht. Aber ob dann IN oder OUT ist?
Ich teste...

Geht beides nicht.
Liegt vermutlich hier dran: Es darf keine Berührpunkte zwischen den Kreisen geben.

Und bei gleich großen Radien müssen sie sich ja treffen, wenn man auch die erste Bedingung auf der verlinkten Seite berücksichtigt: "Ein Kreis muss den anderen vollständig umschließen."

Da gilt dann wieder der Satz, daß es in einem solchen Falle eine fehlerhafte 040-Datei wäre...

Avatar

LeAxe Tests

MichaeL ⌂, Bad Vilbel, Saturday, 22.08.2009, 18:22 (vor 5572 Tagen) @ philipp

Hi,

Geht beides nicht.

Gut.

Micha

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

LeAxe Tests

philipp, Saturday, 22.08.2009, 16:15 (vor 5572 Tagen) @ MichaeL

zur 021:


02101 119113510   97652    77600000  
021 1   350.000 511.390  1000.000 0 

Dieser Zwischenraum zwischen der Formatkennung (021) und der Achse kann sicher auch bei der 40er Datei vorhanden sein, oder?

Ich fürchte, ja.
Häng dich aber nicht an der Punktion auf! Wie bei der 040 scheint es mit Punktion ein 021-Speziallfall zu sein, normalerweise gibt es wohl keine Punktion (wie bei Andy). So sollte das auch hier berücksichtigt werden...

Und, die beiden Nullen am Ende der ersten Zeile sind auch ein Parameter, oder? Hat der einen Namen? Gibt es den immer?

Nun ja, entweder ist es die 4. und 5. Nachkommastelle, oder aber es ist etwas anderes. Allerdings habe ich bisher immer nur Nullen, Leerstellen oder beides gesehen. Müsste man im Zweifelsfall also ignorieren können.
Leider weiß ich das auch nicht besser - man findet auch nicht viel zum Aufbau dieses Formats.
Da bei der 021 aber nur Stationen, Höhen, und Wannen/Kuppenradien wichtig sein sollten wüsste ich auch nicht, was das da hinten soll...

Avatar

LeAxe Tests

MichaeL ⌂, Bad Vilbel, Saturday, 22.08.2009, 16:29 (vor 5572 Tagen) @ philipp

Hi,

Müsste man im Zweifelsfall also ignorieren können.

Gut, dann lese ich die Zeile ohne die letzten beiden Zeichen ein (also ohne die beiden Nullen)

Micha

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

Avatar

LeAxe Tests

MichaeL ⌂, Bad Vilbel, Saturday, 22.08.2009, 22:59 (vor 5571 Tagen) @ AWO

Hi,

btw: Kann man ein Überschreiben von Daten auch abfragen lassen? Also beim Schreiben der GSI?

Ja, aber auf der Konsole fand ich es umständlich. Auf der Oberfläche wird vorher gefragt.

Gruß Micha

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

Avatar

Testversion online

MichaeL ⌂, Bad Vilbel, Saturday, 22.08.2009, 18:23 (vor 5572 Tagen) @ MichaeL

Hallo,

die dritte Testversion habe ich hochgeladen. LeAxe kann nun (oder sollte es zumindest) sowohl 21er als auch 40er Dateien lesen und wandeln.

DOWNLOAD: LeAxe

Gruß Micha

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

Tags:
LeAxe, Java, GSI, 040, 021

Gradiente

philipp, Saturday, 22.08.2009, 19:00 (vor 5572 Tagen) @ MichaeL

Na denn...

Bei der 040 macht er jetzt CURVEOUT im fraglichen Beispiel. Die Absolutabfrage wirkt also...

Bei der 021 hab ich mal mein Standardbeispiel genommen:

021 0      0000  519977      0000 0
021 0     35208  520417    100000 0
021 0    157219  534497    200000 0
021 0    220400  531654    200000 0
021 0    260400  528054    200000 0
021 0    340300  522740      0000 0
021 0    395400  517410      0000 0
021 0    455400  512130      0000 0
021 0    495400  509320    200000 0
021 0    545400  506580      0000 0
021 0    595400  503850      0000 0
021 0    636290  502010      0000 0
021 0    675400  500630      0000 0
021 0    727330  498480    200000 0
021 0    734810  498310      0000 0

Das ergibt bei dir:

41....+00000000 42....+0VALIGNM 43....+STACOORD 
11....+00000000 71....+STRAIGHT 72....+00000NON 83..10+00519977 
11....+00030063 71....+000CURVE 72....+00100000 83..10+00520353 
11....+00040353 71....+STRAIGHT 72....+00000NON 83..10+00520481 
11....+00141179 71....+000CURVE 72....-00200000 83..10+00532646 
11....+00173259 71....+STRAIGHT 72....+00000NON 83..10+00536348 
11....+00215900 71....+000CURVE 72....-00200000 83..10+00531856 
11....+00224900 71....+STRAIGHT 72....+00000NON 83..10+00531452 
11....+00258051 71....+000CURVE 72....+00200000 83..10+00528265 
11....+00262749 71....+STRAIGHT 72....+00000NON 83..10+00527843 
11....+00340300 71....+STRAIGHT 72....+00000NON 83..10+00522740 
11....+00395400 71....+STRAIGHT 72....+00000NON 83..10+00517410 
11....+00455400 71....+STRAIGHT 72....+00000NON 83..10+00512130 
11....+00493855 71....+000CURVE 72....+00200000 83..10+00509429 
11....+00496945 71....+STRAIGHT 72....+00000NON 83..10+00509211 
11....+00545400 71....+STRAIGHT 72....+00000NON 83..10+00506580 
11....+00595400 71....+STRAIGHT 72....+00000NON 83..10+00503850 
11....+00636290 71....+STRAIGHT 72....+00000NON 83..10+00502010 
11....+00675400 71....+STRAIGHT 72....+00000NON 83..10+00500630 
11....+00725463 71....+000CURVE 72....+00200000 83..10+00498557 
11....+00729197 71....+STRAIGHT 72....+00000NON 83..10+00498403 
11....+00734810 71....+00000EOP 72....+00000NON 83..10+00498310

Ich hab's mal auf gsi-8 gekürzt zwecks schnellem Vergleich mit meiner manuell eingetippelten Datei (nach Längsschnitt), welche so aussieht:

41....+00000000 42....+0VALIGNM 43....+STACOORD 
11....+00000000 71....+STRAIGHT 72....+00000NON 83..10+00519977 
11....+00030063 71....+000CURVE 72....+00100000 83..10+00520353 
11....+00040353 71....+STRAIGHT 72....+00000NON 83..10+00521011 
11....+00141179 71....+000CURVE 72....-00200000 83..10+00532646 
11....+00173259 71....+STRAIGHT 72....+00000NON 83..10+00533775 
11....+00215900 71....+000CURVE 72....-00200000 83..10+00531856 
11....+00224900 71....+STRAIGHT 72....+00000NON 83..10+00531249 
11....+00258051 71....+000CURVE 72....+00200000 83..10+00528265 
11....+00262750 71....+STRAIGHT 72....+00000NON 83..10+00527898 
11....+00340300 71....+STRAIGHT 72....+00000NON 83..10+00522740 
11....+00395400 71....+STRAIGHT 72....+00000NON 83..10+00517410 
11....+00455400 71....+STRAIGHT 72....+00000NON 83..10+00512130 
11....+00493855 71....+000CURVE 72....+00200000 83..10+00509429 
11....+00496945 71....+STRAIGHT 72....+00000NON 83..10+00509235 
11....+00545400 71....+STRAIGHT 72....+00000NON 83..10+00506580 
11....+00595400 71....+STRAIGHT 72....+00000NON 83..10+00503850 
11....+00636290 71....+STRAIGHT 72....+00000NON 83..10+00502010 
11....+00675400 71....+STRAIGHT 72....+00000NON 83..10+00500630 
11....+00725463 71....+000CURVE 72....+00200000 83..10+00498557 
11....+00729198 71....+STRAIGHT 72....+00000NON 83..10+00498438 
11....+00734810 71....+00000EOP 72....+00000NON 83..10+00498310

So, um's abzukürzen:
Sieht soweit ganz gut aus bis auf den anscheinend periodischen Fehler, daß immer in der STRAIGHT-Zeile nach einer CURVE (4,6,8,10,15,21) der 83er-Wert (die Höhe) abweicht von meinen Daten.
Schätze mal, da liegt irgendein kleiner Fehler in der Formel bei der Bestimmung der "hinteren" Höhe vor...

Gradiente

philipp, Saturday, 22.08.2009, 19:07 (vor 5572 Tagen) @ philipp

Und ich glaub ich hab den Fehler:

In meiner Excel sieht's so aus:

=WENN(C4<>0;B4+ABS(C4/2*((B6-B4)/(A6-A4)-(B4-B2)/(A4-A2)))*(B6-B4)/(A6-A4);"")


Falsch, aber dein Ergebnis ergebend, ist dies:

=WENN(C4<>0;B4+ABS(C4/2*((B6-B4)/(A6-A4)-(B4-B2)/(A4-A2)))*(B4-B2)/(A4-A2);"")

Ganz hinten also der Teil hinter dem letzten Malzeichen.
Du musst in der 021 Station und Höhe somit jeweils eine Zeile tiefer abfragen.

Avatar

Gradiente

MichaeL ⌂, Bad Vilbel, Saturday, 22.08.2009, 19:42 (vor 5572 Tagen) @ philipp

Hi,

Ist das erste Element eigentlich immer eine Linie?

DOWNLOAD: LeAxe

Wenn Du GSI-8 haben willst, dann musst Du den ersten Parameter mal auf 8 setzen in der Bat:


REM LeAxis - GNU-GPL
IF "%1" == "" GOTO anchor2
GOTO anchor1
:anchor1
java -jar LeAxeConsole.jar 8 %1
GOTO exit
:anchor2
java -jar LeAxeConsole.jar
GOTO exit
:exit
pause
 

Gruß Micha

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

Gradiente

philipp, Saturday, 22.08.2009, 20:04 (vor 5572 Tagen) @ MichaeL

Ist das erste Element eigentlich immer eine Linie?

Ja das hab ich mich auch schon gefragt. Bisher hab ich nichts anderes gesehen.
Es spricht ja aber nix dagegen, das es keine Linie ist. Kann ja auch ruhig mit einer Wanne/Kuppe anfangen. Das Problem wäre dann aber in der 021, daß es ja keine vorherige Zeile mehr gibt, mit deren Hilfe man die 1. Tangente(nrichtung) berechnen kann.

Man müsste sich also mal die erste Zeile wegdenken und überlegen, wie man das dann richtig umgesetzt bekommt. Theoretisch müsste die Startstation dann ja die Station des Tangentenschnittpunktes sein - also auf genau halber Wannen/Kuppenlänge (von der Stationierung her betrachtet). Die zugehörige Höhe wäre dann die (gegebene) Höhe des Tangenschnittpunktes +- f (siehe meine gescannte Formelseite).
Analog wäre das ganze dann natürlich auch mit einer Wane/Kuppe am Ende so denkbar.

Stell dir vor, du guckst seitlich auf die Gradiente (so wie im Längsschnitt) - das ganze kann man ja als Draufsicht auf eine horizontale Achse interpretieren. Und warum soll es da nicht mit einer Kuppe/Wanne (analog Radius) beginnen/enden?
y/x wären dann quasi Station/Höhe - du kannst mir gedanklich folgen? :-P

So könnte man das vll. mal angehen. Wie gesagt: Zum testen müsste man nur eine vorhandene Gradiente so beschneiden, das vorne/hinten eine Kuppe/Wanne steht...

Avatar

Gradiente

MichaeL ⌂, Bad Vilbel, Saturday, 22.08.2009, 20:20 (vor 5572 Tagen) @ philipp

Hallo,

du kannst mir gedanklich folgen? :-P

Nö, aber ich muss es auch nicht benutzen ;-)

Oberfläche: Was soll da drauf? Ein Button zum Datei auswählen und eine Auswahlmöglichkeit für den GSI-Typ?

Gruß Micha

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

Gradiente

philipp, Saturday, 22.08.2009, 20:26 (vor 5572 Tagen) @ MichaeL

du kannst mir gedanklich folgen? :-P

Ist auch nicht ganz so wichtig. Ich wollte nur verdeutlichen daß eine Gradiente ja auch nix anderes ist als eine um 90° "hochgeklappte" horizontale Achse.

Und das mit dem f wird auch schwierig für den Fall einer Kuppe/Wanne am Anfang/Ende. Dafür benötigen wir nämlich wieder beide Tangentensteigungen - schwierig, wenn sich eine nicht berechnen lässt...

Oberfläche: Was soll da drauf? Ein Button zum Datei auswählen und eine Auswahlmöglichkeit für den GSI-Typ?

Also ich dachte mir das so:
-> 040 oder 021 drauf schieben auf die Verknüpfung (wie im FileConverter)
-> er erkennt die Ausgangsdatei automatisch und fragt nach Format 8 oder 16
-> eventuell (ist wahrscheinlich sogar ziemlich angebracht) Nachfrage nach Speicherort und Name (wobei aln bzw. prf ja zwingend vorweg müssen und die Achsnummer als restlicher Namensteil vorgeschlagen werden kann)
-> OK drücken und fertig

So in etwa...

Gradiente

philipp, Saturday, 22.08.2009, 20:08 (vor 5572 Tagen) @ MichaeL

Und noch fix das Schnelltestergebnis meiner 3 Standardprüftangenten:

Top! :ok:

Natürlich muss man noch weiter Dateien testen - aber leider haben wir ja kaum Gradienten in 040 und gsi vorliegen. Und wenn doch ist die gsi oft auch nur manuell eingegegen worden. Mal sehen...

Avatar

Gradiente

AWO, Nussbaumen AG, Saturday, 22.08.2009, 22:09 (vor 5571 Tagen) @ philipp

Hab das gerade mal wieder verfolgt.
Hab schon vom Fehler gelesen mit abs(). Folgenschwerer Fehler ;)

zur Gradiente:
Fängt bei Euch eine 021 mit einer Wanne oder Kuppe an?

Eine 021 kannst ja in CAD konstruieren, dann kannst zum Prüfen auch diesen konstruierten "Längsschnitt" nehmen.

Ich habe zu einigen Achsen die Höhenpläne als pdf hier. Musst nur umsetzen in einer CAD -Software.

Gradiente

philipp, Sunday, 23.08.2009, 19:27 (vor 5571 Tagen) @ AWO

Fängt bei Euch eine 021 mit einer Wanne oder Kuppe an?

Nein - aber siehe dazu meine Überlegungen von Samstag, 20:04 und 20:26...

Eine 021 kannst ja in CAD konstruieren, dann kannst zum Prüfen auch diesen konstruierten "Längsschnitt" nehmen.
Ich habe zu einigen Achsen die Höhenpläne als pdf hier. Musst nur umsetzen in einer CAD -Software.

Im Optimalfall habe ich eine 021 und eine passende gsi dazu, von der ich auch weiß, daß sie 100%ig stimmt - z.B. durch eben diesen Längsschnitt. Denn da die Zahlenwerte von 021 und gsi dank nötiger "Umrechnungen" nicht direkt vergleichbar sind benötigt man eben noch eine weitere "externe" Kontrolle.
In diesem Längsschnitt stehen ja tollerweise sowohl die Tangenschnittpunkte (zumindest die Stationen von diesen) als auch die Ausrundungsanfänge und -enden (Höhe und Station) drin - super zur Kontrolle!
Aber hab ich keinen Längsschnitt und keine gsi, von der ich schon jetzt weiß, das sie auch wirklich wirklich wirklich stimmt, lässt sich die 021-Umwandlung nur schwerlich prüfen (manuelles nachrechnen an jedem Punkt hieße das wohl)...

Also Andy: 021er mit passendem Längsschnitt kannst du gerne rüberschicken. Nach dem durchjagen durch Michas Programm sollten sich Stationen, Höhen und Ausrundungsparamter samt richtigem Vorzeichen im Höhenplan wiederfinden lassen (besonders gut prüfbar im RoadEd, da dort die Werte viel besser les- und interpretierbar sind als im Rohformat und ja auch grafisch was angezeigt wird).

@Micha:
Danke soweit (natürlich auch an Andy) für das Programm. Ich denke, daß es seinen Zweck bereits jetzt erfüllen sollte, auch wenn vll. nicht jeder Sonderfall abgefangen sein sollte.

Die uns zugänglichen (prüfbaren) Achsen (einfache Beispiele, aber auch welche mit Klothoiden und Eilinien) stimmten zuletzt ja mit den Vergleichs-gsi's überein, und auch bei den Gradienten gab es nach der Ausmerzung eines kleineren Fehlers ja schnell identische Soll- und Ist-gsi's (wenn hier auch leider nur wenige Vergleichsdaten vorlagen).

Ich werde es in nächster Zeit sicher öfters nutzen. Sollte mir dabei etwas auffallen werde ich es natürlich gerne melden.

Ansonsten gilt auch für jeden anderen Mitlesenden hier:
Wer noch interessante Achsen und Gradienten hat, die zum Testen (und Verbessern) des Programms beitragen können soll sie ruhig veröffentlichen/mailen - mitsamt den Daten, mit denen es sich prüfen lässt...

Avatar

LeAxe - Konverter für Daten von Straßenachsen

MichaeL ⌂, Bad Vilbel, Sunday, 23.08.2009, 20:59 (vor 5570 Tagen) @ philipp

Hi,

Ansonsten gilt auch für jeden anderen Mitlesenden hier:
Wer noch interessante Achsen und Gradienten hat, die zum Testen (und Verbessern) des Programms beitragen können soll sie ruhig veröffentlichen/mailen - mitsamt den Daten, mit denen es sich prüfen lässt...

Genau! Drum habe ich auch ein wenig Werbung gemacht fürs Tool bei mir auf der Seite und es bei uns in der Rubrik Vermessungsprogramme hinzugefügt. Quellcode liegt in der JAR mit bei - für Interessierte.

Gruß Micha

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

Tags:
Konverter, LeAxe, Java, GSI, 040, 021

Avatar

LeAxe Download

MichaeL ⌂, Bad Vilbel, Saturday, 22.08.2009, 22:49 (vor 5571 Tagen) @ MichaeL

Hallo Ihr beiden,

dann gebe ich mal die erste Version mit GUI zum Besten. Ich hoffe, sie erfüllt Eure Wünsche und nimmt Euch etwas Arbeit beim Konvertieren von Achsen ins Leica-Format GSI ab.

[image]

DOWNLOAD: LeAxe v0.1b


Gruß Micha

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

Tags:
Konverter, Java, LAxe, GSI, 040, 021, Achse

Avatar

LeAxe Download

AWO, Nussbaumen AG, Saturday, 22.08.2009, 22:58 (vor 5571 Tagen) @ MichaeL

Ich brauchs eigentlich nicht ;) Hab momentan gar kein Achsprogramm auf dem Gerät... Habs aber angesprochen, dass ich es haben will/sollte.

Habs mal gesaugt, aber ich bin sicher die 040 wird richtig umgesetzt.
Die 021 ist auch schon 100% fertig?

Avatar

LeAxe Download

MichaeL ⌂, Bad Vilbel, Saturday, 22.08.2009, 23:01 (vor 5571 Tagen) @ AWO

Hi,

Die 021 ist auch schon 100% fertig?

Ich kann nur das machen, was Flip mir vorab gegeben/gesagt hat. Ob das 100% aller Fälle abfängt, weiß ich nicht.

Gruß Micha

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

Avatar

LeAxe Download

AWO, Nussbaumen AG, Saturday, 22.08.2009, 23:17 (vor 5571 Tagen) @ MichaeL

ok.
er wird sicher berichten, obs im Gerät funktioniert.

GN8!

Avatar

LeAxe Download

MichaeL ⌂, Bad Vilbel, Saturday, 22.08.2009, 23:20 (vor 5571 Tagen) @ AWO

Hi Andy,

er wird sicher berichten, obs im Gerät funktioniert.

Das will ich hoffen! Vielen Dank schon mal für Deine Hilfe. Ohne diese wäre es sicher nicht so schnell gegangen!

Schöne Grüße auch an Tini!

Micha

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

Avatar

LeAxe Download

AWO, Nussbaumen AG, Sunday, 23.08.2009, 20:57 (vor 5570 Tagen) @ MichaeL

kein problem zwecks hilfe, war mal ne gelungene abwechslung

@philipp
ok, dann mal gutes gelingen.
Ich schick dir mal noch paar höhenpläne lang. kannst ja mal vergleichen. ich würds an deiner stelle auch tun. am ende musst du abstecken.

@micha
deine daten schon ausgewertet?
grüß dir frau :)

Bis die Tage!

Andy

Avatar

LeAxe Download

MichaeL ⌂, Bad Vilbel, Sunday, 23.08.2009, 21:05 (vor 5570 Tagen) @ AWO

Hi Andy,

@micha
deine daten schon ausgewertet?

Nein, bin bei. Ich habe am Freitag mal alles durch JAG3D gejagt - nach 4 Stunden hatte er über 9000 Epochen ausgeglichen und in die DB geschrieben. Das war jedoch nur ein Testlauf. Conny muss mir noch ein paar Korrekturdaten berechnen, die müssen dann in die DB und dann gibts noch mal eine Runde. Morgen kommt aber einer zu Besuch, der solche Teleskope baut bzw. gebaut hat - wohl auch das in Wettzell - den werde ich mal ein wenig befragen. Sowie es hier was spruchreifes gibt, werde ich es kund tun im entsprechenden Thread.
Der Konverter - wie findet Ihr eigentlich den Namen? - war echt eine schöne Abwechslung. Auch wenn es recht konfus zwischenzeitlich zuging, war ich vom Arrangement echt angetan. Wenn wir schon nicht das Forum-Vermessung sind, dann wenigstens das Forum-Vermessungsingenieure!

Gruß Micha

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

Achskonvertierung

philipp, Monday, 24.08.2009, 17:26 (vor 5570 Tagen) @ MichaeL

Der Konverter - wie findet Ihr eigentlich den Namen?

Ich musste schon etwas schmunzeln, als ich den Namen erstmals laß.
Aber es war ja klar, daß da was kommen wird - vor allem war ich mir sicher, daß ein X dabei ist. Ist ja auch zu verlockend... :lol:

war echt eine schöne Abwechslung. Auch wenn es recht konfus zwischenzeitlich zuging, war ich vom Arrangement echt angetan

Jawohl - das war mal 'ne Diskussion hier! :clap:
Wann hat man das hier bei uns schon mal, daß man ignoriert wird vor lauter anderen Antworten...? :waving:
Konfus - naja... Bei einer solchen Antwortdichte wohl schwer zu vermeiden, daß der Überblick etwas leidet!

Übrigens: Täusch ich mich, oder hast du die 021 schneller umgesetzt als die 040?
Das war ja schon nach dem ersten Anlauf bis auf einen kleinen Fehler richtig. Ich hätte eher gedacht, daß die 040 zügig(er) geht und die 021 etwas dauert...
Hat meine Excel-Tabelle da geholfen?

@Andy:
Pläne sind angekommen. Werde ich bei Gelegenheit durchspielen. Das kann allerdings noch einige Tage dauern. Wahrscheinlich hab ich vorher keine Achsen mehr umzuwandeln, so daß es auch nicht ganz so dringend ist.

PS: Leica40 wandelt übrigens auch Querprofile um, welche sich wiederum in irgendeiner anderen .0xx-Datei befinden. Wäre das nicht was für euch? :rotfl:
Nun ja - da hätte ich aber wirklich kaum einen Plan, wie man das elegant konvertiert, denn soweit ich mich erinnere hat die zugehörige REB-Datei Querprofildaten von verschiedenen Kennlinien drin - viel zu viel für das Leica. Da bin ich dann per Hand nun wirklich schneller, da ich eh wenig Punkte brauch!
Das 1200 kann da schon mehr ausrichten, weil man wohl an jeder Station ein gesondertes Profil haben kann (geht beim 1103 mit einigem Aufwand, Tricks und etwas uneleganter auch - aber so richtig Sinn seh ich da ohne grafische Anzeige nicht drin) - aber beim 1200 ist es mit gsi ja eh essig...

So denn,
Grüße,
der Flip

Avatar

Achskonvertierung

MichaeL ⌂, Bad Vilbel, Monday, 24.08.2009, 19:16 (vor 5570 Tagen) @ philipp

Hallo,

Ich musste schon etwas schmunzeln, als ich den Namen erstmals laß.

Warum, weil Du an den französischen Namen nicht gedacht hast? Korrekterweise dann eigentlich l'axe (männlich also le) aber ein E kann man ja auch von Leica noch holen... ;-)

Übrigens: Täusch ich mich, oder hast du die 021 schneller umgesetzt als die 040?

Das Hauptproblem war bei mir, dass das Format so komisch ist. Da es aber zwischen 40 und 21 keine Unterschiede mehr gibt - bleibt halt komisch - gings da schneller. Als zweiten Grund kann ich hier nur Andy noch nennen, der die Methode für die Schlüsselwörter erstellt hat. Mit Deinen verbalen Versuchen hätte es vermutlich deutlich länger gedauert. Von daher war ich ganz glücklich, das er die Arbeit beim 40er gemacht hat. So ganz schlüssig ward Ihr Euch ja manchmal auch nicht gleich.

Hat meine Excel-Tabelle da geholfen?

Ich bin kein Freund von Excel-Formeln, da diese immer unübersichtlicher werden mit zunehmender Länge aber sicher war es hilfreich. Wenn man sich mal eingelesen hatte, war es gut zum Abschreiben. Die gescannten Sachen habe ich mir daher gar nicht angeschaut. Ein einfacher ASCII -> ASCII Konverter ist es aber letztlich auch nicht geworden, wie Anfangs noch geschildert. ;-)

aber beim 1200 ist es mit gsi ja eh essig...

Wie ich schon schrieb, ist dem nicht so. Das Gerät kann auch mit GSI umgehen.

[image]

Gruß Micha

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

Avatar

Achskonvertierung

MichaeL ⌂, Bad Vilbel, Friday, 28.08.2009, 19:18 (vor 5566 Tagen) @ philipp

Hi,

... und, läuft das Teil oder gab es schon Probleme?

Gruß Micha

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

Achskonvertierung

philipp, Friday, 28.08.2009, 22:45 (vor 5565 Tagen) @ MichaeL

... und, läuft das Teil oder gab es schon Probleme?

Bis jetzt kein Grund zum klagen.
Allerdings habe ich nur eine weitere Achse (nochmalig, da zwischendurch irgendwie abhanden gekommen :surprised: ) umgewandelt - es gibt da also noch eine gewisse Diskrepanz bei der eingesetzten Datenmenge... :lol:

Das ich das mit weiteren zur Verfügung stehenden Daten (auch Andys Plänen) testen werde war Ernst gemeint und wird auch noch gemacht, vermutlich aber nicht vor nächstem Samstag, da ich dieses WE an der Küste bin und innerhalb der Woche wieder öfters zu meiner weitentfernten Baustelle düsen muss - beides kostet Zeit, die mir somit bis zum nächsten WE fehlt.
Aber dann... ...!

Gradiente-Tests

philipp, Saturday, 05.09.2009, 15:25 (vor 5558 Tagen) @ philipp

So, nun hab ich mich mal rangesetzt an Andys Höhenpläne...
Weit musste ich gar nicht gehen, um auf das erste Problem (und das zweite :waving: ) zu stoßen:

Andys Achse (Freren) sieht so aus:

021     1000000   47639         1
021     1179234   47925  33745825
021     1614643   53146   5911863
021     1659593   54270         1
021     1659693   54370         1
021     1692593   55002         1
021     1705992   55144         1
021     1706092   55044         1
021     1712592   54881         1
021     1807008   56357   9471284
021     2118337   55013  18000000
021     2677951   60591  38925000
021     3602500   51810  28500000
021     4421009   58190  12200000
021     4894438   54256  21000000
021     5910962   64265  25000000
021     6781061   42328  22500000
021     7044884   41176         1

Soweit ok. Was dort "fehlt", ist die überflüssige(?) Schlussspalte. Also die beiden Nullen bzw. das Lehrzeichen und die Null:

021     1000000   47639         100
021     1179234   47925  33745825 0
021     1614643   53146   591186300
021     1659593   54270         1 0
021     1659693   54370         100
021     1692593   55002         1 0
021     1705992   55144         100
021     1706092   55044         1 0
021     1712592   54881         100
021     1807008   56357   9471284 0
021     2118337   55013  1800000000
021     2677951   60591  38925000 0
021     3602500   51810  2850000000
021     4421009   58190  12200000 0
021     4894438   54256  2100000000
021     5910962   64265  25000000 0
021     6781061   42328  2250000000
021     7044884   41176         1 0

Dein Proggi braucht die beiden letzten Zeilen anscheinend zwingend, da die Halbmesser (Wannen-/Kuppenradien) ansonsten um den Faktor 100 schrumpfen. Das ist so natürlich blöd. Es sollte so funktionieren, daß das (Nicht-)Vorhandensein der beiden letzten Spalten egal ist!

Ich hab das in der Rohdatei dann mal so manuell gedreht, das LeAxe das nun trotzdem richtig umwandelt, um die eigentlichen Daten weiter vergleichen zu können.
[@Andy: Plan 02 fehlt! Scheint ausgerechnet der zu sein, wo ein im RoadEd rot markierter Bereich ist. Gibt's den noch?]

Fazit: Es passt (zumindest in den 90% außerhalb von Plan 02)!
Es gibt durchaus Abweichungen von mehreren Zentimetern bei den Kuppen-/Wannenbeginnen und -enden (in der Lage/Stationierung), aber das dürfte vernachlässigbar sein, wenn man sich die wahrscheinlichen Gründe näher ansieht.
So sind die Halbmesser/Radien bei Andy (fast) durchweg im 5-stelligen Bereich, z.B. 34000m. Das hat zwangsläufig einen extrem schleifenden Schnitt von Tangente und Gradiente am Kuppen-/Wannenbeginn/-ende zur Folge, wo wohl schon das weglassen hinterster Kommastellen bei den Zwischenberechnungen zu zentimetergroßen Differenzen führen kann.
Da die Höhe jedoch immer bis auf 1-2 Millimeter exakt zum Plan stimmt und bei einem extrem schleifenden Schnitt einer teilweise über 1km großen Ausrundung in der Praxis völlig egal ist, ob der Schnurnagel bei Station 1+234,567 oder 1+234,637 steht, dürfen wir abgesehen vom oben angesprochenen Problemchen wohl von einer exakten 021>gsi-Umsetzung durch Micha/Andy ausgehen.

Das gilt theoretisch wohl auch hier (Niederfinow), obwohl es hier ein anderes Problem gibt, das ganz praktisch zu einem falschen Ergebnis führt - wem fällt es beim Studium der 021-Daten auf? ;-):

02129    -30000    4990          00                                        
02129    -21333    4990          00                                             
02129      0000    5086          00                                             
02129     77932    5437   200000000                                             
02129    182900   11000  -145000000                                             
02129    313000   11000  -140000000                                             
02129    464823    5838   100000000                                             
02129    499699    5524          00                                             
02129    500545    5517          00

Na...?
Richtig: Es tauchen plötzlich auch Minuszeichen auf!
Bei der Stationierung mag das so noch i.O. sein - schließlich spricht nix gegen negative Stationen - aber bei den Halbmessern/Radien sind wir von immerwährenden positiven Zahlen ausgegangen. Offenbar gibt's aber auch hier manchmal negative Zahlen, glücklicherweise immer dann, wenn's auch im gsi negativ werden muss.

Ich fasse zusammen: 040/021 scheinen nicht 100%ig eindeutig geregelt zu sein. Mal gibt's Dezimaltrenner (siehe unten), mal nicht. Mal positive und negative Halbmesser, mal nur positive (obwohl auch negative dabei sind). Alles sehr unschön...
Micha/Andy - man müsste jetzt eine kleine Abfrage einbauen, ob ein im gsi negativ werdender Halbmesser auch in der 021 schon negativ dargestellt ist. Beachtet man das nämlich nicht, wird minus und minus zu plus und wir erhalten geradewegs den genau falschen Halbmesser (Wanne statt Kuppe).
Ich würde die Berechnung so lassen wie bisher und einfach nochmals das Vorzeichen am Ende drehen, wenn die Zahl schon negativ ist in der 021!

PS: Kann LeAxe jetzt eigentlich auch mit Dezimaltrennern (=Punkte) umgehen oder benötigt es "glatte" Ziffernreihen?
Mir sind nun nämlich auch bei Andys Rohdaten 040er/021er mit Dezimaltrennern aufgefallen, bei denen man dann vor einer Umwandlung noch die Punkte spaltenweise löschen müsste (samt anschließendem "aufrücken" der Ziffernspalten um jeweils einem nach rechts).

[PS @Andy: Bei Xanten habe ich gar keine 021, allerdings geben da auch deine Schnitte nicht viel her. Ich hoffe mal, das die anderen beiden Beispiele ausreichend waren und nicht auch im dritten Fall irgendein Problem zu Tage treten würde... :yes:]

Grüße,
Flip

Avatar

Gradiente-Tests

MichaeL ⌂, Bad Vilbel, Saturday, 05.09.2009, 16:01 (vor 5558 Tagen) @ philipp

Hallo,

nichts gegen ausführliche Postings aber Flip, Du musst Dir mal angewöhnen auf den Punkt zu kommen. Ich muss mir das drei mal durchlesen, bis ich überhaupt mal ein Problem gefunden habe, was es zu lösen gilt.

Dein erstes Problem meine ich gelöst zu haben. Soll dort diese GSI rauskommen?

41....+00000000 42....+0VALIGNM 43....+STACOORD 
11....+01000000 71....+STRAIGHT 72....+00000NON 83..10+00047639 
11....+01003834 71....+000CURVE 72....+33745825 83..10+00047645 
11....+01354634 71....+STRAIGHT 72....+00000NON 83..10+00050028 
11....+01576173 71....+000CURVE 72....+05911863 83..10+00052685 
11....+01653113 71....+STRAIGHT 72....+00000NON 83..10+00054108 
11....+01659593 71....+000CURVE 72....+00000001 83..10+00054270 
11....+01659593 71....+STRAIGHT 72....+00000NON 83..10+00054270 
11....+01659693 71....+000CURVE 72....-00000001 83..10+00054370 
11....+01659693 71....+STRAIGHT 72....+00000NON 83..10+00054370 
11....+01692593 71....+000CURVE 72....-00000001 83..10+00055002 
11....+01692593 71....+STRAIGHT 72....+00000NON 83..10+00055002 
11....+01705991 71....+000CURVE 72....-00000001 83..10+00055144 
11....+01705993 71....+STRAIGHT 72....+00000NON 83..10+00055143 
11....+01706092 71....+000CURVE 72....+00000001 83..10+00055044 
11....+01706092 71....+STRAIGHT 72....+00000NON 83..10+00055044 
11....+01712592 71....+000CURVE 72....+00000001 83..10+00054881 
11....+01712592 71....+STRAIGHT 72....+00000NON 83..10+00054881 
11....+01712532 71....+000CURVE 72....-09471284 83..10+00054880 
11....+01901484 71....+STRAIGHT 72....+00000NON 83..10+00055949 
11....+01989776 71....+000CURVE 72....+18000000 83..10+00055568 
11....+02246898 71....+STRAIGHT 72....+00000NON 83..10+00056294 
11....+02299110 71....+000CURVE 72....-38925000 83..10+00056815 
11....+03056792 71....+STRAIGHT 72....+00000NON 83..10+00056993 
11....+03356085 71....+000CURVE 72....+28500000 83..10+00054150 
11....+03848915 71....+STRAIGHT 72....+00000NON 83..10+00053731 
11....+04322773 71....+000CURVE 72....-12200000 83..10+00057424 
11....+04519245 71....+STRAIGHT 72....+00000NON 83..10+00057374 
11....+04703801 71....+000CURVE 72....+21000000 83..10+00055840 
11....+05085075 71....+STRAIGHT 72....+00000NON 83..10+00056133 
11....+05472732 71....+000CURVE 72....-25000000 83..10+00059950 
11....+06349192 71....+STRAIGHT 72....+00000NON 83..10+00053216 
11....+06546549 71....+000CURVE 72....+22500000 83..10+00048241 
11....+07015573 71....+STRAIGHT 72....+00000NON 83..10+00041304 
11....+07044884 71....+00000EOP 72....+00000NON 83..10+00041176 

Wenn sie das ist, wäre das also behoben.

Die beiden anderen Probleme habe ich so nicht erfasst. Wo gibts Probleme mit dem Vorzeichen bzw. wo muss es geändert werden? Und ob die Dateien noch Dezimalzeichen haben dürfen oder nicht, probierst Du am Besten mal aus und lässt es uns dann einfach wissen. Wir sind doch hier kein Quiz. :-) Wenn ich das im Code richtig sehe, wird zumindest versucht, beides zu berücksichtigen. Wenns nicht gelingt, müsste man da ggf. noch mals ran.

Micha

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

Gradiente-Tests

philipp, Saturday, 05.09.2009, 16:41 (vor 5558 Tagen) @ MichaeL

nichts gegen ausführliche Postings aber Flip, Du musst Dir mal angewöhnen auf den Punkt zu kommen.

ok

Ich muss mir das drei mal durchlesen, bis ich überhaupt mal ein Problem gefunden habe, was es zu lösen gilt.

ok

:-D

Ich weiß das ich hier gerne mal ein Wort mehr schreibe als eins zu wenig, aber wenn ich nur ultra-kurz die Faktenlage anschneide habe ich Angst, das niemand weiß, was ich meine.
(ist ja aber offensichtlich jetzt auch so)

Dein erstes Problem meine ich gelöst zu haben. Soll dort diese GSI rauskommen?

Ohne jetzt noch mal alles durchzugucken: ja
Denn die Halbmesser sind jetzt länger/mehrstelliger als zuvor, was ja das Problem war...

Wo gibts Probleme mit dem Vorzeichen bzw. wo muss es geändert werden?

Wir hatten jetzt vorausgesetzt, daß es nie Minusvorzeichen in der 021 bei den Wannen-/Kuppenradien (Halbmessern) gibt. In diesem Beispiel aber schon (siehe Mitte-rechts):

02129    -30000    4990          00                                        
02129    -21333    4990          00                                             
02129      0000    5086          00                                             
02129     77932    5437   200000000                                             
02129    182900   11000  -145000000                                             
02129    313000   11000  -140000000                                             
02129    464823    5838   100000000                                             
02129    499699    5524          00                                             
02129    500545    5517          00

LeAxe rechnet also fröhlich los, stellt fest, daß der Wert (-)145000 in der gsi negativ sein muss, dreht den Wert daher um (ich schätze mal durch ein "mal -1"?) und erhält, wegen "minus mal minus", wieder den positiven Wert 145000 anstelle des negativen.
DAS ist der Knackpunkt. So ginge das, wenn tatsächlich nur positive Halbmesser dastehen würden, aber nun scheint es eben doch auch negative zu geben.

Soweit deutlich geworden, was ich meine?

Ob die Dateien noch Dezimalzeichen haben dürfen oder nicht, probierst Du am Besten mal aus und lässt es uns dann einfach wissen.
Wenn ich das im Code richtig sehe, wird zumindest versucht, beides zu berücksichtigen. Wenns nicht gelingt, müsste man da ggf. noch mals ran.

Ok. Probiere ich später aus.

Gradiente-Tests

philipp, Saturday, 05.09.2009, 16:58 (vor 5558 Tagen) @ philipp

Nachtrag:

Ist mir eben wieder eingefallen:
Im ersten Beispiel müssten wieder die einzelnen Einsen zu Nullen
uminterpretiert werden:

021     1000000   47639         1
021     1179234   47925  33745825
021     1614643   53146   5911863
021     1659593   54270         1
021     1659693   54370         1
021     1692593   55002         1
021     1705992   55144         1
021     1706092   55044         1
021     1712592   54881         1
021     1807008   56357   9471284
021     2118337   55013  18000000
etc.

müsste hierzu werden:

021     1000000   47639         0
021     1179234   47925  33745825
021     1614643   53146   5911863
021     1659593   54270         0
021     1659693   54370         0
021     1692593   55002         0
021     1705992   55144         0
021     1706092   55044         0
021     1712592   54881         0
021     1807008   56357   9471284
021     2118337   55013  18000000
etc.

Sonnst werden die Einsen wieder zu Radien mit 0,001 m erklärt, was so falsch wäre (diese Problematik hatten wir ja vor 2 Wochen schon durchgekaut, du erinnerst dich?).
Es kommt dann auch tatsächlich nur Blödsinn bei raus im RoadEd - jedenfalls passt es nicht zu den .pdf-Plänen von Andy...

Avatar

Gradiente-Tests

MichaeL ⌂, Bad Vilbel, Saturday, 05.09.2009, 17:16 (vor 5558 Tagen) @ philipp

Hi,

Das Problem hatten wir nur bei den 040-Dateien. Dort sehe ich beim Radius eine Prüfung auf 1E-4(!!! und nicht 1E-3!!!):

this.radius = Math.abs(r)<=1.0E-4?0.0:r;

Bei den 21er Dateien habe ich so etwas nirgends drin. Soll also ergänzt werden. Welcher Grenzwert 1E-3 und stimmt 1E-4 in der 040? Sind eigentlich auch andere Parameter davon betroffen oder nur die beiden?

Gruß Micha

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

Avatar

Gradiente-Tests

MichaeL ⌂, Bad Vilbel, Saturday, 05.09.2009, 17:09 (vor 5558 Tagen) @ philipp

Hallo,

Ich weiß das ich hier gerne mal ein Wort mehr schreibe als eins zu wenig, aber wenn ich nur ultra-kurz die Faktenlage anschneide habe ich Angst, das niemand weiß, was ich meine.

Deine Intention habe ich schon verstanden aber ich brauch was in der Art: Wenn ich dieses Beispiel <Beispiel> einlese, kommt das <falsches Ergebnis>. Es muss aber sowas entstehen <richtiges Ergebnis>. Gerade, wenn es nur um Spaltenverschiebungen geht, ist dass das einfachste. Wenn es was zu rechnen gibt, ist natürlich die Formel auch wichtig. Der Umstand, dass ich keine 040/021 Dateien kenne, machts halt nicht leichter...

Ohne jetzt noch mal alles durchzugucken: ja

Gut. War mein Fehler. Ich bin davon ausgegangen, dass die Spalten fehlen können aber dann immer noch ein Leerzeichen enthalten/vorhanden sind. In dem Fall kann man einfach zwei Zeichen abschneiden. Fehlen diese Leerzeichen auch, sieht es so aus, also würde ich mich um zwei Stellen verrechnen.

Wo gibts Probleme mit dem Vorzeichen bzw. wo muss es geändert werden?

Wir hatten jetzt vorausgesetzt, daß es nie Minusvorzeichen in der 021 bei den Wannen-/Kuppenradien (Halbmessern) gibt.

Ich lese alles mit Vorzeichen ein. In der Berechnung muss der Wert also auch mit Vorzeichen eingegangen sein.

 public AxisGradient(int id, double sta, double h, double vcPar) {
  super(id);
  this.station = sta;
  this.height  = h;
  this.verticalCurvesParameter = vcPar;
  System.out.println( station+"  "+height+"  "+verticalCurvesParameter);
 }

Das System.out.println liefert für das Bsp.:

0.0  5.086  0.0
77.932  5.437  2000.0
182.9  11.0  -1450.0
313.0  11.0  -1400.0
464.82300000000004  5.838  1000.0
499.699  5.524  0.0
500.545  5.517  0.0

LeAxe rechnet also fröhlich los, stellt fest, daß der Wert (-)145000 in der gsi negativ sein muss, dreht den Wert daher um (ich schätze mal durch ein "mal -1"?) und erhält, wegen "minus mal minus", wieder den positiven Wert 145000 anstelle des negativen.

Nein. So etwas passiert nicht. Aber bei der Berechnung kommt der Wert 2-mal vor. Ich zeige Dir alle Stellen mit kurzer Erklärung. Prüfe sie bitte mit Deinem Excel-File. Der negative Wert ist der getVerticalCurvesParameter().:

double absG = Math.abs(0.5*currentGradient.getVerticalCurvesParameter()*(qBC - qCP) );

In dieser Zeile sehe ganz am Anfang ein Math.abs(), was dafür sorgen könnte, dass das Vorzeichen verloren geht.

Und beim 2. Mal beim schreiben in den 72-Block der GSI

((qBC-qCP < 0)?-1000.0:1000.0)*currentGradient.getVerticalCurvesParameter() )

Ich prüfe hier zwei Quotienten, ob die in der Differenz kleiner Null sind, wenn ja, rechne ich -1000*getVerticalCurvesParameter() und wenn nein, dann nur 1000*getVerticalCurvesParameter(). Auch hier würde sich das Vorzeichen drehen, da mit -1000 gerechnet wird. Diese Abfrage sollte auch aus Deinem Excel-File kommen.

Soweit deutlich geworden, was ich meine?

Ja, aber es fehlt die Erklärung, wo/wie ich es beheben soll. ;-)


Micha

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

Gradiente-Tests

philipp, Saturday, 05.09.2009, 18:18 (vor 5558 Tagen) @ MichaeL

[...]
[...]
Ja, aber es fehlt die Erklärung, wo/wie ich es beheben soll. ;-)

Ich habe jetzt bewusst mal alles andere zuvor ausgeblendet, weil ich eigentlich vermute, daß die Lösung recht simpel sein müsste...

[Achtung: Es folgt eine längere Einleitung vor der kurzen Lösung (unter der Strichlinie)! :-P]

Also: Alle deine Berechnungen sind grundsätzlich richtig, soweit ich das mit meinen Beispielrechnungen erfassen konnte, auch die jetzt fragliche.
Will sagen: Mathematisch passt es (eigentlich), aber ganz am Ende muss das Vorzeichen gedreht werden.

Ich hab mir das im RoadEd grafisch angeguckt und sofort bemerkt, daß 2 Ausrundungen verkehrt herum in der Gradiente "hingen". Ich habe händisch das Vorzeichen geändert und siehe da: Es passt 100%ig - kein Fehler bei der automatischen Prüfung und auch kein optischer mehr in der Grafik.

Natürlich habe ich mich gewundert, woher plötzlich dieser Fehler kam, wo das doch zuvor immer gepasst hatte bei allen Variationen. Also guckte ich in die Ausgangs-021 und entdeckte, daß die beiden fraglichen Halbmesser erstmalig(!) in irgendeinem Beispiel mit einem Minus versehen waren. Es muss also an diesen Vorzeichen liegen!!!

---------------------------

Nach reiflicher Überlegung denke ich daher, das die Lösung wie folgt aussieht:
Die schriebst, daß du alle Vorzeichen mit abgreifst. Ich würde sagen: Tu es bei den Halbmessern (Wannen-/Kuppenradien) in der 021 nicht!!! Nutze abs, also den Absolutwert.
Und schon müsste das Problem gelöst sein! :ok:
Denn: Bisher waren alle Halbmeser ausnahmslos positiv und alles hat ausnahmslos geklappt. Jetzt tauchen plötzlich negative Werte auf und schon hakt's. Mach auch sie positiv und es sollte wieder laufen wie zuvor.

Das Problem [mit den Einsen] hatten wir nur bei den 040-Dateien. Dort sehe ich beim Radius eine Prüfung auf 1E-4 (und nicht 1E-3!!!)

Ach richtig, das war bei den 040ern. Offenbar ist dieser Quatsch aber nicht auf diese Datenart begrenzt.

Bei den 21er Dateien habe ich so etwas nirgends drin. Soll also ergänzt werden.

Genau - scheint ja leider auch hier nötig zu sein.

Welcher Grenzwert, 1E-3 odert 1E-4, stimmt in der 040?

Da denke ich stimmt die 4! Wir hatten vor 2-3 Wochen ja festgestellt, daß die Radien dort 4 Nachkommstellen haben (Klothoiden und der meiste Rest aber 3). Warum auch immer...

Hier bei der 021 sind es offensichtlich 3 Nachkommstellen, also 1E-3!

Sind eigentlich auch andere Parameter davon betroffen oder nur die beiden?

Hatten wir bei der 040 nicht auch mal was bei den Stationen? Da kann ein Millimetersprung ja aber manchmal auch tatsächlich nützlich sein (obwohl der bei Andys Beispielen glaube ich am Ende war, wo es eher sinnlos wäre).
Naja - ich glaube da musst du nichts einbauen.

Interessant wären vll. noch die Klothoidenparameter in der 040. Mir ist da zwar soweit ich mich erinnern kann keine 1 über den Weg gelaufen, aber ein Parameter von 0,001, sollte denn doch mal eine 1 auftauchen, wäre genauso sinnlos wie ein Bogenradius von 0,0001.
Insofern wäre eine prophylaktische Abfangung einer 1 bei den Klotho-Parametern analog zu den Bogenradien vll. nicht schlecht (dann aber mit 1E-3!)...

Avatar

Gradiente-Tests

MichaeL ⌂, Bad Vilbel, Saturday, 05.09.2009, 18:52 (vor 5558 Tagen) @ philipp

Hi,

[Achtung: Es folgt eine längere Einleitung vor der kurzen Lösung (unter der Strichlinie)! :-P]

Okay...

Mich wundert nun:

Mathematisch passt es (eigentlich), aber ganz am Ende muss das Vorzeichen gedreht werden.

und dann die Schlußfolgerung:

Tu es bei den Halbmessern (Wannen-/Kuppenradien) in der 021 nicht!!! Nutze abs, also den Absolutwert.

Ich soll den Kurvenparameter generell als positiven Wert speichern:

this.verticalCurvesParameter = Math.abs(vcPar)<=1.0E-3?0.0:Math.abs(vcPar);

Damit drehe ich aber am Ende nicht mehr das Vorzeichen, wie Du oben noch schriebst. Am Ende (also bei der Ausgabe) wird nichts umgedreht.

Und schon müsste das Problem gelöst sein! :ok:

Das kannst Du gleich testen

Genau - scheint ja leider auch hier nötig zu sein.

Gut, auch hier nun die Prüfung mit 1E-3, siehe Code oben.

Insofern wäre eine prophylaktische Abfangung einer 1 bei den Klotho-Parametern analog zu den Bogenradien vll. nicht schlecht (dann aber mit 1E-3!)...

und hier nun auch

this.clothoidParameter= Math.abs(cPar)<=1.0E-3?0.0:cPar;

Die aktuelle Version von LeAxe downloaden.

Gruß Micha

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

Gradiente-Tests

philipp, Saturday, 05.09.2009, 19:14 (vor 5558 Tagen) @ MichaeL

Flip ist sehr arrangiert, mein Wochenende mitzugestalten

Richtig - ich bin sehr engagiert, dein Wochenende anders zu arrangieren... :waving:

Damit drehe ich aber am Ende nicht mehr das Vorzeichen, wie Du oben noch schriebst. Am Ende (also bei der Ausgabe) wird nichts umgedreht.

Nee, richtig. Im Grunde genommen drehst du es ja nun schon am Anfang, durch das abs. Sämtliche folgenden Formeln werden nun also mit dem bereits zuvor gedrehten Wert durchgeorgelt, statt dies am Ende nach der Rechnung zu tun.
Sollte eigentlich passen - denn wenn ich selbst höchstpersönlich das Minusvorzeichen in der 021 lösche läuft es hinterher ja auch...

Und schon müsste das Problem gelöst sein!

Das kannst Du gleich testen

Da ich ja auch noch deinen Sonntag versauen will werde ich das dann mal morgen Mittag machen...

@Andy: A39 kannst du gerne schicken.
Wenn möglich mit der Achsnummernangabe - bei Freren hab ich doch ganz schön suchen müssen, bis ich die passende Achse hatte...

Avatar

Gradiente-Tests

MichaeL ⌂, Bad Vilbel, Saturday, 05.09.2009, 19:31 (vor 5558 Tagen) @ philipp

Hi,

Richtig - ich bin sehr engagiert, dein Wochenende anders zu arrangieren... :waving:

Das war das Wort, welches mir auf der Zunge lag und nicht den Weg zu meinen Fingern geschafft hat ;-)

Da ich ja auch noch deinen Sonntag versauen will werde ich das dann mal morgen Mittag machen...

Meiner-Einer wird sich am Sonntag aber auf seine Bildungsreise vorbereiten, die er antritt. Bekannte Gesichter aus der 4-Tore-Stadt werd' ich mal grüßen von Euch!

Gruß Micha

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

Gradiente-Tests

philipp, Saturday, 05.09.2009, 19:56 (vor 5558 Tagen) @ MichaeL

Meiner-Einer wird sich am Sonntag aber auf seine Bildungsreise vorbereiten, die er antritt.

Kassel?
Das ist ja nur 40 Autobahn-Minuten von mir weg...

Wenn ich nicht wieder Großeinsätze mit ungewissen Laufzeiten im thüringischen Unterholz vor der Brust hätte, hätte ich ja glatt mal vorbeigucken können.

Naja - wir sehen uns ja schon 2 Wochen später...

Und sollte ich morgen doch noch ein Problemchen entdecken kann das eben auch noch 2-3 Tage länger weiterbestehen. Bis heute ist ja auch noch niemand über die nun entdeckten Sachen gestolpert. Und das schon 3 Stunden nach meiner "Bug-List" alles repariert ist ist ja auch ein Luxus, an den du die Leute lieber nicht gewöhnen solltest! :yes:

Gradiente-Tests

philipp, Sunday, 06.09.2009, 19:24 (vor 5557 Tagen) @ philipp

Nach 3 längeren Telefonaten und unerwarteter Arbeitsvorbereitung für morgen bin ich nicht so recht zum weitertesten gekommen.

Habe zumindest die beiden gestrigen Andy-Projekte noch mal fix reingeschoben. Die Originaldateien werden nun auch Original umgewandelt, aber... (siehe unten)

[@Andy: Im Bereich von Plan02 in Freren, den du ja leider nicht hast, muss irgendwas im Argen liegen. Das rot beim RoadEd kommt wohl von einer Station, die von ihrem Wert her weiter vorne liegt, obwohl sie erst später kommt (1712,592 kommt vor 1712,532 - was ja nicht sein dürfte.
Vll. liegt es auch an unserer Umwandlung? Schwierig rauszufinden ohne Vergleichsplan (es könnte ja ein gewollter Sprung sein!?).
Da auch die Höhen quasi-identisch sind an diesen Stationen könnte man vll. auch ein Element löschen, da quasi-doppelt. Das killt aber nicht das rot im RoadEd und die dortige Fehleranzeige. Wie gesagt: Schwierig ohne Plan...]

Micha, neues Problem:
Es gibt 021er, bei denen steht gar nichts beim Halbmesser/Radius, wenn dieser Null ist, und es gibt 021er, da stehen zumindest eine Null (oder mehrere) oder die berühmte 1.
Steht nun gar nix da und auch keine "Füllnullen" am Ende, streikt dein Programm leider (es tut sich nichts beim drücken auf "konvertieren" )!!! Es arbeitet nur bei "Füllnullen" hinter den Leerstellen oder wenn es eben gar keine Leerstellen bei den Halbmessern gibt.
Das ist mir beim manuellen rumspielen aufgefallen.

Andy hat mir noch neue Pläne geschickt. Diese und die Problematik, ob LeAxe auch Dezimaltrennzeichen in der 040/021 verarbeitet, führe ich mir dann später zu Gemüte (im ungünstigen, aber nicht unwahrscheinlichen Fall nächsten Samstag)

So denn,
viel Spaß in Kassel,
Flip

Avatar

Gradiente-Tests

MichaeL ⌂, Bad Vilbel, Sunday, 06.09.2009, 20:16 (vor 5557 Tagen) @ philipp

Hi,

Micha, neues Problem:

... behoben.

Gruß Micha

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

Tags:
LeAxe, Java

LeAxe Kurzeinschätzung

philipp, Saturday, 12.09.2009, 19:31 (vor 5551 Tagen) @ MichaeL

So, nun hab ich noch mal diverse Dateien durchlaufen lassen und, sofern möglich, mit pdf-Plänen oder vorhandenen gsi-Dateien verglichen.

Die 2-3 kleineren Dinge des letzten WE's hat Micha ja schon behoben und ich habe auch nichts weiteres mehr gefunden. Daher behaupte ich mal:

LeAxe ist einsatzbereit!

Allerdings nur im Rahmen der von uns zuvor gesteckten Grenzen.
Ich erinnere nochmals daran, daß wir nicht zu 100% alle unsere Annahmen prüfen konnten (z.B. das CURVEIN-Problem bei der Horizontalachse (040>gsi)) bzw. Annahmen getätigt haben, von denen wir nicht wissen, ob sie immmer so gelten (z.B. die Theorie, daß eine Gradiente immer mit einer Geraden beginnt und endet (021>gsi)).

Sollte solch ein oder ein anderer Spezialfall irgendwann doch mal auftreten gilt also erhöhte Wachsamkeit - wie sowieso eigentlich immer.
Ich empfehle auf jeden Fall, die Ergebnisse immer zu kontrollieren. Wer hat, kann z.B. das Leica-eigene RoadEd nutzen, um sehr schnell eine optische Prüfung der Achsen/Gradienten vornehmen zu können. So hab auch ich während der LeAxe-Entstehungsphase auf einen Blick Probleme erkannt. Schmeißt man dann noch das Prüfprotokoll der Software an und erhält keine Fehlermeldung, darf man wohl von einer gelungenen Umsetzung ausgehen.

Eine Sache noch:
Hatte ich auch schon mal erwähnt - es kann vorkommen, daß von LeAxe ermittelte Stationen von denen auf Längsschnitten angegebenen teilweise um mehrere Zentimeter abweichen. Da Micha die anerkannten Formeln genutzt hat vermute ich den "Fehler" da eher bei den Schnitten als bei uns.
Praktische Auswirkungen hat das eh keine, da die Höhen immer bis auf 1-2 Millimeter übereinstimmen und es in der Außendienst-Praxis bei den heute verwendeten Ausrundungsparametern auch egal ist, ob solch eine Ausrundung nun hier beginnt oder 10 Zentimeter weiter.

Abschließend möchte ich alle Nutzer bitten, Fehler oder Anregungen zu melden, damit das Programm noch besser wird.

So denn,
Flip

LeAxe Kurzeinschätzung

philipp, Saturday, 12.09.2009, 19:38 (vor 5551 Tagen) @ philipp

Abschließend möchte ich alle Nutzer bitten, Fehler oder Anregungen zu melden, damit das Programm noch besser wird.

Hab ich eben glatt vergessen:

1.
Dezimalstellen funktionieren auch. Ist also egal, ob mit oder ohne Punkte/Kommas in der Ausgangsdatei. :ok:

2.
Wenn in der 040-Datei Leerstellen stehen bei Radius und/oder Klothoidenparameter (statt Nullen (oder Einsen)) rechnet LeAxe los, streicht aber die betreffende Zeile in der gsi raus.
Ob das nun möglich ist, daß eine 040 so aussieht (ich habe die betreffenden Nullen manuell gelöscht) weiß ich nicht, aber ich hatte das analog zum 021-Problem (vom letzten WE), wo es solche Leerstellen ja tatsächlich gibt, einfach mal ausprobiert.
Ändert wohl nichts an der Aussage, daß LeAxe einsatzbereit sein sollte, denn gesehen habe ich solche Leerstellen in der 040 wie gesagt noch nicht. Vll. kann man das prophylaktisch noch einbauen in LeAxe, vll. wäre das auch übertrieben - ich weiß es leider auch nicht... :lookaround:

Avatar

Gradiente-Tests

AWO, Nussbaumen AG, Saturday, 05.09.2009, 18:12 (vor 5558 Tagen) @ philipp

Hallo,

den Höhenplan 2 für Freren hab ich leider nicht. Ich könnte noch mit Höhenplänen für die A39 dienen, um noch ein paar Tests durchzuführen.

Wie ich sehe, habt ihr die Schwachstelle der Formeln schon gefunden. Da ich sie nicht habe, kann ich auch nicht mitdiskutieren, aber ich denke, dass es auch nicht nötig ist. Man könnte ja am Ende der Berechnung (nach abs() und dem anderen "Vorzeichen-Killer" ) das Vorzeichen wieder ändern, wenn man weiß, dass der Halbmesser negativ war.
Aber ohen Formeln bringt das nicht viel von meiner Seite.

Avatar

Gradiente-Tests

MichaeL ⌂, Bad Vilbel, Saturday, 05.09.2009, 18:35 (vor 5558 Tagen) @ AWO

Hi,

Wie ich sehe, habt ihr die Schwachstelle der Formeln schon gefunden.

Flip ist sehr arrangiert, mein Wochenende mitzugestalten ;-)

Da ich [die Formeln] nicht habe, kann ich auch nicht mitdiskutieren,

Das Excel-File habe ich auch nicht mehr (gefunden auf meinem PC) aber im JAR von LeAxe ist der Code ja noch drin. Wenn es Dich näher interessiert, dann such dort nach der Axis.java im Paket com.derletztekick.geodesy.LeAxe. Dort gibt eine Methode toGSI021() und toGSI040(), die die Datei entsprechend erstellen.

Ich kann den Code aber auch posten, wenn es Dir lieber wäre.

Wie war das Fest?
Micha

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

LeAxe im Einsatz

philipp, Tuesday, 29.09.2009, 09:00 (vor 5534 Tagen) @ philipp

So,

gerade eben habe ich erstmals einen ganzen Haufen neue Daten eines neuen Projektes durchgeorgelt.

2 Sachen sind mir aufgefallen:

1.) Das gleiche Problem wie schon mal bei den Nullen ganz hinten in der 021-Datei taucht auch vorne hinter der "021" auf. Wenn dort noch eine Leerspalte steht und nicht alle 5 Zeilen gefüllt sind (siehe Beispiel) startet LeAxe zwar, macht dann aber nix mehr.

021 0   834.995  360.9621     0.000
0210    834.995  360.9621     0.000
021     834.995  360.9621     0.000
02100   834.995  360.9621     0.000

Die oberen drei Zeilen sind "falsch", die untere quasi richtig. Gut wäre es also, auch die oberen "richtig" zu bekommen...
Natürlich wäre dann in dem Fall keine automatische Achsnummernerkennung mehr gegeben - aber offensichtlich gibt es eben auch 021er-Dateien, wo hinter der "021" nichts steht.

2.) Könnte man als Ausgangsdatei neben .040/.021 auch .d40/.d21 möglich machen? Ich erhalte sehr oft solche Dateiendungen. Es ist nun natürlich kein Problem, das manuell anzupassen, macht bei 20 Dateien aber auch wieder unnötige Arbeit...

Avatar

LeAxe im Einsatz

MichaeL ⌂, Bad Vilbel, Tuesday, 29.09.2009, 10:37 (vor 5534 Tagen) @ philipp

Moin moin,

1.) Das gleiche Problem wie schon mal bei den Nullen ganz hinten in der 021-Datei taucht auch vorne hinter der "021" auf. Wenn dort noch eine Leerspalte steht und nicht alle 5 Zeilen gefüllt sind (siehe Beispiel) startet LeAxe zwar, macht dann aber nix mehr.

In welcher Version soll das so sein? In der 0.11b sollte das bereits problemlos gehen. Wenn ich dort eine Datei mit Deinen Werten einlese:

021 0   834.995  360.9621     0.000
0210    834.995  360.9621     0.000
021     834.995  360.9621     0.000
02100   834.995  360.9621     0.000

erhalte ich als GSI:

41....+00000000 42....+0VALIGNM 43....+STACOORD 
11....+00834995 71....+STRAIGHT 72....+00000NON 83..10+00360962 
11....+00834995 71....+STRAIGHT 72....+00000NON 83..10+00360962 
11....+00834995 71....+STRAIGHT 72....+00000NON 83..10+00360962 
11....+00834995 71....+00000EOP 72....+00000NON 83..10+00360962 

Dies ist die selbe GSI, die ich auch bekomme, wenn ich die Nullen händisch hinzufüge.

2.) Könnte man als Ausgangsdatei neben .040/.021 auch .d40/.d21 möglich machen?

Ja!

Schöne Grüße
Micha

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

Avatar

LeAxe - Achskonvertierung - auf sf.net

MichaeL ⌂, Bad Vilbel, Sunday, 04.10.2009, 00:05 (vor 5529 Tagen) @ philipp

Guten Abend,

die aktuelle Version und alle späteren von LeAxe werden zukünftig von sf.net gehostet. Ich habe den Quellcode in das dortige CVS-System integriert, so dass dieser online verfügbar ist. Wer bspw. mit Eclipse arbeitet, kann diesen somit direkt beziehen und hat stets die aktuelle Version zur Verfügung.

Nachtrag: Wie es aussieht, hätten wir auch noch ein paar Infos von Stefan Lagemann bekommen können bezüglich des Formats...

Gruß Micha

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

Tags:
Konverter, LeAxe, Achsen, Java, Eclipse, GSI, SourceForge, CSV

RSS-Feed dieser Diskussion