ENVI数据分块

合集下载

城市微气象模拟工具ENVI-met中文入门

城市微气象模拟工具ENVI-met中文入门

城市微气候仿真软件ENVI-met的应用天津住宅科学研究院有限公司汪磊磊⑴陈丹⑵邮箱:(1)lleiwang@ ;(2)chendan0804@ 城市微气候仿真软件ENVI-met是由德国的Michael Bruse (University of Mainz,Germany)开发的一个多功能系统软件,可以用来模拟住区室外风环境、城市热岛效应、室内自然通风等。

ENVI-met一共由四个模块组成,分别为建模版块ENVI-met Eddi Version、编程模块ENVI-met Configuration Editor、计算版块ENVI-met V3.1 Default Config以及结果显示版块LEONARDO 3.75。

一、建模版块在使用ENVI-met软件的过程中,最重要的一步就是建模,网格尺寸的大小、数量都直接影响到计算结果的准确性。

首先单击,进入建模版块,单击进入参数设置界面,如图1所示。

在此窗口可以设置模型所在地区的经度、纬度,网格尺寸、网格数量。

在实际模拟中,遇到一个问题,需要跟大家交流下,计算区域的高度必须大于等于建筑物最大高度的两倍,软件提供的计算区域最大网格数是250*250*30,因此,我们在编辑网格尺寸的时候要注意这一点,鉴于网格数的限制,可以适当提高网格的尺寸大小,这样既能满足建筑物高度的要求,又能满足计算的要求。

窗口1接下来就可以开始画模型了。

点击窗口2(Edit Building/Vegetation),可以定义建筑物的高度、植物的种类。

在Left Mouse 对应的窗口输入建筑物的高度,然后在网格区域点击鼠标左键画建筑物即可。

点击Left Mouse+Shift对应的下拉键,选择植物的种类,然后点击鼠标左键+Shift按钮在网格区域画植物。

值得注意的一点是,对于屋顶绿化的情况,可以直接在建筑物上单击鼠标左键+Shift键填充植物。

窗口2 窗口3 点击选中窗口3(Edit Soils),在下拉键中选择下垫面的类型,比如loamy road(土壤)、deep water(水面)、Asphalt Road(柏油马路)等,选择合适的下垫面后在网格区域画图。

envi多尺度分割步骤

envi多尺度分割步骤

envi多尺度分割步骤Envi多尺度分割步骤:一、数据预处理在进行多尺度分割之前,首先需要进行数据预处理。

数据预处理的目的是对原始数据进行清洗和转换,使其适用于后续的分割算法。

数据预处理的步骤包括数据获取、数据校正、数据筛选和数据格式转换等。

其中,数据获取是指从各种来源获取原始数据,如卫星遥感数据或地面观测数据等。

数据校正是指对原始数据进行校正,消除由于传感器特性或环境因素引起的噪声和偏差。

数据筛选是指对原始数据进行筛选,选择出具有代表性和可靠性的数据进行分割。

数据格式转换是指将原始数据转换为适用于分割算法的输入格式。

二、多尺度分割算法多尺度分割算法是基于图像的不同尺度特征进行分割的一种方法。

这种方法能够有效地提取出图像中的细节信息,并将图像分割为不同的区域。

多尺度分割算法的步骤包括图像金字塔构建、尺度空间分割和分割结果融合等。

1. 图像金字塔构建图像金字塔是一种用于多尺度图像处理的数据结构。

它通过对原始图像进行不同尺度的平滑和采样,构建了一系列的图像,从而提供了多尺度的图像表示。

图像金字塔的构建可以采用高斯金字塔或拉普拉斯金字塔等方法。

2. 尺度空间分割尺度空间分割是指在不同尺度下对图像进行分割。

在每个尺度上,可以使用不同的分割算法对图像进行分割,得到不同尺度下的分割结果。

常用的尺度空间分割方法包括基于边缘的分割、基于区域的分割和基于混合模型的分割等。

