码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 遥感图像地物覆盖分类,数据集制作-分类模型对比-分类保姆级教程


    遥感图像地物覆盖分类,数据集制作-分类模型对比-分类保姆级教程

    • 在遥感影像上人工制作分类数据集
    • 采用python+gdal库制作数据集
    • 挑选分类模型(RF、KNN、SVM、逻辑回归)
    • 选择随机森林模型建模分类
    • 遥感图像预测

    在遥感影像上人工制作分类数据集

    1.新建shp文件
    地理坐标系保持和影像一致,面类型
    在这里插入图片描述
    2.打开属性表
    在这里插入图片描述
    3.添加字段
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这里分类6类,点击添加值添加
    在这里插入图片描述
    添加完毕
    在这里插入图片描述
    开始人工选地物类型,制作数据集
    在这里插入图片描述

    在这里插入图片描述

    开始标注,标注的时候可以借助谷歌地图来看
    在这里插入图片描述
    标记足够多的样本
    在这里插入图片描述
    打开面转栅格工具
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    设置nodata值为15

    采用python+gdal库制作数据集

    
    
    import csv
    import numpy as np
    import rasterio
    import pandas as pd
    
    
    def readTif(fileName):
        try:
            dataset = rasterio.open(fileName)
            return dataset
        except rasterio.errors.RasterioIOError:
            print(f"文件 {
         fileName} 无法打开")
            return None
    
    
    num_bands = 8
    csv_head_name = [f'Band{
         i}' for i in range(1, num_bands + 1)] + ['Label', 'LabelName']
    labels_name = {
       0: "水体", 1: "植被",2: "建筑",3: "裸地",4: "农田",5: "道路"}
    
    ori_dataset = readTif(orgin_path)
    label_dataset = readTif(sample_path)
    
    if ori_dataset is not None and label_dataset is not None:
        label_matri = label_dataset.read(1)
        data_matri = ori_dataset.read()
        nodata_indices = np.where(label_matri != 15)  # 获取所有非 nodata 的索引
    
    
        # 准备数据
        data = []
        for i in range(nodata_indices[0].size):
            row, col = nodata_indices[0][i], nodata_indices[1][i]
            label = label_matri[row, col]
            band_values = data_matri[:, row, col].tolist()
            label_name = labels_name.get(label, 'Unknown')
            band_values
  • 相关阅读:
    【Python_PySide2学习笔记(十八)】勾选按钮QCheckBox类的基本用法
    Vue笔记十二:Vuex辅助函数
    [java] 23种设计模式之代理模式
    解决Vue项目的runtime-only转为runtime-compiler
    文件搜索工具(Python实现)
    C++初识--------带你从不同的角度理解引用的巧妙之处
    RxJava(二)-转换操作符
    适用场景全新升级!扩展 Dragonfly2 作为分布式缓存系统架构 | 龙蜥技术
    完美解决回车事件使用window.open()打开新窗口行为被浏览器拦截的问题【亲测有效】
    PyTorch檔案生成機制中的FileManager.write_with_template
  • 原文地址:https://blog.csdn.net/weixin_45276304/article/details/139652177
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号