趣味で宇宙開発を行う団体「リーマンサット・プロジェクト」がお送りするリーマンサット・プロジェクト 新春アドベントカレンダー2021の19日目になります。
リーマンサットでは広報部でイベント課と宇宙ポスト課に関わっています。元々科学技術コミュニケーションに携わっていたことと、去年の新春アドベントカレンダー2020をきっかけに入りました。
はじめに
普段はServiceNowのようなローコード製品に関わるお仕事をしています。学生時代にMatlabを触って衛星画像の解析をしていた程度なので、プログラミングからは久しくやってないです。
最近になって放置しがちですがはじめているAtCoderではPythonを選択していますが、そういえば体系的にPythonを学んでいないなって思ったのと、この記事を見つけてからやっていなかったのでせっかくの機会にとやることにしてみました。
触ったのはMicrosoftが提供している下記のラーニングパスです。どれも宇宙に関係するものから選んでみました。
モジュールが細かいので中身は概要レベルで書いていきます。
宇宙探索での Python の役割を見つける
はじめ環境のセットアップをします。VS CodeとJupyter Notebookの2つなのでもしかしたらはじめから入れている人も多いかもしれません。もちろん初学者向けなので、設定の方法についても書かれています。
Pythonの基本的な学習
四則演算、変数・リスト表記、for・whileといった内容を学べます。
コースのはじめの方にも書いていましたが、「Pythonの学習がメインではない」と書いている通り、本当に基本的なところで終わっています。
rockTypes = ["basalt", "highland", "breccia"] # 玄武岩 高地 角礫岩
rockTypes.append("soil") # 珪藻土
rockTypes[1]
変数等の部分が全て宇宙関係にしているのが面白いですね。宇宙関係のラーニングパスはすべて宇宙とか地学に関係している変数が出てきます。
簡単なプログラムの作成
上記のモジュールで学んだ内容を使って採取した岩石の種類をカウントするというプログラムを作成します。
Python と人工知能を使って隕石を分類する
宇宙に存在する岩石の特徴とか、サンプルリターンプロジェクトの「OSIRIS-REx」の紹介がはじめに来ます。
画像の解析
Anacondaを経由してMatplotlib、NumPy、PyTorchをインポートします。
隕石の画像をニューラルネットワークを構築して分類をするという内容です。コードがはじめから用意されているので、一切かけなくてもやれるのがありがたいです。
機械学習でロケット打ち上げの遅延を予測する
ロケットの打ち上げには正確な気象の予測が必要なので、過去の情報からの予測を立ててみます。NASAのロケットの打ち上げ日とNOAAを気象データを使用し、scikit-learn、PyDotPlus、Azure Machine Learning SDKを新たに導入します。
欠損値のクリーニングからはじまり、データの視覚化まで一連の流れをできますが、この章は他のモジュールと比べて結構分量があります。
で、どうだったの?
ラーニングパスをやってみた感想ですが、Pythonの超基礎を体系的に学ぶということはできましたが、より詳細な学習については他の学習サイトを使うのが良さそうでした。
コースの説明の中でNASAが取り組んでいる宇宙開発について知ることができたので、読み物としても大変良かったです。機械学習は知識程度しか知らなかったので初学者の導入にいいなと思いました。
Python と Visual Studio Code で宇宙を探索する (Netflix の『フェイフェイと月の冒険』からのインスピレーション)はこちらの応用編ですので、まずはアニメを見てからやろうかなって思います。
次回はいよいよ最終回!
明日はとうとう最終回です、トリを飾るのは@pisamatsuさんの「RTL-SDR とV-Dipoleアンテナで作る地上局 ー RSP-01の電波を受信するために」です。お楽しみに!
リーマンサット・プロジェクトは「普通の人が集まって宇宙開発しよう」を合言葉に活動をしている民間団体です。
興味を持たれた方は https://www.rymansat.com/join からお気軽にどうぞ!