×
PIE遥感图像处理二次开发教程

PIE遥感图像处理二次开发教程

1星价 ¥49.0 (8.3折)
2星价¥49.0 定价¥59.0
暂无评论
图文详情
  • ISBN:9787030697998
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:192
  • 出版时间:2021-09-01
  • 条形码:9787030697998 ; 978-7-03-069799-8

内容简介

本书基于PIE-SDK 6.0,以C#.NET 2013为开发语言对遥感图像处理二次开发实例进行讲解。全书共9章,包括PIE-SDK二次开发概述、PIE-SDK主要控件入门、数据基础操作、遥感数据预处理、遥感数据处理、遥感算法开发、遥感与GIS一体化开发、地图制图、系统设计与开发综合实战等内容。本书配有大量具有实际背景的编程案例,并给出实现思路和代码详解,读者可对照书中代码进行练习。本书强调实用性、实战性和全面性,案例丰富、由易及难、便于自学,展示了基于PIE-SDK进行遥感二次开发的全流程。 本书可作为高等学校遥感、地理信息科学、测绘工程等专业本科生和研究生的教材,也可作为相关专业从业人员和PIE软件用户的学习和操作指南,同时还可作为相关领域从事科学研究和工程技术开发人员的参考书。

目录

目录
序一
序二
前言
第1章 PIE-SDK二次开发概述 1
1.1 遥感图像处理二次开发技术 1
1.2 PIE-SDK简介 3
1.2.1 PIE-SDK体系结构 4
1.2.2 PIE-SDK组件库 5
1.3 PIE-SDK开发方式 11
1.4 PIE-SDK二次开发环境配置 11
第2章 PIE-SDK主要控件入门 12
2.1 地图控件 12
2.1.1 MapControl介绍 12
2.1.2 IMapControl控件接口 12
2.1.3 IMapControlEvents 事件接口 14
2.1.4 IPmdContents接口 14
2.2 图层树控件 15
2.2.1 TOCControl介绍 15
2.2.2 TOCControl控件接口 15
2.3 制图控件 16
2.3.1 PageLayoutControl 介绍 16
2.3.2 PageLayoutControl 控件的接口 16
2.3.3 IPageLayoutControlEvents事件接口 17
2.3.4 IPmdContents接口 17
2.4 其他控件 17
2.4.1 符号选择器控件 17
2.4.2 坐标系选择控件 17
2.5 综合开发环境搭建和开发实例 18
2.5.1 搭建开发环境 18
2.5.2 添加图层、删除图层、移动图层 20
2.5.3 地图放大、地图缩小、地图平移、全图显示 20
2.5.4 绘制点、线、面和矩形对象 21
2.5.5 鹰眼图 21
2.5.6 图查属性和属性查图 22
2.5.7 图层树控件和地图控件关联 22
2.5.8 图层树控件右击事件 23
2.5.9 制图控件及其操作 23
2.5.10 图层树控件右键菜单 23
2.5.11 地图控件右键菜单 23
第3章 数据基础操作 26
3.1 数据加载 26
3.1.1 加载矢量数据 26
3.1.2 加载栅格数据 27
3.1.3 加载科学数据集 29
3.1.4 加载GDB 地理数据库 30
3.1.5 加载ArcGIS在线服务 30
3.1.6 加载谷歌在线服务 31
3.1.7 加载高德在线服务 32
3.1.8 加载自定义切片服务(天地图) 32
3.1.9 加载静止卫星数据 34
3.1.10 加载Micaps数据 35
3.1.11 加载长时间序列数据 36
3.1.12 加载自定义矢量数据 37
3.1.13 加载自定义栅格数据 37
3.2 地图浏览 38
3.3 信息查看 39
3.3.1 探针工具 39
3.3.2 属性查询 39
3.3.3 图层属性 40
3.3.4 书签管理 43
3.4 空间量测 43
3.5 数据显示控制 44
3.5.1 亮度增强 44
3.5.2 对比度增强 44
3.5.3 透明度控制和标注控制 45
3.5.4 拉伸增强 45
3.5.5 亮度反转 46
第4章 遥感数据预处理 47
4.1 辐射校正 47
4.2 几何校正 51
4.3 图像融合 54
4.4 图像裁剪 55
4.5 图像拼接 57
4.6 图像镶嵌 58
第5章 遥感数据处理 60
5.1 图像分类 60
5.1.1 非监督分类 60
5.1.2 监督分类 63
5.1.3 ROI工具 65
5.1.4 分类后处理 66
5.2 图像变换 70
5.2.1 主成分变换 70
5.2.2 *小噪声变换 72
5.2.3 小波变换 74
5.2.4 傅里叶变换 75
5.2.5 缨帽变换 77
5.2.6 彩色空间变换 78
5.2.7 去相关拉伸 79
5.3 图像滤波 80
5.3.1 空域滤波 80
5.3.2 频域滤波 84
5.3.3 自定义滤波变换 86
5.4 边缘增强 88
第6章 遥感算法开发 91
6.1 算法简介 91
6.2 算法调用 92
6.3 扩展算法 93
第7章 遥感与GIS一体化开发 94
7.1 地图组织与访问控制 94
7.1.1 什么是PIE的Map 94
7.1.2 理解“层”很重要 103
7.1.3 标绘元素Element 109
7.1.4 地图事件 111
7.2 PIE-SDK插件管理 112
7.2.1 插件设计原理 112
7.2.2 Command介绍 112
7.2.3 Tool介绍 113
7.2.4 CommandControl介绍 113
7.2.5 插件自定义扩展开发 114
7.3 空间数据管理 116
7.3.1 空间数据模型 116
7.3.2 几何要素对象 117
7.3.3 空间关系运算 128
7.3.4 空间拓扑关系运算 128
7.3.5 空间坐标系 130
7.3.6 空间数据组织管理 135
7.3.7 矢量数据管理 137
7.3.8 栅格数据管理 145
7.3.9 空间数据管理开发实战 150
第8章 地图制图 151
8.1 地图标注 151
8.2 标绘元素 151
8.2.1 Element元素 152
8.2.2 点元素 153
8.2.3 线元素 153
8.2.4 面元素 153
8.2.5 文本元素 153
8.2.6 图片元素 153
8.2.7 箭头元素 154
8.3 符号样式设置 154
8.3.1 Symbol对象 154
8.3.2 点状符号样式 154
8.3.3 线状符号样式 157
8.3.4 面状符号样式 161
8.3.5 文本符号样式 165
8.3.6 符号样式管理 167
8.4 图层渲染 168
8.4.1 IFeatureRender接口 168
8.4.2 IFeatureSimpleSymbolRender接口 168
8.4.3 IFeatureUniqueValueRender接口 169
8.4.4 IFeatureClassBreaksRender接口 170
8.4.5 IRasterRender接口 171
8.4.6 IRasterRGBRender接口 172
8.4.7 IRasterStretchColorRampRender接口 172
8.4.8 IRasterColormapRender接口 173
8.4.9 IRasterClassifyColorRampRender接口 173
8.4.10 IRasterUniqueValueRender接口 173
8.4.11 IRasterDiscreteColorRender接口 174
8.4.12 IUniqueValues接口 174
8.4.13 RenderFactory类 175
8.5 专题制图 175
8.5.1 制图简介 175
8.5.2 制图模板 177
8.5.3 IPageLayout接口 177
8.5.4 IPage接口 180
8.5.5 IPageEvents接口 182
8.5.6 IBackground接口 182
8.5.7 IBorder接口 182
8.5.8 IFrameElement接口 183
8.5.9 IFrameProperties接口 183
8.5.10 IMapFrameElement接口 183
8.5.11 IPaper接口 184
8.5.12 IPrinter接口 184
8.5.13 IRulerSettings接口 185
8.5.14 IShadow接口 185
8.5.15 ISymbolBackground接口 186
8.5.16 ISymbolBorder接口 186
8.5.17 ISymbolShadow接口 186
8.5.18 IMapSurround接口 186
8.5.19 IMapSurroundFrame接口 187
8.5.20 IMarkerNorthArrow接口 187
8.5.21 INorthArrow接口 187
第9章 系统设计与开发综合实战 189
9.1 太湖蓝藻监测系统简介 189
9.2 开发思路 189
9.3 系统开发实战 189
9.4 成果展示 190
主要参考文献 193
致谢 194
展开全部

