P1开放地理信息处理脚本系统--GIScript超图研究所王少华博士北京超图软件股份有限公司2015年9月11日P2内容提纲1.GIScript概况2.GIScript技术框架3.GIScript安装4.GIScript应用实例P31GIScript概况P4背景1)地理信息技术与IT主流技术融合•GIS与云计算、下一代互联网与物联网等新一代信息技术融合集成P5背景2)地理信息技术从专业到普及推广•大量新型GIS轻应用,弥补企业级GIS“重型坦克”式兼容性、通用性、开放性和敏捷性上不足P6GIScript诞生地理信息数据处理和分析的Python框架通过将C/C++库封装为Python脚本封装过程的技术指南和需要的前置软件的安装、配置方法P7首个开放地理信息脚本系统P8开放地理信息处理脚本系统-GIScript2015P92GIScript技术框架P10基于Linux构建开放软件生态基于Linux的GIS开放软件生态桌面系统(地图)地理信息脚本(数据处理)移动应用(移动开发)服务器(运维)云开发(测试、部署)P11高性能GIS体系架构Hadoop/Spark分布式脚本运行研究型应用探索式编程Java组件C++组件Python组件MPI/OpenMP大规模处理调度应用国防卫星安全应用P12UGC(基于标准C++)C++组件Java组件.NET组件Python组件QTiServer系列iClient系列桌面GISSMPPAndroidiOS统一GIS内核(UGC)P13PythonUGCGIScriptP14开放地理信息脚本运行框架图1云GIS框架下的GIScript开放脚本整体技术框架图P15GIScript封装流程图算法库*.cpp/*.hgcc算法动态库*.h/*.so/*.libMetaSIPMetaSIP*.misp=*.sipConfigure.py*.sip=*.cppMetaSIPmakemakeinstallPythonP163GIScript安装P17GIScript安装•安装说明–直接拷贝–设置路径–探索性编程–参考链接••封装工具•SIP–Python生成C++接口代码的工具,它与SWIG类似,但使用不同的接口格式。其思想起源于SWIG,主要是为将Qt封装为Python,它用作创建PyQT和PyKDE,并支持QTsignal/slot系统–支持Python2、3和C++的绑定–Qt、QGIS等软件使用–利用MetaSIP自动生成SIP文件–参考()P19C++-Python封装流程1.安装(Python3、SIP、MetaSIP、QScintilla2、DIP、gccxml、QT、PyQT等)2.MetaSIP创建封装工程的SIP文件3.SIP文件创建C++封装接口4.C++封装接口编译5.测试封装接口P20利用SIP封装UGC类库•安装–按照工具•MetaSIP下载地址:•PyQt4、sip、QScintilla2均可以到下载•Dip的版本•gccxml–支持python3、Linux平台支持良好–开源软件问题,版本号、兼容问题等(参考UbuntuKylin15.04上安装GIScript2015)P214GIScript应用案例P22GIScript应用开放GIS应用安装、配置等问题应用路径和版本等问题设置运行编译环境P23GIScript工程简介Sip库文件测试范例数据GIScript集成Linux64库网络分析案例Pyqt库文件Sip封装案例测试范例PyQGIS范例Window64库环境变量设置P24GIScript配置•设置环境变量–./gisrun.shP25启动运行•配置环境–启动运行•cdGIScript2015/tools•./run.shtest.pyP26导入数据•导入数据案例–导入矢量数据–导入栅格数据P27导入数据•导入数据案例–命令行•cdGIScript2015/tested•./run.sht_dataimport.pyP28数据集几何对象操作•数据集几何对象操作案例–创建点对象P29数据集几何对象操作•数据集几何对象操作案例–命令行•cdGIScript2015/tested•./run.sht_geometry.pyP30建立空间索引•建立空间索引案例–命令行•./run.shSpatialIndexTest.pyP31创建栅格数据集•创建栅格数据集案例–命令行•./run.shDatasetRasterTest.pyP32出租车轨迹数据处理•出租车轨迹数据处理示例–微软亚洲研究院出租车轨迹数据–命令行•cdGIScript2015/neta•./netarun.shImportTaxiFile.pyP33小结GIScript概况GIScript技术架构GIScript安装、封装和测试等GIScript应用实例P34谢谢!