地理空間データの扱いにおいて、Pythonの世界では様々なツールが利用されています。
Rasterioは、その中でも注目を集めるライブラリの一つです。
この記事では、Rasterioに焦点を当て、そのインストール方法から基本的な動作確認までを詳しく解説します。
Rasterioを用いることで、地理空間データの読み込み、加工、解析が格段に容易になります。
本記事の内容
- Rasterioとは?
- Rasterioのインストール
- Rasterioの動作確認
それでは、上記に沿って解説していきます。
Rasterioとは?
Rasterioは、Pythonライブラリです。
地理空間データを扱うために使います。
特に、ラスターデータに特化しています。
ラスターデータは、ピクセルで地理情報を表します。
各ピクセルには、色や温度などが割り当てられます。
例えば、衛星画像がこれに当たります。
Rasterioは、GDALを基にしています。
GDALは、地理空間データを扱うためのライブラリです。
多様なラスターフォーマットに対応しています。
そのため、様々なデータの読み書きが可能です。
Rasterioを使えば、データの読み込みや加工、解析が簡単になります。
Pythonの知識があれば、地理空間情報の扱いが容易になります。
地理空間分野の初心者でも、直感的なAPIを通じて基本操作が行えます。
これにより、プロジェクトに地理空間情報を組み込むことができます。
Rasterioのインストール
現時点(2024年2月)でのRasterio最新バージョンは、以下となります。
公式では、次のような記載があります。
Rasterio 1.3はPython 3.8+、Numpy 1.18+、GDAL 3.1+で動作する。
GDALが、そもそも何だと思う方もいるでしょう。
GDALについては、次の記事で説明しています。
GDALのインストールは、正直簡単とは言えません。
この時点で、Rasterioのインストールを諦める人がいるかもしれません。
特にWindowsの場合ですね。
でも、安心してください。
Windowsの場合でも、以下のコマンドだけでOKです。
pip install rasterio
これだけで必要なモノを自動的にインストール(設置)してくれます。
そのため、GDALを自分でインストールする必要がありません。
Rasterio 1.3.9の場合、全部で35個のdllが設置されます。
したがって、とりあえずRasterioを動かしたい場合はこれで十分です。
GDALの機能をフルに活かしたい場合は、高度なインストールを行うことになります。
そこまでGDALを活かすなら、Rasterioにこだわる必要もないのかもしれません。
必要になれば、高度なインストールにも挑戦してみたいと思います。
Rasterioの動作確認
まずは、ラスターデータの取得からです。
上記ページにアクセスして、適当にエリアを選択。
選択したエリアのラスターデータをダウンロードできるようになります。
ダウンロードしたzipを解凍すると、次のファイルが確認できます。
このTIFファイルは、GeoTIFFと呼ばれるモノです。
そして、これはラスターデータでもあります。
Rasterioを使って、このファイルを読み込みんでみましょう。
そのコードは、以下。
import rasterio import pprint # GeoTIFFファイルのパス file_path = 'L03-b-14_6441.tif' # ファイルを開いてメタデータを取得 with rasterio.open(file_path) as src: # メタデータの表示 pprint.pp(src.meta) print("=" * 50) # バンド1の統計情報を取得 band1 = src.read(1) print(f'Band 1 minimum: {band1.min()}, maximum: {band1.max()}')
上記コードを実行した結果は、次のようになります。
{'driver': 'GTiff', 'dtype': 'uint8', 'nodata': None, 'width': 800, 'height': 800, 'count': 1, 'crs': CRS.from_wkt('GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257221999999,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AXIS["Latitude",NORTH],AXIS["Longitude",EAST],AUTHORITY["EPSG","4612"]]'), 'transform': Affine(0.00125, 0.0, 141.0, 0.0, -0.000833333333, 43.3333333)} ================================================== Band 1 minimum: 0, maximum: 160
バンド1は、0から160の値を取ることがわかります。
それぞれの値は、以下を表しています。
この表は、TIFファイルと一緒に保存されているhtmlに記載されています。
全部で13パターンということですね。
これらのパターンが、TIFに含まれているということになります。
ラスターデータであるGeoTIFFについてのイメージは、掴めたでしょうか?
様々なTIFを自分で読み込んでみれば、よりイメージを掴めると思います。