ハムログ SOTAーDB 変換ツール(Python実行形式)
Rubyで以前作成したハムログのCSVファイルからSOTA-DBに変換するツールを、Python3.7で同様の機能で作成してみました。今回は、thinterでGUIをつけてPyinstallerによりWindowsの実行ファイルになるようにしました。また、コールサインなどの個人に由来するデータは外部ファイルに保存して実行時に利用する方式としました。このツールは自分が投入しているハムログ用になっていますので汎用性はないかもしれません。Pythonやtkinterの学習を兼ねて作成したものです。pythonの実行環境がなくても動作するようになっているため、EXEのファイルサイズが大きくなっています。
機能はRuby版と同様で下記になります。
- ハムログのRemarks欄に記述されているSOTAのリージョンコードによりSOTA移動情報を判断。 「SOTA:JA/KN-023」などの記述
- JSTからUTCに変換してファイルを自動作成して、ファイル名に移動年月日とSOTAのコードを付加
- ハムログのデータはRemarksの情報により判断するので、SOTA移動以外のデータや複数地点でのSOTA移動時用法があっても分類して複数のSOTAアップロードファイルを作成。
- 読み込みファイル(ハムログ出力のCSVデータ)をソフト起動時にドラックしてプログラムを起動すると入力ファイル名の入力指定が不要になる。コールサイン、Ramarks位置は変更がなければ前回のデータを使用するので都度投入する必要はない
- 作成されるファイルは該当ファイルは自動削除してから作成されるので、複数回実行してもOK
- 作成されたファイル(SOTAアップロード用CSVファイル)は実行後、ファイル単位でWindowsにある「メモ帳」を自動起動して表示するので確認および修正ができる。
- ファイル変換後に、作成したファイル名(日付+SOTAコード)別にレコード数が一覧で表示される。
- 作成されたファイルのレコードは日付・時間でソートするので、ハムログでの投入に時間が前後していてもOK。SOTAへアップロード時に時間順になっていないとメッセージが表示がされるため。
- 作成されるファイルは、決められたディレクトリ内に作成される。
- 移動情報(/n)はReamrksに記述したSOTA移動情報から自動判断して付加
- モード、周波数はconfigディレクトリにある変換テーブルでSOTA-DBにわせて変換しています。今後、モードが変更になった場合は変換テーブルを変更することで対応できるようになっています。周波数は、JARL制定の周波数以外のデータがある場合はその旨エラーメッセージを表示しますので、変更してから再度実行することになります。
・実行ファイルサイズが多数の実行ファイル(モジュール)を含むのでサイズが大きくなったために、ソフトの起動に時間がかかるようになってしまった。
・定義ファイルを使いソースに手を加えない方式に変更
・モードと周波数を変換テーブルにてSOTA-DB用に変換。テーブルはテキスト形式なので変更は自由にできます。
*変換テーブルのデータはSOTA日本支部のHOTACAを参考にいたしました。
・GUIを付加
操作画面
①コールサインの入力欄
SOTA運用者のコールサインを入力します。初回はデフォルトで「8J1JRL」とダミーのコールサインが入っていますので必ず変更して下さい。次回の起動時からは前回の実行時のコールサインが表示されますので2回目からは変更がなければ投入の必要はありません。また、コールサインには移動情報である(/n)は移動時のSOTAリージョンコードで判別して付加するので必要ありません。
②入力ファイル(ハムログのCSVファイル)
変換対象のハムログで出力したCSV形式のファイル名を指定します。ここは、このソフトを起動するときに、変換対象のハムログ出力のCSVファイルをドラックして起動すると、この欄にファイル名が表示されます。運用時はハムログからの出力ファイル名は同じ名前にしていることが多いと思いますので確認するだけでよいでしょう。変換するファイルに該当のSOTAリージョンコードな1件もないとその旨表示されます。
③ハムログにSOTA移動情報を入力したRemarks欄を選択します。通常は同じRemarks位置を使うので最初に指定すれば、次回からは指定した情報を表示します。通常は1度変更すればあとはあとは触ることはないでしょう。なお、位置を変更すると確認メッセージが表示されます。
④変換の実行ボタン クリックするとプログラムが実行します。該当のファイルがなかったり、対象のレコードがない場合はエラーメッセージが表示されます。
⑤終了ボタン このソフトを終了します。
構成図 準備(解凍とファイル確認)
h2s.zipをダウンロードして、必要なディレクトリに移動して解凍します。
解凍すると、ディレクトリ内に下記のファイルとサブディレクトが作成されます。
・h2s.exe 変換するソフト本体
・sotacsv 変換したSOTAアップロード用のCSVファイルが保存される
・cfg 変換ソフトで使用する各種設定ファイルが保存されている。下図参照
・config.txt コールサイン,Remarksの位置,入力するハムログcsvファイル名
コールサインの初期値は「8J1LRL」が入っている
Remarksの初期値は「1」
ハムログCSVファイル名は初期値「loglist.csv]
・mod_tbl.txt
ハムログでの投入モードとSOTA-DB用モードとの変換テーブル
例) Data, RTTY
・frq_tbl.txt
ハムログでの投入周波数とSOTA-DB用モードとの変換テーブル
例) 7, 7.0, 7.2
・resions_code.csv SOTAのリージョンコードと県名、エリア番号で構成
・run.png, sota_log.ico, stop.png 内部で使用する画像等
実行手順
・ハムログでのRemarks欄への記載方法
本ソフト h2sはRemarks欄に記載されているSOTAのリージョンコードで対象のレコードの識別と、移動地情報を判断してます。Remarks欄に下記の例のように記載されていいること
SOTA:JA[]/xx-nnn
SOTA: 固定
JA[n]:SOTAのリージョンコード 例)JA、JA5、JA6、JA8 のいずれか
/ :固定
AA-NNN :山名の番号 英字2文字 - 数字3文字 であること
例)SOTA:JA/CB-008 SOTA:JA/TG-023 等 すべて半角であること
ハムログに投入された例 この事例では、Remarks2にSOTAの移動情報が記載されている
・ハムログから範囲をしてしてCSV出力
下記ではSOTA対象とそれ以外が混在されているがまとめてCSVに出力している。本ソフトではRemarks欄の記載情報でSOTA対象レコードを判断しているので混在していてもOK。このあたりのハムログの運用では私は移動地をRemarksに記載することで、あとでわかりやするなるようにしている。投入時にすべてのコレコードに入力しておく必要があるが、ペースト機能があるので手間にはならない。
CSVファイルの出力先は、ダウンロードして展開した本ソフト(H2S)があるディレクトリを指定すると便利です。ファイル名は同じファイルで統一すると便利です。
・ハムログから出力したCSVファイル
下記の例ではSOTA対象のレコードとその他が混在していることが確認できます。
変換の実行
この例ではハムログから出力したCSVファイルを変換ソフトのあるディレクトにある状態での実行例になります。変換対象のファイルを入力する手間を省くために、変換対象のCSVファイルをドラックして変換ソフト(H2S)にドロップします。
すると、下図のような状態で変換ソフトが起動されます。
・コールサインは初期値の「8J1JRL」が入っているので自分のコールサインを入力します。この時、半角で入力してください。小文字は実行時に大文字に変換されます。次回起動以降は、変更したコールサインが表示されますので、通常は最初の1回だけコールサインを入力することになります。
・入力ファイル欄はドラック&ドロップで起動した場合は該当のファイル名が表示されます。
・Reamrks欄はラジオボタンになっていますので、変換元のハムログでどの欄にSOTA移動情報を記載したかにより選択してください。次回以降は選択した位置が表示されます。
通常はコールサインやRemarks欄は変更しないので一度投入したら次回以降は確認するだけになります。また、入力ファイルをドラック&ドロップによる起動やファイル名を固定して運用する場合は、この画面は単に確認画面として使うことになります。
実行ボタンをクリックすると変換が始まります。
変換実行後の変換データの表示と確認
変換処理が終了すると、変換したSOTAアップロード用のCSVファイルがWindowsのメモ帳により順次表示されます。内容を確認して×ボダンで閉じると、次の変換したファイルが順次表示されます。
変換後のファイル一覧の表示
すべのファイルの確認後に、変換して作成されたSOTAへのアップロード用ファイルが一覧で表示されます。 ファイル名の右側の >> のあとの数字はSOTA対象のレコード数です。
変換したファイルの保存場所
変換されたSOTAアップロード用のファイルは、本ソフトのあるサブディレクトリである、「sotacsv」の中に作成されます。
アップロード対象となるCSVファイルは日付とSOTAのリージョンコード名で作成されるので、SOTA-DBへのアップロードでも間違えることがないようにしています。
ここに作成されたファイルがSOTA-DBへのアップロードファイルになります。
ダウンロード
・2019/08/07 cfg/regions_code.csv 岩手県データの区切り符号の誤りを修正
・2018/02/09 ver.0.3 JST,UTC混在時の対応
・2019/01/21 ver.0.2 モード、周波数を変換テーブル(frq_tbl.txt、mod_tbl.txt)によるSOTA-DB用に変換する方式に変更
このスクリプトの動作により不具合が発生しても一切の責任は当方にはありません。本スクリプトの著作権は、little-ctc.comが所有しますが、改造は自由に行ってください。
なお、外部読み込みファイ(regions_code.CSV)を構成する、SOTAのリージョンコードの権利は、SOTA日本支部に帰属します。