five

Global bare soil, photosynthetic and non-photosynthetic vegetation fraction annual at 500 m resolution

收藏
NIAID Data Ecosystem2026-05-02 收录
下载链接:
https://zenodo.org/record/11961219
下载链接
链接失效反馈
官方服务:
资源简介:
Annual mean and std for (1) bare soil fraction, and (2) photosynthetic and (3) non-photosynthetic vegetation annual at 500 m resolution for 2001–2023. The dataset was obtained from: https://thredds.nci.org.au/thredds/catalog/tc43/modis-fc/v310/tiles/monthly/cover/catalog.html (monthly values; 320GB in total). Mean and std was derived using terra package in R using functions "mean" and "std" from 12 monthly values; missing values were ignored during derivation. Note: the Global Vegetation Fractional Cover Product (GVFCP) v3.1 (Hill and Guerschman, 2022) is derived from spectral unmixing of all seven optical bands from the 500 m MODIS (Moderate Resolution Imaging Spectroradiometer) Nadir BRDF (Bidirectional Reflectance Distribution Function)-adjusted Reflectance Product (NBAR, MCD43A4 Collection 6). A similar dataset has been produced by Sun et al., (2024), covering period 2001–2022. Below is the sample code explaining how were the mean, max and std derived. ## Download from: https://thredds.nci.org.au/thredds/catalog/tc43/modis-fc/v310/tiles/monthly/cover/catalog.html ## wget -e robots=off -nH --cut-dirs 4 -nc -r -l5 -A '*.nc' -R 'catalog*' -I /thredds/fileServer/,/thredds/catalog/ 'https://thredds.nci.org.au/thredds/catalog/tc43/modis-fc/v310/tiles/monthly/cover/catalog.html' ## 6857 tiles library(terra) modis.tiles = list.files("/mnt/lacus/raw/modis-fc/v310/tiles/monthly/cover/", pattern = glob2rx("*.nc")) mod.lst = unique(sapply(modis.tiles, function(i){strsplit(i, "\\.")[[1]][4]})) str(mod.lst) ## 272 ## aggregate per year per tile nc_tile <- function(i, year, dir.x="/mnt/lacus/raw/modis-fc/v310/tiles/monthly/cover/", mc.cores=parallel::detectCores()){ require(terra) if(year == 2023 | year == 2024){ in.filename = paste0(dir.x, "FC_Monthly_Medoid.v310.MCD43A4.", i, ".", year, ".061.nc") } else { in.filename = paste0(dir.x, "FC_Monthly_Medoid.v310.MCD43A4.", i, ".", year, ".006.nc") } bs.filenames = paste0("./modis-fc/bs_", c("mean", "max", "std"), "/FC_Monthly_Medoid.v310.MCD43A4.", i, ".", year, ".006.tif") dg = terra::rast(in.filename) if(any(!file.exists(bs.filenames))){ bs = dg["bare_soil"] ## 12 months dg.m = app(bs, fun=mean, na.rm=TRUE, filename=bs.filenames[1], wopt=list(gdal=c("COMPRESS=DEFLATE"), datatype='INT1S'), overwrite=TRUE, cores = mc.cores) dg.x = app(bs, fun=max, na.rm=TRUE, filename=bs.filenames[2], wopt=list(gdal=c("COMPRESS=DEFLATE"), datatype='INT1S'), overwrite=TRUE, cores = mc.cores) dg.s = app(bs, fun=sd, na.rm=TRUE, filename=bs.filenames[3], wopt=list(gdal=c("COMPRESS=DEFLATE"), datatype='INT1S'), overwrite=TRUE, cores = mc.cores) } } ## run in parallel for(year in 2001:2024){ x = parallel::mclapply(sample(mod.lst), function(i){try( nc_tile(i, year=year, mc.cores = 2) )}, mc.cores = 40) tmpFiles(remove=TRUE) }

