Keiroku (径録) ソフトウェア取扱説明書

v.1.04 KinJ

【概要】

Keiroku は、GPSロガーで取得されたデータを簡易閲覧したり圧縮アーカイブするなど、「路記」のお手伝いをするWindowsデスクトップアプリケーションソフトウェアです。

【機能】

【注意】

【インストール】


【基本操作】


【読込できるGPSデータ形式】

Keiroku.exe では表1のGPSデータを読込みます。
但し、Keiroku.exe は上記のフォーマットの正式仕様(規格)に適合した読込みを保証しているわけではなく、表2の特定の機器およびソフトウェアから取得されたデータの読込についてのみ動作確認しています。
表1 Keiroku.exe で読込むGPSデータフォーマット
FormatDescription拡張子ファイル形式備考
NMEANMEA 0183 standard.nmea, .nme, .txttext(ASCII)Keiroku.exe では GGA と RMC sentence のみ認識
GPXGPS eXchange Format.gpxXML※1
KMLKeyhole Markup Language.kmlXML※2
KMZKeyhole Markup Language.kmzXML/ZIPKMLをzip圧縮 ※2
ITMiTravel Tech .itmzip(非圧縮)GPS Photo Tagger でのプロジェクトファイル
Keiroku.exe では .poi と .bin のみ読込む ※3
POI.poiSQLite3ITMで軌跡データを保存しているデータベース
mtk-binMTK Logger Binary File Format.binbinaryMedia Tek Chipset を用いた 747Pro での出力データ形式 ※4 ※5
bad-txtBasicAirData TeXT File Format.txttext/csv(ASCII)BasicAirData GPS Logger の TXT形式 ※6
k6zK6 Archive.k6zzipKeiroku書庫ファイル

表2 Keiroku.exe で読込動作確認したデータを生成したGPS機器&ソフトウェア
Product nameSupplierData
GPS data loggerGNS 3000GNS Electronics GmbH.txt (NMEA)
GPS data logger747ProTranSystem Inc. (TSI).bin
GPS softwareGPS Photo TaggeriTravel Tech Inc..gpx, .itm, .poi, .bin, .kmz
Android AppGPS LoggerBasicAirData.gpx, .kml, .txt

※注記


【GPSレシーバーからの読込】

GPSレシーバーが測位した位置情報を USBケーブル や Bluetooth のSPP(Serial Port Profile)接続でリアルタイムに読込んで地図上に表示することができます。

表3 Keiroku.exe で読込動作確認したGPSレシーバー
Product nameSupplierModeConnectionData format
GNSS receiverGNS 3000GNS Electronics GmbHStandard or Logging operationBluetooth(SPP)NMEA 0813
(GGA & RMC sentences)
GPS receiver747ProTranSystem Inc. (TSI)NAV or LOGBluetooth(SPP) or USB2.0
※「GPSロガー」は測位した位置情報データを機器のフラッシュメモリ等に記録したのちにまとめてPC等から読みだされるのに対し、「GPSレシーバー」は測位した位置情報データをリアルタイム(即時&逐次)にPC等に送信します。表3の2機種は「GPSロガー」と「GPSレシーバー」の両方の機能を有しています。

【手順】


【保存もしくはエクスポートされるファイル形式】

表4 Keiroku.exe で保存もしくはエクスポートされるファイル形式
Description拡張子ファイル形式備考
k6zK6 Archive.k6zZIPKeiroku書庫ファイル
html-LLeaflet JavaScript HTML.htmHTMLLeaflet JavaScript を埋め込んだHTML
html-GGoogle Maps JavaScript HTML.htmHTMLGoogle Maps JavaScript を埋め込んだHTML
svg-xyScalable Vector Graphics.svgXMLグラフのベクトル画像ファイル
emf-xyEnhanced Metafile.emfbinaryグラフのベクトル画像ファイル
KMLKeyhole Markup Language.kmlXML
KMZKeyhole Markup Language.kmzXML/ZIPKMLをzip圧縮

