From 96e489a116f639977baf407357bbf1f01b36ce0d Mon Sep 17 00:00:00 2001 From: Hendrik Date: Wed, 4 Feb 2026 11:41:43 +0100 Subject: [PATCH] Darstellung aller Parameterlinien konstant --- dashboard.py | 46 ++++++++++++++++++++++++++++------------------ plot.ipynb | 12 ++++++------ 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/dashboard.py b/dashboard.py index edcb773..3681ecc 100644 --- a/dashboard.py +++ b/dashboard.py @@ -61,8 +61,8 @@ def ellipsoid_figure(ell: EllipsoidTriaxial, title="Dreiachsiges Ellipsoid"): def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = "para"): if coordsystem == "para": - constants_u = wu.deg2rad(np.arange(0, 360, 15)) - all_v = np.linspace(-np.pi / 2, np.pi / 2, 361) + constants_u = wu.deg2rad(np.arange(-90, 91, 15)) + all_v = wu.deg2rad(np.arange(-180, 180, 1)) for u in constants_u: xm, ym, zm = ell.para2cart(u, all_v) fig.add_trace(go.Scatter3d( @@ -71,8 +71,8 @@ def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = "para" showlegend=False )) - all_u = np.linspace(0, 2 * np.pi, 361) - constants_v = wu.deg2rad(np.arange(-75, 90, 15)) + all_u = wu.deg2rad(np.arange(-90, 91, 1)) + constants_v = wu.deg2rad(np.arange(-180, 180, 15)) for v in constants_v: x, y, z = ell.para2cart(all_u, v) fig.add_trace(go.Scatter3d( @@ -82,8 +82,8 @@ def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = "para" )) elif coordsystem == "ell": - constants_beta = wu.deg2rad(np.arange(-75, 90, 15)) - all_lamb = np.linspace(0, 2 * np.pi, 361) + constants_beta = wu.deg2rad(np.arange(-90, 91, 15)) + all_lamb = wu.deg2rad(np.arange(-180, 180, 1)) for beta in constants_beta: xyz = ell.ell2cart(beta, all_lamb) fig.add_trace(go.Scatter3d( @@ -92,19 +92,29 @@ def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = "para" showlegend=False )) - all_beta = np.linspace(-np.pi / 2, np.pi / 2, 361) - constants_lamb = wu.deg2rad(np.arange(0, 360, 15)) + all_beta = wu.deg2rad(np.arange(-90, 91, 1)) + all_beta[0] += 1e-8 + all_beta[-1] -= 1e-8 + constants_lamb = wu.deg2rad(np.arange(-180, 180, 15)) for lamb in constants_lamb: - xyz = ell.ell2cart(all_beta, lamb) - fig.add_trace(go.Scatter3d( - x=xyz[:, 0], y=xyz[:, 1], z=xyz[:, 2], mode="lines", - line=dict(width=1, color="black"), - showlegend=False - )) + if lamb != 0 and abs(lamb) != np.pi: + xyz = ell.ell2cart(all_beta, lamb) + fig.add_trace(go.Scatter3d( + x=xyz[:, 0], y=xyz[:, 1], z=xyz[:, 2], mode="lines", + line=dict(width=1, color="black"), + showlegend=False + )) + else: + x, y, z = ell.para2cart(wu.deg2rad(np.arange(-90, 91, 1)), lamb) + fig.add_trace(go.Scatter3d( + x=x, y=y, z=z, mode="lines", + line=dict(width=1, color="black"), + showlegend=False + )) elif coordsystem == "geod": - constants_phi = wu.deg2rad(np.arange(-75, 90, 15)) - all_lamb = np.linspace(0, 2 * np.pi, 361) + constants_phi = wu.deg2rad(np.arange(-90, 91, 15)) + all_lamb = wu.deg2rad(np.arange(-180, 180, 1)) for phi in constants_phi: x, y, z = ell.geod2cart(phi, all_lamb, 0) fig.add_trace(go.Scatter3d( @@ -113,8 +123,8 @@ def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = "para" showlegend=False )) - all_phi = np.linspace(-np.pi / 2, np.pi / 2, 361) - constants_lamb = wu.deg2rad(np.arange(0, 360, 15)) + all_phi = wu.deg2rad(np.arange(-90, 91, 1)) + constants_lamb = wu.deg2rad(np.arange(-180, 180, 15)) for lamb in constants_lamb: x, y, z = ell.geod2cart(all_phi, lamb, 0) fig.add_trace(go.Scatter3d( diff --git a/plot.ipynb b/plot.ipynb index fdf0d4d..fec66c6 100644 --- a/plot.ipynb +++ b/plot.ipynb @@ -120,7 +120,7 @@ "def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = \"para\", linewidth=1, color1=\"black\", color2=\"grey\"):\n", " if coordsystem == \"para\":\n", " constants_u = wu.deg2rad(np.arange(-90, 91, 15))\n", - " all_v = wu.deg2rad(np.arange(-180, 181, 0.5))\n", + " all_v = wu.deg2rad(np.arange(-180, 180, 0.5))\n", " for u in constants_u:\n", " xm, ym, zm = ell.para2cart(u, all_v)\n", " fig.add_trace(go.Scatter3d(\n", @@ -130,7 +130,7 @@ " ))\n", "\n", " all_u = wu.deg2rad(np.arange(-90, 91, 0.5))\n", - " constants_v = wu.deg2rad(np.arange(-180, 181, 15))\n", + " constants_v = wu.deg2rad(np.arange(-180, 180, 15))\n", " for v in constants_v:\n", " x, y, z = ell.para2cart(all_u, v)\n", " fig.add_trace(go.Scatter3d(\n", @@ -141,7 +141,7 @@ "\n", " elif coordsystem == \"ell\":\n", " constants_beta = wu.deg2rad(np.arange(-90, 91, 15))\n", - " all_lamb = wu.deg2rad(np.arange(-180, 181, 0.5))\n", + " all_lamb = wu.deg2rad(np.arange(-180, 180, 0.5))\n", " for beta in constants_beta:\n", " xyz = ell.ell2cart(beta, all_lamb)\n", " fig.add_trace(go.Scatter3d(\n", @@ -153,7 +153,7 @@ " all_beta = wu.deg2rad(np.arange(-90, 91, 0.5))\n", " all_beta[0] += 1e-8\n", " all_beta[-1] -= 1e-8\n", - " constants_lamb = wu.deg2rad(np.arange(-180, 181, 15))\n", + " constants_lamb = wu.deg2rad(np.arange(-180, 180, 15))\n", " for lamb in constants_lamb:\n", " if lamb != 0 and lamb != np.pi:\n", " xyz = ell.ell2cart(all_beta, lamb)\n", @@ -173,7 +173,7 @@ "\n", " elif coordsystem == \"geod\":\n", " constants_phi = wu.deg2rad(np.arange(-90, 91, 15))\n", - " all_lamb = wu.deg2rad(np.arange(-180, 181, 0.5))\n", + " all_lamb = wu.deg2rad(np.arange(-180, 180, 0.5))\n", " for phi in constants_phi:\n", " x, y, z = ell.geod2cart(phi, all_lamb, 0)\n", " fig.add_trace(go.Scatter3d(\n", @@ -183,7 +183,7 @@ " ))\n", "\n", " all_phi = wu.deg2rad(np.arange(-90, 91, 0.5))\n", - " constants_lamb = wu.deg2rad(np.arange(-180, 181, 15))\n", + " constants_lamb = wu.deg2rad(np.arange(-180, 180, 15))\n", " for lamb in constants_lamb:\n", " x, y, z = ell.geod2cart(all_phi, lamb, 0)\n", " fig.add_trace(go.Scatter3d(\n",