最終更新:2025-12-31

1 LRCC-DVNL夜間光データ

1.1 データの概要

  • LRCC-DVNL夜間光データ(LRCC-DVNL NTL data)を用いる。
  • LRCC-DVNL(Linear trend Registration Continuous Calibrated DVNL)は、1992年から2022年までの長期間をカバーする、世界規模の校正済み夜間光(NTL)データセットである。

2 RでのLRCC-DVNL夜間光データの読み込み

  • terraパッケージのrast関数を用いて、GeoTIFF形式のLRCC-DVNL夜間光データを読み込む。
  • データは、QGISで座標系を平面直角座標系のWorld Geodetic System 1984 (EPSG: 4326)にあらかじめ変換している。
library(terra)
## terra 1.8.86
ntl1992 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC1992.tif")

ntl1993 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC1993.tif")

ntl1994 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC1994.tif")

ntl1995 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC1995.tif")

ntl1996 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC1996.tif")

ntl1997 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC1997.tif")

ntl1998 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC1998.tif")

ntl1999 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC1999.tif")

ntl2000 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2000.tif")

ntl2001 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2001.tif")

ntl2002 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2002.tif")

ntl2003 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2003.tif")

ntl2004 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2004.tif")

ntl2005 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2005.tif")

ntl2006 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2006.tif")

ntl2007 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2007.tif")

ntl2008 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2008.tif")

ntl2009 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2009.tif")

ntl2010 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2010.tif")

ntl2011 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2011.tif")

ntl2012 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2012.tif")

ntl2013 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2013.tif")

ntl2014 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2014.tif")

ntl2015 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2015.tif")

ntl2016 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2016.tif")

ntl2017 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2017.tif")

ntl2018 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2018.tif")

ntl2019 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2019.tif")

ntl2020 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2020.tif")

ntl2021 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2021.tif")

ntl2022 <- terra::rast("Data_raw/LRCC-DVNL-QGIS/LACC2022.tif")

3 日本のシェープファイルの取得

  • rnaturalearthパッケージのne_countries関数を用いて、日本のシェープファイルを取得する。
  • rnaturalearthdataパッケージも必要になるので、インストールが必要。インストールでエラーが出る場合がある。その場合は、過去にインストールしたパッケージをパッケージが所在するフォルダにコピーすることで対処できる。
library(rnaturalearth)

japan_sf <- rnaturalearth::ne_countries(
  country = "Japan",
  scale = "medium",
  returnclass = "sf"
)

4 夜間光データの日本部分の切り出し

  • terraパッケージのcrop関数とmask関数を用いて、夜間光データの日本部分を切り出す。
  • terraパッケージのwriteRaster関数を用いて、切り出した夜間光データをGeoTIFF形式で保存する。
# 夜間光データの日本部分の切り出す
ntl_japan_crop1992 <- terra::crop(ntl1992, japan_sf)
# マスク処理で日本部分のみ抽出
ntl_japan1992 <- terra::mask(ntl_japan_crop1992, japan_sf)
# 切り出した夜間光データの保存
terra::writeRaster(ntl_japan1992, "Data_output/LRCC-DVNL/ntl_japan_1992.tif", overwrite = TRUE)


# 以下、1993年から2022年まで同様の処理を繰り返す
ntl_japan_crop1993 <- terra::crop(ntl1993, japan_sf)
ntl_japan1993 <- terra::mask(ntl_japan_crop1993, japan_sf)
terra::writeRaster(ntl_japan1993, "Data_output/LRCC-DVNL/ntl_japan_1993.tif", overwrite = TRUE)

ntl_japan_crop1994 <- terra::crop(ntl1994, japan_sf)
ntl_japan1994 <- terra::mask(ntl_japan_crop1994, japan_sf)
terra::writeRaster(ntl_japan1994, "Data_output/LRCC-DVNL/ntl_japan_1994.tif", overwrite = TRUE)

ntl_japan_crop1995 <- terra::crop(ntl1995, japan_sf)
ntl_japan1995 <- terra::mask(ntl_japan_crop1995, japan_sf)
terra::writeRaster(ntl_japan1995, "Data_output/LRCC-DVNL/ntl_japan_1995.tif", overwrite = TRUE)

ntl_japan_crop1996 <- terra::crop(ntl1996, japan_sf)
ntl_japan1996 <- terra::mask(ntl_japan_crop1996, japan_sf)
terra::writeRaster(ntl_japan1996, "Data_output/LRCC-DVNL/ntl_japan_1996.tif", overwrite = TRUE)

