を使用して、地球の中心から様々な(lat, lon)
の位置までの距離をマッピングすると、緯度の変化が経度とは関係なく(サブミリメートル)表示されます。これは、パッケージ内の文書化された近似、スクリプトのバグ、または全く別のものかもしれません。私はここで何か間違っていますか? (Skyfieldで地球の形が間違っているようです - 私のpythonは正しいですか?
pe = earth.at(jd).position.km
for i in range(10):
lon1, lon2 = 360.*np.random.random(2)-180
lat = float(180.*np.random.random(1)-90.)
p1 = earth.topos(lat, lon1).at(jd).position.km
p2 = earth.topos(lat, lon2).at(jd).position.km
r1 = np.sqrt(((p1-pe)**2).sum())
r2 = np.sqrt(((p2-pe)**2).sum())
print lat, lon1, lon2, r2-r1
及びこれを得た:(以外に、当然のことながら、jet使用)クロスチェックとして
import numpy as np
import matplotlib.pyplot as plt
from skyfield.api import load, now
data = load('de421.bsp')
earth = data['earth']
jd = now()
epos = earth.at(jd).position.km
lats = np.linspace(-90, 90, 19)
lons = np.linspace(-180, 180, 37)
LATS, LONS = np.meshgrid(lats, lons)
s = LATS.shape
points = zip(LATS.flatten(), LONS.flatten())
rr = []
for point in points:
la, lo = point
pos = earth.topos(la, lo).at(jd).position.km
r = np.sqrt(((pos-epos)**2).sum())
rr.append(r)
surf = np.array(rr).reshape(s)
extent = [lons.min(), lons.max(), lats.min(), lats.max()]
plt.figure()
plt.imshow(surf.T, origin='lower', extent=extent)
plt.colorbar()
plt.title('uhoh topo')
plt.savefig('uhoh topo')
plt.show()
を、私は同じ緯度と場所のいくつかのランダムなペアを試し第4列はミクロンの差を示す):
45.8481950437 55.9538249618 115.148786114 1.59288902069e-08
-72.0821405192 4.81264755835 172.783338907 2.17096385313e-09
51.6126938075 -54.5670258363 -134.888403816 2.42653186433e-09
2.92691713179 -178.553103457 134.648099589 1.5916157281e-10
-78.7376163827 -55.0684703115 125.714124504 -6.13908923697e-10
48.5852207923 -169.061708765 35.5374862329 7.60337570682e-10
42.3767785876 130.850223447 -111.520896867 -1.62599462783e-08
11.2951212126 -60.0296460731 32.8775784623 6.91579771228e-09
18.9588262131 71.3414406837 127.516370219 -4.84760676045e-09
-31.5768658495 173.741960359 90.3715297869 -6.78483047523e-10
実際の質問は何ですか?約6357 kmから6378 kmまでの緯度の変化は妥当です(たとえば、https://en.wikipedia.org/wiki/Figure_of_the_Earthを参照)。その結果、出力のどの数字に質問していますか? –
距離は経度とともに変化します - 確かに数十ミクロン以上です。扁平回転楕円体は、実際の形状への一次近似に過ぎません。そして、それは仰角やジオイドの形状を考慮に入れていません。私はこれがパッケージ内の暗黙の近似かバグか、パッケージを正しく使用していないかを理解しようとしています。 – uhoh
経度のばらつきは小さいがゼロではないという事実は、丸め誤差(天文学的な距離)から来るかもしれないので、楕円近似を使用している可能性があります。しかし、私はそれが事実であるかどうかわからない。人々はGPS測位とミリメートルの分解能(時には正確度*でも)を測っています - これはかなり大きな近似*です。 – uhoh