Anpassung des Reports: maximales Epsilon

by Achim, Monday, April 12, 2021, 15:13 (33 days ago)

Hallo Micha,

ich arbeite schon eine Weile mit Deiner Software und habe auch einen
individuellen Report dazu erstellt. Aus diesem Grund hatte ich mich bisher um einen Umstieg auf die neueren JAG3D Versionen herumgedrückt, Stichwort freemarker,
was natürlich Schade ist. Es gibt ja einige schöne, neue Features :-P .

Jetzt hatte ich endlich Gelegenheit dazu, hat auch soweit alles geklappt,
nur eine Kleinigkeit ist offen geblieben.

Im alten Report konnte ich das Maximale Epsilon am Ende einer Gruppe ausgeben lassen:

Datei observation2dvkp.tmpl
<tfoot>
<tr>
<th colspan="2">Kenngr&ouml;&szlig;en</th>
<td class="tableColumn_Double"><tmpl_var maxEpsilonGroup></td>

Im neuen Format wäre das in der Datei observation_tfoot.ftlh

Es gibt da auch Ausgaben, z.B.
<td><@printFormattedNumber value=group.redundancy format=df_statistic/></td>
<td><@printFormattedNumber value=group.max_gross_error format=df_angle_residual/></td>

Ich habe es analog mit den Variablen
group.epsilon
group.max_epsilon
versucht, aber die gibt es nicht.

Kannst du mir da weiterhelfen?

Nebenbei, ich hatte release Notes gesucht, aber ohne Erfolg. Sind die noch irgendwo zu finden?

Viele Grüße
Achim

Anpassung des Reports: maximales Epsilon

by Micha ⌂, Bad Vilbel, Monday, April 12, 2021, 18:17 (33 days ago) @ Achim

Hallo Achim,

Aus diesem Grund hatte ich mich bisher um einen Umstieg auf die neueren JAG3D Versionen herumgedrückt, Stichwort freemarker, was natürlich Schade ist. Es gibt ja einige schöne, neue Features :-P .

Wow, dann hast Du noch mit der 3er Version gearbeitet? :-|

Ich habe es analog mit den Variablen
group.epsilon
group.max_epsilon
versucht, aber die gibt es nicht.

Ja, die habe ich (bisher) nicht definiert, wie es aussieht.

Kannst du mir da weiterhelfen?

Wenn Du eine schnelle Lösung suchst und Deine Freemarker-Kenntnisse noch etwas vertiefen willst, dann ginge es u.a. so.

Erstelle Dir eine Variable in der observations_table.tmpl (damit die global verfügbar ist), sagen wir maxabsepsilon:

<table class="j3d_datatable">
 <#assign maxabsepsilon = 0>
 ...
</table>

Jetzt suchst Du in der observation_tbody.tmpl die Stelle, wo die Residuen abgerufen werden:

<#if apply_angle_unit??>
 <td><@printFormattedNumber value=observation.residual format=df_angle_residual/></td>
 <td><@printFormattedNumber value=observation.gross_error format=df_angle_residual/></td>
<#else>
 <td><@printFormattedNumber value=observation.residual format=df_length_residual/></td>
 <td><@printFormattedNumber value=observation.gross_error format=df_length_residual/></td>
</#if>


Direkt darunter/drüber kannst Du nun Deine Variable einsetzen:

<#if observation.residual?abs gt maxabsepsilon?abs>
 <#assign maxabsepsilon = observation.residual>
</#if>
 

Diese kannst Du nun in observation_tfoot.tmpl entsprechen ausgeben lassen. (Vielleicht geht es auch noch besser aber so sollte es in jedem Fall funktionieren.)

Nebenbei, ich hatte release Notes gesucht, aber ohne Erfolg. Sind die noch irgendwo zu finden?

Ich habe mir erlaubt, diese Änderungen jetzt jeweils zum Release selbst zu packen. Sie stehen also direkt bei der Version. Ansonsten kann man auch die einzelnen Zweige noch öffnen, um dies nachzuvollziehen.

Hilft Dir das weiter?


Viele Grüße
Micha

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

Tags:
freemarker, Report, HTML, Variable

Anpassung des Reports: maximales Epsilon

