CoordTrans (Software)

Jörn ⌂ @, Freitag, 10. Februar 2017, 16:44 (vor 43 Tagen)

Hallo,

wir benutzen in unserem Betrieb die Batch-fähige Version von CoordTrans (hier von meinem ehemaligen Kollegen Michael Müller im Forum nachgefragt: KoordTrans3D oder JAG3D im Batchbetrieb?)
und sind damit sehr zufrieden.
Gäbe es die Möglichkeit, die 3-Parametertransformation dort mit einzubringen (neben Helmert und Affin)?


Schon einmal vielen Dank, auch generell für das Tool in aktueller Ausführung und beste Grüße

Jörn

Avatar

CoordTrans im Batch-Modus

Micha ⌂, Bad Vilbel, Freitag, 10. Februar 2017, 21:15 (vor 43 Tagen) @ Jörn

Hallo,

Gäbe es die Möglichkeit, die 3-Parametertransformation dort mit einzubringen (neben Helmert und Affin)?

Die damalige Lösung kann aufgrund von Weiterentwicklungen an CoordTrans nicht mehr direkt verwendet werden. Ich habe daher ein Version erzeugt, die mit der aktuellen Version von CoordTrans läuft. Diese kann über folgende URI tmp. heruntergeladen werden: CoordTransConsole.zip. Ein Beispiel habe ich beigelegt. Die Optionen sind nun 3PARAM, HELMERT bzw. AFFIN.

Viele Grüße und schönes Wochenende
Micha

 /**********************************************************************
 *                       CoordTransConsole                              *
 ************************************************************************
 * Copyright (C) by Michael Loesler, http//derletztekick.com            *
 *                                                                      *
 * This program is free software; you can redistribute it and/or modify *
 * it under the terms of the GNU General Public License as published by *
 * the Free Software Foundation; either version 3 of the License, or    *
 * (at your option) any later version.                                  *
 *                                                                      *
 * This program is distributed in the hope that it will be useful,      *
 * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
 * GNU General Public License for more details.                         *
 *                                                                      *
 * You should have received a copy of the GNU General Public License    *
 * along with this program; if not, see <http://www.gnu.org/licenses/>  *
 * or write to the                                                      *
 * Free Software Foundation, Inc.,                                      *
 * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.            *
 *                                                                      *
 **********************************************************************/
 
package com.derletztekick.geodesy.coordtrans.v2.console;
 
import java.io.File;
import java.util.LinkedHashSet;
import java.util.Locale;
import java.util.Set;
 
import com.derletztekick.geodesy.coordtrans.v2.gui.TransformationManager;
import com.derletztekick.geodesy.coordtrans.v2.io.PointFileReader;
import com.derletztekick.geodesy.coordtrans.v2.point.group.PointGroup;
import com.derletztekick.geodesy.coordtrans.v2.transformation.Transformation;
import com.derletztekick.geodesy.coordtrans.v2.transformation.Transformation2D;
 
public class CoordTransConsole {
 
 /**
  * @param args
  */
 public static void main(String[] args) {
  System.setProperty("com.github.fommil.netlib.BLAS", "com.github.fommil.netlib.F2jBLAS");
  System.setProperty("com.github.fommil.netlib.LAPACK", "com.github.fommil.netlib.F2jLAPACK");
  System.setProperty("com.github.fommil.netlib.ARPACK", "com.github.fommil.netlib.F2jARPACK");
 
  if (args.length < 4) {
   System.err.println("Fehler, benoetige vier Parameter fuer eine Transformation\n- 3PARAM/HELMERT/AFFIN\n- SRC-FILE\n- TRG-FILE\n- REPORT");
   return;
  }
  int dim = 2;
  String TYPE = args[0];
  File srcFile = new File(args[1]);
  File trgFile = new File(args[2]);
  File report  = new File(args[3]);
 
  TransformationManager transformationManager = new TransformationManager(null, Locale.GERMAN);
  PointFileReader srcReader = new PointFileReader(srcFile, dim);
  PointFileReader trgReader = new PointFileReader(trgFile, dim);
 
  srcReader.ignoreLinesWhichStartWith("#");
  trgReader.ignoreLinesWhichStartWith("#");
 
  if (srcReader.readSourceFile() && trgReader.readSourceFile()) {
   PointGroup srcGroup = srcReader.getPoints();
   PointGroup trgGroup = trgReader.getPoints();
 
   transformationManager.setDimension(dim);
   transformationManager.setSourcePointGroup(srcGroup);
   transformationManager.setTargetPointGroup(trgGroup);
 
   // Restriktionen
      Set<Integer> restrictionSet = new LinkedHashSet<Integer>(); 
      if (TYPE.equalsIgnoreCase("3PARAM")) {
    restrictionSet.add(Transformation2D.FIXED_SHEAR);
    restrictionSet.add(Transformation2D.FIXED_SCALE_X);
    restrictionSet.add(Transformation2D.FIXED_SCALE_Y);
   }
      else if (TYPE.equalsIgnoreCase("HELMERT")) {
    restrictionSet.add(Transformation2D.FIXED_SHEAR);
    restrictionSet.add(Transformation2D.IDENT_SCALES_XY);
   }
      transformationManager.setRestrictionSet(restrictionSet);
      transformationManager.adjustUnknownParametersOnly(false);
      Transformation transformation = transformationManager.createTransformation();
 
      int status = transformation.estimateModel();
   System.out.println(status==1?"\n\nBerechnung erfolgreich!":"\n\nBerechnung nicht erfolgreich!");
   transformationManager.exportTransformedPointsToFile(report);
   for (int i=0; i<transformation.getParameterNames().length; i++) 
    System.out.println(transformation.getParameterNames()[i] + " = " + transformation.getEstimatedParameters()[i]);
 
  }
  else {
   System.err.println("Fehler beim Einlesen der Dateien. Bitte Dateipfad pruefen!");
  }
 }
}

--
kostenlose Scripte und Software nicht nur für Geodäten || Portal für Geodäten mit angeschlossenem Forum-Vermessung

Tags:
CoordTrans, Batch, JAVA, Transformation

CoordTrans im Batch-Modus

Jörn, Montag, 13. Februar 2017, 10:02 (vor 40 Tagen) @ Micha

Hallo Micha,

vielen vielen dank. Es funktioniert einwandfrei.

Beste Grüße

Jörn

RSS-Feed dieser Diskussion