遥感卫星数据读取

判断tif文件类型,

TIF 是

  • A. 0 / 1 掩膜

  • B. 比例(0--1)

  • C. 连续值(面积 / 覆盖率)

中的哪一类

python 复制代码
import rasterio
import numpy as np
from rasterio.enums import Resampling

tif = r"分布数据集\classified-Anhui-2024-rice-WGS84-v1.tif"

with rasterio.open(tif) as ds:
    img = ds.read(
        1,
        out_shape=(ds.height // 100, ds.width // 100),
        resampling=Resampling.nearest
    )

    nodata = ds.nodata
    if nodata is not None:
        img = img[img != nodata]

print("最小值:", np.nanmin(img))
print("最大值:", np.nanmax(img))
print("唯一值数量(近似):", len(np.unique(img)))
print("前10个唯一值:", np.unique(img)[:10])

通过上面的例子可以得出tif文件是

python 复制代码
import os
import glob
import rasterio
import numpy as np
import matplotlib.pyplot as plt
from rasterio.enums import Resampling

tif_dir = r"E:种植分布数据集"
tif_files = sorted(glob.glob(os.path.join(tif_dir, "*.tif")))

n = len(tif_files)
ncols = 4
nrows = (n + ncols - 1) // ncols

plt.figure(figsize=(4 * ncols, 4 * nrows))

for i, tif in enumerate(tif_files):
    with rasterio.open(tif) as ds:
        scale = 20  # ★关键参数
        img = ds.read(
            1,
            out_shape=(
                ds.height // scale,
                ds.width // scale
            ),
            resampling=Resampling.average
        ).astype(np.float32)

        if ds.nodata is not None:
            img[img == ds.nodata] = np.nan

    plt.subplot(nrows, ncols, i + 1)
    im = plt.imshow(img, cmap="viridis")
    plt.title(os.path.basename(tif), fontsize=8)
    plt.axis("off")

plt.tight_layout()
plt.savefig("plot.png",dpi=500)
# plt.show()

通过上面的代码,将文件夹下的所有tif文件均做可视化处理,拼成子图的形式

相关推荐
ujainu11 分钟前
CANN仓库中的AIGC性能极限挑战:昇腾软件栈如何榨干每一瓦算力
人工智能·开源
wenzhangli713 分钟前
ooderA2UI BridgeCode 深度解析:从设计原理到 Trae Solo Skill 实践
java·开发语言·人工智能·开源
brave and determined14 分钟前
CANN ops-nn算子库使用教程:实现神经网络在NPU上的加速计算
人工智能·深度学习·神经网络
brave and determined14 分钟前
CANN算子开发基础框架opbase完全解析
人工智能
一枕眠秋雨>o<19 分钟前
调度的艺术:CANN Runtime如何编织昇腾AI的时空秩序
人工智能
晚烛26 分钟前
CANN + 物理信息神经网络(PINNs):求解偏微分方程的新范式
javascript·人工智能·flutter·html·零售
爱吃烤鸡翅的酸菜鱼27 分钟前
CANN ops-math向量运算与特殊函数实现解析
人工智能·aigc
波动几何38 分钟前
OpenClaw 构建指南:打造智能多工具编排运行时框架
人工智能
程序猿追39 分钟前
深度解码AI之魂:CANN Compiler 核心架构与技术演进
人工智能·架构
新缸中之脑41 分钟前
Figma Make 提示工程
人工智能·figma