Global tree percent cover and impervious surfaces (urban) cover based on GLC_FCS30D for years 1985 and 2022 at 30 m spatial resolution
Global tree percent cover and impervious surfaces (urban) cover for years 1985 and 2022 at 30 m spatial resolution based on the GLC_FCS30D data set produced by the State Key Laboratory of Remote Sensing, Aerospace Information Research Institute, Chinese Academy of Sciences, Beijing. The tree cover has been estimated using the 37 class legend (GLC_FCS30D_legend.csv) and is only an approximation of might have been the actual tree cover. Note: the GLC_FCS30D data set is probably over-estimating tree-based vegetation types in arid and semi-arid areas so this would need to be corrected; in addition, several artifacts due to the tiling system / locally fitted classification are visible in the GLC_FCS30D maps. The GLC_FCS30D data set is available for viewing from https://OpenLandMap.org and is explained in detail in: Zhang, X., Liu, L., Chen, X., Gao, Y., Xie, S., and Mi, J. (2021): GLC_FCS30: global land-cover product with fine classification system at 30 m using time-series Landsat imagery, Earth Syst. Sci. Data, 13, 2753–2776, https://doi.org/10.5194/essd-13-2753-2021 It is estimated that world has lost 1/3rd of original pre-industrial forest areas, however, many current forest areas also have a thinner tree cover than before. Similar data sets (not used here) are the JRC's Tropical Moist Forests product (TMFv2023) which is also available for download although it only covers tropical forest areas, and the MapBiomas data set: Souza Jr, C. M., Z. Shimbo, J., Rosa, M. R., Parente, L. L., A. Alencar, A., Rudorff, B. F., ... & Azevedo, T. (2020). Reconstructing three decades of land use and land cover changes in brazilian biomes with landsat archive and earth engine. Remote Sensing, 12(17), 2735. https://doi.org/10.3390/rs12172735 Vancutsem, C., Achard, F., Pekel, J. F., Vieilledent, G., Carboni, S., Simonetti, D., ... & Nasi, R. (2021). Long-term (1990–2019) monitoring of forest cover changes in the humid tropics. Science advances, 7(10), eabe1603. https://doi.org/10.1126/sciadv.abe1603 To convert GLC_FCS30D to tree cover and urban cover I've used the following code: library(terra); library(parallel) g1 = terra::vect("glc_100km_tiles.gpkg")gcl = read.csv("GLC_FCS30D_legend.csv")rcl = gcl[,c("GLC_FCS30D","Tree_cover")] fraction.cover <- function(tif, tile, rcl){ bb = as.vector(ext(tile)) year = substr(strsplit(tif, "_")[[1]][6], 1, 4) out.tif = paste0("./t", year, "/tree.cover_30m_", year, "_", paste(bb, collapse = "."), ".tif") if(!file.exists(out.tif)|!file.exists(gsub("30m", "1km", out.tif))){ r = terra::rast(tif) r.t = terra::crop(r, ext(tile)) m = terra::classify(r.t, rcl) writeRaster(m, filename=out.tif, wopt= list(gdal=c("COMPRESS=DEFLATE")), datatype='INT1U', NAflag=255) system(paste0('gdal_translate ', out.tif, ' ', gsub("30m", "1km", out.tif), ' -co COMPRESS=DEFLATE -tr 0.008333333 0.008333333 -r "average" -q')) m0 = terra::ifel(r.t==190, 100, 0) writeRaster(m0, filename=gsub("tree", "urban", out.tif), wopt= list(gdal=c("COMPRESS=DEFLATE")), datatype='INT1U', NAflag=255) rm(m); rm(m0); gc() tmpFiles(remove=TRUE) } } ## run in parallel: tif = "lc_glc.fcs30d_c_30m_s_20220101_20221231_go_epsg.4326_v20231026.tif" #tif = "lc_glc.fcs30d_c_30m_s_19850101_19851231_go_epsg.4326_v20231026.tif" x = parallel::mclapply(1:length(g1), function(i){try( fraction.cover(tif, tile=g1[i], rcl=rcl) )}, mc.cores=80)