Code-Verschönerung Dashboard
This commit is contained in:
@@ -202,32 +202,41 @@ class EllipsoidTriaxial:
|
||||
|
||||
return np.array([x, y, z])
|
||||
|
||||
def ell2cart(self, beta: float, lamb: float) -> np.ndarray:
|
||||
def ell2cart(self, beta: float | np.ndarray, lamb: float | np.ndarray) -> np.ndarray:
|
||||
"""
|
||||
Panou, Korakitis 2019 2
|
||||
:param beta: elliptische Breite [rad]
|
||||
:param lamb: elliptische Länge [rad]
|
||||
:return: Punkt in kartesischen Koordinaten
|
||||
"""
|
||||
if beta == -np.pi/2:
|
||||
return np.array([0, 0, -self.b])
|
||||
elif beta == np.pi/2:
|
||||
return np.array([0, 0, self.b])
|
||||
elif beta == 0 and lamb == -np.pi/2:
|
||||
return np.array([0, -self.ay, 0])
|
||||
elif beta == 0 and lamb == np.pi/2:
|
||||
return np.array([0, self.ay, 0])
|
||||
elif beta == 0 and lamb == 0:
|
||||
return np.array([self.ax, 0, 0])
|
||||
elif beta == 0 and lamb == np.pi:
|
||||
return np.array([-self.ax, 0, 0])
|
||||
else:
|
||||
B = self.Ex**2 * np.cos(beta)**2 + self.Ee**2 * np.sin(beta)**2
|
||||
L = self.Ex**2 - self.Ee**2 * np.cos(lamb)**2
|
||||
x = self.ax / self.Ex * np.sqrt(B) * np.cos(lamb)
|
||||
y = self.ay * np.cos(beta) * np.sin(lamb)
|
||||
z = self.b / self.Ex * np.sin(beta) * np.sqrt(L)
|
||||
return np.array([x, y, z])
|
||||
beta = np.asarray(beta, dtype=float)
|
||||
lamb = np.asarray(lamb, dtype=float)
|
||||
|
||||
beta, lamb = np.broadcast_arrays(beta, lamb)
|
||||
|
||||
B = self.Ex ** 2 * np.cos(beta) ** 2 + self.Ee ** 2 * np.sin(beta) ** 2
|
||||
L = self.Ex ** 2 - self.Ee ** 2 * np.cos(lamb) ** 2
|
||||
|
||||
x = self.ax / self.Ex * np.sqrt(B) * np.cos(lamb)
|
||||
y = self.ay * np.cos(beta) * np.sin(lamb)
|
||||
z = self.b / self.Ex * np.sin(beta) * np.sqrt(L)
|
||||
|
||||
xyz = np.stack((x, y, z), axis=-1)
|
||||
|
||||
# Pole
|
||||
mask_south = beta == -np.pi / 2
|
||||
mask_north = beta == np.pi / 2
|
||||
xyz[mask_south] = np.array([0, 0, -self.b])
|
||||
xyz[mask_north] = np.array([0, 0, self.b])
|
||||
|
||||
# Äquator
|
||||
mask_eq = beta == 0
|
||||
xyz[mask_eq & (lamb == -np.pi / 2)] = np.array([0, -self.ay, 0])
|
||||
xyz[mask_eq & (lamb == np.pi / 2)] = np.array([0, self.ay, 0])
|
||||
xyz[mask_eq & (lamb == 0)] = np.array([self.ax, 0, 0])
|
||||
xyz[mask_eq & (lamb == np.pi)] = np.array([-self.ax, 0, 0])
|
||||
|
||||
return xyz
|
||||
|
||||
def cart2ellu(self, point: np.ndarray) -> tuple[float, float, float]:
|
||||
"""
|
||||
@@ -390,7 +399,7 @@ class EllipsoidTriaxial:
|
||||
|
||||
return phi, lamb, h
|
||||
|
||||
def geod2cart(self, phi: float, lamb: float, h: float) -> np.ndarray:
|
||||
def geod2cart(self, phi: float | np.ndarray, lamb: float | np.ndarray, h: float) -> np.ndarray:
|
||||
"""
|
||||
Ligas 2012, 250
|
||||
:param phi: geodätische Breite [rad]
|
||||
@@ -425,7 +434,7 @@ class EllipsoidTriaxial:
|
||||
pointH = self. geod2cart(phi, lamb, h)
|
||||
return pointH
|
||||
|
||||
def para2cart(self, u: float, v: float) -> np.ndarray:
|
||||
def para2cart(self, u: float | np.ndarray, v: float | np.ndarray) -> np.ndarray:
|
||||
"""
|
||||
Panou, Korakitits 2020, 4
|
||||
:param u: Parameter u
|
||||
|
||||
Reference in New Issue
Block a user