IERSデータアクセス (astropy.utils.iers
)¶
序言:序言¶
♪the iers
このパッケージは、国際地球自転および参照システム(IERS)サービスによって提供されるテーブルへのアクセスを提供し、特に、発行されたUT 1−UTCおよび極シフト値のファイルを所与の時間内に補間することを可能にする。UT 1−UTC値は astropy.time
UT 1値を提供します astropy.coordinates
天地座標変換の地球方向を決定するためである。
注釈
このスーツはうるう秒を追跡する機械も提供している。通常はこれらの問題を手作業で扱う必要がないため,以下ではこの点については議論しない.詳細についてはご参照ください LeapSeconds
それがそうです。
スタート¶
Asterpy 1.2から,最新のIERS値(約1年間の予測値を含む)が必要に応じてIERSサービスから自動的にダウンロードされる.時間や座標変換がキャッシュをダウンロードすることで得られていない値が必要な場合には,このようなことが発生する.ほとんどの場合、呼び出す必要はありません iers
クラス自体は,ダウンロードが発生した場合や,これらの状況をどのように制御するかを知ることが有用である.
基本的用法¶
デフォルトではIERSデータは IERS_Auto
級友たち。これらのインスタンスは、関連時間内に作成され、変換中にオブジェクトを調整する。Asterpyデータキャッシュに必要なIERSデータファイルがない場合,AsterpyはIERSサービスからファイルを要求する.これは、このような変換が最初に新しく設定されたか、または新しい機械上で実行されたときに発生するであろう。以下の例は、典型的なダウンロードプログレスバーを示す。
>>> from astropy.time import Time
>>> t = Time('2016:001')
>>> t.ut1
Downloading https://maia.usno.navy.mil/ser7/finals2000A.all
|==================================================================| 3.0M/3.0M (100.00%) 6s
<Time object: scale='ut1' format='yday' value=2016:001:00:00:00.082>
ダウンロードキャッシュは、以下のように強制的に消去することができます。
>>> from astropy.utils.data import clear_download_cache
>>> clear_download_cache()
自動使用されたデフォルトIERSデータは、1973−01−01に遡る変換を含むサービスによって7日毎に更新される。
注釈
♪the IERS_Auto
クラスは、必要に応じて最新バージョンを自動的にダウンロードすることによって、IERSテーブルが最新のままであることを保証する機構を含む。これはIERS表が最先端の地球自転確定値と予測値を確保できることを意味している。ユーザーとしては あなたの責任 もしあなたの科学がこれに依存してIERS予測の正確性を理解するなら。もしあなたが要求すれば UT1-UTC
または極地運動がIERSテーブルデータ範囲を超える時間を超えると、最も近い利用可能な値が提供される。
構成パラメータ¶
3つの構成パラメータがIERSを自動的にダウンロードする動作を制御します
- 自動ダウンロード(_D):
最新のIERSデータの自動ダウンロードを有効にします。もし設定が
False
デフォルトでは、ローカルIERS−Bファイルが使用される(予測を含む完全IERSファイルがダウンロードされキャッシュされていても)。これはAsterpy 1.2までの行動をコピーしている.(デフォルト値=True)- AUTO_MAX_AGE:
自動ダウンロード前予測データの最長期限(日).詳細は次節を参照されたい。(デフォルト値=30)
- IERS_AUTO_URL:
IERSファイルデータのURLを自動的にダウンロードする
- IERS_AUTO_URL_MIRROR:
IERSファイルデータのミラーURLを自動的にダウンロードします。
- リモートタイムアウト(_TIMEOUT):
IERSファイルデータをダウンロードする際にリモートタイムアウト(秒)
自動刷新行為¶
最初の試みがIERSデータの時間または座標変換を必要とする場合、最新バージョンのIERSテーブル(1973年から今後1年まで)がAstpyキャッシュにダウンロードされて格納される。
そして,可能であれば,キャッシュを用いたデータファイルを変換する.しかし、 IERS_Auto
ルックアップテーブルが以下の2つの条件を満たしていれば,ネットワークから自動定位置更新表を作成する. UT1-UTC
極軸運動値:
どの要求のIERS値も 予測性. これは彼らが測定データに合ったモデルで未来に押してきたということを意味する。IERS表は,作成日から約1年間の予測データを含む.
表の最初の予測値は少なくとも
conf.auto_max_age days
現在の実時間に対する古い時間(すなわちTime.now()
)である。これは、IERSテーブルが期限切れになり、IERSサービス上でより新しいバージョンを見つけることができることを意味する。
IERSサービスはデフォルトのオンラインフォームを提供します(設定から astropy.utils.iers.IERS_A_URL
)を更新し、7日ごとにコンテンツを更新します。デフォルト値です。 auto_max_age
不必要なネットワークアクセスを避けるために30日であるが,この時間を最低10日に減らすことができる.
オフライン作業.¶
Internet接続なしで動作し、IERSデータを必要とする変換を実行している場合には、いくつかの選択肢があります。
自動ダウンロードを無効にする
ここでは、以下の動作を実行することができる。
>>> from astropy.utils import iers
>>> iers.conf.auto_download = False
本例では、いずれの変換も、1962年からAstery発行日までの時間範囲を含むバンドルされたIERS−Bデータを使用する。この範囲を超えたいかなる変換も許されない。
Set the auto-download max age parameter
あなたが自分が何をしているのかを理解してこそそうすることができて、これは不正確な答えを与えるかもしれません! 以前にインターネットに接続され、IERS AUTO値が以前にダウンロードされキャッシュされたと仮定すると、以下の動作が実行されます。
>>> iers.conf.auto_max_age = None
これは、IERS値が十分に新しいかどうかのチェックを無効にし、すべての変換(IERSデータが利用可能な時間範囲外の変換であっても)が成功するであろうが、最大で警告を発するであろう。
直接表アクセス¶
多くの場合、自動インタフェースで十分ですが、IERSテーブルを直接ロードして操作する必要があるかもしれません。IERS−B値は、占星術の一部として提供され、時間オフセットおよび分極を直接計算するために使用されてもよく、またはさらなる時間および座標変換において内部で使用されるように設定されてもよい。例えば:
>>> from astropy.utils import iers
>>> t = Time('2010:001')
>>> iers_b = iers.IERS_B.open()
>>> iers_b.ut1_utc(t)
<Quantity 0.114033 s>
>>> iers.earth_orientation_table.set(iers_b)
<ScienceState earth_orientation_table: <IERS_B length=...>...>
>>> t.ut1.iso
'2010-01-01 00:00:00.114'
IERSファイルのローカルコピーに加えて、ユーザは、以下のコマンドを使用してそれらをダウンロードすることができる iers.IERS_A_URL
(または) iers.IERS_A_URL_MIRROR
)と iers.IERS_B_URL
その後、それらは、将来の時間および座標変換のために使用される(本例では、単一の計算のみのために、方法は使用される。 earth_orientation_table
コンテキスト管理者として):
>>> iers_a = iers.IERS_A.open(iers.IERS_A_URL)
>>> with iers.earth_orientation_table.set(iers_a):
... print(t.ut1.iso)
2010-01-01 00:00:00.114
デフォルト値にリセットするには、入力してください None
(伝来に相当する) iers.IERS_Auto.open()
):
>>> iers.earth_orientation_table.set(None)
<ScienceState earth_orientation_table: <IERS...>...>
Asterpyで使用されている内部IERSデータを見るには、以下の動作を実行することができます。
>>> dat = iers.earth_orientation_table.get()
>>> type(dat)
<class 'astropy.utils.iers.iers.IERS...'>
>>> dat
<IERS_Auto length=16196>
year month day MJD PolPMFlag_A ... UT1Flag PM_x PM_y PolPMFlag
d ... arcsec arcsec
int64 int64 int64 float64 str1 ... unicode1 float64 float64 unicode1
----- ----- ----- ------- ----------- ... -------- -------- -------- ---------
73 1 2 41684.0 I ... B 0.143 0.137 B
73 1 3 41685.0 I ... B 0.141 0.134 B
73 1 4 41686.0 I ... B 0.139 0.131 B
73 1 5 41687.0 I ... B 0.137 0.128 B
... ... ... ... ... ... ... ... ... ...
17 5 2 57875.0 P ... P 0.007211 0.44884 P
17 5 3 57876.0 P ... P 0.008757 0.450321 P
17 5 4 57877.0 P ... P 0.010328 0.451777 P
17 5 5 57878.0 P ... P 0.011924 0.453209 P
17 5 6 57879.0 P ... P 0.013544 0.454617 P
ほとんどの列の説明は名前のファイルで見つけることができます iers.IERS_A_README
それがそうです。この表の重要な列は、MJD、UT 1_UTC、UT 1フラグ、PM_x、PM_y、PolPMFlag::
>>> dat['MJD', 'UT1_UTC', 'UT1Flag', 'PM_x', 'PM_y', 'PolPMFlag']
<IERS_Auto length=16196>
MJD UT1_UTC UT1Flag PM_x PM_y PolPMFlag
d s arcsec arcsec
float64 float64 unicode1 float64 float64 unicode1
------- ---------- -------- -------- -------- ---------
41684.0 0.8075 B 0.143 0.137 B
41685.0 0.8044 B 0.141 0.134 B
41686.0 0.8012 B 0.139 0.131 B
41687.0 0.7981 B 0.137 0.128 B
... ... ... ... ... ...
57875.0 -0.6545408 P 0.007211 0.44884 P
57876.0 -0.6559528 P 0.008757 0.450321 P
57877.0 -0.6573705 P 0.010328 0.451777 P
57878.0 -0.6587712 P 0.011924 0.453209 P
57879.0 -0.660187 P 0.013544 0.454617 P