ntl_japan_crop1997 <- terra::crop(ntl1997, japan_sf)
ntl_japan1997 <- terra::mask(ntl_japan_crop1997, japan_sf)
terra::writeRaster(ntl_japan1997, "Data_output/LRCC-DVNL/ntl_japan_1997.tif", overwrite = TRUE)

ntl_japan_crop1998 <- terra::crop(ntl1998, japan_sf)
ntl_japan1998 <- terra::mask(ntl_japan_crop1998, japan_sf)
terra::writeRaster(ntl_japan1998, "Data_output/LRCC-DVNL/ntl_japan_1998.tif", overwrite = TRUE)

ntl_japan_crop1999 <- terra::crop(ntl1999, japan_sf)
ntl_japan1999 <- terra::mask(ntl_japan_crop1999, japan_sf)
terra::writeRaster(ntl_japan1999, "Data_output/LRCC-DVNL/ntl_japan_1999.tif", overwrite = TRUE)

ntl_japan_crop2000 <- terra::crop(ntl2000, japan_sf)
ntl_japan2000 <- terra::mask(ntl_japan_crop2000, japan_sf)
terra::writeRaster(ntl_japan2000, "Data_output/LRCC-DVNL/ntl_japan_2000.tif", overwrite = TRUE)

ntl_japan_crop2001 <- terra::crop(ntl2001, japan_sf)
ntl_japan2001 <- terra::mask(ntl_japan_crop2001, japan_sf)
terra::writeRaster(ntl_japan2001, "Data_output/LRCC-DVNL/ntl_japan_2001.tif", overwrite = TRUE)

ntl_japan_crop2002 <- terra::crop(ntl2002, japan_sf)
ntl_japan2002 <- terra::mask(ntl_japan_crop2002, japan_sf)
terra::writeRaster(ntl_japan2002, "Data_output/LRCC-DVNL/ntl_japan_2002.tif", overwrite = TRUE)

ntl_japan_crop2003 <- terra::crop(ntl2003, japan_sf)
ntl_japan2003 <- terra::mask(ntl_japan_crop2003, japan_sf)
terra::writeRaster(ntl_japan2003, "Data_output/LRCC-DVNL/ntl_japan_2003.tif", overwrite = TRUE)

ntl_japan_crop2004 <- terra::crop(ntl2004, japan_sf)
ntl_japan2004 <- terra::mask(ntl_japan_crop2004, japan_sf)
terra::writeRaster(ntl_japan2004, "Data_output/LRCC-DVNL/ntl_japan_2004.tif", overwrite = TRUE)

ntl_japan_crop2005 <- terra::crop(ntl2005, japan_sf)
ntl_japan2005 <- terra::mask(ntl_japan_crop2005, japan_sf)
terra::writeRaster(ntl_japan2005, "Data_output/LRCC-DVNL/ntl_japan_2005.tif", overwrite = TRUE)

ntl_japan_crop2006 <- terra::crop(ntl2006, japan_sf)
ntl_japan2006 <- terra::mask(ntl_japan_crop2006, japan_sf)
terra::writeRaster(ntl_japan2006, "Data_output/LRCC-DVNL/ntl_japan_2006.tif", overwrite = TRUE)

ntl_japan_crop2007 <- terra::crop(ntl2007, japan_sf)
ntl_japan2007 <- terra::mask(ntl_japan_crop2007, japan_sf)
terra::writeRaster(ntl_japan2007, "Data_output/LRCC-DVNL/ntl_japan_2007.tif", overwrite = TRUE)

ntl_japan_crop2008 <- terra::crop(ntl2008, japan_sf)
ntl_japan2008 <- terra::mask(ntl_japan_crop2008, japan_sf)
terra::writeRaster(ntl_japan2008, "Data_output/LRCC-DVNL/ntl_japan_2008.tif", overwrite = TRUE)

ntl_japan_crop2009 <- terra::crop(ntl2009, japan_sf)
ntl_japan2009 <- terra::mask(ntl_japan_crop2009, japan_sf)
terra::writeRaster(ntl_japan2009, "Data_output/LRCC-DVNL/ntl_japan_2009.tif", overwrite = TRUE)

ntl_japan_crop2010 <- terra::crop(ntl2010, japan_sf)
ntl_japan2010 <- terra::mask(ntl_japan_crop2010, japan_sf)
terra::writeRaster(ntl_japan2010, "Data_output/LRCC-DVNL/ntl_japan_2010.tif", overwrite = TRUE)

