gee下载tvdi之后有缺失值nodata

gee下载ndvi、lst并用python计算tvdi,出现缺失值nodata,

在gis中先复制原始tif,将nodata设置为-9999,tvdico.tif

栅格计算器,给nodata赋值,这里输入的是copy后的栅格

空间分析--栅格综合--nibble,如下图:原始tif是只copy结果图

(Nibble 仅适用于掩膜栅格中的 NoData 值。请注意,掩膜栅格中所有非NoData 像元均会接收输入栅格中的值。这些像元的值及其位置均将被用于向掩膜栅格各 NoData 位置处分配值。NoData 位置将接收输入栅格中被识别为掩膜栅格中最近非 NoData 像元的像元值。)

arcpy批处理:::

import arcpy
from arcpy.sa import *

# 检查Spatial Analyst 扩展模块是否可用
if arcpy.CheckExtension("Spatial") == "Available":
    arcpy.CheckOutExtension("Spatial")
else:
    raise LicenseError("Spatial Analyst 扩展不可用")

# 设置工作环境
arcpy.env.workspace = r"D:"  # 设置工作空间路径
input_folder = r"D:"      # 输入栅格文件夹路径
mask_folder = r"D:"        # 掩膜栅格文件夹路径
output_folder = r"D:"    # 输出栅格文件夹路径

# 获取输入栅格文件和掩膜栅格文件列表
arcpy.env.workspace = input_folder
input_rasters = arcpy.ListRasters("*", "TIF")       # 假设栅格文件为TIF格式

arcpy.env.workspace = mask_folder
mask_rasters = arcpy.ListRasters("*", "TIF")

# 输出文件数量检查
print(f"找到 {len(input_rasters)} 个输入栅格文件.")
print(f"找到 {len(mask_rasters)} 个掩膜栅格文件.")

# 确保输入栅格和掩膜栅格文件数量一致
if len(input_rasters) != len(mask_rasters):
    raise ValueError("输入栅格和掩膜栅格文件数量不一致")

# 批处理Nibble操作
for input_raster, mask_raster in zip(input_rasters, mask_rasters):
    input_raster_path = f"{input_folder}\\{input_raster}"
    mask_raster_path = f"{mask_folder}\\{mask_raster}"
    
    # 生成输出文件名
    output_raster_name = f"nibbled_{input_raster}"  # 使用输入栅格文件的名称作为输出文件的一部分
    
    # 拼接输出文件的完整路径
    output_raster_path = f"{output_folder}\\{output_raster_name}"
    
    # 执行Nibble操作
    try:
        print(f"正在处理: {input_raster_path} 使用掩膜: {mask_raster_path}")
        nibble_result = Nibble(input_raster_path, mask_raster_path, "ALL_VALUES")
        nibble_result.save(output_raster_path)
        print(f"已生成: {output_raster_path}")
    except Exception as e:
        print(f"处理 {input_raster_path} 时出错: {e}")

print("所有栅格处理完成")

# 释放Spatial Analyst 扩展模块
arcpy.CheckInExtension("Spatial")

ArcGIS教程:使用 Nibble、收缩和扩展功能对区域进行概化_nibble命令-优快云博客ArcGIS学习总结(15)——影像空缺值蚕食填充批处理(Nibble)_arcgis蚕食-优快云博客学习

gee tvdi 月值”可能指的是使用Google Earth Engine(GEE)计算的时间植被干旱指数(Time-Vegetation Drought Index, TVDI)的月平均值。TVDI是一种基于遥感的干旱监测指数,它结合了地表温度和植被指数(如NDVI)来评估干旱状况。 以下是计算TVDI月值的一般步骤: 1. **数据获取**:从GEE平台获取所需的遥感数据,如Landsat或MODIS数据。 2. **计算植被指数**:计算NDVI或其他植被指数。 3. **计算地表温度**:从遥感数据中提取地表温度。 4. **计算TVDI**:根据NDVI和地表温度的关系计算TVDI。 5. **月值计算**:将每月的TVDI值进行平均,得到月值。 具体代码示例如下: ```javascript // 选择数据集 var dataset = ee.ImageCollection('MODIS/006/MOD11A1') .filterDate('2020-01-01', '2020-12-31'); // 计算月平均地表温度 var monthlyLST = dataset.select('LST_Day_1km') .map(function(image) { return image.multiply(0.02) .subtract(273.15) .rename('LST'); }) .filterBounds(geometry) .filter(ee.Filter.calendarRange(1, 12, 'month')) .map(function(image) { return image.set('month', image.date().get('month')); }) .reduceByImage(function(img1, img2) { return img1.add(img2); }, ee.Reducer.mean()); // 计算月平均NDVI var ndviDataset = ee.ImageCollection('MODIS/006/MOD13A1') .filterDate('2020-01-01', '2020-12-31') .select('NDVI') .map(function(image) { return image.multiply(0.0001) .rename('NDVI'); }) .filterBounds(geometry) .filter(ee.Filter.calendarRange(1, 12, 'month')) .map(function(image) { return image.set('month', image.date().get('month')); }) .reduceByImage(function(img1, img2) { return img1.add(img2); }, ee.Reducer.mean()); // 计算TVDI var tvdiDataset = monthlyLST.map(function(image) { var month = image.get('month'); var ndvi = ndviDataset.filter(ee.Filter.eq('month', month)).first(); var tvdi = image.subtract(image.reduceRegion(ee.Reducer.min()).get('LST')) .divide(image.reduceRegion(ee.Reducer.max()).get('LST')) .subtract(ndvi.subtract(ndvi.reduceRegion(ee.Reducer.min()).get('NDVI'))) .divide(ndvi.reduceRegion(ee.Reducer.max()).get('NDVI')); return tvdi.rename('TVDI'); }); // 导出结果 Export.image.toDrive({ image: tvdiDataset.mean(), description: 'Monthly_TVDI', scale: 1000, region: geometry, fileNamePrefix: 'monthly_tvdi', crs: 'EPSG:4326' }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值