by Achim, Tuesday, April 13, 2021, 16:43 (32 days ago) @ Micha

Hallo Micha

Wow, dann hast Du noch mit der 3er Version gearbeitet? :-|

Ja, mit der 3.5.2. Das war aber auf Dauer nicht gut für die Augen 8-) ;-)

Hilft Dir das weiter?

Ja, so hat es geklappt. Jetzt machen die Ausgleichungen wieder doppelt Spaß.

Vielen Dank für die schnellen Tips

Gruß
Achim

Anpassung des Reports: maximales Epsilon

by Micha ⌂, Bad Vilbel, Tuesday, April 13, 2021, 16:50 (32 days ago) @ Achim

Hallo Achim.

Ja, mit der 3.5.2. Das war aber auf Dauer nicht gut für die Augen 8-) ;-)

Okay, hätte nicht gedacht, dass man wegen dem Report an dieser Version festhält.

Wenn Du zur neuen Version Fragen hast, meld' Dich einfach.

Ja, so hat es geklappt. Jetzt machen die Ausgleichungen wieder doppelt Spaß.

Ich werde in der nächsten Version hierfür auch explizite Variablen vorsehen, sodass Du dann nicht mehr zwingend selbst rechnen musst. Ich warte aber erst einmal noch etwas ab, vielleicht vermisst Du ja noch etwas. ;-)

Vielen Dank für die schnellen Tips

Ansonsten ist Freemarker schon extrem mächtig, da es wie eine klein Script-Sprache funktioniert und somit extrem vielseitig ist. Im Report wird das Potenzial sicher nicht ausgereizt. Für das gezeigte gestern musste ich aber auch erst einmal die Doku wieder lesen. ;-)

Viele Grüße
Micha

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

Tags:
JAG3D, freemarker, report

Anpassung des Reports: maximales Epsilon

by Achim, Friday, April 30, 2021, 09:40 (15 days ago) @ Micha

Hallo Micha,

ich habe gerade gesehen, dass Du schon ein Update rausgebracht hast.
Vielen Dank dafür.
Bezüglich der Variablen hatte ich auch keine weiteren Wünsche hoffen ;-)

Eine andere Sache ist mir inzwischen noch aufgefallen, bzw. hätte ich anzuregen.
Wobei mir beim Tippen dieser Nachricht und dem parallelen Ausprobieren auch schon
ein ganz gute alternative Lösung eingefallen ist.

Es geht um die "Einstellungen" bzw. individuelle Standardeinstellungen, speziell um die Formatierungseigenschaften, die sich ja auf den Report auswirken.

Wenn ich für mehrere Projekte die gleichen individuellen Einstellungen verwenden möchte, brauche ich eigentlich nach dem Programmstart nur ein bestehendes Projekt mit den gewünschten Einstellungen zu öffnen, anschließend wird ein neues Projekt mit denselben Einstellungen angelegt. Stimmt das soweit? Man könnte dann einfach mit Projektvorlagen für bestimmte Einstellungen arbeiten.

Alternativ, und jetzt kommt die Anregung, wären zwei zusätzliche Optionen im Einstellungsmenü denkbar, sinngemäß "Die aktuellen Einstellungen als Standard für neue Projekte abspeichern" und "Einstellungen wieder auf werkseitig zurücksetzen".

Kannst ja mal schauen, ob das was wäre. Sonst geht es auch wie oben beschrieben :-)

Viele Grüße
Achim

Anpassung des Reports: Formatierung der Dezimalzahlen

by Micha ⌂, Bad Vilbel, Friday, April 30, 2021, 13:36 (15 days ago) @ Achim

Hallo Achim,

geht es Dir nur um die Ausgabe im Report? Dort kannst Du die angezeigten Stellen gern von den Einstellungen der Applikation entkoppeln. In der Report_(Default).ftlh Datei findest Du oben folgende Zeilen:

<#-- Decimal format w.r.t. user preferences -->
<#assign df_angle              = "${digits_angle???then(digits_angle, 0.00000)};;                      roundingMode=halfEven decimalSeparator='.' infinity='∞' nan='NaN'">
<#assign df_angle_residual     = "${digits_angle_residual???then(digits_angle_residual, 0.00)};;       roundingMode=halfEven decimalSeparator='.' infinity='∞' nan='NaN'">
<#assign df_angle_uncertainty  = "${digits_angle_uncertainty???then(digits_angle_uncertainty, 0.00)};; roundingMode=halfEven decimalSeparator='.' infinity='∞' nan='NaN'">
 
