1+ from math import sqrt
12
23
34class Ellipsoid :
@@ -12,7 +13,6 @@ class Ellipsoid:
1213 """
1314
1415 def __init__ (self , model = 'wgs84' ):
15- # type: (str) -> None
1616 """
1717 feel free to suggest additional ellipsoids
1818
@@ -24,50 +24,44 @@ def __init__(self, model='wgs84'):
2424 if model == 'wgs84' :
2525 """https://en.wikipedia.org/wiki/World_Geodetic_System#WGS84"""
2626 self .semimajor_axis = 6378137.
27- self .flattening = 1 / 298.2572235630
28- self .semiminor_axis = self .semimajor_axis * (1 - self .flattening )
27+ self .semiminor_axis = 6356752.31424518
2928 elif model == 'wgs72' :
3029 self .semimajor_axis = 6378135.
31- self .flattening = 1 / 298.26
32- self .semiminor_axis = self .semimajor_axis * (1 - self .flattening )
30+ self .semiminor_axis = 6356750.52001609
3331 elif model == 'grs80' :
3432 """https://en.wikipedia.org/wiki/GRS_80"""
3533 self .semimajor_axis = 6378137.
36- self .flattening = 1 / 298.257222100882711243
37- self .semiminor_axis = self .semimajor_axis * (1 - self .flattening )
34+ self .semiminor_axis = 6356752.31414036
3835 elif model == 'clarke1866' :
3936 self .semimajor_axis = 6378206.4
4037 self .semiminor_axis = 6356583.8
41- self .flattening = - (self .semiminor_axis / self .semimajor_axis - 1 )
4238 elif model == 'mars' :
4339 """
4440 https://tharsis.gsfc.nasa.gov/geodesy.html
4541 """
4642 self .semimajor_axis = 3396900.
4743 self .semiminor_axis = 3376097.80585952
48- self .flattening = 1 / 163.295274386012
4944 elif model == 'moon' :
5045 self .semimajor_axis = 1738000.
5146 self .semiminor_axis = self .semimajor_axis
52- self .flattening = 0.
5347 elif model == 'venus' :
5448 self .semimajor_axis = 6051000.
5549 self .semiminor_axis = self .semimajor_axis
56- self .flattening = 0.
5750 elif model == 'jupiter' :
5851 self .semimajor_axis = 71492000.
59- self .flattening = 1 / 15.415446277169725
60- self .flattening = - (self .semiminor_axis / self .semimajor_axis - 1 )
52+ self .semiminor_axis = 66770054.3475922
6153 elif model == 'io' :
6254 """
6355 https://doi.org/10.1006/icar.1998.5987
6456 """
6557 self .semimajor_axis = 1829.7
66- self .flattening = 1 / 131.633093525179
67- self .semiminor_axis = self .semimajor_axis * (1 - self .flattening )
58+ self .semiminor_axis = 1815.8
6859 elif model == 'pluto' :
6960 self .semimajor_axis = 1187000.
7061 self .semiminor_axis = self .semimajor_axis
71- self .flattening = 0.
7262 else :
7363 raise NotImplementedError ('{} model not implemented, let us know and we will add it (or make a pull request)' .format (model ))
64+
65+ self .flattening = (self .semimajor_axis - self .semiminor_axis ) / self .semimajor_axis
66+ self .thirdflattening = (self .semimajor_axis - self .semiminor_axis ) / (self .semimajor_axis + self .semiminor_axis )
67+ self .eccentricity = sqrt (2 * self .flattening - self .flattening ** 2 )
0 commit comments