论文部分内容阅读
长久以来遥感软件商业市场都是由商业遥感软件占据。近年来,由于QGIS等开源遥感影像处理软件及各种开源程序库的出现和发展,这种情况出现了改变,遥感用户及科研人员可以选择利用这些开源遥感软件进行自主开发,开发出适用于自身需求且免费的遥感处理系统。相较于商业软件,开源遥感图像处理软件不用过多地考虑软件成本、数据兼容、功能复杂等问题。本文在此背景下,基于实验室的具体需求,利用开源GIS软件QGIS的框架作为底层函数库实现了一个跨平台遥感影像处理系统,从设计思路、系统架构、系统功能等方面进行了详细分析,阐述了各个遥感影像处理功能的实现和集成原理,同时采用分块技术和构建影像金字塔的方法来提升系统显示海量遥感数据的速度,并利用多线程并行的方式对传统的金字塔生成算法进行了改进,有效地提升了影像金字塔的构建速度。具体研究工作如下:(1)对系统的界面、架构及缓存方式进行总体设计,并根据各个功能模块的特点定义系统接口,系统和功能模块之间通过接口进行交互,实现“高内聚低耦合”的系统。通过建立插件管理器对各个插件模块进行管理,定义插件接口,实现动态加载和卸载插件模块的方式。(2)采用分块和分层的方式对海量遥感影像数据进行结构组织,以优化系统对遥感影像数据的读取速度。针对传统的金字塔构建算法在对海量遥感影像数据生成金字塔的过程中耗时较长的问题,利用多核计算机的多线程并行计算方式对传统的金字塔生成算法进行改进,将串行的传统算法改为并行方式。经测试,该改进算法对金字塔的构建效率能够提升30%以上。(3)对异步缓存调度策略和遥感影像的数据特点进行研究,在系统中通过多线程异步调度的方式实现了影像数据的加载和显示,并实现了部分常用的影像显示控制功能。研究了遥感影像处理的相关理论,实现了两个遥感影像处理功能模块(几何校正模块和K均值分类模块),并根据系统定义的接口将这两个模块集成到系统平台中。(4)通过对Windows和Linux两种环境下程序代码字段和文件配置等差异的研究分析,使用qmake工具,并采用界面和功能分离、条件编译等方法实现了系统源代码级别的跨平台特性。