Avatar

Achskonvertierung *.040 --> *.GSI (Geodäsie/Vermessung)

MichaeL ⌂, Bad Vilbel, Thursday, 20.08.2009, 22:40 (vor 5360 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


gesamter Thread:

 RSS-Feed dieser Diskussion