遥感卫星数据读取

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

相关推荐
云烟成雨TD18 分钟前
Spring AI 1.x 系列【56】用大模型评判大模型:递归顾问实现自动化评估方案
人工智能·spring·自动化
AI客栈38 分钟前
K8s 自定义控制器中 WorkQueue 队列优化实践:基于 IPVS 转发原理的状态变化处理
人工智能
0xR3lativ1ty42 分钟前
每周AI工具新动态
人工智能
jerryinwuhan44 分钟前
面向产业带与中小企业数字化转型的电商运营人才培养模式
大数据·人工智能
Drgfd1 小时前
智造赋能品控:汪进进以精益生产,夯实质量制造底座
人工智能·制造
米小虾1 小时前
"Chat is dead":OpenAI 正在杀死的不是聊天,是整个 AI 交互范式
人工智能·openai
冬奇Lab1 小时前
Agent 系列(18):成本与性能优化——省钱且更快
人工智能·llm·agent
Hefei GlobefishAI1 小时前
合肥合豚AI硬件方案:专为智能售货柜厂商定制的无人零售接口套件
人工智能·零售·自动售货机·无人零售硬件·ai硬件方案·智能售货柜·接口套件
冬奇Lab1 小时前
每日一个开源项目(第127篇):PM Skills Marketplace - 把顶级产品方法论塞进 AI Agent
人工智能·开源·资讯
吴佳浩2 小时前
Hermes vs OpenClaw:基于源码的 Agent Loop 全面分析
人工智能·llm·agent