3. 分割结果融合在得到不同尺度下的分割结果后,需要将这些结果进行融合,得到最终的分割结果。

分割结果融合可以采用像素级的融合或基于区域的融合等方法。

像素级的融合是指将不同尺度下的像素进行组合,得到最终的像素分类结果。

基于区域的融合是指将不同尺度下的区域进行组合,得到最终的区域分类结果。

三、结果评估多尺度分割的最终结果需要进行评估,以验证其准确性和可靠性。

结果评估的指标包括精度、召回率和F1值等。

精度是指分割结果中正确分类的像素数占总像素数的比例。

envi混合像元分解步骤

envi混合像元分解步骤

envi混合像元分解步骤
哎呀,envi 混合像元分解呀,这可真是个有意思的事儿呢!咱就一步步来瞧瞧。

首先呢,你得准备好你的数据呀,就像厨师要准备好食材一样。

这些数据就是你的宝贝,要好好对待它们哟!
然后呀,要选择合适的算法,这就好比是选择做菜的方法,不同的算法就像是不同的烹饪技巧,能做出不同风味的成果呢!
接下来,就是开始分解啦!这就好像是把一个大拼图一点点拆开,找出每一块的位置。

在这个过程中呀,你得细心再细心,可不能马虎哟!
分解的时候呢,要注意观察各种特征呀,就像观察菜肴的颜色、形状、味道一样。

每一个细节都可能影响最终的结果呢。

这中间可能会遇到一些小麻烦,就像做菜时不小心盐放多了或者火大了。

但别着急,咱慢慢调整,总能找到最合适的方法。

分解完了之后呢,还得检查检查,看看是不是都分解对了。

这就好比是尝尝菜做的好不好吃,要是味道不对,就得重新调整呀。

你想想看,这 envi 混合像元分解不就像是一场奇妙的冒险嘛!每一步都充满了挑战和惊喜。

咱得有耐心,有毅力,才能把这个任务完成得漂漂亮亮的呀!
在这个过程中,可别嫌麻烦,就跟学骑自行车似的,一开始可能会摔倒,但多练习几次就会啦!而且等你掌握了这个技能,那感觉可太棒啦!就好像你学会了做一道超级美味的菜,能在别人面前好好炫耀一番呢!
总之呀,envi 混合像元分解虽然有点复杂,但只要咱一步一个脚印地去做,就一定能成功的。

加油吧!让我们在这个奇妙的世界里探索出更多的精彩!。

城市微气象模拟工具ENVI-met中文入门

城市微气象模拟工具ENVI-met中文入门

城市微气候仿真软件ENVI-met的应用天津住宅科学研究院有限公司汪磊磊⑴陈丹⑵邮箱:(1)lleiwang@ ;(2)chendan0804@ 城市微气候仿真软件ENVI-met是由德国的Michael Bruse (University of Mainz,Germany)开发的一个多功能系统软件,可以用来模拟住区室外风环境、城市热岛效应、室内自然通风等。

ENVI-met一共由四个模块组成,分别为建模版块ENVI-met Eddi Version、编程模块ENVI-met Configuration Editor、计算版块ENVI-met V3.1 Default Config以及结果显示版块LEONARDO 3.75。

一、建模版块在使用ENVI-met软件的过程中,最重要的一步就是建模,网格尺寸的大小、数量都直接影响到计算结果的准确性。

首先单击,进入建模版块,单击进入参数设置界面,如图1所示。

在此窗口可以设置模型所在地区的经度、纬度,网格尺寸、网格数量。

在实际模拟中,遇到一个问题,需要跟大家交流下,计算区域的高度必须大于等于建筑物最大高度的两倍,软件提供的计算区域最大网格数是250*250*30,因此,我们在编辑网格尺寸的时候要注意这一点,鉴于网格数的限制,可以适当提高网格的尺寸大小,这样既能满足建筑物高度的要求,又能满足计算的要求。

窗口1接下来就可以开始画模型了。

