Avatar

Gradiente-Tests (Geodäsie/Vermessung)

MichaeL ⌂, Bad Vilbel, Saturday, 05.09.2009, 17:09 (vor 5340 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


gesamter Thread:

 RSS-Feed dieser Diskussion