【その他のデータ形式】

表5 Keiroku.exe で用いられるその他のファイル形式
Description拡張子ファイル形式備考
k6tK6 Track definition.k6ttext (UTF-8, EOL=LF)k6z保存時に作成されアーカイブされる
k6sK6 Script.k6stext (UTF-8, EOL=CRLF)

【初期設定ファイルと専用フォルダ】


【グラフウィンドウ】


sqlite3.dll のインストール】

POI データ(.poi) や POI データを内包する ITM データ(.itm) の読込には sqlite3.dll が必要です。

【ジオイドモデルのインストール】

Keiroku.exe ではステータスバーや、エクスポートファイルの "KML" には「標高」データが表示/出力されます。(エクスポートファイルのうち "Leaflet JavaScipt HTML" や "Google Maps JavaScipt HTML" には緯度&経度データだけで標高データは出力されません。)
一般的な「標高」は平均海面(MSL)を基準とし、地表面においては仮想的に陸地へ延長した「ジオイド」からの高さを「標高」としていますが、GPSロガーで取得される高さデータは「楕円体高」ですので、楕円体表面からジオイドまでの高さ(ジオイド高)のデータが必要になります。任意の地点(緯度、経度)でのジオイド高は、離散的な格子点で示された「ジオイド・モデル」のデータから補間(interpolation)されて算出されます。
【参考】NMEA 0183 の GGAセンテンスの第9フィールドは「正標高(Orthometric height=H)」、第11フィールドは「ジオイド高(Geoid separation=N)」と規定されているが、例えば GNS 3000 から出力される NMEAデータの GGAセンテンスの第11フィールドには測位地点によらず固定値(39.5)が記録されているため、Keiroku.exe では 第9フィールドに第11フィールドを加えた数値(h=H+N)を GNS 3000(MT3333)で実測された「楕円体高(Ellipsoidal height=h)」とみなしている。
表6 Keiroku.exe で利用可能なジオイド・モデル
ジオイド・モデル提供者地域格子形式読込確認済みのモデルファイル名
EGM2008National Geospatial-Intelligence Agency (NGA)全世界2.5'x2.5'Binary"Und_min2.5x2.5_egm2008_isw=82_WGS84_TideFree_SE"
GSIGEO2011(日本のジオイド2011)国土地理院日本1.0'x1.5'text(ASCII)"gsigeo2011_ver2_2.asc" or "gsigeo2011_ver2_1.asc" or "gsigeo2011_ver2.asc"
GSIGEO2011International Service for the Geoid (ISG)Japan1.0'x1.5'text(ASCII)"GSIGEO2011_20170628.isg"

【高DPI対応】


【K6 スクリプト】

Keiroku Script はKeiroku専用コマンドを記述したテキストファイルです。

≪スクリプトの規則≫

≪スクリプト コマンド リファレンス≫

end
スクリプトの実行を終了する

cd folder
カレントフォルダを変更する
folder : フォルダ名

md folder
新しいフォルダを生成する
folder : フォルダ名

set parameter, value
パラメタに値を設定する
《注》set コマンドで設定された設定値は初期設定ファイルの更新には反映されない
parameter : パラメタ名(既定値)
value : 値
set meters_less_than, distance
停留判定距離を設定
distance : 距離(メートル)
《例》set meters_less_than,1.0
set km_small_area, distance
「狭い範囲」の正方形の一辺の距離を指定する
distance : 距離(キロメートル)
《注》本パラメタは旧プログラムにおいて色コード設定オプションで使用されていた
set gmap_api_key, string
Google Maps Platform API Key を設定
string : 半角英数文字列
set itm_read_data, poi_or_bin
ITM を読込むときに ituser.poi を読込むか .bin を読込むか
poi_or_bin : poibin
set itm_arch_data, item
ITM を読み込んだのちに k6Archive(.k6z)に出力するファイル
item : both を指定した場合には .poi と .bin の双方をアーカイブする
set gpx_read_rte, bool
GPX ファイルでルートデータ(<rtept>)を読込むか否か
bool : true を指定した場合にはルートデータを読込む