本数据集涵盖2001至2023年分辨率为500米的三类地物的年际均值与标准差:(1) 裸土占比,(2) 光合植被年覆盖度,以及(3) 非光合植被年覆盖度。 该数据集获取自:https://thredds.nci.org.au/thredds/catalog/tc43/modis-fc/v310/tiles/monthly/cover/catalog.html(数据为月度值,总容量320GB)。年际均值与标准差通过R语言的terra包,对12个月度数据调用`mean`与`std`函数计算得到,计算过程中自动忽略缺失值。 注:全球植被覆盖分数产品(Global Vegetation Fractional Cover Product, GVFCP)v3.1(Hill 与 Guerschman, 2022)是基于500米分辨率中分辨率成像光谱仪(Moderate Resolution Imaging Spectroradiometer, MODIS)天底方向双向反射分布函数(Bidirectional Reflectance Distribution Function, BRDF)校正反射率产品(NBAR,MCD43A4 第6版)的全部7个光学波段进行光谱解混得到的。Sun等人(2024)亦生成了类似数据集,覆盖时段为2001至2022年。以下为阐释均值、最大值与标准差计算方法的示例代码。 下载地址:https://thredds.nci.org.au/thredds/catalog/tc43/modis-fc/v310/tiles/monthly/cover/catalog.html 下载命令: wget -e robots=off -nH --cut-dirs 4 -nc -r -l5 -A '*.nc' -R 'catalog*' -I /thredds/fileServer/,/thredds/catalog/ 'https://thredds.nci.org.au/thredds/catalog/tc43/modis-fc/v310/tiles/monthly/cover/catalog.html' (共6857个瓦片) r # 加载terra包 library(terra) # 列出指定路径下所有后缀为.nc的文件 modis.tiles = list.files("/mnt/lacus/raw/modis-fc/v310/tiles/monthly/cover/", pattern = glob2rx("*.nc")) # 提取每个瓦片的唯一标识(通过分割文件名获取第4段)并去重 mod.lst = unique(sapply(modis.tiles, function(i){strsplit(i, "\.")[[1]][4]})) str(mod.lst) # 共272个瓦片标识 # 按年份与瓦片聚合数据的自定义函数 nc_tile <- function(i, year, dir.x="/mnt/lacus/raw/modis-fc/v310/tiles/monthly/cover/", mc.cores=parallel::detectCores()){ require(terra) # 区分2023、2024年与其他年份的NetCDF文件名后缀 if(year == 2023 | year == 2024){ in.filename = paste0(dir.x, "FC_Monthly_Medoid.v310.MCD43A4.", i, ".", year, ".061.nc") } else { in.filename = paste0(dir.x, "FC_Monthly_Medoid.v310.MCD43A4.", i, ".", year, ".006.nc") } # 定义裸土组分的输出文件路径(分别存储均值、最大值、标准差) bs.filenames = paste0("./modis-fc/bs_", c("mean", "max", "std"), "/FC_Monthly_Medoid.v310.MCD43A4.", i, ".", year, ".006.tif") # 读取目标NetCDF文件 dg = terra::rast(in.filename) # 若任意输出文件不存在则执行计算流程 if(any(!file.exists(bs.filenames))){ # 提取裸土波段数据(包含12个月度的观测值) bs = dg["bare_soil"] # 计算均值并保存为压缩后的TIFF文件 dg.m = app(bs, fun=mean, na.rm=TRUE, filename=bs.filenames[1], wopt=list(gdal=c("COMPRESS=DEFLATE"), datatype='INT1S'), overwrite=TRUE, cores = mc.cores) # 计算最大值并保存为压缩后的TIFF文件 dg.x = app(bs, fun=max, na.rm=TRUE, filename=bs.filenames[2], wopt=list(gdal=c("COMPRESS=DEFLATE"), datatype='INT1S'), overwrite=TRUE, cores = mc.cores) # 计算标准差并保存为压缩后的TIFF文件 dg.s = app(bs, fun=sd, na.rm=TRUE, filename=bs.filenames[3], wopt=list(gdal=c("COMPRESS=DEFLATE"), datatype='INT1S'), overwrite=TRUE, cores = mc.cores) } } # 并行执行计算流程:遍历2001至2024年,对每个年份的瓦片并行处理 for(year in 2001:2024){ x = parallel::mclapply(sample(mod.lst), function(i){try( nc_tile(i, year=year, mc.cores = 2) )}, mc.cores = 40) tmpFiles(remove=TRUE) }
创建时间:
2024-06-18
二维码
社区交流群
二维码
科研交流群
商业服务