SatNOGS Ground Station構築ガイド

# はじめに
　[SatNOGSプロジェクト](https://satnogs.org/)は、オープンな衛星地上局ネットワークを形成する完結したプラットフォームです。SatNOGSは、モジュール方式に最適化され、入手しやすく手頃なツールとリソースで構築されるオープンソースの地上局とネットワークです。インターネット、Raspberry Pi、SDR USBドングルとアンテナがあれば地上局をつくることができ、SatNOGSの地上局ネットワークに参加することができます。

https://satnogs.org/

　
　このページでは、Raspberry Pi 3 Model B(+) と RTL-SDR を用いてSatNOGSの地上局を構築する手順を示します。
![135CD840-EAC7-46ED-9975-D71C7A283402.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/deee318d-edc6-3220-21a1-39482b25027c.jpeg)

地上局構築の流れ
1.SatNOGSアカウント作成
2.地上局の追加
3.SatNOGSクライアントのインストール・設定
4.動作テスト

 地上局の構築方法はSatNOGSサイトではWikiのBuildセクションで解説されています。

https://wiki.satnogs.org/Build

# SatNOGSアカウント作成

### Sine Up
 SatNOGS [Networkページ](https://network.satnogs.org/)でSine Upを行います。
![SatNOGS-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/d20b85ac-9306-bc07-6cf5-dcca9e25fb33.png)
![SatNOGS-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/123f0c9f-276f-6912-8e38-e9bdb7c4f3a6.png)
![SatNOGS-03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/443a796f-b7eb-7987-abe0-73f8675c324c.png)

### アカウントのベリファイ
　サインアップを行うと登録したメールアドレスに"Verify your email"が届くので、アカウントのVerifyを行います。

# 地上局の追加
　アカウントを作成できたら地上局の追加を行います。まず、Dashboad画面で「Add Ground Station」をクリックします。
![SatNOGS-04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/d119b82d-297a-06f3-9c14-445eda668998.png)
　地上局の登録画面が表示されます。
![SatNOGS-05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/c049c1c2-5219-fb1d-7bb3-5c29457223d2.png)

* Generl Info
  * Name : 地上局名　どう名づけてもいいですが、地名-対応周波数帯-アンテナの種類 がいいのではないかと思います。
  * Description : 地上局の説明です。
* Location
  * Latitude : 緯度 
  * Longitude : 経度
  * Altitude (ASL) : 高度(m) 
  * QTH Locator : 緯度・経度を入力すると自動的に入力されます。
この経度・緯度・高度に基づいて衛星の可視開始・終了時刻と方位が計算されます。緯度・経度はGoogle Mapで地図上を長押しすると表示される値をそのまま入力することができます。ただし、場所がわかってしまいますので、適当にまるめた値を入力したほうがいいでしょう。
![スクリーンショット 2021-05-03 22.56.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/40a4f28a-18e2-b55b-1ccd-590c22657d8b.png)
* Settings
  * Minimum Horizon : 可視の最低仰角です。水平線が０°でここに設定した角度以上を可視範囲とします。デフォルトは10°です。
  * Target Utilization : よくわかりません。
  * [x]  Testing? : チェックを入れると地上局が動作確認中であることを示します。（地上局にオンラインにするとIDの色がオレンジになります）
* Antennas
  * 周波数帯とアンテナを登録します。「＋New Antenna」をクリックします。
  * New Antenna
     * Type : アンテナの種類を選択します。
     * Frequency Ranges : Add a default rangeにいずれかまたは複数を選んで、加減周波数・上限周波数を入力します。 
     * 入力したら、「Save changes」をクリックします。
![SatNOGS-06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/7c05b2af-02bb-7877-bf35-8f26c4e04726.png)
* Image
  * 地上局にちなんだ画像を登録します。アンテナの画像が多いです。
![SatNOGS-07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/33feb87d-4719-d9be-2c83-8d0e93e879e9.png)
![SatNOGS-08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/c4bff217-8655-50c6-732a-d78b79a2c634.png)
* 入力が終わったら「Submit」をクリックします。
  * 登録された地上局の画面になります。
  * 地上局名の左の番号は地上局IDで、Obsarvations画面のStationの検索で自分の地上局を検索するときに使いますので控えておきましょう。
![SatNOGS-09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/e8f2cd3a-629a-fe89-0c09-4dd4eab77436.png)

## APIキーの確認
　APIキーは、受信機（Raspberry Pi）とアカウントをひもづけるためのキーです。Raspberry Piの設定時に必要となりますので、表示させてメモします。

* Dashboard画面の表示
  * Dashboard画面を表示させましょう。IDが赤くなっているは地上局がオフラインであることを示します。オンラインになると緑になります。
  * 右上の人型アイコンからプルダウンメニューを表示し、Dashboardを選択します。 
![SatNOGS-10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/67639f82-f505-162d-c068-39a7a4e8c3b8.png)
  * Dashboard画面の「API Key」をクリックします。
![SatNOGS-11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/0dcd454d-a156-96b6-ee58-5bef3d153c9f.png)
  * キーをコピーして何処かに保存するかメモします。
![3D0AE50D-68F7-40E0-9755-CC14B6B02882.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/8effce29-3dea-edf9-71e3-a7dc0f8acc94.jpeg)


　地上局の追加はこれで終わりです。

# SatNOGSクライアントのインストール・設定
 Raspberry PiはSatNOGSのリファレンスプラットフォームで、Raspberry Pi 3 または 4 対応のRaspbianイメージが提供されています。

　この後の流れ
1.Raspbian SatNOGS イメージのダウンロード
2.Raspbianの設定
3.SatNOGSクライアントの設定

### 1.Raspbian SatNOGS イメージのダウンロード
　執筆時点では 2020年12月27日リリースが最新版ですので、このバージョンで説明をしていきます。

* Wiki > Build > [[Station] INstall a Raspberry Pi](https://wiki.satnogs.org/Raspberry_Pi) を開きます。
* artifacts.zip をダウロードします
![SatNOGS-13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/201bd9f3-696f-88bc-9ef3-9631fcfc5759.png)
* ダウンロードした arifacts.zip を解凍し、さらに image_2020-12-27-Raspbian-SatNOGS-lite.zip を解凍します。
  * 2020-12-27-Raspbian-SatNOGS-lite.img がイメージファイルです。 
* イメージファイルを Win32DiskImager といったツールを使ってマイクロSDカードに書き込みます。
  * メモリのサイズは最低4GB必要です。受信中は作業ファイルが作られますので、余裕をみて8GB以上あるといいでしょう。

### 2.Raspbianの設定
 Raspbian SatNOGS イメージが書き込まれたマイクロSDカードでRaspberry Piを起動し、まずRaspbianの設定を行います。

* SDカードスロットにSDカードを挿入し、HDMIインタフェースのディスプレイとキーボードを接続します。マウスは必要ありません。
* Raspberry PiにUSBケーブルを接続し、起動します。
* ログインします。
  * ユーザー名：pi
  * パスワード：raspberry

### raspi-config
　raspi-configでRaspbianの設定を行います。詳しい設定方法はいろんなところに出ていますのでそれらを参照してください。以下に私が行った設定を示します。お好みで設定を加えてください。

* raspi-config を起動します。
  * ```pi@raspberrypi:~$ sudo raspi-config```
* 1 System Options
  * S1 Wireless LAN
     * Select the country in which the Pi is to be used （Wi-Fi使用国の選択）: JP Japan
     * Please enter SSID : 接続するWi-FiアクセスポイントのSSID
     * Please enter passphrase : 接続するWi-Fiアクセスポイントのパスフレーズ
     * Wi-Fi設定は、```/etc/wpa_supplicant/wpa_supplicant.conf```に保存されます。
  * S3 Passoward
     * 'pi'ユーザのパスワードを変更しましょう。
* 3 Interface Options
    * P2 SSH
       * リモートログインするためSSHサーバを有効にします。
    * P6 Serial Port
       * シリアルコンソールを使用するときは有効にします。
* 5 Localisation Options
    * L2 Timezone　SatNOGSはUTCで管理されるのでUTCに設定します。
      * Geographic area: で None of the above を選びます。
      * Time Zone: で UTC を選びます。  
* 6 Advanced Options
  * A1 Expand Filesystem
     * RaspbianのファイルシステムをSDカードの空き領域に拡張します。
  
### 固定IPアドレス設定
　デフォルトではDHCPでIPアドレスが割り当てられます。固定IPアドレスを使用するときは、```/etc/dhcpcd.conf```を編集します。

### パッケージの update と upgrade
 Raspberry Piを再起動し、インターネットへの接続を確認したら、パッケージのupdate と upgrade を行います。

```
pi@raspberrypi:~ $ sudo apt-get update
```

```
pi@raspberrypi:~ $ sudo apt-get upgrade
```

 Raspbianの設定は以上です。次は、SatNOGSクライアントの設定を行います。

# 3.SatNOGSクライアントの設定
　次に、SatNOGSクライアントの設定を行います。設定については [SatNOGS Client Setup](https://wiki.satnogs.org/SatNOGS_Client_Setup) ページに記載されています。
![SatNOGS-15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/0eae717b-b78a-eb31-95fc-5573c245a93d.png)

### satnogs-setup ユーティリティの起動
　satnogs-setupはメニュー方式でSatNOGSクライアントの設定を行うユーティリティです。設定項目はBasicとAdvancedに分かれています。Basicだけ設定すれば動作させることができます。ここでは、Basicに加えてAdvancedのRFゲインの設定を行います。
　コマンドラインで satnogs-setup を起動します。起動するとメインメニューが表示されます（表示のされかたは使用する環境に依存します）。

```
pi@raspberrypi:~ $ sudo satnogs-setup
```
![SatNOGS-16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/cca6ff00-98fc-21a7-2dca-063cb965d128.png)


### Basic 設定
* Main MenuでBasicを選択し、<Select>が選択された状態で[Enter]キーを押します。
  * [↑][↓]カーソルキー押下でメニュー項目の移動、[←][→]キーまたは[TAB]キー押下で<Select> <Back>間の移動が行われます。
* Basic Configuration options メニューが表示されます。
* 項目を選択し、<Select>選択で[Enter]キーを押すと入力画面がポップアップ表示されます。
![SatNOGS-17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/4afb28ae-8640-02d2-7c7d-2d83e719e9a8.png)
![SatNOGS-18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/5dff6784-7ab6-a306-e703-eee83333fc03.png)
* Basic configurationの各設定
  * SATNOGS_API_TOKEN
     * Dashboard画面の「API Key」をクリックして表示されたHEXコードを入力します。
     ![SatNOGS-19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/03598549-aaab-47bd-b407-b59816cf701e.png)

  * SATNOGS_SOAPY_RX_DEIVE
     * SDR が RTL-SDR なら ```driver=rtlsdr``` と入力します。 
  * SATNOGS_ANTENNA
     * ```RX```と入力します。
  * SATNOGS_RX_SAMP_RATE
     * RTL-SDRなら```2.048e6```（2Msps）と入力します。
  * SATNOGS_STATION_ELEV
     * Ground Stationの「Altitude」に設定した値を入力します。
  * SATNOGS_STATION_ID
     * 地上局のIDを入力します。
  * SATNOGS_STATION_LAT
     * Ground Stationの「Coordinates」の緯度として設定した値を入力します。 
  * STANOGS_STATION_LON
     * Ground Stationの「Coordinates」の経度として設定した値を入力します。 
     ![SatNOGS-20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/d70e8f30-f079-2e76-0349-3cce1f501e7f.png)
* 入力が終わったら、Main Menuに戻ります。
  * Basic Configuration options メニューの <Back> を選択し[Enter]キーを押します。
  ![SatNOGS-21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/f7e05501-51aa-5a31-a8b1-f18d73fedcff.png)

### Advanced 設定
* より詳細な設定を行えます。satnogs-setup ユーティリティの起動に書いたようにRFゲインの設定だけ行います。
* Main Manuで、Advanced を選択し、Advanced configuration options メニューを表示します。
![SatNOGS-22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/0e4dbd06-3a08-c38e-bb0d-0145f078c478.png)
* Advanced configuration options メニューでRadioを選択します。
![SatNOGS-23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/3c6cd108-331e-7759-1823-5a75c8bfc3c3.png)
* Radio settingsメニューでSATNOGS_RF_GAINを選択します。
  * [SatNOGS Client Setup](https://wiki.satnogs.org/SatNOGS_Client_Setup)では、SATNOGS_RF_GAIN設定はBasicに含まれていますが、インストールしたバージョンではAdvancedのみのなっていました。
![SatNOGS-24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/9221b2b1-f1dd-bf64-fcb6-6539c9458646.png)
* SDRのRFゲインを入力します。
  * RTL-SDRでは、0～49.6dBの間で設定することができます。
  * [Setting the Gain](https://wiki.satnogs.org/Omnidirectional_Station_How_To#Setting_the_gain)にゲインの決め方について書かれています。
  * 私はこの方法ではうまく受信できなかったため、[SDR#](https://www.rtl-sdr.com/rtl-sdr-quick-start-guide/)で44.5に決めました。
  ![SatNOGS-25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/487e4b97-1a1b-437d-90af-72c50bffcf84.png)
* 入力を終えたら<Back>，<Back>でMain Manuまで戻ります。
![SatNOGS-26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/9238ecae-7c67-23f2-50aa-b37483787876.png)

### 設定の確認
* Main MenuでShowを選択すると、現在の設定が表示されます。
![SatNOGS-27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/bb31f8c9-dd2d-cb35-d601-173af29090aa.png)
![SatNOGS-28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/93ad964d-5d9c-1e15-063f-cfc73f069fdf.png)
* <Back>でメインメニューに戻ります。

### 設定の適用
* 設定を確認し終えたら、設定値をSatNOGSクライアントに適用します。
* Main Menuで<Apply>を選択し、[Enter]キーを押します。
![SatNOGS-29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/0df32b89-bc25-fa38-6912-6ae21988e2af.png)
* スクリプトが実行され、終了するとMain Menuに戻ります。
* Rebootを選択するか、<Exit>でユーティリティを終了し、コマンドでリブートを行います。

### SatNOGSクライアントの状態確認
* 再起動後、Dashboard画面から地上局画面を表示し、SatNOGSクライアントの状態を確認します。
* Client Versionの下が、オレンジ色の[Testing]で、Last seen 0 minutes agoとなっていれば、SatNOGSクライアントがサーバに接続されています。
  * 接続されていなけれれば赤色で[Offine]と表示されます。 
![SatNOGS-30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/de605796-0317-756c-f218-4b7328574cdb.png)

# 動作テスト
* 受信の予約と確認を行いましょう。

### 衛星パス予測の表示
* 地上局画面で、「Calculate Future Passes」をクリックします。
  * 「Calculate Future Passes」は、この地上局で24時間以内に可視となる衛星のパスを計算し表示してくれます。
![SatNOGS-31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/4e1cc87d-51ba-4e8c-6b41-b68b84dbf4a1.png)
* パスの予測はこのように表示されます。
  * Name
     * NORAD ID と 衛星名
         * 下のグラフは受信実績を割合で表したものです。
  * AOS
     * 可視の始まる日時（衛星の仰角が地上局設定で設定したMinimum Horizon以上になる時刻）
  * LOS
     * 可視の終了する日時（衛星の仰角が地上局設定で設定したMinimum Horizon以下になる時刻）
  * ⤉ ⇴ ⤈
     * 上：AOSの方位角
     * 中：最大仰角
     * 下：LOSの方位角
  * Polar plot
     * 衛星の予測軌跡
         * 緑の丸 AOS
         * 赤の丸 LOS
![SatNOGS-32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/b69edff3-6241-e6df-4279-d47b3c488e0d.png)

### 予約
* 予約したい衛星の「Schedule」をクリックします。
![SatNOGS-33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/19a683e6-f93d-2f1c-7c4b-de619c146362.png)
* New Observation画面に「Schedule」ボタンが表示されたら予約可能です。このボタンをクリックします。
![SatNOGS-34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/3d034d34-1548-34d8-f99d-47ff3d45295b.png)
* 予約されるとDashboard画面のObservationに追加されます。
  * IDが水色なのは受信予約することを表しています。 
![SatNOGS-35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/6db19c97-d12a-d5ee-5a86-2ae8fa01bfce.png)

### 受信結果の確認
* LOS時刻から数分経ったら、受信結果を確認してみましょう。
* Dashboard画面をリロードします。
  * ObservationsのIDの色が変化しているはずです。
![SatNOGS-36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/38724af9-69a4-06ab-d9f3-74b1ec9057c9.png)
* ObservationsのIDの色が受信状態を表します。
  * オレンジ色：受信を行ったが、信号の有無は不明
  * 緑色：信号あり
  * 赤色：信号なし
  * 黒色：地上局からのアップロードなし
![SatNOGS-39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/38b0870b-ecf7-d303-c949-ccb62e4a51f2.png)

* ID番号をクリックすると受信情報とウォーターフォールが表示されます。
  * ウォーターフォールのFrequency (kHz) 0 の延長上に明るい色の帯や線（点線）があれば、それが衛目的の星の信号である可能性があります。
  * Downloadsの「Audio」をクリックすると録音の再生またはogg形式のオーディオファイルをダウンロードできます。
![SatNOGS-37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/06bc2f88-df99-d8c1-dc42-ded05c6d3673.png)
![SatNOGS-38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112480/53cc1f68-2fe2-4f76-a142-b7d861a0242c.png)

# おわりに
　SatNOGSのアカウント作成から受信までを順を追って説明しました。Raspberry Pi　 + RTL-SDR であればこの手順どおりにやれば受信できるはずです（と思っています）。
　予約の方法、地上局や受信データのサーチする方法などは改めて記事にしたいと思います。