見出し画像

Google Colabで衛星データを扱う

Google ColabとPython

突然ですが、今回は統計やデータ解析のプログラミングの話題です。エクセルでも相当なことができるんですが、エクセルの難点は、色々とやってるうちに操作を忘れてしまう、同じことを違うデータソースに当てはめるのがなかなか難しいということにあります。

また、統計手法の多様さなどについても、やはりエクセルでは限界があります。そこでプログラミング環境が必要になるのですが、これまでRという言語環境を主に使ってきました。

ただ、もうひとつ学術と実務の世界でポピュラーな環境にPythonがあります。今回、GISやGoogle Earth Engineという人工衛星などのオープンデータを扱うのに、このPythonを使って色々と試してみました。

R StudioとGoogle Colab

10年くらい前までは、このようなプログラミング環境の構築はかなり難しくて、しかも、どうやってデータを入れて、あるいは変形や計算結果のファイルをアウトプットすればいいのかという入り口と出口がやたらにハードルが高いものでした。

Rの例では、MacではインストールしてあればTerminalを立ち上げて、"R"とだけ入力すれば立ち上がります。ただ、その画面は

TerminalでRを立ち上げたところ
>

だけです。何を入力すればいいんでしょう。苦笑

これが、R Studioの登場で激変しました。
IDE(Integrated Developmen Environment)と呼ばれるものですが、プログラムの記述を総合的にサポートしてくれる環境で、入出力やプログラムの保存も含めて、少し勉強すれば個人のPCで容易にデータ解析ができるようになりました。

R Studio

Google Colabを使ったPythonの環境

Pythonも同じような感じで、こちらはAnacondaと呼ばれる環境を構築して、Jupiter NotebookかVS CodeというIDEを使うのが標準だと思います。

ただ、この環境の構築や理解はまだまだ面倒です。これをかなり簡単にしてくれるのが"Google Colab"です。

ブラウザ上で Python を記述、実行するのですが、以下のメリットがあります。

  • 環境構築が不要

  • GPU に料金なしでアクセス

  • 簡単に共有

Rは出力が論文形式にできる、文献参照や脚注、図表の番号振りなど、Word以上の機能があるため、メインはRであることは変わらないのですが、その分、Pythonは計算機的な使い方ができないかと感じるようになりました。それは、特に夜間光という衛星からのデータがGoogleのプラットフォーム上でオープンデータ化されており、Colabで非常に扱いやすいということがわかったからです。

衛星データとGIS

衛星、特に夜間光は人の生活、経済活動との関係が深いため、近年経済学の研究でも使われるようになっています。このようなデータ解析は、R、またはGIS専用ソフトのQGISやArcGISでもできるのですが、最初の衛星データを入手して整理,整形するのがなかなかな厄介でした。

これはGoogleから直接入手するには、Javaスクリプトによる記述が必要なためで、データ入手できてもその後また解析環境にインプットし、データ処理のプログラムを書くという作業が必要になるためです。

これが、Google ColabのPython環境ではシームレスにデータの入手と整理、解析まで行えるということで、今トライアンドエラーを繰り返しながら慣れようとしているところです。

なぜ夜間光なのか

なぜ夜間光というデータを使いたいかというと、代理変数としての一貫性と、自由に範囲を決められるということです。

英語中心ですが、日本語のもの含めて結構な情報の蓄積がWebにあります。以下の世界銀行のチュートリアルは、実際のコード例だけでなく、YouTubeでの講義も統合されており、非常に有用です。しかも、日本の地図と都道府県区分を扱っている部分があり、日本地図データの指定もコードのコピペでOKです。

衛星データとGoogle Earth Engine, Google Cola

Googleは、様々な衛星やGISデータをオープンデータとして公開しており、研究のような非営利目的では無料で使用することができます。


このデータ取得や処理がGoogle Colab環境では非常に柔軟に、軽くできます。その理由は、データの元が柔軟なのと、計算そのものはGoogleのサーバー側で行われて、ローカルのPCの性能に依存しないということがあります。

しかも、ちょうど今プログラミング支援のAI進化の真っ只中で、プログラムを書いている画面で質問またはサジェスチョン、エラーの解説など、Googleのアカウントさえ持っていれば、少し制限はあるようですがCopilot的なヘルプが利用できます。これが本当に助かります。

Geminiのチャット画面

日本の公式統計データの問題とGISデータの有用性

国勢調査データも、実は日本全国メッシュで区切ったGISデータとして提供されてます。ただ、全国メッシュデータがかなり重く、また、都道府県や自治体といった集計単位を当てはめることも、できるのですがプログラミングとデータがかなり重くなります。(軽くやる方法もあるのかもしれませんが、ちょっと自分の今のスキルでは荷が重いんです)

さらに、日本の公的統計データは、特に基礎自治体自治体の区切りが平成の大合併で激変した、人口などの国勢調査データと、経済統計である経済センサスの実施年度が違う上に、「経済センサス」は以前は「事業所・企業 統計調査」という名前だったとか、鉄道や輸送関係のデータはエクセルでの公開があっても印刷上の見た目しか考えていない「神エクセル」だったり、PDFしかなかったりと、非常に問題だらけです。ただ、ほぼ唯一と言っていい良質なデータが、「国土数値情報」というGISデータで提供されており、この利用価値が非常に高いのです。

ここには、たとえば鉄道であればこれまでに存在したすべての路線、駅の地点データ、設置年、廃止年、事業者名などが「鉄道時系列データ」という名称で存在します。全国駅の乗降者数データや、バス停の情報もあります。(それでも課題がないわけではなく、駅乗降者数については公開を了承していない事業者の駅はデータがない、また、以前はバスデータに関しては、1日の本数まで存在してたんですが、最新データではこれがなくなってしまったなど、オープンデータ化の掛け声と現実の乖離が見て取れます)

RとPythonの使い方

二つの環境、言語を扱うのはしんどいのですが、それぞれに特徴やいいところがあるので、使い分けができるようになりたいと思ってます。

出力はやはりRの柔軟性や綺麗さが勝ります。ただPythonは計算をサーバー側で行える、Googleの衛星データ、GISデータが扱いやすく、またデータの下処理もやりやすそうで、計算機的に使えるかと思っています。RはPC、ColabとPythonは計算機、という感じになるといいなと思ってます。


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?