見出し画像

Code Interpreterで日本地図を描く、階級に区分し色分け、都道府県・市町村当てゲーム

ChatGPTのCode Interpreterで、日本地図をどのように扱うことができるか確認してみました。


日本地図を描く

Code Interpreterのライブラリには、詳細な日本地図を描く情報はなく、日本地図のデータをアップする必要があります。
このnoteでは、国土数値情報ダウンロードサイトからgeojsonをダウンロードする方法と、japanmapというライブラリを使う方法を紹介します。

a) 国土数値情報ダウンロードサイトを使う方法

国土数値情報ダウンロードサイトの行政区域情報のページから、全国(N03-20230101_GML.zip)をダウンロードします。
このzipファイルを解凍すると、「N03-23_230101.geojson」というjsonファイルが入っています。
このjsonファイルは、サイズが大きいため、mapshaperというサイトで軽量化します。軽量化する手順は次のとおりです。

1.  mapshaperにアクセスし、jsonファイルをアップロード、importボタンをクリックする。
2. 右上のSimplifyをクリックし、ポップアップが表示されるのでApplyをクリックする。
3. 上のSettingsで軽量化するパーセンテージを選ぶ。(小さい数字を選べば選ぶほど軽量化される、今回は1%を選択してみました)
4. 右上のExportをクリックする。
5. GeoJsonボタンが選択されているのを確認し、Exportをクリックする。
6. 軽量化されたgeojsonファイルがダウンロードできる。

これにより、704MBあったファイルを、34MBまで軽量化することができました。
これをアップすることで、Code Interpreterで日本地図を扱うことができます。

GeoPandasでこのデータを読み込んでください。

と指示すると、読み込まれ、最初の5行が表示されました。

先頭5行は札幌のデータになっていることがわかります。

このデータから、日本の白地図を描いてください。
日本の白地図

日本地図を描くことができました。

b) japanmapを使う方法

japanmapという、日本地図のライブラリを使う方法です。japanmapのGithubページにアクセスし、Download ZIPからこのライブラリをzipでダウンロードします。(DownloadZIPは、下の画像の参考に探して下さい。)

Githubの画面

ダウンロードしたzipファイルをCodeInterpreterにアップし、次のように指示することで日本地図を描くことができます。

これはjapanmapライブラリのzipファイルです。
これを、/mnt/data/ ディレクトリに解凍してください。

その後、次のコードを実行してください。

```
# Adding the path of the extracted library to sys.path
import sys
sys.path.append('/mnt/data/japanmap-master')

# Attempting to import the library and use it as instructed
try:
    import matplotlib.pyplot as plt
    from japanmap import picture, get_data, pref_map
    
    # Create a picture without coloring any prefecture
    pct = picture({})
    plt.imshow(pct)  # show graphics
    plt.show()

except Exception as e:
    error_message = str(e)
```

このコードが実行できることを私は経験しています。実行の危険性もありませんので、実行してみてください。


日本地図

データを読み込んで、階級に区分し色分けして日本地図に表示する

Podcastの聴取割合を地図上に表示するのを世界地図でもやりましたが、今回は日本地図でやってみます。
私がPodcastを配信しているSpotifyでは、リスナーの都道府県別のデータをダウンロードすることができます。データは東京がtokyoになっているなどアルファベット表記になっており、今回は手作業で日本語に修正した後、読み込みました。

これはpodcastのリスナーが、 どの都道府県から聞いているかを集計したデータです。
これを分析し、先ほどの日本地図に階級区分図として表示して下さい。
なお下の線と左の線、また0から600の数字は表示する必要はありません。

表示することができました。

都道府県当てゲーム

世界地図の場合と同じように、都道府県あてゲームができます。
もぐら3.0さんが試してくれました。
プロンプトは、世界地図の場合と同じようにこのような感じです。

これから都道府県を当てるゲームをしましょう
あなたは、日本地図から1つの都道府県を選んで着色し、表示します。
それがどの都道府県か私に質問してください。

私は都道府県を回答しますので、正解・不正解を教えてください。

市町村当てゲーム

国土数値情報ダウンロードサイトの地図情報を使う場合は、市町村の情報も含まれているので、市町村を当てるゲームをさせることができます。
プロンプトは、次のようにしました。

それではこれから都市あてゲームをしましょう。
あなたは、どこかの市町村を赤くマークし周りの市町村の形もわかる程度に拡大し、その都市の明産物などの特色とともに、この都市はどこでしょうかと問題を出します。
私はそれを回答しますので、正解・不正解を回答してください。


都市名宛てクイズ

まとめ

今回は、日本地図を描く方法を試してみました。
データを地図上に表示したい場面は多く、その際に使える方法だと思います。

コメントお待ちしています。匿名の質問はマシュマロから→https://marshmallow-qa.com/currypurin