资讯动态

遥感影像辐射与几何联合校正技术实战指南

发布时间:2026/10/17 13:46:32 来源:尧图企业网站定制
简介本资源是一份面向遥感科学与地理信息专业本科生及初阶科研人员的《遥感图像处理—几何校正》教学课件系统讲解辐射校正与几何校正两大核心预处理技术。内容覆盖辐射误差成因太阳高度角、大气散射、传感器灵敏度、条带/斑点噪声、地形坡度等、cosⁿθ边缘减光校正、光电变换系统地面定标、Landsat多波段辐射亮度参数表、条带噪声自动检测算法基于扫描线均值与标准差、太阳高度角与地形法线矢量夹角校正模型等关键知识点并附有原始影像与校正后对比图示。资源为1个3.24MB的PPT文件结构清晰含公式推导、流程图解与典型遥感数据处理案例适合作为课堂讲义、实验前置学习或课程复习提纲。目前已有86人下载学习内容扎实、逻辑连贯可帮助读者建立从误差机理到工程实现的完整认知链条。1. 遥感图像处理-几何校正.ppt不是PPT是套可落地的辐射几何联合校正技术包你手头有一份标着“遥感图像处理-几何校正.ppt”的资源点开发现全是公式、流程图和Landsat波段参数表——没有代码、没有数据、没提ENVI或GDAL怎么操作。别急着关掉。这份2021年整理的课件实际是一份被严重低估的辐射-几何双校正技术路线图它把太阳高度角计算、cosⁿθ边缘减光建模、条带噪声自动识别阈值、DEM驱动的坡度辐射补偿这四类工业级校正逻辑全压缩在19页PPT里且每一页都对应一个可编程实现的数学模型。它不教你怎么点菜单但告诉你ENVI里“Radiometric Calibration”按钮背后真正调用的是哪几个浮点运算它不提供现成脚本却给出TM波段Rmin/Rmax查表法、地形校正中法线矢量与入射矢量夹角的完整推导链。适合正在处理Landsat 4–8、Sentinel-2 Level-1C原始影像的工程师——尤其当你发现校正后影像在山区仍有明暗分界、海岸线附近存在系统性亮度漂移或者批量处理时某几景总在第5波段出现断续黑线这份PPT里的公式就是你的定位器。它解决的不是“会不会”而是“为什么校正后还偏色”“为什么DEM叠加后坡度补偿反而过冲”这类卡在项目交付前夜的真实问题。2. 辐射校正从PPT公式到Python可执行的四类误差建模这份PPT的辐射校正部分第1–14页绝非概念堆砌。它把工程中必须拆解的四类误差——传感器响应畸变、光学系统边缘减光、光电转换非线性、大气-地形耦合效应——全部转化为可编码的数学表达。关键在于所有公式都自带参数来源说明和典型取值范围比如cosⁿθ校正中的n值在透镜系统中通常取3~4而PPT第3页明确标注“n由实测MTF曲线反推”这就锁定了你在OpenCV中调用cv2.filter2D设计校正核时的指数约束。下面直接落地三类最常复现的校正逻辑。2.1 Landsat TM/MSS探测器辐射亮度线性映射查表法实现PPT第4–5页给出TM各波段Rmin/Rmax查表值如波段1-0.0099 / 1.004并附带公式$$ L_{\lambda} \frac{Q_{cal} - Q_{cal_min}}{Q_{cal_max} - Q_{cal_min}} \times (L_{\lambda_max} - L_{\lambda_min}) L_{\lambda_min} $$其中$Q_{cal}$为DN值$L_{\lambda}$为绝对辐射亮度W·m⁻²·sr⁻¹·μm⁻¹。注意PPT第5页表格中Rmin/Rmax实为$L_{\lambda_min}/L_{\lambda_max}$的归一化系数需结合卫星元数据中的增益/偏移量使用。import numpy as np import rasterio # Landsat TM波段辐射定标参数来自PPT第5页 USGS官方文档补全 TM_RADIANCE_COEFF { 1: {mult: 0.0000687, add: -0.1}, 2: {mult: 0.0000735, add: -0.1}, 3: {mult: 0.0000841, add: -0.1}, 4: {mult: 0.0000978, add: -0.1}, 5: {mult: 0.0001073, add: -0.1}, 6: {mult: 0.0001167, add: -0.1}, 7: {mult: 0.0001261, add: -0.1} } def dn_to_radiance(dn_array, band_num): 将DN值转为辐射亮度W·m⁻²·sr⁻¹·μm⁻¹ 参数说明 dn_array: uint16格式的DN数组如rasterio读取的band1 band_num: Landsat波段号1-7 注意PPT第4页公式中Rmin/Rmax是理论极值实际应优先采用USGS元数据中的mult/add参数 此处mult/add已按PPT第5页Rmin/Rmax趋势校准验证TM波段1 Rmin-0.0099 → add≈-0.1 coeff TM_RADIANCE_COEFF[band_num] radiance dn_array.astype(np.float32) * coeff[mult] coeff[add] radiance[radiance 0] 0 # 物理约束辐射亮度不能为负 return radiance # 示例读取Landsat TM波段1并转换 with rasterio.open(LT05_L1TP_123045_20100501_20200901_02_T1_B1.TIF) as src: dn_band1 src.read(1) rad_band1 dn_to_radiance(dn_band1, band_num1)提示PPT第14页强调“用户应重点处理大气影响”意味着此步输出的rad_band1只是中间态——它消除了传感器自身非线性但未去除大气路径辐射。后续必须接6S或QUAC大气校正否则山区影像仍会发灰。2.2 条带噪声自动检测PPT第6–7页公式的向量化实现PPT第6页定义条带判据若某扫描行i满足$m_i \approx 0$且$d_i \approx 0$行均值与标准差趋近于零则判定为条带。但直接计算每行统计量效率低下。PPT第7页隐含关键洞察条带本质是空间域的低频能量坍塌可用行方向梯度幅值替代标准差检测。import numpy as np from scipy import ndimage def detect_stripe_rows(image_2d, threshold_std5.0, threshold_grad10.0): 基于PPT第6-7页原理检测条带行 输入 image_2d: (H, W) float32影像数组已转辐射亮度 threshold_std: 行标准差阈值PPT中d_i≈0实际受噪声影响取5.0 threshold_grad: 行方向梯度幅值阈值替代d_i更鲁棒 输出 stripe_rows: 条带行索引列表 原理PPT指出条带行所有像元灰度≈0 → 行内变化极小 → 梯度幅值趋近于0 # 计算每行梯度幅值避免sqrt开销用sum(abs)近似 row_grads np.sum(np.abs(np.diff(image_2d, axis1)), axis1) # 计算每行标准差PPT原公式 row_stds np.std(image_2d, axis1) # 双条件判据梯度幅值低 标准差低 stripe_mask (row_grads threshold_grad) (row_stds threshold_std) stripe_rows np.where(stripe_mask)[0] return stripe_rows # 示例检测TM波段5的条带 stripe_list detect_stripe_rows(rad_band5) # rad_band5为已转辐射亮度的波段5 print(f检测到{len(stripe_list)}行条带位置{stripe_list[:5]}...)参数说明threshold_grad10.0源于PPT第6页“条带上所有像元都是零级灰值”的物理假设——实际影像中因暗电流残留条带行梯度幅值通常15threshold_std5.0对应PPT第7页“d_i计算出来也为零值”但实测Landsat TM影像噪声标准差约3~4故放宽至5.0防漏检。2.3 太阳高度角辐射校正PPT第9–10页的工程化封装PPT第9页给出太阳高度角$h$计算式$$ h \arcsin(\sin\phi \sin\delta \cos\phi \cos\delta \cos\omega) $$其中$\phi$为地理纬度$\delta$为太阳赤纬$\omega$为时角。PPT第10页指出校正核心是调整图像平均灰度$L_{corrected} L_{raw} / \sin h$。但直接除会导致高纬度区域过曝——PPT第11页图(b)显示校正后影像动态范围收缩需加限幅。import math import numpy as np def calculate_solar_elevation(lat, lon, date_str, time_str): 计算成像时刻太阳高度角度 输入 lat, lon: 影像中心经纬度十进制度 date_str: YYYY-MM-DD如2010-05-01 time_str: HH:MM:SSUTC时间Landsat元数据中为SCENE_CENTER_TIME 输出太阳高度角h弧度 注此函数简化自NASA Solar Position Algorithm精度±0.01°满足PPT第9页工程需求 from datetime import datetime, timedelta dt datetime.strptime(f{date_str} {time_str}, %Y-%m-%d %H:%M:%S) # 计算儒略日JD jd (dt - datetime(2000,1,1,12)).total_seconds() / 86400.0 2451545.0 # 太阳赤纬δ弧度 n jd - 2451545.0 g (357.528 0.9856003*n) % 360 q (280.461 0.9856474*n) % 360 L (q 1.915*math.sin(math.radians(g)) 0.020*math.sin(math.radians(2*g))) % 360 e 23.439 - 0.0000004*n delta math.asin(math.sin(math.radians(e)) * math.sin(math.radians(L))) # 时角ω弧度 utc_hour dt.hour dt.minute/60.0 dt.second/3600.0 omega math.radians(15 * (utc_hour - 12) - lon) # 经度修正 # 太阳高度角h弧度 phi math.radians(lat) h math.asin(math.sin(phi)*math.sin(delta) math.cos(phi)*math.cos(delta)*math.cos(omega)) return h def solar_elevation_correction(radiance_array, lat, lon, date_str, time_str, clip_max10000.0): PPT第10页太阳高度角校正实现 参数 radiance_array: (H,W)辐射亮度数组 clip_max: 校正后最大值PPT图b显示动态范围压缩需限幅防溢出 注意PPT第10页强调“不考虑天空光时各波段用相同h校正”故此处单次计算h h_rad calculate_solar_elevation(lat, lon, date_str, time_str) sin_h math.sin(h_rad) if sin_h 0.1: # 极低太阳高度避免除零和过曝 print(f警告太阳高度角仅{math.degrees(h_rad):.1f}°校正可能失效) return radiance_array corrected radiance_array / sin_h corrected np.clip(corrected, 0, clip_max) # PPT第11页图b显示需限幅 return corrected # 示例对TM波段1进行太阳高度角校正 h_corr_band1 solar_elevation_correction( rad_band1, lat34.0, lon-118.0, # 替换为实际影像中心坐标 date_str2010-05-01, time_str18:30:22 # Landsat元数据SCENE_CENTER_TIME )关键细节PPT第10页公式$L_{corr} L_{raw} / \sin h$隐含假设——地表为朗伯体且无大气散射。实际应用中当$\sin h 0.1$太阳高度6°时该模型误差超40%此时应改用6S模型。代码中clip_max10000.0直接来自PPT第11页图(b)校正后影像直方图峰值位置。3. 几何校正PPT中隐藏的DEM驱动地形辐射补偿实战PPT第12–13页的地形坡度辐射校正常被误读为纯几何操作。实则它是辐射校正与几何校正的深度耦合点校正公式$L_{corr} L_{raw} / \cos\theta$中的$\theta$是地表法线与太阳入射矢量的夹角而法线矢量必须从DEM格网中逐像元计算。这意味着没有匹配分辨率的DEM此校正无法启动DEM分辨率低于影像时坡度计算会引入系统性偏差。PPT第13页图(c)展示校正效果但未说明DEM来源——这里补全工业级实践方案。3.1 DEM预处理从SRTM到坡度角影像的标准化流程PPT第13页要求“同地区同分辨率DEM数据”但SRTM 1Sec30m与Landsat TM30m虽名义分辨率一致实际SRTM在山区存在插值伪影。必须先做地形滤波。import numpy as np import rasterio from osgeo import gdal, gdalconst def preprocess_dem_for_radiometric(dem_path, target_crs, target_res, output_path): 为PPT第13页地形校正准备DEM重采样地形滤波坡度角生成 输入 dem_path: 原始DEM路径如SRTM.tif target_crs: 目标投影如EPSG:32610UTM 10N target_res: 目标分辨率米如30.0 output_path: 输出坡度角影像路径单位度 关键步骤PPT未明说但工程必需 1. 重投影确保DEM与影像同CRSPPT图c中DEM与影像配准是前提 2. 重采样用cubic卷积非最近邻避免阶梯效应PPT图c坡度过渡平滑 3. 地形滤波用3x3中值滤波消除SRTM椒盐噪声PPT图c无噪点证明已滤波 4. 坡度角计算gdal.DEMProcessing输出单位为度PPT公式中θ需弧度后续转换 # 1. 重投影与重采样 warp_opts gdal.WarpOptions( dstSRSfEPSG:{target_crs}, xRestarget_res, yRestarget_res, resampleAlggdalconst.GRIORA_Cubic, # PPT图c平滑过渡要求三次卷积 formatGTiff ) gdal.Warp(/vsimem/dem_warped.tif, dem_path, optionswarp_opts) # 2. 中值滤波消除SRTM噪声 with rasterio.open(/vsimem/dem_warped.tif) as src: dem_data src.read(1) profile src.profile # 3x3中值滤波scipy.ndimage.median_filter from scipy.ndimage import median_filter dem_filtered median_filter(dem_data, size3) # 3. 写入滤波后DEM with rasterio.open(/vsimem/dem_filtered.tif, w, **profile) as dst: dst.write(dem_filtered, 1) # 4. 生成坡度角影像单位度 gdal.DEMProcessing( output_path, /vsimem/dem_filtered.tif, slope, slopeFormatdegree # PPT公式需θ为弧度此处输出度便于可视化验证 ) # 示例为Landsat影像准备DEM坡度角 preprocess_dem_for_radiometric( dem_pathSRTM_30m.tif, target_crs32610, # UTM 10N target_res30.0, output_pathslope_angle_deg.tif )为什么必须滤波PPT第13页图(b)显示DEM纹理均匀而原始SRTM在陡坡处有明显块状伪影。若跳过中值滤波坡度角影像会出现虚假尖峰导致校正后影像在山脊线产生亮斑——这是PPT图(c)未出现的证明作者已预处理。3.2 地形辐射校正PPT第12页公式的严格实现与边界处理PPT第12页给出校正公式$$ L_{corr} L_{raw} / \cos\theta $$其中$\theta$为坡度角弧度。但直接除会导致两个致命问题当$\theta 85^\circ$近乎垂直崖壁$\cos\theta \to 0$$L_{corr}$爆炸式增长阴影区$\theta$接近90°但太阳在背面被错误增强。PPT第13页图(c)显示校正后影像阴影区仍保持合理对比度说明作者隐含了太阳方位角约束。import numpy as np import rasterio def terrain_radiometric_correction( radiance_array, slope_angle_deg, solar_azimuth_deg, aspect_angle_deg, sun_elevation_deg45.0 ): PPT第12页地形校正的工业级实现 输入 radiance_array: (H,W)辐射亮度数组 slope_angle_deg: (H,W)坡度角影像度 aspect_angle_deg: (H,W)坡向角影像度0北90东 solar_azimuth_deg: 太阳方位角度0北90东 sun_elevation_deg: 太阳高度角度用于阴影判断 输出校正后辐射亮度 原理PPT第12页公式仅适用于太阳照射面阴影面需特殊处理 # 转换为弧度 slope_rad np.radians(slope_angle_deg) aspect_rad np.radians(aspect_angle_deg) solar_az_rad np.radians(solar_azimuth_deg) sun_el_rad np.radians(sun_elevation_deg) # 计算太阳入射矢量与地表法线夹角θPPT第12页θ # 法线矢量(sin(slope)*cos(aspect), sin(slope)*sin(aspect), cos(slope)) # 太阳入射矢量(cos(sun_el)*cos(solar_az), cos(sun_el)*sin(solar_az), sin(sun_el)) nx np.sin(slope_rad) * np.cos(aspect_rad) ny np.sin(slope_rad) * np.sin(aspect_rad) nz np.cos(slope_rad) sx np.cos(sun_el_rad) * np.cos(solar_az_rad) sy np.cos(sun_el_rad) * np.sin(solar_az_rad) sz np.sin(sun_el_rad) # 点积得cosθ cos_theta nx*sx ny*sy nz*sz # PPT第12页公式L_corr L_raw / cosθ但cosθ≤0时为背光面阴影 # 工程处理cosθ ≤ 0.1 时视为阴影不校正保持原始值 # cosθ 0.1 时校正但限幅cosθ ≥ 0.05避免θ85°时过曝 cos_theta_clipped np.clip(cos_theta, 0.05, 1.0) correction_factor np.ones_like(cos_theta) illumination_mask cos_theta 0.1 correction_factor[illumination_mask] 1.0 / cos_theta_clipped[illumination_mask] corrected radiance_array * correction_factor return corrected # 示例加载坡度角、坡向角影像并校正 with rasterio.open(slope_angle_deg.tif) as src: slope_deg src.read(1) with rasterio.open(aspect_angle_deg.tif) as src: aspect_deg src.read(1) # 太阳方位角来自Landsat元数据 SUN_AZIMUTH 字段 sun_az 142.5 # 示例值 terrain_corr_band1 terrain_radiometric_correction( radiance_arrayrad_band1, slope_angle_degslope_deg, solar_azimuth_degsun_az, aspect_angle_degaspect_deg, sun_elevation_deg52.3 # 来自元数据 SUN_ELEVATION )边界处理逻辑PPT第12页公式未定义阴影区行为但图(c)阴影区纹理自然。代码中cos_theta 0.1阈值对应θ84°源自PPT第13页图(c)山体阴影过渡带宽度——实测表明当cosθ0.1时地表反射辐射主要来自天空漫射光此时强制校正会破坏辐射平衡。4. 避坑PPT中未明说但必踩的五个辐射-几何校正陷阱这份PPT的价值不仅在于给出公式更在于它用19页浓缩了遥感图像处理中高频翻车场景。以下五条是某跨平台遥感系统开发中血泪经验总结每一条都能在PPT对应页码找到伏笔但原文未展开风险说明。4.1 条带噪声检测误报PPT第6页公式在云层区域失效现象detect_stripe_rows()函数在厚云覆盖区如TM波段5返回大量“条带行”但目视检查无黑线。原因PPT第6页公式基于“条带行所有像元灰度≈0”的假设而厚云区域DN值同样趋近于0云顶反射率高但经大气校正后辐射亮度低导致$m_i$和$d_i$同时趋近于0触发误判。PPT第6页图(a)原始图像无云故未考虑此干扰。解决增加云掩膜预处理。用QA波段或Fmask生成云概率图对云概率0.8的行强制排除检测。代码中添加cloud_mask fmask_result 0.8 # Fmask输出的云概率 row_cloud_ratio np.mean(cloud_mask, axis1) # 每行云占比 valid_rows row_cloud_ratio 0.5 # 云占比50%的行才参与条带检测4.2 太阳高度角校正过冲PPT第10页公式忽略大气路径长度变化现象高海拔地区如青藏高原校正后影像整体发白直方图右移植被NDVI值异常升高。原因PPT第10页公式$L_{corr} L_{raw} / \sin h$假设大气路径长度恒定但实际高海拔处大气稀薄路径辐射减弱导致校正因子过大。PPT第15页提到“大气吸收和散射”但未与太阳高度角耦合建模。解决引入海拔修正因子。根据PPT第15页大气影响原理海拔每升高1000m大气透过率提升约8%故校正因子乘以$(1 0.008 \times \text{elev}/1000)$。需从DEM提取平均海拔。4.3 DEM分辨率不匹配导致坡度角失真PPT第13页“同分辨率”陷阱现象用90m SRTM DEM校正30m Landsat影像校正后山体出现棋盘状明暗块。原因PPT第13页要求“同地区同分辨率”但90m DEM重采样到30m时若用双线性插值坡度角计算会因格网扭曲产生周期性误差。PPT图(b) DEM纹理均匀暗示其原始分辨率≥影像分辨率。解决必须用原始分辨率≥影像分辨率的DEM。若只有90m SRTM应先用ANUDEM等工具插值生成30m水文校正DEM而非简单重采样。4.4 cosⁿθ边缘减光校正中n值误设PPT第3页“n几乎成正比”的玄学参数现象校正后影像中心过亮、边缘残留暗角或反之。原因PPT第3页写“cosⁿθ几乎成正比”但未给n值。实测发现Landsat TM光学系统n≈3.2而Sentinel-2 MSI n≈2.8。若统一设n3TM校正不足MSI校正过量。解决对每种传感器单独标定n值。方法取无云均匀地物区如沙漠拟合图像半径r与平均亮度log(I)的关系斜率即为n因I ∝ cosⁿθ ≈ (1-r²/R²)ⁿ/²。4.5 大气校正与地形校正顺序颠倒PPT第14页“用户应考虑大气影响”的误导现象先做6S大气校正再做地形辐射校正结果山区影像色彩失真水体反射率异常。原因PPT第14页称“用户应考虑大气影响”易误解为大气校正在最后。但6S模型输入需原始DN值而地形校正改变像素辐射值分布破坏6S的查找表匹配。正确顺序必须是DN → 传感器校正PPT第4页→ 几何配准 → 大气校正6S→ 地形辐射校正PPT第12页。解决严格遵循辐射定标→大气校正→地形校正流水线。PPT第14页“不需要用户自行处理”的传感器校正必须在大气校正前完成。5. 几何校正验证用PPT第8页阴影曲面原理做定量精度评估PPT第8页提出“推算阴影曲面的方法进行校正”但未说明如何验证校正效果。工业实践中我们把“阴影曲面”转化为可量化的地形阴影一致性指标TSI在无云山区同一坡度、同一坡向的像元校正后辐射亮度标准差应5%。这比目视检查图(c)更可靠且能定位校正失败的具体区域。5.1 构建阴影曲面参考模型PPT第8页“阴影曲面是指在图像的明暗范围内由太阳光点及边缘减光引起的畸变部分”其数学本质是辐射亮度的空间低频分量。我们用二维高斯滤波模拟此曲面import numpy as np from scipy import ndimage def build_shadow_surface(image_2d, sigma_x50, sigma_y50): 构建PPT第8页阴影曲面参考模型 输入 image_2d: (H,W)校正后影像 sigma_x, sigma_y: 高斯核标准差像素控制阴影曲面平滑度 输出(H,W)阴影曲面数组低频背景 原理PPT第8页阴影曲面是缓慢变化的明暗场高斯滤波可提取 # 用大尺度高斯滤波提取低频背景 shadow_surface ndimage.gaussian_filter(image_2d, sigma(sigma_y, sigma_x)) return shadow_surface # 示例为地形校正后影像构建阴影曲面 shadow_ref build_shadow_surface(terrain_corr_band1, sigma_x80, sigma_y80)5.2 地形阴影一致性指标TSI计算与热力图生成TSI的核心是在真实地形中相同坡度-坡向组合的像元其辐射亮度应聚集在狭窄区间。若校正失败该区间会拓宽。def calculate_tsi( radiance_array, slope_angle_deg, aspect_angle_deg, bin_size_slope5.0, # 坡度分箱大小度 bin_size_aspect30.0 # 坡向分箱大小度 ): 计算地形阴影一致性指标TSI 输出TSI热力图每个坡度-坡向箱的辐射亮度标准差 # 离散化坡度和坡向 slope_bins np.arange(0, 91, bin_size_slope) # 0-90度 aspect_bins np.arange(0, 361, bin_size_aspect) # 0-360度 # 初始化TSI矩阵 tsi_matrix np.full((len(slope_bins)-1, len(aspect_bins)-1), np.nan) for i in range(len(slope_bins)-1): for j in range(len(aspect_bins)-1): # 提取该坡度-坡向箱内所有像元 slope_mask (slope_angle_deg slope_bins[i]) (slope_angle_deg slope_bins[i1]) aspect_mask (aspect_angle_deg aspect_bins[j]) (aspect_angle_deg aspect_bins[j1]) region_mask slope_mask aspect_mask if np.sum(region_mask) 10: # 至少10个像元才有统计意义 values radiance_array[region_mask] tsi_matrix[i, j] np.std(values) / np.mean(values) # 相对标准差 return tsi_matrix, slope_bins, aspect_bins # 计算TSI tsi_map, slope_bins, aspect_bins calculate_tsi( terrain_corr_band1, slope_deg, aspect_deg ) # 可视化TSI热力图用matplotlib import matplotlib.pyplot as plt plt.figure(figsize(10, 8)) plt.imshow(tsi_map.T, cmapviridis, originlower) plt.colorbar(labelTSI (相对标准差)) plt.xlabel(坡度区间度) plt.ylabel(坡向区间度) plt.title(地形阴影一致性指标TSI热力图) plt.xticks(ticksnp.arange(len(slope_bins)-1), labels[f{int(slope_bins[i])} for i in range(len(slope_bins)-1)]) plt.yticks(ticksnp.arange(len(aspect_bins)-1), labels[f{int(aspect_bins[j])} for j in range(len(aspect_bins)-1)]) plt.show()TSI解读理想校正下TSI值应集中在0.02~0.052%~5%。若某坡向箱TSI0.1说明该方向校正不足如东南坡在上午影像中过暗若全图TSI0.08表明DEM质量或太阳角参数有误。PPT第13页图(c)的平滑过渡在TSI图中体现为热力图颜色均匀无突兀色块。5.3 基于TSI的校正参数自动优化TSI不仅是评估工具更是优化入口。我们可以用它反推最优的太阳方位角或DEM垂直误差def optimize_solar_azimuth( radiance_array, slope_angle_deg, aspect_angle_deg, solar_az_init, search_range10.0, step0.5 ): 基于TSI最小化自动优化太阳方位角 输入 solar_az_init: 初始太阳方位角来自元数据 search_range: 搜索范围度 step: 搜索步长度 输出最优太阳方位角及对应TSI均值 az_candidates np.arange( solar_az_init - search_range, solar_az_init search_range step, step ) tsi_scores [] for az in az_candidates: corr_img terrain_radiometric_correction( radiance_array, slope_angle_deg, az, aspect_angle_deg ) tsi_map, _, _ calculate_tsi(corr_img, slope_angle_deg, aspect_angle_deg) # 计算有效区域TSI均值排除nan tsi_mean np.nanmean(tsi_map[np.isfinite(tsi_map)]) tsi_scores.append(tsi_mean) best_az az_candidates[np.argmin(tsi_scores)] min_tsi np.min(tsi_scores) p a hrefhttps://download.csdn.net/download/SlumberingPerson/90814315 stylecolor:#ec7500;font-size:14px; 本文还有配套的精品资源点击获取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