Last Updated : 2004/1/8


ARRL LoTW アップロード用 Hamlog データコンバータについて

アマチュア無線メニューへ戻る

1.LoTW って何?

LoTW と言うのは "Log of The World" の略で、アメリカのアマチュア無線連盟 ARRL が、自身のアワードプログラムの電子処理のために構築し運用を始めたシステムの名前です。

システムとしては、eQSL とか QSOBank とかの、インターネットを利用して、紙 QSL の交換によらず交信証明を行おう、と言うオンラインサービスの1つなんですが、LoTW は、QSL カードの発行や交換が無くても、アワード申請に必要なクレジットを取得できる、と言う点に主眼が置かれています。LoTW がどういうものであるかについては、FQA ページを和訳したものが以下にありますので、興味のある方はご覧下さい。

LoTW FAQ の和訳 (2003/10/15時点)

1. 紹介 & 2. LoTWをはじめるには
3. FAQ
4. 必要な提出書類
5. 料金 & 6. 個人情報保護

2.Turbo Hamlog から LoTW 用アップロードデータを作る

私自身は、ARRL が発行している各種アワードの取得にはあまり興味は無いのですが、とにかく交信記録さえ提供しておけば、私の交信相手で、私との交信をアワードのクレジットに使いたい、と言う人の役に立つのではないか、特に、過去の海外移動運用分などでは、カード交換がうまくいかずに相手に届いていないものもあるかも知れないし…、そう言う思いで、LoTW に手持ちの交信記録をアップロードしてみようか、と思い立ちました。

さて、LoTW の証明書を取得して、とりあえず近年の交信分のログは Turbo Hamlog /Win に入力してありましたので、これから送るデータを作ろう…と思って、ハタと気づいたのが、Hamlog には LoTW 向きデータの生成機能が無い、と言うことでした。ま、できたばかりの、しかもアメリカ製のシステムに、日本の国産ソフト Turbo Hamlog が対応していなくても、何ら不思議はありません。幸い、LoTW は ADIF 形式でのデータを受け付けてくれるので、Hamlog のデータを ADIF 形式に変換するツールを作成して、処理してやれば済む、と考えました。

さて、普通ならここで VB とか Perl とかでソフト作るのでしょうが、私の本職はメインフレームのシステムエンジニアで、パソコン上でのプログラミングはあまりなじみがありません。そこで、Microsoft Excel に付属するマクロ言語 Excel VBA を使って、簡単な変換ツールを作成することにしました。これなら仕事で時々使っていますから、心得がありますので。

LoTW が必要とするアップロードファイル (ADIF 形式) の内容は、衛星以外の場合は以下の通りで、特に Hamlog のデータから変換するのに不都合はなく、このような編集としました。

タグ※1 内容 備考 要否 データ元の Hamlog 項目 編集
<CALL:n> 交信相手のコールサイン 移動表記も含め完全一致 必須 コールサイン・移動先・$DX符号 ※2
<BAND:n> 送信周波数帯(波長) 21MHzの場合 "15M" 必須 周波数(MHz) ※3
<MODE:n> モード SSBとかCWとか 必須 モード ※4
<QSO_DATE:n> 交信日付 西暦8桁 yyyymmdd UTC 必須 交信日 (JST時はUTC変換)  
<TIME_ON:n> 交信時刻 6桁 hhmmss 必須 更新時間 hhmm + "00" (JST時はUTC変換) ※5 照合時の許容誤差は30分以内
<BAND_RX:n> 受信周波数帯(波長) 14MHzの場合 "20M" 任意 クロスバンド交信用。今回は使用しない。  
<EOR> 区切り        

※1 n は、そのタグが示すデータの文字数。
※2 LoTWでは、移動表記も含めたコールサインの完全一致が必要なので、"JF6BCC/6" や "KH0/KH2GR" などの表記を正しく編集する必要がある。Turbo Hamlog の関連ツールに、Rmks1/2 欄に "$DX" と言う文字列がある場合は、ポータブル表示の前後を入れ替えると言う機能があり、自分もこれを利用しているので、コールサインの編集処理に利用する。
※3 自分の場合、周波数はMHz単位で入力(詳細が必要な場合は小数点を使用)しているので、周波数欄の数値を int 処理して整数化し、その整数に相当する波長表示を選択する仕組みとした。例えば 1.9MHz 帯は 1.9→1→160M、3.5MHz帯は 3.5→3→80M、2m地上波で 145.32MHz と入力している場合は 145.32→145→2M と言う具合。この方法だと 3.5MHz 帯と 3.8MHz 帯の区別ができないが、私は過去の 3.8MHz 帯の運用分をログデータ化していないので、とりあえず無いものとした Hi。
※4 LoTWは、モード表記について一定のルールがあるため、過去にログ入力で使用したモード名をリストアップして、LoTW用のモード名に変換する機能を通すことにした。
※5 時制は JST または UTC での入力しか行っていないので、時制欄が "J" であれば UTC に変換、それ以外は変換なし、とした。JST から UTCへの変換処理は、時刻が 0859 より小さければ時刻を +1500 した上で日付を -1 し、時刻が 0900 以上なら時刻のみ -0900 する、と言う簡易計算で対応。LoTW は秒も必要なので "00" を末尾に追加した。

