【深度学习|地学应用】用python绘制多波段影像进行滑坡检测时各个因子之间相关性(Pearson 相关系数矩阵)的热力图?

【深度学习|地学应用】用python绘制多波段影像进行滑坡检测时各个因子之间相关性(Pearson 相关系数矩阵)的热力图?

【深度学习|地学应用】用python绘制多波段影像进行滑坡检测时各个因子之间相关性(Pearson 相关系数矩阵)的热力图?



欢迎宝子们点赞、关注、收藏!欢迎宝子们批评指正!
祝所有的硕博生都能遇到好的导师!好的审稿人!好的同门!顺利毕业!

大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文。详细信息可关注VX “学术会议小灵通”或参考学术信息专栏:https://fighting.blog.csdn.net/article/details/147526690


前言

下面的示例代码演示了如何:

  1. 使用 rasterio 读取一个多波段影像(假设路径为 multiband.tif)和一个二值标签影像(label.tif)。
  2. 将标签影像中值为 1 的像素位置用作掩膜,只对这些位置提取多波段影像的像素值。
  3. 计算各个波段之间在滑坡发生区域(标签值为 1)内的 Pearson 相关系数矩阵。
  4. 使用 seaborn 绘制相关系数的热力图。

代码示例

import os
import numpy as np
import rasterio
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

# 文件路径
multiband_path = 'multiband.tif'
label_path     = 'label.tif'
out_png        = 'band_correlation_heatmap.png'

# 1. 读取多波段影像
with rasterio.open(multiband_path) as src:
    # 读取所有波段 (bands, height, width)
    data = src.read().astype(np.float32)
    band_count = src.count
    band_names = [f'B{i}' for i in range(1, band_count+1)]

# 2. 读取标签(二值图)
with rasterio.open(label_path) as lbl:
    label = lbl.read(1)

# 3. 构建掩膜:只保留 label == 1 的像素
mask = (label == 1)

# 4. 提取每个波段在掩膜区域的像素值,组织成 DataFrame
#    每一列对应一个波段
pixels = {}
for i, name in enumerate(band_names):
    band = data[i, :, :]
    pixels[name] = band[mask]

df = pd.DataFrame(pixels)

# 5. 计算 Pearson 相关系数矩阵
corr = df.corr(method='pearson')

# 6. 绘制热力图
plt.figure(figsize=(8, 6))
sns.heatmap(
    corr, 
    annot=True, 
    fmt='.2f', 
    cmap='coolwarm', 
    vmin=-1, vmax=1,
    cbar_kws={'label': 'Pearson $r$'}
)
plt.title('Multi-band Correlation Heatmap (on label==1)')
plt.tight_layout()
plt.savefig(out_png, dpi=300)
plt.show()

print(f'已保存热力图: {out_png}')

代码说明

  • 读取多波段src.read() 返回一个形状为 (波段数, 高度, 宽度) 的 NumPy 数组。
  • 掩膜选择:只对标签值为 1 的位置进行相关性分析,以聚焦滑坡区域。
  • 数据组织:将每个波段的掩膜内像素拉平成一维数组,放入 pandas.DataFrame 中。
  • 相关系数df.corr() 默认计算 Pearson 相关系数,可选 method='spearman'method='kendall'
  • 可视化seaborn.heatmap() 配合 annot=True 在图上显示数值,并用 coolwarm 色标直观呈现正负相关。

这样就能直观地看到各光谱波段在滑坡发生区域内的相互相关性,为后续特征选择和建模提供依据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

985小水博一枚呀

祝各位老板前程似锦!财源滚滚!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值