diff --git a/Richtungsreduktion.py b/Richtungsreduktion.py index 6b7f031..688f5eb 100644 --- a/Richtungsreduktion.py +++ b/Richtungsreduktion.py @@ -4,7 +4,7 @@ import ausgaben as aus import winkelumrechnungen as wu -re = ellipsoide.Ellipsoid.init_name("Bessel") +re = ellipsoide.EllipsoidBiaxial.init_name("Bessel") eta = lambda phi: sqrt(re.e_ ** 2 * cos(phi) ** 2) A = wu.gms2rad([327,0,0]) diff --git a/ellipsoide.py b/ellipsoide.py index 2de6f6b..531f223 100644 --- a/ellipsoide.py +++ b/ellipsoide.py @@ -3,7 +3,7 @@ import winkelumrechnungen as wu import ausgaben as aus -class Ellipsoid: +class EllipsoidBiaxial: def __init__(self, a: float, b: float): self.a = a self.b = b @@ -81,3 +81,47 @@ class Ellipsoid: for i in range(len(phii)): print(f"P3[{i}]: {aus.gms('phi', phii[i], 5)}\th = {round(hi[i], 5)} m") return phi, lamb, h + +class EllipsoidTriaxial: + def __init__(self, ax: float, ay: float, b: float): + self.ax = ax + self.ay = ay + self.b = b + self.ex = np.sqrt(self.ax**2 - self.b**2) + self.ey = np.sqrt(self.ay**2 - self.b**2) + self.ee = np.sqrt(self.ax**2 - self.ay**2) + + @classmethod + def init_name(cls, name: str): + if name == "BursaFialova1993": + ax = 6378171.36 + ay = 6378101.61 + b = 6356751.84 + return cls(ax, ay, b) + elif name == "BursaSima1980": + ax = 6378172 + ay = 6378102.7 + b = 6356752.6 + return cls(ax, ay, b) + elif name == "Eitschberger1978": + ax = 6378173.435 + ay = 6378103.9 + b = 6356754.4 + return cls(ax, ay, b) + elif name == "Bursa1972": + ax = 6378173 + ay = 6378104 + b = 6356754 + return cls(ax, ay, b) + elif name == "Bursa1970": + ax = 6378173 + ay = 6378105 + b = 6356754 + return cls(ax, ay, b) + + def ell2cart(self, beta, lamb, u): + s1 = u**2 - self.b**2 + s2 = -self.ay**2 * np.sin(beta)**2 - self.b**2 * np.cos(beta)**2 + s3 = -self.ax**2 * np.sin(lamb)**2 - self.ay**2 * np.cos(lamb)**2 + + x = np.sqrt(u**2 + self.ex**2) * np.sqrt(np.cos(beta)**2 + self.ee**2/self.ex**2 * np.sin(beta)**2) \ No newline at end of file diff --git a/hausarbeit.py b/hausarbeit.py index 95089b2..c9d79fd 100644 --- a/hausarbeit.py +++ b/hausarbeit.py @@ -2,7 +2,7 @@ from numpy import cos, sin, tan import winkelumrechnungen as wu import s_ellipse as s_ell import ausgaben as aus -from ellipsoide import Ellipsoid +from ellipsoide import EllipsoidBiaxial import Numerische_Integration.num_int_runge_kutta as rk import GHA.gauss as gauss import GHA.bessel as bessel @@ -16,7 +16,7 @@ m2 = matrikelnummer[-2] m1 = matrikelnummer[-1] print(f"m1={m1}\tm2={m2}\tm3={m3}\tm4={m4}") -re = Ellipsoid.init_name("Bessel") +re = EllipsoidBiaxial.init_name("Bessel") nks = 3 print(f"\na = {re.a} m\nb = {re.b} m\nc = {re.c} m\ne' = {re.e_}") @@ -49,7 +49,7 @@ s12 = float("1"+m4+m3+m2+"."+m1+"0") # print(f"{s} m, {aus.gms('phi', phi, nks)}, {aus.gms('lambda', lam, nks)}, {aus.gms('A', A, nks)}") # print("via Gauß´schen Mittelbreitenformeln") -phi_p2, lambda_p2, A_p2 = gauss.gha1(Ellipsoid.init_name("Bessel"), +phi_p2, lambda_p2, A_p2 = gauss.gha1(EllipsoidBiaxial.init_name("Bessel"), phi_p1=phi1, lambda_p1=lambda1, A_p1=A12, diff --git a/koord_umrechnung_triaxial.py b/koord_umrechnung_triaxial.py new file mode 100644 index 0000000..e1b894e --- /dev/null +++ b/koord_umrechnung_triaxial.py @@ -0,0 +1,3 @@ +import numpy as np + +def ell2cart() \ No newline at end of file