首页 > 编程语言 > 详细

R语言处理GIMMS NDVI3g数据

时间:2020-01-04 17:21:47      阅读:260      评论:0      收藏:0      [点我收藏+]

GIMMS NDVI3g 数据

植被指数是对植被冠层绿叶中叶绿素吸收的光合有效辐射的辐射度量,因此是该地区生理功能表面绿度水平的良好替代度量。在1980年代初的一系列文章中,康普顿·塔克(Compton J. Tucker)展示了如何利用NOAA的超高分辨率高分辨率辐射计(AVHRR)数据生成的归一化植被指数(NDVI)来绘制土地覆盖图并监测植被变化和荒漠化在大陆和全球范围内。在Web of Science上的简单搜索显示标题或摘要中包含NDVI的5000多篇文章。康普顿·塔克(Compton J.Tucker)在过去30年中,在全球库存监控和建模系统(GIMMS)项目的框架内继续生成NDVI时间序列,并通过不同的AVHRR传感器精心组装,并考虑了各种有害影响,例如校准GIMMS NDVI数据集的最新版本横跨1981年7月至2011年12月,被称为NDVI3g(来自AVHRR传感器的第三代GIMMS NDVI)。

注意:此数据集已有更新。最新版本3g.v1跨度为1981年7月至2015年12月。原始版本3g.v0保留在原位置,并且仍可以访问。
下载地址:数据可以直接在这里下载 https://ecocast.arc.nasa.gov/data/pub/gimms/

R语言下载处理GIMMS NDVI3g数据

这里介绍一个R语言包gimms,下面介绍一些常用的处理方法。

.nc4格式转.tif格式

library('raster')
library("gimms","rgdal")

input<- 'G:/ndvi_GIMMS3g/data'
out<- 'G:/ndvi_GIMMS3g/data_tif'

for (value in 1981:2015) {

  fn1 <- paste0(input,"/ndvi3g_geo_v1_",value,"_","0712",".nc4")

  print(paste0("正在读取...%s_%s",value,"0712"))

  ndvi3g <- rasterizeGimms(x = fn1)

  for (variable in 1:12) {

    name <- paste0(out,"/ndvi3g_geo_v1_",value,"_","0712","-",variable,".tif")

    print(paste0("正在处理...%s",name))

    writeRaster(x = ndvi3g[[variable]],filename = name, overwrite=TRUE)

  }

}

for (value in 1982:2015) {
  
  fn1 <- paste0(input,"/ndvi3g_geo_v1_",value,"_","0106",".nc4")
  
  print(paste0("正在读取...%s_%s",value,"0106"))

  ndvi3g <- rasterizeGimms(x = fn1)
  
  for (variable in 1:12) {
    
    name <- paste0(out,"/ndvi3g_geo_v1_",value,"_","0106","-",variable,".tif")
    
    print(paste0("正在处理...%s",name))
    
    writeRaster(x = ndvi3g[[variable]],filename = name, overwrite=TRUE)
    
  }
  
}

最大月合成

library('sp')
library('raster')
library('gimms')
library('rgdal')

input<- 'G:/ndvi_GIMMS3g/data'
out<- 'G:/ndvi_GIMMS3g/data_mvc'

for (value in 1981:2015) {

  fn1 <- paste0(input,"/ndvi3g_geo_v1_",value,"_","0712",".nc4")

  print(paste0("正在读取...%s_%s",value,"0712"))

  ndvi3g <- rasterizeGimms(x = fn1)

  mvc <- monthlyComposite(ndvi3g,indices = monthlyIndices(fn1))

  for (variable in 1:6) {

    mon<- 6+variable

    if(mon<10){

      name <- paste0(out,"/ndvi3g_geo_v1_",value,"_","0712","_0",mon,".tif")

    }else{

      name <- paste0(out,"/ndvi3g_geo_v1_",value,"_","0712","_",mon,".tif")

    }

    print(paste0("正在处理...%s",name))

    writeRaster(x = mvc[[variable]],filename = name, overwrite=TRUE)

  }

}

for (value in 1982:2015) {
  
  fn1 <- paste0(input,"/ndvi3g_geo_v1_",value,"_","0106",".nc4")
  
  print(paste0("正在读取...%s_%s",value,"0106"))
  
  ndvi3g <- rasterizeGimms(x = fn1)
  
  mvc <- monthlyComposite(ndvi3g,indices = monthlyIndices(fn1))
  
  for (variable in 1:6) {
    
    mon<- variable
    
    if(mon<10){
      
      name <- paste0(out,"/ndvi3g_geo_v1_",value,"_","0712","_0",mon,".tif")
      
    }else{
      
      name <- paste0(out,"/ndvi3g_geo_v1_",value,"_","0712","_",mon,".tif")
      
    }
    
    print(paste0("正在处理...%s",name))
    
    writeRaster(x = mvc[[variable]],filename = name, overwrite=TRUE)
    
  }
  
}

R语言处理GIMMS NDVI3g数据

原文:https://www.cnblogs.com/zuoliping98/p/12149551.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!