本記事では、ChatGPTのプラグインであるCode Interpreterについて説明します。
Code Interpreterはコーディングやデータ分析、あるいは自身が作成したプログラムのリファクタリングなどが簡単に行えるツールです。
プログラミングに不慣れな方や始めたばかりの方でも、ChatGPTのテキストチャット形式でプログラムの作成と実行が行えるようになります。
ChatGPT August 3 Version
Code Interpreterとは?
Code Interpreterは、OpenAIによって開発されたChatGPTの公式プラグインで、Pythonを使ったコーディング、データ分析、ファイル編集などをテキストチャット上で行うことができるツールです。このプラグインは、csvやJsonファイルなどのアップロードもサポートしており、ChatGPT上で直接これらのファイルを取り扱うことができます。アップロードしたcsvファイルをCode Interpreter上で整形したり、そのファイルに対してコードを実行するといった操作も容易に行うことが可能です。
現在は有料のChatGPT Plusユーザーにのみ順次公開されています。
大変便利なCode Interpreterですが、下記に示すような弱点も存在します。
- 実行時間の制限: 特定のコードセルの実行が120秒以上かかるとタイムアウトとなる。
- メモリの制限: メモリ容量が貧弱で、すぐにメモリ不足になることがある。
- インターネット接続不可: インターネットに接続していないため、外部APIにリクエストを送信したり、Webスクレイピングを行ったりすることができない。
- ファイルとコードの削除: 一定時間が経過すると、チャット上のファイルや生成したコードが削除される。GPT-4の利用制限後、再開するとほぼ確実に消えている。
- 実行できる言語がPythonのみ: Code Interpreter上で実行できる言語がPythonのみである(2023年8月現在)。
- ファイルサイズの制限: アップロードできるファイルサイズが512 MBまでです。そのため、サイズの大きいデータはCode Interpreter上では扱えません。
Code Interpreter で衛星データからNDVIのヒートマップを作成する
それでは、実際にCode Interpreterを使用し、衛星データからNDVIのヒートマップを作成してみます。
Code Interpreter を有効化する
ChatGPTのサイトからChatGPT Plusユーザーに登録したアカウントにログインします。左下のアカウント名が表示されているところをクリックし、画像のような「Settings & Beta」をクリックします。
次に、「Beta features」をクリックし、「Code interpreter」の赤枠でか囲ったところをクリックし、緑になれば有効化が完了しました。
衛星画像を表示させる
Code Interpreterはインターネット接続できないため、あらかじめ用意する必要があります。今回はSentinel-2のL2A_T54SVE_A042399_20230805T013459というデータを用います。千葉県の一部が撮影されたデータになります。
データはESAのこちらのサイトからダウンロードしました。
それではまずChatGPTのGPT-4モードでCode Interpreterのプラグインを選択します。
画面下のテキストボックス横に表示された+ボタンを押してファイルをアップロードします。
今回はB2, B3, B4, B8のデータをアップロードしました。
まずはRGB画像を作成させてみます。
輝度の設定が甘くて暗いですが、一応RGB画像は作成できていそうです。
Finished working の「Show work」をクリックすると実際に実行されたPythonのコードが表示できます。
rasterioでファイルを読み取り、matplotlibで画像を表示させているようです。
次にB8Aの画像を追加してフォルスカラーの画像を作成してもらいます。フォルスカラーというのはRGB画像でRに赤外線バンド、Gに赤色光バンド、Bに緑色光バンドを割り当てることで、植生を赤色に際立たせたものです。
NDVIのヒートマップを作成する
赤外線バンドのB8Aをアップロードしたので、次はNDVIのヒートマップを作成させてみましょう。NDVIについてはこちらの記事を参照してください。
NDVIのヒートマップが簡単に作成されました。海や一部の場所がNDVIが高くなって過大評価されていそうなので、NDVIが中程度(0.5~0.75)のみ表示してもらいましょう。
今度は、森林や発達した植生のみが表示されたマップになっていそうです。
ある程度の内容の確認はまだまだ必要ですが、チャットに打ち込むだけで数分でヒートマップの作成ができてしまいます。
前回の記事ではGoogle Earth Engineを利用してNDVIのヒートマップを作成しましたが、こちらのほうがより単純に直感的に作成することができそうです。
最後に
Code Interpreter を使えばテキストチャットに命令文を書き込むだけで簡単に衛星データの操作が行えました。現在はインターネット接続が制限されているため、Google Earth EngineなどAPIを使った操作が行えません。そのため、あらかじめユーザー側で画像データのダウンロードとCode Interpreterへのアップロードの手間が発生してしまいます。
しかし、もし今後インターネット接続も可能になれば、ますます快適に使用できることが期待できます。