4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

衛星画像から、緯度経度を指定してその地点のピクセル値を取得する方法

Last updated at Posted at 2020-06-10

#背景
衛星画像からニューラルネットワーク回帰を使用して、クロロフィル値を求める研究をしています。
そのためにまずは、データの取得・前処理として、衛星画像データから緯度経度を指定してその地点のピクセル値を取得する方法について書いていきたいと思います。
その前に衛星画像とはなんぞや↓
衛星データの基本

#使用する衛星画像データ
Landsat8の画像を使用します。
AWSでオープンデータとして公開されいます。
AWS Landsatデータ
AWSで公開されているlandsatの画像データは、pathとrowなどを指定して位置から検索できます。
ちなみに、今回は琵琶湖のデータを使用するので、path 110 row 35のデータを探して取得しました。
上記のページに、取得可能なシーンの全リストがあるので、それをpathとrowでソートして取得しました。

pathとrowを確認する方法はこちら↓
path/row coverter

#使用するライブラリ
rasteriopyprojを使用します。
rasterioは、ラスターデータを扱うためのライブラリです。
rasterio
pyprojは、座標系を変換するライブラリです。
pyproj
Landsatのデータは、Geotifファイル形式になっており、座標のデータがタグとして埋め込まれているのですが、UTM座標を使用しているため、緯度経度からUTM座標系に変換する必要があります。

import rasterio as rio import pyproj
↑事前にpipなどのでインストールしてください。

#rasterioでGeotifの読み込み
B5 = rio.open('ファイルのパス')

#座標系の変換
utm = pyproj.Proj(B5.crs) lonlat = pyproj.Proj(init='epsg:4326') lat,lon = (35.445,136.0638888889) east,north = pyproj.transform(lonlat,utm,lon,lat)

緯度経度が、UTMの座標系に変換されたことを確認します。

east,north
(596554.9414823324, 3922913.584464462)

#座標からその地点の画像のrow,columnを取得
データはarray型になっていて、indexメソッドで座標に対応するrowとcolumnが取得できます。
row, col = B5.index(east,north)

print(f'row,col=({row},{col})')
row,col=(6086,5625)

また、arrayのデータのピクセル値にアクセスするためには下記のコードが必要です。
B5read = B5.read(1)
この1は、衛星画像のバンドのインデックスですが、今回はバンド5一つなので、1を指定。

#ピクセル値を取得
B5read[row,col]

21530

#まとめ
以上ですが、これで簡単に緯度経度から指定した地点のピクセル値が求められます。
しかしこのピクセル値は、DN値といって、太陽の光の強さや角度などの影響を受けた値となっており、クロロフィル値をアウトプットとしたニューラルネットワークの入力に使用するにはTOAという反射率に変換しようと思っています。ほんとは大気補正とかして純粋なSR(Surface Reflectance)を求めたいところですが、難しいので今回はあきらめて、次回はTOAを求めるやり方をご紹介したいと思います。
衛星画像の処理レベルについてはこちら↓
図解!衛星データの前処理とは

最後までお読みいただきありがとうございます!

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?