GEE上で町レベルの夜間光データを収集する 

# 分析環境
Google Earth Engine（以下、「GEE」）を使いました。

# 関心領域の設定
<INS>町データをGEEにインポートします</INS>。
対象地域はネパールのシンズリ道路沿いに位置する町です。

町データは、自前で作成しました。
作成方法については、[こちらのリンク](https://qiita.com/ishimotojuri/items/a74ecbde027ca3c06fe7)をご覧ください。

シェープファイルをGEEにインポートする方法については、[こちらのリンク](https://developers.google.com/earth-engine/guides/table_upload)をご覧ください。

<INS>特定の町データをマップ上に表示させます</INS>。
夜間光データを収集するため、町を選びます。
町の名前を特定するために、「Assests」→「インポートした町データ」→「FEATURES」をクリックして、データの詳細を確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2493722/4f6d357f-12c0-6f89-b777-5639e2a12cae.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2493722/4067e2c6-de95-2af8-f92b-6565fa8f4647.png)

確認した名前を使って、特定の町を選択し、マップ上に表示させます。
```js:
// Select town
var aoi = town.filter(ee.Filter.eq('Name', 'シンズリバザール'));
Map.addLayer(aoi, {},'シンズリバザール');
```

<INS>町の中心から半径1kmのバッファーを作成します</INS>。
上記の町データはポイントデータになります。
町全体をカバーするために、データから半径1kmのバッファーを作成します。

```js:
// Apply the buffer method to the Geometry object.
var geometryBuffer = aoi.geometry().buffer({'distance': 1000});

// Display relevant geometries on the map.
Map.addLayer(geometryBuffer, {'color': 'red'},'[red]: geometry.buffer');
Map.centerObject(aoi,10);
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2493722/e8664440-79e8-3b08-842f-2b6a3c694bdc.png)

# 夜間光データの取得
<INS>夜間光データをGEEにインポートし、グラフを作成します</INS>。

```js:
var get_dates = function(image){
  return image.addBands(image.metadata('system:time_start'))
}

var ntl =ee.ImageCollection("NOAA/VIIRS/DNB/MONTHLY_V1/VCMSLCFG")
  .select('avg_rad')
  .filterDate('2014-01-01', '2023-12-31')
  .map(get_dates);

var chart_TS = ui.Chart.image.series({
    imageCollection:ntl.select(['system:time_start','avg_rad']),
    region: geometryBuffer,
    reducer: ee.Reducer.mean(),
    scale: 500
    }).setOptions({
        title: 'gauges acroos Time',
        vAxis: {title: 'avg_rad'},
        hAxis: {title: 'date', format: 'MM-yy', gridlines: {count: 7}},
      });
      
print(chart_TS)
```

<INS>夜間光データをダウンロードします</INS>。
コンソールに表示されたグラフの右上をクリックすると、グラフが表示されます。
グラフの右上の「Download CSV」をクリックすると、データをダウンロードできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2493722/25a7706e-5747-a46c-ea2c-d40c8cb81b91.png)

<INS>関心領域を変えて繰り返します</INS>。
他の町についても、同じ手順でデータを収集します。
変える部分は、('シンズリバザール')の部分です。

```js:
// Select town
var aoi = town.filter(ee.Filter.eq('Name', 'シンズリバザール')); // change here
Map.addLayer(aoi, {},'シンズリバザール'); // change here
```

<INS>バッファー領域を変えて繰り返します</INS>。
さらに、バッファー領域を変えると、町周辺の夜間光データも収集できます。
変える部分は、{5000});の部分です。

```js:
// Apply the buffer method to the Geometry object
var geometryBuffer = s.geometry().buffer({'distance': 5000}); // change here
```

# グラフによる可視化
<INS>エクセルファイル上でグラフを作成します</INS>。
ダウンロードしたデータは月平均値になっているので、Average関数を使って、平均値を算出します。
結果を可視化させます。アウトプットのイメージは以下の通りです。

＜夜間光量（平均値）の経年変化（2014年～2023年）＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2493722/538b6a9c-c895-03cd-ca03-185c71a173df.png)

＜道路からの距離ごとの夜間光の変化（2014年～2023年）＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2493722/5ae2f579-7943-c479-1044-2f7527c58c24.png)

# まとめ
+ 道路沿いに位置する「町」に焦点を当てると、詳細な道路効果が分析できます。
+ 一方で、ネパールでは自治体に人口や公共施設数（病院、ホテルなど）のデータ提供を依頼しても、提供されず、これらのデータを収集するのは難しいことがわかりました。そのため、衛星データ（夜間光）によって、「町」の集積化・経済活性化の変化を確認することは有益だと感じています。