点击窗口2(Edit Building/Vegetation),可以定义建筑物的高度、植物的种类。

在Left Mouse 对应的窗口输入建筑物的高度,然后在网格区域点击鼠标左键画建筑物即可。

点击Left Mouse+Shift对应的下拉键,选择植物的种类,然后点击鼠标左键+Shift按钮在网格区域画植物。

值得注意的一点是,对于屋顶绿化的情况,可以直接在建筑物上单击鼠标左键+Shift键填充植物。

窗口2 窗口3 点击选中窗口3(Edit Soils),在下拉键中选择下垫面的类型,比如loamy road(土壤)、deep water(水面)、Asphalt Road(柏油马路)等,选择合适的下垫面后在网格区域画图。

envi自己总结操作分类后处理

envi自己总结操作分类后处理

envi自己总结操作分类后处理分类后处理(Post Classification)1. 分类统计:ENVI:Classification>>Post Classification>>Class Statistics:包括每一类的点数、最小值、最大值、平均值以及类的每个波段的标准差等。

其中每一类的最小值、最大值、平均值以及标准差可以以图的方式进行显示。

可以显示出每一类的直方图,并且计算其协方差矩阵、相关矩阵、特征值和特征矢量等。

2. 两个分类结果的比较:ENVI:Classification>>Post Classification>>Confusion Matrix:分类结果的精度,显示在一个混淆矩阵里。

通过用分类结果与地表真实图像(Ground Truth Image)或地表真实感兴趣区(Ground Truth ROIs)相比较来计算混淆矩阵。

分类结果记录了总体精度、准确度、Kappa系数、混淆矩阵、commission 误差(每类中额外像元占的百分比)和冗长误差(类左边的像元占的百分比)等等。

当用地表真实图像计算混淆矩阵时,还可以输出每类图像中没有被正确分类的那些像元。

3. 类别集群:ENVI: Classification>>Post Classification>>Clump Classes细小块的合并,将一些碎块进行合并(平滑处理)。

注:未被选上用于聚块(clumping)的类,在输出图像上无变化。

4. 类别筛选:ENVI: Classification>>Post Classification>> Sieve Classes通过用斑点分组消除这些隔离的被分类的像元。

该功能菜单将删除分类中的孤岛像元,并用黑像元表示,可以用成块分类功能代替黑像元。

注:在“Group Min Threshold” 文本框里,输入一个类组需要包含的最少像元数(4或8)。

ENVI FX4.6操作说明

ENVI FX4.6操作说明

ENVI FX操作说明ENVI FX的操作可分为两个部分:发现对象(Find Object)和特征提取(Extract features),如图1所示。

图1 FX操作流程示意图(红色字体为可选项)1、准备工作根据数据源和特征提取类型等情况,可以有选择的对数据做一些预处理工作。

●空间分辨率的调整如果您的数据空间分辨率非常高,覆盖范围非常大,而提取的特征地物面积较大(如云、大片林地等)。

可以降低分辨率,提供精度和运算速度。

可利用ENVI主界面->Basic Tool->Resize Data工具实现。

●光谱分辨率的调整如果您处理的是高光谱数据,可以将不用的波段除去。

可利用ENVI主界面->Basic Tool->layer stacking工具实现。

●多源数据组合当您有其他辅助数据时候,可以将这些数据和待处理数据组合成新的多波段数据文件,这些辅助数据可以是DEM, lidar 影像, 和SAR 影像。

当计算对象属性时候,会生成这些辅助数据的属性信息,可以提高信息提取精度。

可利用ENVI主界面->Basic Tool->layer stacking工具实现。

●空间滤波如果您的数据包含一些噪声,可以选择ENVI的滤波功能做一些预处理。

2、发现对象(一)打开数据在ENVI Zoom中打开Processing > Feature Extraction。

如图2所示,Base Image 必须要选择,辅助数据(Ancillary Data)和掩膜文件(Mask File)是可选。

