概要
本書籍は,Pythonによる衛星データ解析に興味がある初学者に向けた入門書となっています。学校の情報の授業等で利用する際の副教材になることを意識し,衛星データだけでなくデータサイエンスの基礎的な内容も含めました。学校で地球環境やご自身が住んでいる地域がどのように変化しているか調べたい方はもちろんのこと,衛星データを使って何かビジネスを始めたい方にも読んでいただきたいと思っています。従来のデータサイエンスの教材の場合には身近なデータを利用することが難しかった中で,衛星データであれば身近な地域のデータを利用して解析することができます。少しのプログラミング変更で解析対象地域を変えることができるようになっているので,関心のある地域の変化についてぜひ調べてみてください。
こんな方におすすめ
- 人工衛星が地球を観測したデータはある程度まで無料で使うことができます。そうした衛星データをPythonプログラミングで解析してみましょう。地球環境を科学的にたしかな目で理解することができます。地球環境の変化を定量的に理解したいデータサイエンティストやエンジニアの皆さんにお勧めします。
サポート
ダウンロード
本書籍で用いるデータについて
(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
へ変更。