これは旧バージョンのマニュアルです
pulse_searcher
は、指定した範囲の DM (dispersion measure) で de-dispersion を行いパルスを探査するソフトで、FRB (fast radio burst) や GRP (giant radio pulse) の検出に利用できます。
パルサーの本格的解析に必要な folding や accleration 補正などはできません。
また FRB の検出はできるものの、時間がかかりすぎて実用的ではありません。
ホームディレクトリなど適当な場所にワークスペース (e.g., /home/USER/pulsar
) を作っておくことをおすすめします。
USER
は自身のユーザー名に読み替えてください。
$ mkdir /home/USER/pulsar
適当なディレクトリにソフトをダウンロードし、実行権限を与え、実行してください。
$ wget http://astro.sci.yamaguchi-u.ac.jp/t-aoki/tools/pulse_searcher/pulse_searcher_cent7gnome.install $ chmod 555 pulse_searcher_cent7gnome.install $ ./pulse_searcher_cent7gnome.install
少し時間がかかるかもしれませんが以下のような画面が表示されるはずなので、指示に沿ってインストールしてください。 インストール先ディレクトリは先に作成したワークスペースを指定すると良いと思います。
MATLAB Runtimeもインストールします。インストール先ディレクトリをユーザーのワークスペースにして大丈夫です。
これですべてのファイルはワークスペース /home/USER/pulsar
以下に入ったはずです。
下記の情報を記したテキストファイル crab-6g.conf
(6GHz用) と crab-8g.conf
(8GHz用) を用意してください。
ファイル名は任意ですが、ターゲットと観測周波数を入れておくとわかりやすいです。
$ vi crab-6g.conf # Set Dispersion Measure. # In the program, there is a loop such as for(dm = min; dm <= max; dm += step). survey_DM_pc_per_cm3_min 56.7450 survey_DM_pc_per_cm3_max 56.7450 survey_DM_pc_per_cm3_step 56.7450 # Set FFT Window Width in milli-second. fft_width_ms_desired 100 # Set Width of Short Time Fourier Transform in mili-second, # relating to a data size transferred to a GPU at once. # e.g., 10 ms stft_width_ms_desired 100 # Set Integration Time in micro-second. # e.g., 2 us. If 0 then no integration. integration_time_us_desired 2 # Set Signal-to-Noise Ratio Threshold for Pulse Detection. snr_threshold 7 # Set File for Band Calibration. bandchar_file ~/ymg32cr_band.txt # Set Observation Parameters. sampling_freq_MHz 1024 # 1024 mega-sample/s adc_RF_min_MHz 6600 # Minimum RF/MHz of the A/D converted band; e.g., 6600 or 8192. eff_RF_min_MHz 6606 # Minimum RF/MHz of the effective band for analysis; e.g, 6606 or 8198. eff_RF_max_MHz 7106 # Maximum RF/MHz of the effective band for analysis; e.g, 7106 or 8698. band_inverted true # 'true' when inverted by Higher Order Sampling, or 'false' datum_size_bit 2 data_format ADS1K # Linear1B, ADS1K (= ADS3KP_VSISEL11 via OCTAVIA) use_gpu true # true or false save_images true # true or false partition_width_byte 256000000 # Data size/B loaded from a file at once.
各パラメータの意味はおおよそ予想できるかと思います。要点だけ列挙すると下記の通りです。
survey_DM_...
: DM を 56.745 pc/cm^3 に固定してデディスパージョンしています。DMを振ることも可能ですが解析に時間がかかります。fft_window_width...
: FFT 窓幅を約 100 ms に設定しています。integration_time...
: ジャイアントパルス探査には積分時間 2 us 程度が適切です。snr_threshold
: S/N 閾値は 7 が適切です (寺澤さんも同じ結論)。 S/N 5でも見た目はパルスっぽく見えますが、パルサー自転位相に乗らず、誤検出が大量に発生することがわかります。bandchar_file
: このソフトでは使わないので適当な文字列を設定してOKです。adc_RF_...
: A/D変換の対象となる記録帯域が 6600 MHz から始まることを示しています。eff_RF_...
: データの有効帯域を 6606 - 7106 MHz (幅 500 MHz) としバンドパスフィルタリングしています。 エイリアシング等による帯域端の荒れを除去するためです。band_inverted
: 高次サンプリングによって、アナログとディジタルで帯域が反転している場合に true に設定します。data_format
: ADS1K としていますが実際には ADS3KP (VSISEL 1 1) + OCTAVIA によるビット並びを想定しており、実際の ADS1K には使えません。pulse_searcher
は三つの引数を取り、例えば次のように実行します。
$ ./pulse_searcher 20180102_030000_hit32cr_crab.raw crab-6g.conf /home/USER/pulsar
各引数は次の通りです。
20180102_030000_hit32cr_crab.raw
)YYYYMMDD_hhmmss_(any).(any)
という書式とし、そのファイルのデータの記録開始時刻 YYYY/MM/DD hh:mm:ss UTC を示す必要があります。文字列 any は任意で、上記例の hit32cr_crab
は Hitachi32m C-band RHCP による Crab pulsar のデータであることを示しています。crab-6g.conf
)/home/USER/pulsar
)ただし上記のように実行できるのはシステムにMATLAB環境変数を設定している場合です。
あまり使わない環境変数をシステムに設定するのは利口ではないので、環境変数を含めたスクリプト pulse_searcher_interface.sh
を用意しました。
環境変数をシステムに設定する場合は ~/.bashrc
に下記の該当変数を書き込んで export
してください。
$ vi pulse_searcher_interface.sh #!/bin/bash set -u LANG=C # MATLAB Environment # mcr_root = the absolute path of the directory where the MATLAB Runtime is installed. # version = the version of the MATLAB Runtime mcr_root=/home/USER/pulsar/MATLAB/MATLAB_Runtime version=v94 export LD_LIBRARY_PATH=${mcr_root}/${version}/runtime/glnxa64:${mcr_root}/${version}/bin/glnxa64:${mcr_root}/${version}/sys/os/glnxa64:${mcr_root}/${version}/sys/opengl/lib/glnxa64 execut=/home/USER/pulsar/pulse_searcher/application/pulse_searcher outdir=/home/USER/pulsar ### ### EDIT BELOW ### datadir=/mnt/raid/u18002 config=/home/USER/pulsar/crab-6g.conf ${execut} ${datadir}/20180102_030000_hit32cr_crab.raw ${config} ${outdir} ${execut} ${datadir}/20180102_040000_hit32cr_crab.raw ${config} ${outdir} ${execut} ${datadir}/20180102_050000_hit32cr_crab.raw ${config} ${outdir} exit 0 $ chmod 755 pulse_searcher_interface.sh
解析のたびに修正すべき変数は下記の通りです。
datadir
config
20180102_030000_hit32cr_crab.raw
などスクリプトを編集したら実行してください。 GPUパワーに大きく依存しますが、解析時間は観測時間の10倍と思ってください。
$ ./pulse_searcher_interface.sh
出力ファイルは以下の四種類です。
dd
を列挙しただけ)。COUNT
の値で抽出範囲を指定可能。bs=256000
としているので、1024 MS/s, 2 bit/S (= 256 000 000 B/s) のデータの場合 bs = 1 ms であり、COUNT
の単位は ms となります。MEAN, STDEV
の値は外れ値 (解析設定ファイルで指定された snr_threshold
) を除くノイズの平均値と偏差ですが、自動処理なので信号成分を含んでいます。よってそれから計算される SNR
も厳密には S/N を表しません。
正しく S/N を出すには *_dd.sh
で取り出したパルスデータを逐一再解析し、バンドパス補正やフラックス較正などする必要があります。