Download presentation
Presentation is loading. Please wait.
Published byฤดี สโตเกอร์ Modified 5年之前
1
ENVI-IDL可视化程序设计 楚雄师范学院地理科学与旅游管理学院 杨云源 QQ:
2
目 录 第一章 ENVI-IDL开发环境 第二章 数据类型、运算符与表达式 第三章 选择结构与循环结构 第四章 过程与函数 第五章 直接图形法绘图 第六章 对象图形法绘图 第七章 文件访问 第八章 地图输出 第九章 界面与事件 第十章 IDL访问数据库 第十一章 图像处理 第十二章 ENVI-IDL编程与RS-GIS混合编程
3
第八章 地图输出 8.1地图输出概述 地图文件包括栅格图像文件、矢量地图文件。栅格图像文件、矢量地图文件的输入方法已经介绍,本节主要介绍地图输出与地图叠加输出的方法。 当不考虑栅格地图文件(如tiff格式、hdf格式、ENVI标准格式等)的坐标位置信息,可把栅格地图文件看成图像。图像文件的输出可以采用tv命令、tvscl 命令、image函数、对象图形法的IDLgrImage对象输出。
4
第八章 地图输出 IDL常用的矢量地图文件有shapefile、evf格式。以shapefile文件为例,要输出矢量地图文件,先使用二进制文件访问法或对象图形法的IDLffShape对象读取各个实体的坐标或坐标数组,转换到设备坐标或归一化坐标,再用输出点、线、面的命令逐一输出各个实体。 栅格图像与矢量地图叠加,需要两者都有相同的坐标、投影。若坐标、投影不相同,应提前进行转换。辅助图形要素主要是坐标轴、等值线、点、曲线、多边形等要素。栅格地图和矢量地图自带的坐标可视为数据坐标,数值较大,建议输出时采用设备坐标和归一化坐标。
5
第八章 地图输出
6
第八章 地图输出 8. 2 使用直接图形法输出图像 8.2.1 使用TV、TVSCL命令输出图像
7
第八章 地图输出
8
第八章 地图输出 8.2.2 使用IMAGE函数输出图像 获取图像数据的数组后,可采用image函数来输出图像。
格式:result=image(data[,关键字=值])
9
第八章 地图输出
10
第八章 地图输出 8.2.3 栅格图像、矢量地图与辅助图形要素叠加输出 1、栅格地图叠加坐标轴
使用tv、tvscl显示图像后,可继续在图面添加其它辅助信息,如文本、坐标轴、颜色棒等。
11
第八章 地图输出
12
第八章 地图输出 2、栅格地图叠加等高线 DEM叠加等高线时,等高线提取可以使用contour命令。tvscl命令默认的输出位置为左下角,而contour等输出的默认位置不在左下角。这种情况下,图像和图形叠加位置错位,需要对绘图起点进行调整。
13
第八章 地图输出
14
第八章 地图输出
15
第八章 地图输出 3、栅格地图叠加 若叠加的栅格地图数据有相同的投影和坐标,但是仅有部分重叠。则可以使用tvscl命令输出第一个栅格地图到默认的显示范围。然后按照两个图的左下角x、y的最小值和右上角x、y的最大值确定第二个栅格地图的显示范围(使用像素坐标)。该方法支持有相同投影、有重叠的栅格地图的显示。
16
第八章 地图输出 图8.8 Landsat数据和DEM数据叠加流程图
17
第八章 地图输出
18
第八章 地图输出 【例8.5】已有带投影和坐标的Tiff格式Landsat数据和Aster DEM数据,使用直接图形法将DEM、Landsat数据和等高线叠加显示在默认绘图范围。
19
第八章 地图输出
21
第八章 地图输出
22
第八章 地图输出 4、矢量地图叠加栅格地图 若矢量地图与栅格地图都有相同的投影和坐标,则可以实现叠加。以设备坐标法叠加shapefile和栅格地图为例:读入栅格地图,获取左下角和右上角的坐标值(边界盒),输出图像。读入shapefile文件时,根据本书介绍的shapefile文件的访问方法打开文件。然后循环读出shapefile文件每个实体(Entity)的坐标(点文件)或坐标数组(线文件、面文件),将坐标数据转换为相对于栅格地图左下角起点的设备坐标。对应地用绘制点、线、面的方法绘制地图,直到循环结束。绘图时,若shapefile文件边界超出栅格地图边界,则对栅格地图和shapefile坐标点同时做平移处理。
23
第八章 地图输出
24
第八章 地图输出
25
第八章 地图输出 8. 3 使用对象图形法输出栅格图像和矢量地图
使用IDLgrImage对象可实现图像输出。此部分内容在对象图形法中已经介绍,不再赘述。此处重点讨论基于对象图形法实现栅格图像和矢量地图叠加显示。图8.15是基于对象图形法的栅格图像和矢量地图叠加示意。 总体而言,采用对象图形法或直接图形法绘图时,数据读入、数据坐标转换都是相同的。不同的的是输出时,直接图形法使用函数或过程,对象图形法需使用对象。 对象图形法实现图像叠加,使用原子对象IDLgrImage“存储”图像文件,每个原子对象对应一个IDLgrModel对象或者所有原子对象对应一个IDLgrModel对象;使用obj_new函数创建对象后,为每个对象添加子对象(使用add方法);然后通过setproperty方法或getproperty方法实现对对象属性的操作;直到最终销毁对象。
26
第八章 地图输出
27
第八章 地图输出
28
当叠加的的栅格图像和矢量地图的投影、坐标相同,边界不一致时分三种情况处理:
①、栅格图像叠加栅格图像。先显示底图,再根据这些图像的左下角,右上角坐标计算出待叠加图像相对于底图的偏移值,计算出待叠加图像相对于底图的显示尺寸。 ②、栅格图像叠加矢量地图。先显示栅格底图,计算出矢量地图上每个点(面看成是闭合线、线看成是点对)相对于底图左下角的位置。 ③、矢量图叠加矢量图与栅格图叠加矢量图类似。
29
第八章 地图输出
Similar presentations