==================================================================================================
1. Brief Description: (簡単な説明)
==================================================================================================

TAZEL is a GPL&LGPL Open Source TLE Propagator.  It reads TLE(*1) data and calculates
satellite and/or space debris position and velocity and so on at specified time.

*JP* TAZELは、GPL又はLGPLのオープンソースTLE伝搬計算プログラムです。TLEデータを読み込み
・計算して、指定した時刻の人工衛星又はスペースデブリの位置と速度などを計算します。

Detail output of TAZEL is as follows.
(A) Longitude/Latitude/Altitude/Velocity of the object,
(B) Azimth/Elevation/Range/RangeRate to the object
(C) and X/Y/Z/Xdot/Ydot/Zdot of the object in ECI-Coordinates(*2).

*JP* TAZELの出力を正確に説明すると、以下の通りです。
(A) 目的物の経度/緯度/高度/速度
(B) 目的物への方位角/仰角/レンジ(距離)/レンジレート(距離変化率)
(C) そして、ECI座標(*2)で表現した目的物のX/Y/Z(位置成分)とXdot/Ydot/Zdot(速度成分)

(*1)TLE = Two Line Element
(*2)ECI = Earth-Centered-Inerthial
	-> ECI-Origin is Earth-Center.                              # ECI-O(原点)は地球中心
	-> ECI-Z axis points to True North.                         # ECI-Zは真北方向
	-> ECI-X axis points to Mean Vernal Equinox.                # ECI-Xは平均春分点方向
	-> ECI-Y axis is selected to form Right-Hand-Coordinates.   # ECI-Yは右手系形成方向
	( X/Y/Z          are Satellite Position in ECI-Coordinates. )
	( Xdot/Ydot/Zdot are Satellite velocity in ECI-Coordinates. )


==================================================================================================
2. Copyright Notice: (著作権の表示)
==================================================================================================

### TAZEL - A Keep It Simple & Small TLE Propagator ( GPL&LGPL ) ###
### Copyright (C) 2005-2023 "NekoMimi" <twintaili@angelmode.net> ###


==================================================================================================
3. Compile & Install: (コンパイル&インストール)
==================================================================================================

(1) Edit "glinfo.c" and set ground location of observer.  See "glinfo.c" in detail.
Ground location of observer only affects Azimth/Elevation/Range/RangeRate.
Default location is Tokyo Akihabara in Japan.
*JP* "glinfo.c" を編集して観測者の位置情報を設定します。詳細は "glinfo.c" 参照して下さい。
観測者の位置情報は、方位角/仰角/レンジ(距離)/レンジレート(距離変化率)のみに影響します。
デフォルト位置は、日本の東京秋葉原です。

		% vi glinfo.c

(2) If you use MinGW & MSYS, comment out "MinGW=..." line (line=1) in Makefile.
*JP* もし、MinGW & MSYS で使用するなら、Makefileの "MinGW=..." (第一行目)をコメントアウトします。

		% vi Makefile

(3) Execute make command.  It will generate "tazel" or "tazel.exe"(MinGW&MSYS).
Then copy "tazel" into /usr/local/bin or else.  All you need is "tazel" only.
*JP* make コマンドを実行します。"tazel" 又は "tazel.exe"(MinGW&MSYS) が生成されます。
次に "tazel" を /usr/local/bin か何処かにコピーします。必要なのは "tazel" のみです。

		% make
		% cp tazel /usr/local/bin


==================================================================================================
4. Where to get TLE data: (TLEデータの入手先)
==================================================================================================

	Space-Track: https://www.space-track.org/
	CelesTrack:  https://celestrak.org/


==================================================================================================
5. How To Use TAZEL - Example: ( TAZEL の使用方法-具体例)
==================================================================================================