x_input_filter type, param-1, param-2, param-3, ...
in_x_out で読み込むファイルのフィルタ
type : フィルタタイプ(既定値、現在は name のみ)
param-i : サブパラメタ
x_input_filter name, n, before_or_after, string
in_x_out で読み込むファイルをファイル名の部分文字列で判定
n : ファイル名の最初からn番目の文字から判定
before_or_after : beforeafter
string : 判定文字列
《例》x_input_filter name,1,after,20200325
  ファイル名の1文字目からの8文字(stringの文字数)が "20200325" より大きいファイルのみ読込む
  (この例ではデータファイル名の先頭が yyyymmdd 型の日付文字列になって保存されていることを前提としている)
x_output_format fmt-1, fmt-2, fmt-3, ....
in_x_out で出力するファイルの種類を列挙する
fmt-i : 出力するファイルの種類で下記の既定値
k6z : K6Archive (拡張子: .k6z)
html-L : Leaflet JavaScript HTML (.htm)
html-G : Google Maps JavaScript HTML (.htm)
kml : KML (.kml)
kmz : KMZ (.kmz)
svg-xy : グラフのSVG (.svg)
x はX軸(横軸)のデータ
t: 時刻 (time)
e: 経過時間 (elapsed time)
d: 移動距離 (distance)
y はY軸(縦軸)のデータ
h: 標高(高度)
d: 移動距離
v: 平均速度 (average speed) =⊿移動距離/⊿経過時間
u: 速度(生ログ)
emf-xy : グラフのEMF (.emf)
xy はそれぞれX軸とY軸のデータで svg-xy と同じ
《例》x_output_format html-L,html-G,kmz,svg-TH,svg-tV

x_output_folder fmt, folder
in_x_out で出力ファイルを保存するフォルダを指定する
fmt : 出力するファイルの種類。k6z, html-L, html-G, kml, kmz, svg, emf のいずれか。
folder : 出力するフォルダ
カレントフォルダからの相対パスでフォルダを指定する。
kmlkmz の出力フォルダは区別されない。(両方指定した場合は、あとに指定したフォルダが有効になる。)
《例》x_output_folder html-L, nmeaLmapHtm\2022