这里选择ENVI 自带数据envidata\feature_extraction \ qb_colorado,它是0.6米的快鸟数据,作为Base Image特征提取数据,不增加辅助数据和掩膜文件。

图2 选择数据(二)影像分割FX根据临近像素亮度、纹理、颜色等对影像进行分割,它使用了一种基于边缘的分割算法,这种算法计算很快,并且只需一个输入参数,就能产生多尺度分割结果。

ENVI分类流程

ENVI分类流程

ENVI分类流程ENVI是一种强大的遥感图像处理和分析软件,用于从航空或卫星遥感数据中提取地物信息和进行环境分析。

ENVI涵盖了广泛的功能,包括遥感图像预处理、分类和监督分类等。

本文将详细介绍ENVI分类流程。

1.数据预处理:在进行分类之前,应该对遥感图像数据进行预处理,以减少数据中的噪声和对比度差异。

ENVI提供了各种图像预处理工具,如辐射校正、大气校正、几何校正和平均滤波等。

这些预处理步骤有助于改善图像质量,并为后续的分类准备工作奠定基础。

2.区域定义:3.光谱统计:在进行分类之前,需要对图像数据中的不同光谱进行统计分析。

ENVI 提供了光谱统计工具,可以从图像中选择感兴趣的区域,并计算选定区域的光谱统计数据,如平均值、方差和标准差等。

这些统计数据对于分类算法的选择和参数设置起着重要的作用。

4.特征选择:根据前一步骤中计算得到的光谱统计数据,可以选择合适的特征用于分类。

ENVI提供了一系列的特征选择工具,可以根据不同的统计指标和算法选择特征。

特征选择的目的是减少特征的维度,提高分类的准确性和效率。

5.分类算法选择:ENVI提供了多种分类算法,如最大似然法、支持向量机、随机森林和人工神经网络等。

在选择分类算法时,需要考虑图像数据的特征和分类的目标。

不同的算法有不同的特点和适用范围。

一些算法适用于特定类型的图像数据,而其他算法则适用于各种类型的数据。

根据需要选择合适的分类算法。

6.分类参数设置:在使用分类算法之前,需要设置一些参数,如类别数、邻域大小和迭代次数等。

这些参数的设置取决于分类的目标和图像数据的特征。

ENVI提供了参数设置界面,可以通过调整参数值来优化分类结果。

7.监督分类:ENVI提供了监督分类工具,可以使用已知的样本数据来训练分类器。

监督分类需要已经标记好的样本数据,其中包含了不同类别的像素。

根据样本数据,分类器可以学习不同类别的特征,并将未知像素分类为相应的类别。

ENVI提供了几种监督分类算法,如最大似然法和支持向量机等。

envi遥感图像处理之分类

envi遥感图像处理之分类

ENVI遥感图像处理之计算机分类一、非监督分类1、K—均值分类算法步骤:1)打开待分类的遥感影像数据2)依次打开:ENVI主菜单栏—>Classification—>Unsupervised—>K—Means即进入K均值分类数据文件选择对话框3)选择待分类的数据文件4)选好数据以后,点击OK键,进入K-Means参数设置对话框,进行有关参数的设置,包括分类的类数、分类终止的条件、类均值左右允许误差、最大距离误差以及文件的输出等参数的设置5)建立光谱类和地物类之间的联系:在新窗口中显示分类结果图:然后,打开显示窗口菜单栏Tools菜单—>Color Mapping—>Class Color Mapping…进入分类结果的属性设置对话框,在这里,可以进行类别的名称,显示的颜色等,建立了光谱类和地物类之间的联系。

设置完成以后,点击菜单栏Options—>Save Changes 即完成光谱类与地物类联系的确立6)类的合并问题:如果分出的类中,有一些需要进行合并,可按以下步骤进行:选择ENVI主菜单Classfaction—>Post Classfiction—>Combine Classes,进入待合并分类结果数据的选择对话框点击OK键,进入合并参数设置对话框,在左边选择要合并的类,在右边选择合并后的类,点击Add Combination 键即完成一组合并的设置,如此反复,对其他需合并的类进行此项操作,点击OK,出现输出文件对话框,选择输出方式,即完成了类的合并的操作。

