|
| __init__ (self) |
|
| lla2ecef (self, lat, lon, h) |
|
| ecef2enu (self, x, y, z, lat0, lon0, h0) |
|
| enu2ecef (self, xEast, yNorth, zUp, lat0, lon0, h0) |
|
| ecef2lla (self, x, y, z) |
|
| lla2enu (self, lat, lon, h, lat_ref, lon_ref, h_ref) |
|
| enu2lla (self, xEast, yNorth, zUp, lat_ref, lon_ref, h_ref) |
|
| lla2ned (self, lla, lla0) |
|
| ned2lla (self, ned, lla0) |
|
|
int | x2 = x ** 2 |
|
int | y2 = y ** 2 |
|
int | z2 = z ** 2 |
|
| wgs84_a |
|
| wgs84_b |
|
| e = math.sqrt (1-(self.wgs84_b/self.wgs84_a)**2) |
|
| b2 = self.wgs84_b*self.wgs84_b |
|
int | e2 = e ** 2 |
|
| ep = e*(self.wgs84_a/self.wgs84_b) |
|
| r = math.sqrt(x2+y2) |
|
| r2 = r*r |
|
int | E2 = self.wgs84_a ** 2 - self.wgs84_b ** 2 |
|
int | F = 54*b2*z2 |
|
int | G = r2 + (1-e2)*z2 - e2*E2 |
|
tuple | c = (e2*e2*F*r2)/(G*G*G) |
|
tuple | s = ( 1 + c + math.sqrt(c*c + 2*c) )**(1/3) |
|
int | P = F / (3 * (s+1/s+1)**2 * G*G) |
|
| Q = math.sqrt(1+2*e2*e2*P) |
|
| ro = -(P*e2*r)/(1+Q) + math.sqrt((self.wgs84_a*self.wgs84_a/2)*(1+1/Q) - (P*(1-e2)*z2)/(Q*(1+Q)) - P*r2/2) |
|
tuple | tmp = (r - e2*ro) ** 2 |
|
| U = math.sqrt( tmp + z2 ) |
|
| V = math.sqrt( tmp + (1-e2)*z2 ) |
|
tuple | zo = (b2*z)/(self.wgs84_a*V) |
|
| height = U*( 1 - b2/(self.wgs84_a*V) ) |
|
| lat = math.atan( (z + ep*ep*zo)/r ) |
|
| temp = math.atan(y/x) |
|
| long = temp |
|
| lat0 = lat/(math.pi/180) |
|
| lon0 = long/(math.pi/180) |
|
| h0 = height |
|