ntl_japan_crop2011 <- terra::crop(ntl2011, japan_sf)
ntl_japan2011 <- terra::mask(ntl_japan_crop2011, japan_sf)
terra::writeRaster(ntl_japan2011, "Data_output/LRCC-DVNL/ntl_japan_2011.tif", overwrite = TRUE)

ntl_japan_crop2012 <- terra::crop(ntl2012, japan_sf)
ntl_japan2012 <- terra::mask(ntl_japan_crop2012, japan_sf)
terra::writeRaster(ntl_japan2012, "Data_output/LRCC-DVNL/ntl_japan_2012.tif", overwrite = TRUE)

ntl_japan_crop2013 <- terra::crop(ntl2013, japan_sf)
ntl_japan2013 <- terra::mask(ntl_japan_crop2013, japan_sf)
terra::writeRaster(ntl_japan2013, "Data_output/LRCC-DVNL/ntl_japan_2013.tif", overwrite = TRUE)

ntl_japan_crop2014 <- terra::crop(ntl2014, japan_sf)
ntl_japan2014 <- terra::mask(ntl_japan_crop2014, japan_sf)
terra::writeRaster(ntl_japan2014, "Data_output/LRCC-DVNL/ntl_japan_2014.tif", overwrite = TRUE)

ntl_japan_crop2015 <- terra::crop(ntl2015, japan_sf)
ntl_japan2015 <- terra::mask(ntl_japan_crop2015, japan_sf)
terra::writeRaster(ntl_japan2015, "Data_output/LRCC-DVNL/ntl_japan_2015.tif", overwrite = TRUE)

ntl_japan_crop2016 <- terra::crop(ntl2016, japan_sf)
ntl_japan2016 <- terra::mask(ntl_japan_crop2016, japan_sf)
terra::writeRaster(ntl_japan2016, "Data_output/LRCC-DVNL/ntl_japan_2016.tif", overwrite = TRUE)

ntl_japan_crop2017 <- terra::crop(ntl2017, japan_sf)
ntl_japan2017 <- terra::mask(ntl_japan_crop2017, japan_sf)
terra::writeRaster(ntl_japan2017, "Data_output/LRCC-DVNL/ntl_japan_2017.tif", overwrite = TRUE)

ntl_japan_crop2018 <- terra::crop(ntl2018, japan_sf)
ntl_japan2018 <- terra::mask(ntl_japan_crop2018, japan_sf)
terra::writeRaster(ntl_japan2018, "Data_output/LRCC-DVNL/ntl_japan_2018.tif", overwrite = TRUE)

ntl_japan_crop2019 <- terra::crop(ntl2019, japan_sf)
ntl_japan2019 <- terra::mask(ntl_japan_crop2019, japan_sf)
terra::writeRaster(ntl_japan2019, "Data_output/LRCC-DVNL/ntl_japan_2019.tif", overwrite = TRUE)

ntl_japan_crop2020 <- terra::crop(ntl2020, japan_sf)
ntl_japan2020 <- terra::mask(ntl_japan_crop2020, japan_sf)
terra::writeRaster(ntl_japan2020, "Data_output/LRCC-DVNL/ntl_japan_2020.tif", overwrite = TRUE)

ntl_japan_crop2021 <- terra::crop(ntl2021, japan_sf)
ntl_japan2021 <- terra::mask(ntl_japan_crop2021, japan_sf)
terra::writeRaster(ntl_japan2021, "Data_output/LRCC-DVNL/ntl_japan_2021.tif", overwrite = TRUE)

ntl_japan_crop2022 <- terra::crop(ntl2022, japan_sf)
ntl_japan2022 <- terra::mask(ntl_japan_crop2022, japan_sf)
terra::writeRaster(ntl_japan2022, "Data_output/LRCC-DVNL/ntl_japan_2022.tif", overwrite = TRUE)
  • 確認する。
#読み込み

ntl1992 <- terra::rast("Data_output/LRCC-DVNL/ntl_japan_1992.tif")

plot(ntl1992, range = c(0.01, 100), main = "LRCC-DVNL Nighttime Light Data in Japan (1992)")

参考文献

  • Tang, H., Zhong, Y., Deng, J., Xia, H., & Wei, J. (2025). Global nighttime light dataset from 1992 to 2022 with focus on low-light areas. Scientific Data, 12(1), 982. https://doi.org/10.1038/s41597-025-05246-8