Näherungslösung GHA 2

This commit is contained in:
2026-01-11 16:05:15 +01:00
parent 4d5b6fcc3e
commit 6cc7245b0f
7 changed files with 260 additions and 235 deletions

View File

@@ -150,7 +150,6 @@ def figure_lines(fig, line, color):
return fig
app.layout = html.Div(
style={"fontFamily": "Arial", "padding": "5px", "width": "70%", "margin-left": "auto"},
children=[
@@ -170,7 +169,7 @@ app.layout = html.Div(
{"label": "BesselBiaxial", "value": "BesselBiaxial"},
{"label": "Fiction", "value": "Fiction"},
{"label": "KarneyTest2024", "value": "KarneyTest2024"},
#{"label": "Ei", "value": "Ei"},
# {"label": "Ei", "value": "Ei"},
],
value="",
style={"width": "300px", "marginBottom": "20px"},
@@ -254,7 +253,6 @@ def fill_inputs_from_dropdown(selected_ell):
if not selected_ell:
return None, None, None
ell = EllipsoidTriaxial.init_name(selected_ell)
ax = ell.ax
ay = ell.ay
@@ -408,16 +406,16 @@ def calc_and_plot(n1, n2,
alpha_rad = wu.deg2rad(float(a_deg))
s_val = float(s)
p1 = tuple(map(float, ell.ell2cart(beta_rad, lamb_rad)))
p1 = ell.ell2cart(beta_rad, lamb_rad)
out1 = []
if "analytisch" in method1:
# ana
(x2, y2, z2), alpha2 = gha1_ana(ell, p1, alpha_rad, s_val, 70)
p2_ana = (float(x2), float(y2), float(z2))
beta2, lamb2 = ell.cart2ell([x2, y2, z2])
p2_ana, alpha2 = gha1_ana(ell, p1, alpha_rad, s_val, 70)
x2, y2, z2 = p2_ana
beta2, lamb2 = ell.cart2ell(p2_ana)
#out1 += f"kartesisch: x₂={p2[0]:.5f} m, y₂={p2[1]:.5f} m, z₂={p2[2]:.5f} m; ellipsoidisch: {aus.gms("β₂", beta2, 5)}, {aus.gms("λ₂", lamb2, 5)},"
# out1 += f"kartesisch: x₂={p2[0]:.5f} m, y₂={p2[1]:.5f} m, z₂={p2[2]:.5f} m; ellipsoidisch: {aus.gms("β₂", beta2, 5)}, {aus.gms("λ₂", lamb2, 5)},"
out1.append(
html.Div([
html.Strong("Analytisch: "),
@@ -430,8 +428,7 @@ def calc_and_plot(n1, n2,
if "numerisch" in method1:
# num
(x1, y1, z1), alpha1, werte = gha1_num(ell, p1, alpha_rad, s_val, 10000)
p2_num = x1, y1, z1
p2_num, alpha1, werte = gha1_num(ell, p1, alpha_rad, s_val, 10000, all_points=True)
beta2_num, lamb2_num = ell.cart2ell(p2_num)
out1.append(
@@ -448,7 +445,6 @@ def calc_and_plot(n1, n2,
for x1, _, y1, _, z1, _ in werte:
geo_line_num1.append([x1, y1, z1])
if "stochastisch" in method1:
# stoch
p2_stoch = "noch nicht implementiert.."
@@ -464,15 +460,15 @@ def calc_and_plot(n1, n2,
return html.Span("Bitte Berechnungsverfahren auswählen!", style={"color": "red"}), "", go.Figure()
fig = ellipsoid_figure(ell, title="Erste Hauptaufgabe - analystisch")
#fig = figure_constant_lines(fig, ell, "geod")
# fig = figure_constant_lines(fig, ell, "geod")
fig = figure_constant_lines(fig, ell, "ell")
#fig = figure_constant_lines(fig, ell, "para")
# fig = figure_constant_lines(fig, ell, "para")
if "analytisch" in method1:
fig = figure_points(fig, [("P1", p1, "black"), ("P2", p2_ana, "red")])
if "numerisch" in method1:
fig = figure_lines(fig, geo_line_num1, "#ff8c00")
#out1 = f"kartesisch: x₂={p2[0]:.5f} m, y₂={p2[1]:.5f} m, z₂={p2[2]:.5f} m; ellipsoidisch: {aus.gms("β₂", beta2, 5)}, {aus.gms("λ₂", lamb2, 5)}, {p2_num}"
# out1 = f"kartesisch: x₂={p2[0]:.5f} m, y₂={p2[1]:.5f} m, z₂={p2[2]:.5f} m; ellipsoidisch: {aus.gms("β₂", beta2, 5)}, {aus.gms("λ₂", lamb2, 5)}, {p2_num}"
return out1, "", fig
if dash.ctx.triggered_id == "button-calc-gha2":
@@ -488,15 +484,14 @@ def calc_and_plot(n1, n2,
alpha_1, alpha_2, s12, beta_arr, lamb_arr = gha2_num(
ell,
np.deg2rad(float(beta21)), np.deg2rad(float(lamb21)),
np.deg2rad(float(beta22)), np.deg2rad(float(lamb22))
np.deg2rad(float(beta22)), np.deg2rad(float(lamb22)),
all_points=True
)
geo_line_num = []
for beta, lamb in zip(beta_arr, lamb_arr):
point = ell.ell2cart(beta, lamb)
geo_line_num.append(point)
out2.append(
html.Div([
html.Strong("Numerisch: "),
@@ -504,7 +499,6 @@ def calc_and_plot(n1, n2,
])
)
if "stochastisch" in method2:
# stoch
a_stoch = "noch nicht implementiert.."
@@ -524,8 +518,6 @@ def calc_and_plot(n1, n2,
if "numerisch" in method2:
fig = figure_lines(fig, geo_line_num, "#ff8c00")
fig = figure_points(fig, [("P1", p1, "black"), ("P2", p2, "red")])
return "", out2, fig