ENVI实战—一文搞定遥感的目视解译

AI摘要

文章介绍了通过ROI计算方法测量南昌市城区面积,以及利用Landsat8影像进行地物判读的过程,包括水体、泥沙、植被和居民区的对比分析。实验旨在提升遥感数据分析技能。

实验1:利用ROI计算区域面积,完成南昌市城区统计

目的:学会利用ROI计算区域面积

过程:

①导入影像:点击“文件→打开为→光学遥感器→Landsat→带有元数据的GeoTIFF”,导入实验1的Landsat8数据。

②区域矢量化:选择影像中边界明显的地物,此处选择影像中的湖泊。选择ENVI软件中的选项卡“感兴趣区域工具”,选择自由绘制工具,对湖泊进行矢量化。

图1

③在

第9期:实战|用AI自动提取建筑,新手也能上手的遥感解译教程 AI自动提取建筑,核心逻辑是“数据预处理→样本标注→模型训练→结果优化”,新手不用害怕实操,重点做好预处理和样本标注,就能快速出结果。这也是GeoAI落地的核心思路——用AI替代人工,提升效率,同时结合GIS工具,实现结果的空间化、可视化。下期预告:空间算法入门|GeoAI核心算法拆解,不用啃论文,通俗看懂原理,关注不迷路~PS:评论区留言你的实操问题(如“ENVI模型训练失败”“预处理报错”),我会逐一解答,帮你避坑! 阅读详情

相关推荐

遥感图像融合入门:用ENVI CLASSIC的HSV和PCA方法,5分钟搞定多光谱与高分辨率图像融合

本文详细介绍了在ENVI CLASSIC中使用HSV和PCA方法进行遥感图像融合的实战技巧。通过分步操作指南和效果对比,帮助用户快速掌握多光谱与高分辨率图像的融合技术,提升遥感图像处理效率。特别适合需要保持色彩信息或增强空间细节的应用场景。

weixin_30455023的博客 358

遥感小白也能搞定:ENVI CLASSIC里ISODATA和K-Means非监督分类到底怎么选?

本文深入对比了ENVI CLASSIC中ISODATA和K-Means两种非监督分类算法的特点与应用场景。针对遥感图像分类需求,详细解析了K-Means的高效性和ISODATA的动态调整优势,提供了参数设置建议和实战选型指南,帮助遥感新手快速掌握非监督分类技术。

weixin_33509203的博客 275

ENVI新手必看:5步搞定武汉市土地利用分类图(附Landsat8数据下载技巧)

本文为ENVI新手提供了从零开始制作武汉市土地利用分类图的完整实战指南。详细讲解了利用Landsat8数据进行土地利用图绘制的五大核心步骤:数据获取与下载技巧、波段合成与预处理、监督分类与样本选择、分类后处理以及精度验证与专题图制作,帮助用户快速掌握专业级遥感制图流程。

qsc9012345的博客 1051

ENVI监督分类实战:5分钟搞定遥感图像分割(附参数优化技巧)

本文提供了一份ENVI监督分类的快速实战指南,旨在帮助用户高效完成遥感图像分割。文章详细拆解了从数据准备、样本采集到执行分类与后处理的全流程,并重点分享了参数优化技巧(如聚类与筛选处理)和精度验证方法,以提升分类结果的准确性与实用性。

weixin_29029995的博客 124

从易发性到风险评价|手把手教你用遥感+GIS搞定地质灾害普查

2.1 ArcGIS界面及数据加载2.2 ArcGIS常见数据格式2.3基于Geodatabase的灾害数据库构建2.4灾害信息的查询与输出2.5 ArcGIS文档保存2.6 案例分析:构建滑坡、泥石流风险普查数据库(1)

weixin_48230888的博客 632

保姆级教程:从欧空局官网到本地分析,搞定Sentinel-2 L2A数据的完整流程(含SNAP/ENVI/Ubuntu)

