R语言 经纬度 提取NDVI
时间: 2025-02-15 09:02:20 浏览: 56
### R语言根据经纬度提取NDVI数据方法
为了从包含经纬度的数据中提取NDVI值,在R环境中可以借助`rgee`包连接Google Earth Engine (GEE),从而利用其强大的遥感数据分析能力。下面展示如何通过指定地点坐标来获取对应的NDVI数值。
#### 安装并加载必要的库
首先确保安装了最新版本的`rgee`以及其他辅助工具:
```r
install.packages("remotes")
remotes::install_github('r-spatial/rgee')
library(rgee)
ee_Initialize()
```
#### 加载所需影像集合
这里选择MODIS/006/MOD13Q1作为NDVI数据源,该产品提供了全球范围内每16天一次的植被指数测量结果[^3]。
```r
dataset <- ee$ImageCollection("MODIS/006/MOD13Q1")$
filterDate("2021-01-01", "2021-12-31")$
select("NDVI")
```
#### 准备空间点位信息
假设有一个CSV文件包含了多个样本地点及其相应的经度和纬度信息,则可以通过如下方式导入这些样本点到Earth Engine对象中:
```r
sites_df <- read.csv("path/to/sites.csv")
coordinates <- st_as_sf(sites_df, coords = c("longitude", "latitude"), crs = 4326)
points <- ee.FeatureCollection(lapply(1:nrow(coordinates), function(i){
pt <- coordinates[i, ]
lonlat <- as.numeric(st_coordinates(pt))
ee$Feature(ee.Geometry.Point(lonlat))
}))
```
#### 提取NDVI值
对于每一个采样点,计算覆盖期内所有可用场景下的最大NDVI值,并最终求得均值:
```r
ndvi_values <- dataset$
reduceRegions(collection = points,
reducer = ee.Reducer.mean(),
scale = 500)$
getDf()
print(ndvi_values)
```
上述过程实现了基于给定地理位置列表批量查询对应位置上的NDVI指标的功能。需要注意的是,实际操作过程中可能还需要考虑云遮挡等因素的影响,以及适当调整时空分辨率参数以适应具体应用场景的需求[^1]。
阅读全文
相关推荐














