1
1

Google Earth Engineで夜間光の変化を見る

Posted at

1. はじめに

前回の記事でQGISで夜間光の変化を算出したのですが、結局Google Earth Engine一つに絞った方が効率的と考えています。。

今日はGoogle Earth Engineで夜間光データのインポート、変化の算出、可視化、ダウンロードまでやってみたので紹介します。

とはいっても、お客さんに出す最終的なアウトプットはQGISで加工することが多いのですが、できればGoogle Earth Engine一つで完結させたいなと思っています。。

2. コード

// 最新更新日: 2024/08/28

//1.ネパールの境界データをインポートして、地図に表示させる
var dataset = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017');//境界データを取得する
var nepal = dataset.filter(ee.Filter.eq('country_na', 'Nepal'));//ネパールのデータを取得する
// ('シェープファイル上の変数名', 'データ名')

// マップに表示させる
Map.addLayer(nepal, {
  fillColor: 'b5ffb4',
  color: '00909F',
  width: 1.0,
},
'青:ネパール');
// {}:地図に表示される方法(色など)。デフォルトは黒


// 2. 夜間光データのインポート
var pre_data = ee.ImageCollection("NOAA/VIIRS/DNB/MONTHLY_V1/VCMSLCFG") 
             .filterDate('2014-01-01', '2014-12-31')
             .select('avg_rad')
             .filterBounds(nepal)
             .mean();

var post_data = ee.ImageCollection("NOAA/VIIRS/DNB/MONTHLY_V1/VCMSLCFG") 
             .filterDate('2023-01-01', '2023-12-31')
             .select('avg_rad')
             .filterBounds(nepal)
             .mean();


// 3. 夜間光量の差を計算する
var diff = post_data.subtract(pre_data);


// 4. 解析結果の可視化
// 変化をマップに表示させる
Map.addLayer(diff.clip(nepal), {
  min: -2,
  max: 2,
  palette: ['blue', 'yellow']
},

'夜間光量の変化');

// 5. 事業対象地域のインポート
var bphighway = ee.FeatureCollection('users/ishimotojuri/SindhuliRoad');
var town = ee.FeatureCollection('users/ishimotojuri/town');

// マップに表示させる
Map.addLayer(bphighway, {'color': 'black'}, '黒:シンズリ道路');
Map.addLayer(town, {'color': 'red'}, '赤:町');

Map.centerObject(bphighway,8);

// 6. 分析結果のエクスポート
Export.image.toDrive({
  image: diff,
  description: 'diff_ntl_nepal',
  folder: 'Nepal',
  region: nepal,
  scale: 500, //衛星データの解像度
  crs: 'EPSG:4326'
});

3. 参照リンク

上記コードはこちらからGoogle Earth Engineで直接みれます。

ただし、上記のコードを実行するためには、以下のデータをご自身のGoogle Earth EngineのAssetにアップロードしていただく必要があります。

・SindhuliRoad.shp
・Town.shp

こちらのフォルダからダウンロードできます。

データをAssetにアップロードしたら、以下のコードの()内を変更してください。
var bphighway = ee.FeatureCollection('users/ishimotojuri/SindhuliRoad');
var town = ee.FeatureCollection('users/ishimotojuri/town');

1
1
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
1
1