至此,K—均值分类的方法结束。

2、ISODATA算法基本操作与K—均值分类相似。

1)进行分类数据文件的选择(依次打开:ENVI主菜单栏—>Classification—>Unsupervised —>IsoData即进入ISODA TA算法分类数据文件选择对话框,选择待分类的数据文件)2)进行分类的相关参数的设置(点击OK键以后,进入参数设置对话框,可以进行分类的最大最小类数、迭代次数等参数的设置)3)如此,光谱类的划分到此结束。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分块写HDF示例源码
算法原理,该图片是从IDL的jpeg2000help中截取,原理基本类似,依次分块写入
程序运行效果如下,将一6000*6000的数据按照tileSize = [1024, 1024]的大小写入一hdf文件中
看看最终结果文件(HDF Explorer查看)
下载 (142.06 KB)
2010/5/9 02:47
运行源码
;+
;+
;:Description:
PRO CENTERTLB, tlb, x, y, NoCenter=nocenter COMPILE_OPT StrictArr
geom = WIDGET_INFO(tlb, /Geometry)
IF N_ELEMENTS(x) EQ 0 THEN xc = 0.5 ELSE xc = FLOAT(x[0])
IF N_ELEMENTS(y) EQ 0 THEN yc = 0.5 ELSE yc = 1.0 - FLOAT(y[0])
center = 1 - KEYWORD_SET(nocenter)
;
oMonInfo = OBJ_NEW('IDLsysMonitorInfo')
rects = oMonInfo -> GetRectangles(Exclude_Taskbar=exclude_Taskbar)
pmi = oMonInfo -> GetPrimaryMonitorIndex()
OBJ_DESTROY, oMonInfo
screenSize =rects[[2, 3], pmi]
; Get_Screen_Size()
IF screenSize[0] GT 2000 THEN screenSize[0] = screenSize[0]/2 ; Dual monitors. xCenter = screenSize[0] * xc
yCenter = screenSize[1] * yc
xHalfSize = geom.Scr_XSize / 2 * center
yHalfSize = geom.Scr_YSize / 2 * center
XOffset = 0 > (xCenter - xHalfSize) < (screenSize[0] - geom.Scr_Xsize)
YOffset = 0 > (yCenter - yHalfSize) < (screenSize[1] - geom.Scr_Ysize)
WIDGET_CONTROL, tlb, XOffset=XOffset, YOffset=YOffset
END
;
; 测试分块写如HDF文件
; 读取请参考 C:\Program Files\ITT\IDL71\examples\doc\sdf\hdf_info.pro
; Author: DYQ 2010-5-9;
;
; Blog: /dyqwrp
;-
PRO WRITEREADHDF
;创建隐藏tlb,目的为了显示进度条
wtlb = WIDGET_BASE(map = 0)
WIDGET_CONTROL,wtlb,/realize
;tlb居中显示
CENTERTLB,wtlb
;创建进度条
process = IDLITWDPROGRESSBAR( TIME=0,$
GROUP_LEADER=wtlb, $
TITLE='测试分块保存HDF... 请等待')
IDLITWDPROGRESSBAR_SETVALUE, process, 0
;源数据及相关信息
image = DIST(6000)
;求出数据范围
myRANGE=[MAX(image,min=min_xray),min_xray]
dims = SIZE(image,/dimension)
;块大小
tileSize = [1024, 1024]
;初始化写入HDF数据
filename = 'c:\test.hdf'
sd_id=HDF_SD_START(filename,/CREATE)
;
sds_id=HDF_SD_CREATE(sd_id,'largeWrite', $
[dims[0],dims[1]],/FLOAT)
;
HDF_SD_SETINFO,sds_id,FILL=0.0,LABEL='data', $
UNIT='float',$
RANGE=myRANGE
;
; Write labels to each of the dimension
HDF_SD_DIMSET,HDF_SD_DIMGETID(sds_id,0),NAME='Width',LABEL='Width of data'
HDF_SD_DIMSET,HDF_SD_DIMGETID(sds_id,1),NAME='Height',LABEL='Height of data'
;xn和yn分别是行、列的初始循环次数
xn = 0
yn = 0
;计算循环次数,- 目的为了进度条正确显示
IF(dims[1]/tileSize[1] EQ 0 )AND(dims[0]/tileSize[0] EQ 0) THEN BEGIN
TotalNum = 1
ENDIF ELSE IF(dims[1]/tileSize[1] EQ 0 ) THEN BEGIN
TotalNum = FIX(dims[0]/tileSize[0])+1
ENDIF ELSE IF(dims[0]/tileSize[0] EQ 0 ) THEN BEGIN
TotalNum = FIX(dims[1]/tileSize[1])+1
ENDIF ELSE TotalNum = (FIX(dims[1]/tileSize[1])+1)*(FIX(dims[0]/tileSize[0])+1) ; 更新下进度条
IDLITWDPROGRESSBAR_SETVALUE, process, 1
DoneNum = 0
UpRate = 99/TotalNum
;分别在水平和竖直方向循环
WHILE(yn LT FIX(dims[1]/tileSize[1])) DO BEGIN
WHILE(xn LT FIX(dims[0]/tileSize[0])) DO BEGIN
;计算存储的数据块位置
loc = [tileSize[0]*xn,tileSize[1]*yn]
;提取数据相应位置数据
wtImg = image[loc[0]:(loc[0]+tilesize[0]-1),loc[1]:(loc[1]+tilesize[1]-1)] ;写入HDF文件中
HDF_SD_ADDDATA, sds_id, wtImg, $
START=loc, COUNT=tileSize
xn++
;更新进度条
DoneNum = DoneNum+1
IDLITWDPROGRESSBAR_SETVALUE, process, 1+UpRate*DoneNum
ENDWHILE
;
IF(dims[0] GT tileSize[0]*xn)THEN BEGIN
;计算存储的数据块位置
loc = [tileSize[0]*xn,tileSize[1]*yn]
;提取数据相应位置数据
wtImg = image[loc[0]:(dims[0]-1),loc[1]:(loc[1]+tilesize[1]-1)]
;写入HDF文件中,注意count的变化
HDF_SD_ADDDATA, sds_id, wtImg, $
START=loc, COUNT=SIZE(wtImg,/dimension)
ENDIF
;
xn = 0
yn++
;更新进度条
DoneNum = DoneNum+1
IDLITWDPROGRESSBAR_SETVALUE, process, 1+UpRate*DoneNum
ENDWHILE
; 最后一行不完整的部分
IF(dims[1] GT tileSize[1]*yn)THEN BEGIN
xn = 0
WHILE(xn LT FIX(dims[0] /tileSize[0])) DO BEGIN
;计算存储的数据块位置
loc = [tileSize[0]*xn,tileSize[1]*yn]
;提取数据相应位置数据
wtImg = image[loc[0]:(dims[0]-1),loc[1]:(dims[1]-1)]
;写入HDF文件中
HDF_SD_ADDDATA, sds_id, wtImg, $
START=loc, COUNT=SIZE(wtImg,/dimension)
xn++
;更新进度条
DoneNum = DoneNum+1
IDLITWDPROGRESSBAR_SETVALUE, process, 1+UpRate*DoneNum ENDWHILE
ENDIF
;关闭HDF
HDF_SD_ENDACCESS,sds_id
HDF_SD_END,sd_id
IDLITWDPROGRESSBAR_SETVALUE, process, 100
;销毁没用的
WAIT,0.3
WIDGET_CONTROL,process,/Destroy
WIDGET_CONTROL, wtlb,/DESTROY
END。

相关文档
最新文档