問題は「衛星による交信」です。LoTW は衛星経由の通信にも対応しているのですが、その場合、下のような ADIF データを必要とします。しかし、そもそも Hamlog は衛星通信を想定した入力インタフェースになっていませんで、利用者がそれぞれ好き勝手な方法で入力をしています。

とりあえずは自分用のツールを作ることだけ考えました。自分は Turbo Hamlog にデータを入力する際 (1)周波数欄に送信周波数をMHzで (2) Rmks1 欄に "VIA SAT XX-XX Mode-XX" の様式で衛星名と運用モードを入力し識別しています。そこで、このような編集をすることにしました。

タグ 内容 備考 データ編集元
<CALL:n> 交信相手のコールサイン 移動表記も含め完全一致が必要 通常通信の※2と同様
<BAND:n> 送信周波数帯(波長) 435MHzの場合 "70CM" 通常通信の※3と同様
<:MODEn> モード SSB とか CW とか 通常通信の※4と同様
<:QSO_DATEn> 交信日付 西暦8桁 yyyymmdd UTC 通常通信と同様
<TIME_ON:n> 交信時間 6桁 hhmmss UTC 通常通信と同様
<BAND_RX:n> 受信周波数帯(波長) 2401MHzの場合 "13CM" ※6
<PROP_MODE:n> "SAT" 衛星経由の運用であることを示す ※6
<SAT_NAME:n> 衛星の名称 "AO-40"とか ※6 ※7
<EOR> 区切り    

※6 Rmks1 欄の文字列を解析し、"SAT" の文字列があれば衛星と判断して PROP_MODE に "SAT" を固定編集。"SAT" 直後のスペース区切りから次のスペースまでを衛星名として切り出し、LoTW が必要とする衛星名に選択変換して SAT_NAME へ編集。通常、衛星はある1つの動作モードしか持たず、衛星名が特定できれば受信周波数も特定できるので、それを元に BAND_RX へ編集。ただし AO-40 や RS 衛星のように複数の動作モードを持っている場合もあるので、その場合は衛星名に続く "Mode-" を判定し、動作モード名から受信周波数を判断し BAND_RX を編集する。
※7 ISS経由の交信を LoTW が認めていないので、衛星名がISSとなった場合は、該当レコードを変換出力せず無視することにする。あわせて、各変換処理で判定の想定外ケースになるような交信記録が入力された場合にも、該当レコードを変換せず無視する仕様とする。

Turbo Hamlog は、交信ログのバックアップデータを出力するための、200 バイト固定長のテキストデータを吐き出す機能がありますので、変換ツールの入力にはこのバックアップデータを使用することにしました。Excel でテキストデータを取り込む際、桁位置を指定して列を分離する機能があるので、それを使用して、バックアップデータを Excel のシートとして取り込み、そのシートのデータを上記の編集処理で ADIF 編集用シートへ編集し、最後に ADIF 形式のテキストとして吐き出す、そういうマクロを作成すれば、目的を達成できます。

3.とりあえずツールを作ってみた

とりあえずは、自分のログデータが LoTW にアップロードできれば良いので、自分用の入力条件に特化したツールを作ってみました。VBA は私の本業ではなく、かなり幼稚なロジックが使われているので、後悔するのは多少恥ずかしいのですが、興味ある方はご覧下さい。MS Excel97 以降で動作します。操作説明書はありませんが、ここまでの記事を読んでもらえれば一目瞭然でしょう。

Turbo Hamlog → LoTW アップロードデータ変換ツール (Excel VBA、LHA 圧縮 99KB)

処理内容は基本的には前述の通りですが、実際に変換処理をさせてみて見つかった不具合を、その都度対策し追加していますので、変換処理ロジック内には、説明と異なるものが含まれている可能性がありますのでご注意を。ロジックは基本的に Visual Basic なので、Excel から分離した独立ソフトに移植するのは難しく無いと思いますが、入出力操作や一括置換処理など、Excel の機能を使ったほうが簡単な部分もありますし、私は別に汎用ツールを作ることが目的な訳ではないので、手軽に Excel VBA で済ませることにしました。

このツールに関するフォローアップは一切いたしません。また、このツールの使用で生じるいかなる損害についても作者は責任を持ちません。使用される方は必ず自己責任でお願いいたします。詳しくは、マクロの先頭に記述してある文書をご覧下さい。

4.他の電子的交信証明システムへの展開

LoTW のほかにも、eQSO や QSOBank など、ADIF 形式でのデータ投入を受け付けるシステムがあり、Turbo Hamlog など一部のソフトでは、それらと直接リンクする機能を備えている場合があります。ただ、対象となるシステが ADIF 形式でのデータ入力を受けつけ、かつ、それら個々のシステムが必要とするデータ形式への変換処理ができるならば、今回のツールの判定・編集処理部分を改造するだけで、変換ツールを作成することが可能だと思います。…興味のある方は、ご自由に改変してみて下さい Hi。


by Yoshihiro Imaishi JF6BCC/KH2GR
jf6bcc@nospam.jarl.com <- nospam. は外してください

アマチュア無線メニューへ戻る