Pythonで学ぶ衛星データ解析基礎 ――環境変化を定量的に把握しよう

サポートページ

この記事を読むのに必要な時間:およそ 0.5 分

ダウンロード

本書籍で用いるデータについて

(2022年12月19日更新)

本書で利用するデータは下記からダウンロードできます。

ダウンロード
python-satellite.zip(2.4GB)

同じデータを利用して解析したい場合には以下のリンクからダウンロードすることもできます。
ダウンロードはこちらから

上記データの詳しい利用方法は以下のドキュメントをご覧ください。
データについて

注意事項
収録物,プログラムの内容および使用方法などに関して,電話でのお問い合わせを含むサポート業務は一切お受けしておりませんのであらかじめご了承の上ご利用ください。
本書籍の著作権は著者に帰属します。本書籍のコードを引用する場合には必要に応じて適切に引用するようにしてください。
なお,本書で公開しているプログラムについては一切の許諾なしに自由に使用してかまいません。ただし,改変等する際にはご自身の責任の下で実行してください。商用利用する場合には適宜利用するデータのデータポリシー等をご確認ください。

補足情報

本書籍のコンテンツの一部は宙畑初心者向けTellus学習コースをベースに教科書の副教材として利用しやすくなることを意識して改変・追記しています。

書籍として編成する都合上,情報としてすべてを盛り込むことはできておらず,衛星データの概要から知りたい方は以下の記事などを合わせてご参照ください。

(2022年12月19日更新)

本書籍のコードを実行する

コードを実行する上での最初のハードルは解析環境を構築することかと思います。解析が初めての方には,解析環境の構築が不要なGoogle Colabで解析を実行することをお勧めしています。解析が慣れたらご自身のパソコンへの環境構築や,Tellus等での仮想マシン構築を行うことでより高度な解析が可能になります。

Google Colabで解析するためにはGoogleのアカウントが必要になります。Google Colabの利用方法については「Google Colab 利用方法」等で検索してください。

Colabは特別な環境をインストールすることなしに分析を進めることができますので,以下のGitHubページから対象のノートブックを実行してください。
解析ノートブック

お詫びと訂正(正誤表)

2022年12月19日現在,書籍に掲載しているデータ取得に関するコードが動かなくなっていることを確認しています。

以下に修正した各コードは動作することは確認しておりますが,今後APIやライブラリがアップデートすることでコードが動作しなくなる可能性があります。

動作しないな,となった場合には本書籍のGitHubページをご確認いただくか,お問合せください。

なお,本記述は恒久的にコード変更に対応することを保証するわけではないことを予めご承知おきください。

(2022年12月19日更新)

11_ch6_classification.ipynbのs2folderに割り当てるパスの変更

pointfile = '/content/stratified_points.gpkg' #任意のパス
s2folder = r'/content/s2_classification' #任意のパス

randomPoints = gpd.read_file(pointfile)

# 各点のピクセル値を読み取る
for root, folders, files in os.walk(s2folder):
    for file in files:
        f = os.path.join(root, file)
        if os.path.isfile(f) and f.endswith('.tif'):
          bandRaster = rxr.open_rasterio(f).sel(band=1)
          randomPoints_stats = pd.DataFrame(point_query
                                            (randomPoints,\
                                             bandRaster.values,\
                                             affine=bandRaster.rio.transform(),\
                                             nodata=bandRaster.rio.nodata))
          randomPoints_stats.columns=['{0}'.format(file.split('.')[0])]
          randomPoints = randomPoints.join(randomPoints_stats)

intake-stacを使ってのSentinel-2データが取得できない問題

intake-stacを使ってのSentinel-2データが取得できない問題を修正しています。変更をかけたファイルは以下の通りです。

どこが変更になったかについては以下のファイルもしくはGitHubで公開しているコードをご確認ください。

こちらのスプレッドシートが対応表となります。

  • 01_ch3-1DataAccess.ipynb
  • 05_ch4-2Forest.ipynb
  • 06_ch4-3Road.ipynb
  • 08_ch4-5Coast.ipynb
  • 11_ch6_classification.ipynb

intake-stacを用いたデータの取得方法をpystic-clientへ変更。