本文提供Sentinel-2 L2A数据从欧空局官网下载到本地分析的完整流程指南,涵盖SNAP/ENVI/Ubuntu多平台操作。详细讲解数据获取、预处理、高级特征提取及自动化处理技巧,特别针对植被指数计算、土地利用分类等典型应用场景提供实战代码,助力遥感研究者高效完成地表监测任务。

weixin_30905133的博客 487

ENVI 5.6.2图像融合保姆级教程:从数据准备到结果分析,一次搞定国产卫星数据

本文详细介绍了在ENVI 5.6.2中处理国产卫星数据的图像融合技术,涵盖从数据预处理到结果优化的完整流程。重点解析了Gram-Schmidt和NNDiffuse两种融合方法,适用于高分系列、资源系列等国产卫星数据,帮助用户提升数据可用性和处理效率。

weixin_30660027的博客 365

别再手动算NDVI了!用ENVI的Band Math工具,5分钟搞定植被覆盖度FVC计算

本文详细介绍了如何利用ENVI的Band Math工具快速计算植被覆盖度(FVC),替代传统手动计算NDVI的方法。通过波段运算流水线,5分钟内即可完成从原始影像到FVC产品的全流程处理,大幅提升遥感数据处理效率,适用于农业监测、生态环境评估等领域。

aocan6909的博客 344

别再手动画样本点了!用GEE+随机森林,10分钟搞定北京2023年土地利用分类

本文介绍了如何利用Google Earth Engine(GEE)平台和随机森林算法,快速实现北京2023年土地利用分类。通过自动化样本生成、数据预处理和模型优化,整个流程仅需10分钟,大幅提升分类效率。GEE的云端处理能力和随机森林的优异性能,为遥感影像分类提供了高效解决方案。

weixin_26934905的博客 179

ENVI入门系列教程---一、数据预处理---1.1基本操作--5.x以后的界面(新界面)

every blog every motto: You never know how strong you really are until being strong is the only choice you have。 0. 前言 本系列教程旨在系统学习并梳理ENVI。说来惭愧,作为一名GISer,对ENVI这类软件还不能熟练掌握,这也是本系列教程的初衷。种一棵树最好的时间是十年以前,其次是...

胡侃有料的博客 1万+

ENVI实战—一文搞定遥感图像的计算机解译

一文教会你,在遥感图像中如何进行计算机自动解译

Promising_GEO的博客 2250

ENVI+FLASSH搞定Sentinel-2大气校正:从L1C到反射率的全流程避坑实战

遥感影像定量反演的第一步,往往绕不开大气校正。卫星传感器接收到的表观反射率中混入了大气散射、水汽吸收等干扰,直接用于NDVI或水体指数计算会产生显著偏差。大气校正本质是通过辐射传输模型,反演气溶胶光学厚度与水汽柱含量,将顶层反射率转换为地表真实反射率。这一技术在植被覆盖监测、水体水质评估、土地利用变化分析等场景中尤为关键。针对哨兵二号L1C数据,基于ENVI的FLASSH模块可完成从辐射定标到气溶胶反演的完整链路,其参数透明、可解释性强,适合科研与工程应用。本文以实测经验梳理了数据准备、参数设置、常见故障排

weixin_33883104的博客 222

ENVI深度学习与精准农业工具联合提取椰树全流程指南

遥感影像地物精准提取是农业资源调查与树种识别的基础环节,传统方法在效率与精度上难以兼得。深度学习语义分割技术通过像素级特征学习,可对复杂背景中的目标地物进行初步筛分,而面向对象分析则擅长边界规整与形状规则筛选。以ENVI深度学习工具与精准农业工具联合流程为例,系统讲解从样本标注、模型训练到概率栅格后处理、规则筛选的完整技术路径,并给出参数设置与避坑指南,最终实现椰树的自动化识别、计数与矢量出图,为同类树种及农业目标提取提供可复制方案。

weixin_28235513的博客 284

Camera tuning flow相机调试流程

相机调试流程分为三大模块:ProcessRaw处理原始数据(黑电平校正、阴影校正),3A实现自动控制(曝光/对焦/白平衡),ISP进行图像精加工(伽马校正、锐化降噪、色彩处理)。三个阶段环环相扣,前阶段为后阶段提供基础,最终输出画质优良且风格化的图像。

