Android GNSS Analyzer のインストール


# 前置き

### Android 端末で Raw GNSS measurements　を取得

実はAndroid ではＧＰＳ受信機から、位置情報だけでなく、位置情報を計算するために使用する受信機の観測値 [Raw GNSS measurements を取得するＡＰＩ](https://developer.android.com/guide/topics/sensors/gnss)が用意されています。実際にRaw measurements を取得するのは、このＡＰＩに対応した実装がなされている機種のみですが、対応が確認が取れている機種は同ページに掲載されています。私が使っている Huawei P10 も対応しています。

実際にどのように記録するかですが、Googleから出している GNSSLogger を使えます。ここでのログが、今回の件名にあるGNSS Analyzer の入力に使用するファイルです。実際の測位ではRINEX format というformat が標準的に用いられています。Raw measurement を RINEX形式で保存してくれるアプリもたくさん出ています。

### Android GNSS Analyzer 

このソフトはGoogle から公開されていて、Android 端末のraw measurement を GnssLogger というソフトでログを取った時のファイルを入力とするソフトの様です。ファイル形式は独自形式だと思います。これはRINEXだとAPIが定める raw measurement に対応する情報を記録できないからではないかと思います。

このＡＰＩはかなり癖があります。例えば疑似距離に対応する項目はなく、疑似距離は自分で計算しなければなりません。そもそも、疑似距離は衛星の発信時刻と受信機の受信時刻の時間差に光速をかけたもので計算できます。このＡＰＩだとそれぞれ両者を取得して自分で計算せよ、ということになっています。

### 資料

Tutorial のスライド、サンプル用のデータあります。

- [Android GNSS Tutorial](https://sites.google.com/view/gnsstutorial)
- Tutorial Slides: [Frankさんのチュートリアル資料](https://www.gsa.europa.eu/sites/default/files/expo/frank_van_diggelen_keynote_android_gnss_measurements_update.pdf)
- [InsideGNSSの記事](https://insidegnss.com/gnss-analysis-tools-from-google/)
- White paper [Using GNSS Raw Measurements on Android Devices] (https://www.gsa.europa.eu/system/files/reports/gnss_raw_measurement_web_0.pdf)
- APKファイルも含まれています。[GPS Measurement Tools](https://github.com/google/gps-measurement-tools)

チュートリアルの内容を自分でも実行したいのいうのが、今回の目的でした。


# Windows でインストールと起動

Matlab runtime を用いて、Windows/Linux/Macで動くそうです。
今回、Windows /Linux(WSL)で試しましたが、起動はするものの、いろいろ表示はできません。残念ですが、インストールメモということで。

## ポイント

ダウンロードして、`for_redestribution/MyAppInstaller_web.exe` をダブルクリック。
途中でMathworks からmatlabのRuntime をダウンロードしてくれます。これは時間がかかりますが、我慢しましょう。（ドキュメントにも"Patient!"と書かれています。)

![20191230GNSS02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294040/aee7f1e0-545e-d4bd-28de-43f75c35340c.png)

![20191230GNSS03.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294040/c329bd9b-0825-00c4-8c0f-35e775f6d1d4.png)

![20191230GNSS04.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294040/d0fa794b-93a2-2b33-0067-111c61e191f7.png)

しばらく待つとインストールが無事に終了されます。ここまでは良かった。

あと、ドキュメントにgunzip.exe が Path で検索されるところに置くようにとの指示があります。
具体的には、gzipをダウンロードして、gzip.exe を gunzip.exe に名前を変えておくようにと書かれています。バイナリが入っているgzip-1.3.12-1-bin.zip を持ってくれば、gzip.exe が入っているのでこれをrename してPathの取っている所に配置しましょう。

# 起動させてみると、、、

Tutorial にある driving の場合。何度もガチャガチャ動かしているけれど、できたのはここまで。

- `Find Log File`のボタンを押してファイル選択の画面になるので、`gps_log_2017_03_06_sanfrancisco_L1L5.txt`を選択。`Analyze and Plot`のボタンを押せとのメッセージが出る。
- `Analyze and Plot`ボタンを押すと、
```
WARNING: BiasUncertaintyNanos missing from GnssLogger file, => no valid time tags to process
No raw measurements read from this file. Try another log file.
```
と言われる。
- 隣のタブ`Planning`のタブで`Compute and Plot`ボタンを押すと、どうやら衛星軌道情報をダウンロードして衛星位置を計算するらしい。それで天空図とともに衛星の位置が描画される。

![20191231GNSS.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294040/5c54166b-90b1-c4d9-57a9-ed7537f15f1a.png)

まず`GnssAnalysisApp`を起動させます。検索するとこの名前で起動できます。


これ以外、操作方法が分からず。まずはここまで。

あと、Linux (Windows Subsystem for Linux)でインストールしても同じでした。`sudo` でインストールし、/usr/local/Matlab　以下を引数にする以外には、特に注意するところはなかったと思います。

いずれにせよ使いこなせていません。。。

来年は良い年でありますように。今年もいろいろありがとうございました。(2019/12/31)