节选

第1章 PIE-SDK二次开发概述 1.1 遥感图像处理二次开发技术 遥感软件开发是软件实体化的过程,是遥感技术得以应用的重要手段。遥感数据处理软件的实现要基于专业的遥感算法理论、程序架构设计理论及一定的软件开发能力。目前常见的遥感图像处理软件按照其应用场景可以大致分为两大类:通用遥感图像处理软件、面向特定应用领域的遥感图像处理软件。通用遥感图像处理软件包含了很多通用的遥感处理功能,可应用于不同的遥感领域,如 ENVI、ERDAS IMAGINE、PCI Geomatica、PIE等。面向特定应用领域的遥感图像处理软件一般应用于某个领域、某个业务场景或者某个单位等,此类软件可以从底层开始进行开发,也可以基于通用遥感图像处理软件进行二次开发。某些通用遥感软件提供了很多基础的遥感处理功能、专业的遥感算法接口、便捷的功能调用方式,在其基础上进行二次开发可以降低遥感系统开发门槛、缩短开发周期、降低开发难度,开发人员可以根据具体业务需求快速构建解决方案,且不需要考虑底层的实现,这就是二次开发的优势。近些年随着遥感技术的不断发展,越来越多的行业领域需要遥感技术提供支持,对遥感系统的需求也日益增多,遥感业务化软件平台逐渐成为行业软件的重要组成部分。遥感软件二次开发技术作为遥感系统开发的核心技术之一,在遥感应用领域发挥了重大作用。 ERDAS IMAGINE的二次开发平台提供了一系列的客户化工具,拥有基于 SPATIAL MODELER(空间建模工具)和 C Developer's Toolkit(简称 C Toolkit)的 EML语言客户化图形用户界面。其中 SPATIAL MODELER提供了面向目标的模型语言环境,空间建模语言(SML)和模型生成器(model maker)提供了操作栅格数据、矢量数据、矩阵、表格及分级数据的函数和操作算子,在定义好模型后,将其转换为脚本形式,便可用 EML语言为其编写界面,实现功能客户化。 C Toolkit为用户提供了应用编程接口 API,以方便用户修改软件的版本或者开发一个完整的应用模块,从而扩展软件功能,满足其特定项目需要。 PCI ProSDK:超图软件与加拿大 PCI公司合作推广的 ProSDK&ProPack。PCI专业软件开发工具套装(ProSDK)为用户提供了用 C++、Java及 Python等编程语言对 Geomatica软件组件以应用程序的方式进行应用或扩展的能力。使用 ProSDK和 ProPacks能够让用户灵活自由地调用 PCI可插入函数(PPF),并允许用户自建功能模块,从而实现用户特定功能需求的自行定制。 PCISDK 包括:PCI可插入函数架构,支持执行可插入函数(PPF);通用数据库(GDB)函数,支持利用 C++或 Python语言获取多种 Geomatics文件格式和数据产品;FIMPORT和 FEXPORT的 PCI可插入函数,分别支持向 GDB读写文件操作以及通过 PCIDSK文件实现 GDB交互;连接 Geomatica Focus,利用 Focus接口实现远程过程调用方法和一系列 Focus操作,如打开 Focus窗口、装入文件和工程、执行栅格和矢量数据操作等功能。 ProPacks是对 ProSDK的扩展,包含一系列特定应用领域的 PCI可插入函数,如正射校正、影像配准、自动 DEM生成、数据融合、影像增强和企业数据库支持等。 ENVI是使用 IDL编写的功能完整的遥感图像处理平台。在 ENVI中,用户可以很方便地通过 IDL及 ENVI提供的二次开发应用程序接口(API)对 ENVI的功能进行扩展,添加新的功能函数。 ENVI平台的大部分图像处理功能以函数方式(ENVI Routines)或对象方式(ENVI Task)提供, IDL可以很方便地调用这些函数或对象,同时 IDL本身具有开发图形用户界面(GUI)的功能,开发人员可以很方便地基于 ENVI+IDL开发一个业务化平台(阎殿武,2003;韩培友,2006;董彦卿,2012)。 MapGIS二次开发组件:MapGIS是武汉中地数码科技有限公司开发的 GIS基础平台软件系统。作为一个 GIS基础平台软件, MapGIS提供了多种二次开发方式,用户可以在软件中进行二次开发,开发出适合自己需要的应用系统。 MapGIS的二次开发方式主要有 API函数、MFC类库、组件开发三种方式。 MapGIS二次开发库封装在若干动态链接库(DLL文件)中。MapGIS提供的二次开发方式采用的开发接口独立于开发工具(MFC类库开发方式除外),用户无须学习新的开发工具就可以进行 MapGIS二次开发。 PIE提供的二次开发包是 PIE-SDK。PIE-SDK类似于 ArcGIS二次开发的应用方式,在组件库划分、接口组织、方法命名方面与 ArcObject保持了很大的一致性,同时还提供了大量的帮助和示例,大大减少了二次开发人员的学习和开发成本。 PIE-SDK支持国外主流卫星数据的读取和显示,针对某些国内卫星数据(如 FY系列、HJ系列),PIE-SDK拥有其卫星轨道和载荷信息等参数,在数据处理精度方面具有优势。 PIE-SDK支持矢量、栅格、服务、专题、长时间序列等数据类型,并且支持数据的动态坐标转换。同时 PIE-SDK底层统一了 GIS和 RS的相关接口,减少了中间的数据交换流程,算法运行效率高。 PIE-SDK支持海量数据的精准显示和瓦片快速显示,且部分算法充分考虑不同算法的特性,实现系统对相关 CPU和 GPU资源的自动分配,并对资源的分配提供了控制方案。 PIE-SDK支持 C++、C#语言进行二次开发,并且支持用户通过Python、IDL、Matlab等语言直接调用图像处理算法构建解决方案,同时还拥有通用、标准的接口规范,并提供完善的帮助、示例、类图等相关资料。综上所述,基于 PIE-SDK进行二次开发可以大大降低开发难度,且能够很好地支持用户需求,如表1.1所示。 表1.1 现有二次开发软件对比表 1.2 PIE-SDK简介 PIE-SDK是航天宏图信息技术股份有限公司自主研发的、可重用的、通用的 PIE二次开发组件包,集成了专业的遥感影像处理、辅助解译、信息提取、专题图表生成、二三维可视化等功能,是一套标准 C++编写的通用二次开发组件集。底层采用“微内核+插件”式架构,功能模块之间低耦合,交互方便,可部署在 Windows、Linux、中标麒麟等跨平台操作系统中;提供多种形式的 API,支持 C++、C#、Python等主流开发语言,提供向导式二次开发功能,可快速构建遥感应用解决方案。类似于 ArcGIS等常见的 GIS、遥感软件, PIE系列软件也提供了各个阶段和层次的数据处理、加工、分析、展示工具,并组合成不同产品,这些组合产品包含了不同层级的功能,但是从底层逻辑看,都是通过 PIE-SDK所提供的组件来实现的。 PIE-SDK是一组通用跨平台嵌入式组件,它是 PIE系列软件的底层组件,用来构建定制和桌面数据处理应用程序,或是向原有的应用程序增加新的功能。通过 PIE-SDK构建的应用,既可以以 GIS功能为核心,也可以以遥感数据处理为核心,该特点使 PIE-SDK特别适合构建遥感与 GIS一体化的应用。 PIE-SDK目前包含 C++和.NET两个版本。两个版本都支持插件式开发和组件式开发。本书所述实例代码为 Microsoft的.NET Framework下的.NET版本,以 C#语言实现,如果选用 C++版本进行开发可参考官方帮助文档,相关资源获取请参见本章1.4.2节。 PIE-SDK功能特点包括: (1)支持可见光、红外、多光谱、合成孔径雷达(SAR)、激光雷达(LiDAR)等多源卫星遥感数据处理能力。 (2)支持多源海量数据的读取、显示与漫游;支持长时间序列数据的动态展示;支持数据格式的快速扩展。 (3)具有面向对象自动分类、智能信息化提取能力。 (4)具有多源海量数据的共享分发和二三维一体化显示、查询与分析能力。 (5)具有 CPU-GPU协同计算能力。 (6)便捷的向导式二次开发能力。 (7)支持算法工作流定制功能。 (8)自主可控、内核精简、支持跨平台、支持主流开发语言。 1.2.1 PIE-SDK体系结构 开发者使用 PIE-SDK进行应用的二次开发,需要用到 PIE-SDK提供的各类支持开发任务的资源,包括多种应用程序接口、类、方法、类型,这些资源以组件库的方式提供给开发者。组件库采用分层架构,将功能相近的对象归于某一组件库中或者视为组织到某个命名空间中,从而方便开发者调用。在组件库划分、接口组织、方法命名上和 ArcObject保持了很大的一致性,减少了开发者学习的成本。此外,提供了大量的帮助和示例,能够让开发人员快速上手。 从 PIE-SDK体系结构中可以看出各层之间向下依赖,这种体系结构具有迁移方便、自由聚合、即插即用、易于重构和复用性高等特点,如图1.1所示。 图1.1 PIE-SDK体系结构图 (1)基础层:操作系统和依赖的第三方库。目前 PIE-SDK For .NET只支持 Windows操作系统下 Visual Studio 2010及更高版本集成开发环境(integrated development environment, IDE)进行二次开发。 (2)通用层: Utility库是 PIE-SDK框架中*底层的一个库,提供了可以被其他组件库应用的对象和方法。例如, PIE-SDK基础对象类 PIE Object、通用数学运算类、数值单位转换等。 (3)数据层:包括 Geometry库和 DataSource库,这两个库都是与数据相关的库。 Geometry库包含了核心几何空间对象的定义,如点、线、面等,除此之外,该库还包含了空间参考对象的定义。DataSource库包含的对象是用于读取和操作地理数据库的,这个库中包含了核心的地理数据对象,如 FeatureDataset要素数据集对象、 Feature要素对象、 Field字段对象、 RasterDataset栅格数据集对象、 RasterBand栅格波段对象、 ColorTable颜色表对象等。 (4)显示层:显示层包含 Display库和 Carto库,定义了地图的显示样式和显示方式。 Display库包含了显示图形所需要的对象,包括 Symbol符号对象和 DisplayTransformation显示转换对象。 Symbol符号对象用于修饰几何形体的表现形式,任何一种几何形体都必须使用某种 Symbol符号才能显示在视图上。 DisplayTransformation显示转换对象用于控制地图坐标和屏幕坐标之间的转换,维护地图坐标和屏幕坐标之间的映射关系。 Carto库包含了为数据表达而服务的各种组件对象,如 MapDocument地图文档、 PageLayout布局视图、 Map地图、 Layer图层、 Render渲染、 Element元素等,它们是数据层的数据和显示层的显示方式相结合的产物,并且不同的对象之间通过一定的逻辑关系关联起来,组成地图的各个要素,直观地来表达现实世界。 (5)组件层:包括 SystemUI和 AxControls库,它们是用 PIE-SDK做二次开发*常用的两个库。SystemUI库定义了被 PIE用户界面组件所使用的对象,如 ICommand命令接口、 ICommandControl命令组件接口、 ITool工具接口、 ITrackerCancel跟踪取消接口等。 AxControls库包含了在程序开发中可以使用的可视化组件对象: MapControl(地

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航