<#assign df_length             = "${digits_length???then(digits_length, 0.00000)};;                      roundingMode=halfEven decimalSeparator='.' infinity='∞' nan='NaN'">
<#assign df_length_residual    = "${digits_length_residual???then(digits_length_residual, 0.00)};;       roundingMode=halfEven decimalSeparator='.' infinity='∞' nan='NaN'">
<#assign df_length_uncertainty = "${digits_length_uncertainty???then(digits_length_uncertainty, 0.00)};; roundingMode=halfEven decimalSeparator='.' infinity='∞' nan='NaN'">
 
<#assign df_scale              = "${digits_scale???then(digits_scale, 0.00000)};;                      roundingMode=halfEven decimalSeparator='.' infinity='∞' nan='NaN'">
<#assign df_scale_residual     = "${digits_scale_residual???then(digits_scale_residual, 0.00)};;       roundingMode=halfEven decimalSeparator='.' infinity='∞' nan='NaN'">
<#assign df_scale_uncertainty  = "${digits_scale_uncertainty???then(digits_scale_uncertainty, 0.00)};; roundingMode=halfEven decimalSeparator='.' infinity='∞' nan='NaN'">
 
<#assign df_percentage         = "${digits_percentage???then(digits_percentage, 0.00)};; roundingMode=halfEven decimalSeparator='.' infinity='∞' nan='NaN'">
<#assign df_statistic          = "${digits_statistic???then(digits_statistic, 0.00)};;  roundingMode=halfEven decimalSeparator='.' infinity='∞' nan='NaN'">

Hier wird also definiert, wieviel Dezimalstellen im Report für welchen Type ausgegeben werden sollen. Die erste Zeile:

<#assign df_angle              = "${digits_angle???then(digits_angle, 0.00000)};;                      roundingMode=halfEven decimalSeparator='.' infinity='∞' nan='NaN'">

legt die Variable df_angle für das Winkelformat fest. Es wird geprüft, ob die Variable digits_angle existiert. Wenn dies der Fall ist, dann wird der Inhalt der Variable df_angle = digits_angle (plus die Optionen zum Runden, Behandlung von Unendlich und NaN) zugewiesen. Sollte die Variable nicht existieren, wird df_angle = 0.00000 gesetzt und der Winkel mit fünf Nachkommastellen ausgegeben (Anzahl der Nullen). Die Variable digits_angle wird von JAG3D an den Report übergeben. Sie resultiert aus den Formatierungseinstellungen. Wenn Du also nur im Report die Anzahl der Stellen begrenzen willst, dann könntest Du hier die Dezimalausgabe fest definieren und entkoppeln von der GUI.

Viele Grüße
Micha

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

Tags:
JAG3D, Report, UI, Template, Variable, Dezimalzahlen, Ausgabe, Nachkommastellen, Freemarker

Defaultwerte für Einheiten und Dezimalstellen

by Micha ⌂, Bad Vilbel, Wednesday, May 05, 2021, 08:42 (10 days ago) @ Achim

Hallo Achim,

ich habe eine weitere Properties-Datei in /resources/properties/ hinzugefügt, die zur Definition von Defaultwerten für Einheiten und Dezimalstellen verwendet werden kann. Die Beipsieldatei lautet formatteroptions.default.example und eine Kopie müsste im selben Verzeichnis unter dem Namen formatteroptions.default erstellt werden, damit JAG3D diese berücksichtigt. In dieser Datei kannst Du nun die Einheiten und die Dezimalstellen für die Standardausgabe festlegen. Diese Datei wird nur beim Start von JAG3D eingelesen und berücksichtigt. Dies bedeutet, diese Einstellungen werden nur in neuen Projekten berücksichtigt und dann dort hinterlegt mit dem Projekt. Öffnest Du ein existierendes Projekt, werden die dortigen Einstellungen verwendet.

Die aktuelle Version: JAG3Dv20210505