x_output_index html [, sort [, url_enc]]
x_output_formathtml-Lhtml-G の場合に in_x_out で付随して生成される見出し(index)のHTMLファイル
html : 出力する HTML ファイル名("index.html" など)
カレントフォルダのファイルを指定(ファイルパスにフォルダパスを付けないファイル)
sort : ascend(昇順) もしくは descend(降順) (デフォルトは「昇順」
url_enc : url_enc でクローズ時にURLエンコードを行う (デフォルトは「URLエンコードを行わない」)
《例》x_output_index index.html,descend

x_option option-1, option-2, option-3, ....
in_x_out でのオプションを列挙する
option-i : オプション。現時点では下記がある。
merge_interval=minutes : 直前のデータファイルの測位終了時刻から当該データファイルの測位開始時刻までの時間が minutes分以内の場合は追加読込みとする
save_name_prefix=style : 保存するファイル名の先頭から数字とアンダースコアを削除し、指定した形式の日付文字列を挿入する
style: 日付文字列の形式で下記のいずれか
  date : "yyyymmdd_" 形式の日付文字列
  date_and_time : "yyyymmdd_hhmmss_" 形式の日付&時間文字列
  dtlist=filename : 日付&タイトルリストファイルを参照
・「日付&タイトル」は "yyyymmdd_title" という形式の文字列で、最初の8文字(yyyymmdd)は年月日を表す半角数字
filename で指定されたテキストファイルに記された日付&タイトルリストから "yyyymmdd" 形式の日付文字列にマッチする日付&タイトル文字列を選択し保存するファイル名とする
・リストの日付文字列("yyyymmdd")は昇順で作成されており、処理されるファイルも測定開始日時順にファイル名が付けられているものとする
・処理されるファイルの検索に FindNextFile関数を用いているため、NTFSファイルシステムではアルファベット順に検索されるが、FATファイルシステムでは必ずしもこの順番で検索されない可能性がある
・リストに同一の日付文字列がある場合は順番に処理される
・リストに対応する日付文字列が見つからない場合は save_name_prefix=date が適用される
・リストの文字コードは UTF-8
color=default : 各トラックの色コードをデフォルトにする
.g6z と .poi 以外は色コード情報が無いので、このオプションを指定しなくても読込み時にデフォルトの色コードがセットされている
width=w : 全トラックのラインの幅を w pixel にする
.g6z と .poi 以外はトラックライン情報が無いので、このオプションを指定しなくても読込み時にデフォルトのライン幅がセットされている
erase_sswp : 停留判定距離以内のトラックポイントを無効にする
html-L, html-G, kml, kmz をエクスポートする際には、停留判定距離以内のトラックポイントの無効処理と無効トラックポイントの削除が行われるので、実質的に erase_sswp が有効なのは k6z だけ。
monotonic_sortf : 読込ファイル間で時刻が非単調増加(non-monotonic)になっている場合に並べ替えを行う
monotonic_check の検査結果が +4 に相当するデータのみ修正を行う
monotonic_check : データの時間が単調増加(monotonically increasing)になっているかの検査
検査するだけで修正は行われない。
検査結果は(非単調増加の場合のみ)スクリプト実行後に表示される
+1:トラック内のポイントの時刻が非単調増加(non-monotonic)
+2:読込ファイルのトラック間で非単調増加(トラック順不整合)
+4:読込ファイル間で非単調増加
《例》x_option merge_interval=180,save_name_prefix=date_and_time

in_x_out filename
特定の名前(またはワイルドカードが使用されている場合は部分名と一致する名前)を持つGPSデータファイルを入力(input)して、x_output_format で指定された形式のファイルを出力(output)(圧縮アーカイブもしくはエクスポート)する
filename : GPSデータファイルのパスおよびファイル名(ファイル名にはワイルドカード文字を含めることができる)
《例》in_x_out C:\userdata\gps\gns3000\2021\*.txt
filename を複数指定する場合は、
in_x_out {
filename-1
filename-2
..........
}
というように左括弧 "{" の次行から右括弧 "}" のひとつ上の行までに1行にひとつの filename を記述することができる
《例》
in_x_out {
C:\userdata\gps\747pro\2020\*.gpx
C:\userdata\gps\747pro\2021\*.gpx
C:\userdata\gps\747pro\2022\*.gpx
}

x_close_index
x_output_index で生成中のインデックスファイルをクローズする
in_x_out のあとに必要に応じて指定する
・指定しない場合はスクリプト終了時にクローズ処理される
compress_zipurl_enc コマンドなどでインデックスファイルを操作する場合には、その前にこのコマンドでクローズさせる必要がある
《例》x_close_index

grp_client_size cx, cy
グラフウィンドウのクライアントエリアの横幅と高さを 96dpi のときの pixel 数で指定する
cx : クライアントエリアの横幅(pixel)
cy : クライアントエリアの高さ(pixel)
ディスプレイの解像度(DPI)が 96dpi 以外の場合は、実際のクライアントエリアの pixel 数は DPI/96 倍になる
《例》grp_client_size 800,300

grp_v_avg_pts npt
グラフの平均速度(=⊿移動距離/⊿経過時間)を算出する際のポイント数を指定する
npt : ⊿移動距離や⊿経過時間の⊿に相当する有効ポイント数
移動平均に相当。nptが大きいほど平滑化される
《例》grp_v_avg_pts 100

grp_svg_dpi dpi
グラフをSVG出力する際の解像度(DPI)を指定する
dpi : DPI
デフォルトは600dpi(標準ディスプレイは96dpi)
《例》grp_svg_dpi 600

grp_emf_ref_printer prn
グラフをEMF(拡張メタファイル)に出力したりクリップボードにコピーする際の解像度を参照するためのプリンタ名を指定する
prn : プリンタ名(仮想プリンタを含む)
EMF は DC(デバイス コンテキスト)で指定する必要があるために、プリンタ名を指定し、そのプリンタのDCに記載されたDPIを適用する。参照プリンタを指定しない場合はディスプレイの解像度(96dpiなど)が適用される。
《例》grp_emf_ref_printer "Microsoft XPS Document Writer"

grp_font_num font, size
二次元グラフのX軸とY軸の目盛りの数字のフォントを指定する
font : フォント名
欧文フォントを指定("Arial" "Segoe UI" "Tahoma" "Calibri" "Times New Roman" など)
size : フォントのサイズ(96dpiのときの高さ、pixel単位)
《例》grp_font_num "Arial",16

grp_font_label font, size
二次元グラフのX軸とY軸のラベル(軸名)のフォントを指定する
font : フォント名
欧文フォントもしくは和文フォントを指定
軸ラベルに日本語を使う場合は和文フォント("Meiryo" "Meiryo UI" "Yu Gothic" "Yu Gothic UI" など)を指定
エクスポートされた SVG が様々な端末で閲覧される可能性を考慮すれば、それらの端末で表示可能なフォントであることが望ましい。
欧文フォントでは "Arial" が無難(Windows,macOS,iOS で標準搭載)。
和文フォントでは "Meiryo" "Meiryo UI" が無難。
size : フォントのサイズ(96dpiのときの高さ、pixel単位)
《例》grp_font_label "Meiryo",18

compress_zip fzip, targetfolder, filenames, option-1, option-2, option-3, ....
zip圧縮をする
・ファイル名はzip標準のUTF-8で登録される。
・(Windows での「圧縮(zip形式)フォルダー」ではファイル名をShift_JISで登録するため Windows以外で展開する際に注意が必要)
fzip : アーカイブファイル名(.zip)
targetfolder : アーカイブする対象フォルダ
filenames : 対象ファイル(ワイルドカード可)
・ワイルドカード('*' や '?' など)を使用できる
・複数を指定する場合は、セミコロン(;)で区切る
option-i : オプション
add : fzip が存在した場合は追加モードとする(デフォルトは fzip を新規作成)
recursive : サブフォルダのファイルも対象に含める(デフォルトは対象フォルダのファイルのみ)
upper : targetfolder 自身をアーカイブのトップレベルにフォルダとして格納する(デフォルトはtargetfolder のなかのファイルやサブフォルダをアーカイブのトップレベルに格納する)
《例》compress_zip map_html.zip,C:\userdata\gps,*.htm;*.html,recursive

url_enc input_filename [, output_filename]
HTMLファイルのなかのURL部分をURLエンコード(パーセントエンコード)する
・ファイル UTF-8 であることが前提
x_output_indexurl_enc オプションを指定したときはクローズ時に同様の処理が行われる。
input_filename : 入力ファイル名(.htm, .html)
output_filename : 出力ファイル名(省略した場合は input_filename に上書きする)
《例》url_enc C:\userdata\gps\maplist_index.html

text_file filename, mode, text
テキストファイルにテキストを書き出す
filename : テキストファイル名
mode : オープンモード
w : 上書き
a : 追加書込み
text : 書き込むテキスト
波括弧開き "{" の次行から波括弧閉じ "}" の前行までにテキストを記述する。
この間のテキスト行にはコメント等は記述できず、# 以降や二重引用符もそのままテキストに含まれる。
《例》
text_file sample.txt,w,{
sample line-1
sample line-2
}

【エクスポートしたHTML等のモバイル端末等での閲覧について】


【その他】


【本ソフトウェアのアップデート(更新)】


【本ソフトウェアのアンインストール】


【本ソフトウェアについて】


【本ソフトウェアで利用しているオープンソースソフトウェア】

Keiroku.exe のビルドでは、下記のオープンソースソフトウェアの一部をソースコードに埋め込む、もしくはスタティックライブラリを(静的)リンクしています。また、実行時に sqlite3.dll を動的ロードして利用することがあります。

名称ライセンス形式開発者Keiroku での用途利用形態
libguess
(Gauche)
BSD-3-ClausepermissiveShiro KawaiSJIS/UTF-8判定ソースコード部分埋込み
libzipBSD-3-ClausepermissiveDieter Baron
Thomas Klausner
zipの圧縮・展開スタティックライブラリ
zlibzlib LicensepermissiveJean-loup Gailly
Mark Adler
libzip で使用スタティックライブラリ
SQLite3public domainD. Richard Hipp.poi 読込動的リンクライブラリ
※個々のライセンス条項は LICENSE_oss.txt を参照してください。(public domain を除く)

【本ソフトウェアでの表示や出力ファイルが利用しているリソース】

Keiroku.exe の地図表示や出力ファイル(HTML)で使用するリソースは初期設定ファイル(Keiroku.ini)で定義されます。デフォルトでは下記のリソースが定義されています。
リソース名称提供者リソース種別利用規約ライセンスKeiroku.exe での利用形態
OpenStreetMap ®OpenStreetMap財団地図データ(画像データ)利用規約ODbL地図表示および出力HTML
地理院タイル国土交通省国土地理院地図データ(画像データ)利用規約CC BY地図表示および出力HTML
LeafletVolodymyr AgafonkinWeb地図のためのJavaScriptライブラリBSD 2-Clause出力HTML
Google Maps JavaScript APIGoogle LLCWeb地図のためのJavaScriptライブラリ利用規約出力HTML
Google MapsGoogle LLC地図データ(画像データ)利用規約出力HTML

【著作権および免責事項】


【更新履歴】

1.04 (2024/01/24)
・スクリプトコマンド in_x_out に関するバグ修正
(x_input_filter を定義しないときに不定になる不具合)
・その他のバグ修正
1.03 (2023/11/15)
・[MTK Looger ログ消去] 機能追加
・スクリプトコマンド in_x_out に関するバグ(v.1.01, v.1.02 で発生)修正
(読込みデータがNMEA形式で x_option に merge_interval を指定した場合に、エクスポートされるHTML等のファイル名生成のバグで、HTML等が同一ファイル名で作成され上書きされてしまう不具合)
・スクリプトコマンド x_option の save_name_prefix オプションに日付&タイトルリストファイル参照を指定する dtlist を追加
1.02 (2023/07/05)
・GPSレシーバーから位置情報をリアルタイムに取得して地図上に現在位置および軌跡を表示
・Androidアプリの BasicAirData GPS Logger のTXT形式のログデータの読込み
・スクリプトで svg 格納フォルダを生成した際に .nomedia ファイルを作成
・その他の機能追加とバグ修正
1.01 (2023/05/16)
・グラフウィンドウを新設し、移動距離、高度、速度等のグラフ表示可
・上記のグラフのSVGやEMF形式のファイル出力
・KML/KMZ 読込を追加
・GPX 読込にルートポイント(<rtept>)を追加
・スクリプトにグラフ関連コマンドや圧縮アーカイブコマンド等を追加
・メインウィンドウの地図タイルのストレッチ表示可(高DPI対応)
・その他の機能追加とバグ修正
1.00 (2023/03/28)
・初版公開

【メールアドレス】 knmsc.kinj@gmail.com

Copyright © 2023-2024 Kinjo-no-Jijii (KinJ).