[python]Shapelyについて学習する

はじめに

皆様こんにちは。
AMDlab Webエンジニアの塚田です。

今回pythonのライブラリであるShapelyについて学習してみました。

Shapelyは、Pythonで図形(ジオメトリ)を扱うためのライブラリです。
「点・線・多角形」などの幾何学的なオブジェクトを作成・操作・解析するのに使われます。

地理情報(GIS)や図形処理、空間アルゴリズムの分野で特に重宝されています。

開発環境構築

仮想環境を用意してその中で開発を進めます。
IDEとしてCursorを利用します。ベースはVisual Studio Code(VS Code)なので、UIや基本操作はVS Codeに慣れている人ならすぐに使えます。

まず、仮想環境を用意します。

Cursorのターミナルで以下のコマンドを打ちます。

次に、venv環境をアクティベートし、必要なパッケージをインストールします。

次に、requirements.txtファイルを作成して、必要なパッケージを記録します。

ソースコード解説

Shapelyを利用して図形同士の和集合、差集合、外側,内側のバッファリングを求めるコードについて記載しています。
計算結果を画面上に表示するためにMatplotlibを利用しています。

和集合

shapely_union.py

計算結果

左側に元の2つの四角形が色違いで表示され、右側に和集合の結果が表示されます。

差集合

バウンディングボックスの処理も合わせて含めています。

shapely_difference.py

計算結果

左側では青い四角形と赤い五角形が重なって表示され、右側では緑色で差集合の結果が表示されています。

外側バッファリング

shapely_outer_buffer.py

 

計算結果

内側に元の青い図形が表示され、外側に赤色でバッファリング後の結果が表示されています。

面積もターミナルに表示されます。

内側バッファリング

shapely_inner_buffer.py

外側には元の青い図形が表示され、内側に緑色でバッファリング後の結果が表示されています。

面積もターミナルに表示されます。

まとめ

今回Shapelyについて調べてみましたが、便利だと思いました。引き続き調査を続けたいと思います。


AMDlabでは、開発に力を貸していただけるエンジニアさんを大募集しております。
少しでもご興味をお持ちいただけましたら、カジュアルにお話するだけでも大丈夫ですのでお気軽にご連絡ください!
中途求人ページ: https://www.amd-lab.com/recruit-list/mid-career

カジュアル面談がエントリーフォームからできるようになりました。
採用種別を「カジュアル面談(オンライン)」にして必要事項を記載の上送信してください!
エントリーフォーム: https://www.amd-lab.com/entry

Tech
python
ARTICLES