Viele Grüße
Micha

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

Tags:
JAG3D, Unit, Default, Fraction digits, v20210505

Defaultwerte für Einheiten und Dezimalstellen

by Achim, Friday, May 07, 2021, 07:29 (8 days ago) @ Micha

Hallo Micha,

primär ging es mir um den Ausdruck, aber mit den default properties ist es natürlich wesentlich einfacher. Vielen Dank dafür und auch für den Hinweis an sich. Da kann man ja für alles mögliche defaults einstellen, recht praktisch. Das muss ich mir noch genauer ansehen ;-)

Zu den formatteroptions:
Maßstab auf Einheitenlos mit UNITLESS hatte ich geraten, und klappt auch :-)

Die Einträge
LENGTH_FRACTION_DIGITS = 3
ANGLE_FRACTION_DIGITS = 4
SCALE_FRACTION_DIGITS = 6
VECTOR_FRACTION_DIGITS = 6
LENGTH_UNCERTAINTY_FRACTION_DIGITS = 1
ANGLE_UNCERTAINTY_FRACTION_DIGITS = 1
SCALE_UNCERTAINTY_FRACTION_DIGITS = 6
VECTOR_UNCERTAINTY_FRACTION_DIGITS = 1
LENGTH_RESIDUAL_FRACTION_DIGITS = 4
ANGLE_RESIDUAL_FRACTION_DIGITS = 5
SCALE_RESIDUAL_FRACTION_DIGITS = 7
VECTOR_RESIDUAL_FRACTION_DIGITS = 8

liefern für die Residuen
Längenresiduum 4 Millimeter
Winkelresiduum 1 Milligon
Maßstabsesiduum 1 Einheitenlos

Meßgrößen, Messunsicherheit und Längenresiduum passen,
Winkel- und Maßstabsresiduum kriege ich nicht nachvollzogen. Ist da ein Wurm drin?

Viele Grüße
Achim

Defaultwerte für Einheiten und Dezimalstellen

by Micha ⌂, Bad Vilbel, Friday, May 07, 2021, 08:32 (8 days ago) @ Achim

Hallo Achim,

Da kann man ja für alles mögliche defaults einstellen, recht praktisch. Das muss ich mir noch genauer ansehen ;-)

Ja, so ist es gedacht. Dadurch, dass man die properties-Datei immer umbenennen muss, damit diese überhaupt berücksichtigt wird, wird diese beim nächsten Update auch nicht überschrieben. Jede neue Version kann also immer ins gleiche Verzeichnis entpackt werden und diese Einstellungen bleiben erhalten.

Zu den formatteroptions:
Maßstab auf Einheitenlos mit UNITLESS hatte ich geraten, und klappt auch :-)

Ich habe für verschiedene Tools Einheiten definiert. Eine Liste aller Klassen findest Du hier. Bei jedem Typ habe ich eine Liste mit Einheiten angelegt, die dieser unterstützt. Bei Winkeln sind dies bspw.:

  • UnitType.RADIAN
  • UnitType.DEGREE
  • UnitType.DEGREE_SEXAGESIMAL
  • UnitType.GRADIAN
  • UnitType.MILLIRADIAN
  • UnitType.ARCSECOND
  • UnitType.MILLIGRADIAN
  • UnitType.MIL6400

Durch diese Liste kann ich abgleichen, ob Du eine sinnvolle Einheit in der Datei gewählt hast. METER (oder eine falsch geschriebene Einheit) würde bspw. keinen Sinn ergeben und wird direkt ignoriert. Die Bezeichnungen in der Datei entsprechen den Namen in der Enumeration.

Winkel- und Maßstabsresiduum kriege ich nicht nachvollzogen. Ist da ein Wurm drin?

Ja, da habe ich wohl einen typischen Copy & Paste Fehler gemacht und die Angabe von den Unsicherheiten übernommen, wie man sieht. Besten Dank für den schnellen Hinweis!

Ich habe es behoben und eine korrigierte Version erzeugt: JAG3Dv20210507. Dieses Problem sollte nun behoben sein.

Viele Grüße
Micha

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

Tags:
JAG3D, Properties, v20210507, Einheiten, Dezimalstellen

RSS Feed of thread