遥感卫星数据读取

判断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文件均做可视化处理,拼成子图的形式

相关推荐
Angeldream1238 分钟前
第 4 章 医学影像预处理
图像处理·人工智能·python·医学影像·医学影像处理
打工仔折腾 AI34 分钟前
用 Dashlet 把极空间 NAS 服务入口整理成统一导航首页的实践
java·开发语言·人工智能·后端·python·rpc·ai agent 实战
野生码农AI实战43 分钟前
【无标题】
大数据·人工智能
桃西西呀1 小时前
搜「怎么做接口限流」,向量库却把「怎么做缓存」的段落递了上来
人工智能·llm·ai编程
像风一样自由20201 小时前
56.实战PostgreSQL-pgvector-FastAPI构建轻量级RAG
数据库·人工智能·postgresql·大模型·fastapi·智能体
2401_832298101 小时前
人工智能时代,我们如何与机器同行
人工智能
田里的水稻1 小时前
PyTorch_TensorBoard展示
人工智能·pytorch·python·深度学习·神经网络
环境栈笔记1 小时前
指纹浏览器 WebRTC 怎么设置?从 ICE 候选、代理出口到功能验证
前端·人工智能·后端·自动化
枯木◊靠推文躺平版1 小时前
Work Agent深度解读:AI长程任务的执行机制与落地边界
人工智能
安睿杰翻译(上海)有限公司1 小时前
涉外商务合同翻译项目复盘:高风险条款、质控链路与交付校验清单
人工智能