[Case-#1]: (具体例#1)
	Calculate for all TLEs in "FILE.TLE" at 2099-12-31 23:59:59 [UTC].
*JP* "FILE.TLE" 内に含まれるの全物体の 2099-12-31 23:59:59 [UTC] 時点における計算をする場合。

		% tazel FILE.TLE 2099-12-31 23:59:59

[Case-#1a]: (具体例#1a)
	Same as case-#1, but for 30[days] in 1[day] increment.
*JP* 具体例#1と同じ。ただし、同時刻を起点として01日刻みで30日間に渡って計算をする場合。

		% tazel FILE.TLE 2099-12-31 23:59:59 30d

[Case-#1b]: (具体例#1b)
	Same as case-#1, but for 10[day] in 15[min] increment.
*JP* 具体例#1と同じ。ただし、同時刻を起点として15分刻みで10日間に渡って計算をする場合。

		% tazel FILE.TLE 2099-12-31 23:59:59 960*15m

[Case-#1e]: (具体例#1e)
	Same as case-#1, but for 1970-01-01 00:00:00.
*JP* 具体例#1と同じ。ただし、1970-01-01 00:00:00 時点における計算をする場合。

		% tazel FILE.TLE 1970-01-01 00:00:00
			or
		% tazel FILE.TLE 0 0

[Case-#1d]: (具体例#1d)
	Same as case-#1, but for today and now.
	First dot sets date for today and second dot sets time for now.
*JP* 具体例#1と同じ。ただし、プログラムの実行時点(=現時点)における計算をする場合。
	最初の点(.)が日付を今日に設定し、次の点(.)が時刻を今に設定します。

		% tazel FILE.TLE . .

[Case-#1e]: (具体例#1e)
	Same as case-#1, but for each TLE-Epoch, which is a reference time for the TLE data.
	First 'e' sets date for TLE-Epoch date and second 'e' sets time for TLE-Epoch time.
	FYI: Each TLE data ( two line and three line ) has its own epoch time in its data.
*JP* 具体例#1と同じ。ただし、各TLEエポック(各TLEデータの基準日時)における計算をする場合。
	最初の 'e' が日付をTLEエポックの日付に設定し、次の 'e' が時刻をTLEエポックの時刻に設定します。
	参考: 各TLEデータ（2行版TLEも3行版TLEも）には、各々TLEエポック時刻が含まれています。

		% tazel FILE.TLE e e

#---+---+---+---+---|---+---+---+---+---|---+---+---+---+---|---+---+---+---+---|---+---+---+---+---|
### LootTick ###

The last argument for Case-#1a & Case-#1b specifies loop count and time increment
for their calculation.  Loop count must be positive integer value, and time increment
must be one of the next characters or its integral multiple.
*JP* 具体例#1aと具体例#1bの最後の引数は、計算のループ回数と時刻増分を指定しています。
ループ回数は正の整数で、時刻増分は次に示す1文字かその整数倍で指定します。

	Time Increment Character: (時刻増分の指定文字)
		'Y' or 'y' = 1 year  (年)
		'M'        = 1 month (月)
		'D' or 'd' = 1 day   (日)
		'H' or 'h' = 1 hour  (時)
		       'm' = 1 min   (分)
		'S' or 's' = 1 sec   (秒)

	Example:
		240*3h  = Loop count is 240, with 3  hour increment. ( 30 days in 3  hour increment. )
		960*15m = Loop count is 960, with 15 min  increment. ( 10 days in 15 min  increment. )
		960*90s = Loop count is 960, with 90 sec  increment. ( 1  days in 90 sec  increment. )
*JP* 指定の例:
		240*3h  = 計算繰り返し数 240 で, 各々 3 時間の増加 ( 3 時間刻みで 30 日間 )
		960*15m = 計算繰り返し数 960 で, 各々 15 分 の増加 ( 15 分 刻みで 10 日間 )
		960*90s = 計算繰り返し数 960 で, 各々 90 秒 の増加 ( 90 秒 刻みで  1 日間 )

(*) Or you can omit "*1" for unit time increment.  See the next examples.
*JP* 又は、時刻増分が１単位の時は "*1" の箇所は省略可能です。次の例を参照して下さい。

	Example:
		100y = Loop count is 100, with 1 year  increment.
		12M  = Loop count is 12 , with 1 month increment. ( Capital 'M' )
		365d = Loop count is 365, with 1 day   increment.
		24h  = Loop count is 24 , with 1 hour  increment.
		60m  = Loop count is 60 , with 1 min   increment.
		60s  = Loop count is 60 , with 1 sec   increment.
*JP* 指定の例:
		100y = 1   年刻みで 100 回
		12M  = 1 ヵ月刻みで  12 回 ( 大文字 'M' )
		365d = 1   日刻みで 365 日
		24h  = 1 時間刻みで  24 回
		60m  = 1   分刻みで  60 回
		60s  = 1   秒刻みで  60 回

(*) Or you can use "." for 1 loop calculation. ( this is intended for place holder or alias )
If you desire for 1 loop calculation, you can use "." or youcan skip LoopTick parameter,
or use LoopTick parameter like 1s 1m 1h 1d 1M 1y ...
*JP* 1回のループ計算指定には "." 指定が利用出来ます。（これは場所取り用の別名の指定です。）
もし、1回のループ計算を希望する場合には、"." を利用する、LoopTick 指定をしない、
又は、LoopTick として 1s 1m 1h 1d 1M 1y ... 等を指定するといった方法があります。

#---+---+---+---+---|---+---+---+---+---|---+---+---+---+---|---+---+---+---+---|---+---+---+---+---|
### Parallel Mode & Serial Mode ###

TAZEL には、Parallel (-p) と Serial (-s) の 2 つの計算モードがあります。デフォルトは -p (-p0) です。
Parallel (-p) と Serial (-s) の違いは以下の通りです。

今、説明用に衛星データとして TLE ファイルに 3 つの TLE データ A B C が含まれているものとします。
又、LoopTick = 5h にて計算するとします。

■Parallel Mode では、全ての TLE データを並列的に計算します。すなわち、
  A の TLE データを利用して、0h 1h 2h 3h 4h の計算を行い、
  B の TLE データを利用して、0h 1h 2h 3h 4h の計算を行い、
  C の TLE データを利用して、0h 1h 2h 3h 4h の計算を行います。
そして、それらの計算結果は上記の順に出力されます。(-p0)
もし、A B C の計算結果を分離する為にそれらの間に改行を追加で 2 行挿入したい場合は、
-p2 の様に -p の直後に希望する改行数を指定します。
（ -p2 は、外部ツールの GNUPLOT 等で出力結果をプロットする場合に便利です。）

Parallel Mode は通常利用する一般的な計算モードです。
TLE データ A B C は同一の衛星のものでも異る衛星のものでも OK です。
また、TLE データ A B C のエポックの関係も不問です。

■Serial Mode では、全ての TLE データを直列的に計算します。

注意：Serial Mode では、A B C が全て同一の衛星の TLE データであり、かつ、
それらが TLE エポックの昇順（古い順）に並んでいる必要があります。

このモードでは、計算する時刻に最適な TLE データを順次選択して計算します。
具体的には、TLE データのエポックを e 計算時刻を t とすると、
e <= t かつ e が最大となる TLE データを選択します。（時刻 t における最新の過去のデータ）
ただし、その様なデータが存在しない場合は e が最小となる TLE データを選択します。
（時刻 t に最も近い未来のデータ）

例えば、各 TLE データのエポックが A = 1.5h, B= 3.0h, C = 3.5h とすると、
0h 1h 2h 3h 4h の計算を、次の TLE データを用いて計算します。
A  A  A  B  C
そして、それらの計算結果は上記の順に出力されます。(-s0)
もし、A B C の計算結果を分離する為にそれらの間に改行を追加で 2 行挿入したい場合は、
-s2 の様に -s の直後に希望する改行数を指定します。

もし、各 TLE データのエポックが A = -3h, B= +3h, C = +7h とすると、
0h 1h 2h 3h 4h の計算を、次の TLE データを用いて計算します。
A  A  A  B  B

もし、各 TLE データのエポックが A = -9h, B= -7h, C = -5h とすると、
0h 1h 2h 3h 4h の計算を、次の TLE データを用いて計算します。
C  C  C  C  C

もし、各 TLE データのエポックが A = +5h, B= +7h, C = +9h とすると、
0h 1h 2h 3h 4h の計算を、次の TLE データを用いて計算します。
A  A  A  A  A


==================================================================================================
For samples to make graphs from TAZEL output, see "SampleData_and_GnuplotExsample" directory.
*JP* TAZLE の出力をグラフ化する例は、ディレクトリ "SampleData_and_TazelParameter" をご覧ください。
==================================================================================================


==================================================================================================
How to check and/or evaluate TAZEL precision, see "SampleData_and_PrecisionCheck" directory.
*JP* TAZLE の計算精度を評価方法は、ディレクトリ "SampleData_and_PrecisionCheck" をご覧ください。
==================================================================================================