weixin_64706696的博客 1230

STGCN实战:从零构建PyTorch时空图卷积网络预测城市交通流

本文详细介绍了如何使用PyTorch从零构建时空图卷积网络(STGCN)进行城市交通流预测。通过将交通网络建模为图结构,并融合时间卷积与空间图卷积,STGCN能有效捕捉交通流的时空依赖性。文章提供了从数据预处理、核心模块(TimeBlock与STGCNBlock)搭建、模型训练到实战技巧的完整指南,帮助开发者快速掌握这一前沿的交通速度预测技术。

wasm7browser的博客 249

mac搭建ios自动化环境之WebDriverAgent配置

一、WebDriverAgent 1、简单介绍: WebDriverAgent是facebook为苹果公司开发的一款自动化测试工具,github上有下载资源;另外appium安装后也会自动安装自带的WebDriverAgent;可以用自带的,也可以从github下载并替换自带的; 2、不同appium版本自带WebDriverAgent默认路径不同 1)appium 1.10.1之前版本: npm方式安装: /usr/local/lib/node_modules/appium/node_modules/a

qq_30237715的博客 2763

车道线检测1.0(Python+Opencv基础版)

车道线检测是指在道路上自动检测和识别车道线的过程。车道线是道路上的标记,用于指示车辆行驶的方向和位置。 通过对车道线进行检测和识别,自动驾驶和智能驾驶系统可以实现车辆的自动导航、车道保持、车道偏离警告等功能。

Dream_orz的博客 4265

3GPP协议解读_物理层系列(一)_物理层协议怎么看?

5G NR相关协议一般都在38系列,点进去以后可以看到,38.2xx系列为物理层相关协议,为了掌握物理层相关知识,应该怎么看协议呢?我建议从38.201读起,对38.2xx系列协议有一个整体的把握。

JCMLSY的博客 1329

ollama使用CPU安装qwen-coder模型_并在eclipse中使用ai coder插件_配置本地qwen-coder模型_ollama常用操作记录---AI大模型应用探索0002

文章摘要:作者分享了在Windows 10上安装和使用Ollama模型的过程。尝试了不同规模的qwen-coder模型(7b、1.5b和0.5b),发现7b模型响应极慢(需35分钟),而1.5b模型表现较好(3秒响应)。最终选择1.5b版本用于代码开发辅助,支持多语言自动补全。同时提到在最新版Eclipse中的AIcoder配置问题。文章重点比较了不同模型规模在CPU环境下的实际使用体验和响应速度差异。

添柴程序猿的专栏 684

创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—ISP图像处理开发案例

创龙科技研发的 TL3588-EVM 评估板具备强大视频处理能力,可满足多场景视频开发需求。为助力开发者快速上手,本文整理 7 个实用视频开发案例,涵盖从采集到显示的全流程,详细说明各案例的硬件连接、参数配置与代码解析,帮助开发者高效实现评估板视频相关功能开发与调试。

创龙,嵌入式一体化解决方案商 209

UFSV3.1-RPMB实现与测试

UFS RPMB功能验证与测试指南 本文介绍了UFS(通用闪存存储)中RPMB(重放保护内存块)的功能验证与测试方法。主要内容包括: RPMB基础配置: 在Linux系统中查看RPMB设备节点 读取RPMB单元描述符获取配置信息 配置RPMB区域大小(16MB)和使能状态 RPMB特性验证: 获取单次写最大请求(16KB) 测试未编程认证密钥时的读写操作 验证认证密钥编程过程 测试用例: 包含4个测试用例,验证RPMB在不同状态下的行为 提供了详细的命令行操作和预期结果 本文可作为UFS RPMB功能验证。

小码哥的博客 1255

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 数据分享—鄱阳湖矢量边界数据
下一篇: ENVI实战—一文搞定监督分类
梧桐GIS
博客等级 码龄3年 2311粉丝 161原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

梧桐GIS

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值