CN106095431A - 基于Python的3DGIS系统及其快速开发的方法 - Google Patents

基于Python的3DGIS系统及其快速开发的方法 Download PDF

Info

Publication number
CN106095431A
CN106095431A CN201610401943.4A CN201610401943A CN106095431A CN 106095431 A CN106095431 A CN 106095431A CN 201610401943 A CN201610401943 A CN 201610401943A CN 106095431 A CN106095431 A CN 106095431A
Authority
CN
China
Prior art keywords
python
module
3dgis
threedimensional model
spatial analysis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610401943.4A
Other languages
English (en)
Inventor
刘振平
刘建
贺怀建
卞康
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Institute of Rock and Soil Mechanics of CAS
Original Assignee
Wuhan Institute of Rock and Soil Mechanics of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Institute of Rock and Soil Mechanics of CAS filed Critical Wuhan Institute of Rock and Soil Mechanics of CAS
Priority to CN201610401943.4A priority Critical patent/CN106095431A/zh
Publication of CN106095431A publication Critical patent/CN106095431A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于Python的3DGIS系统及其快速开发的方法,涉及计算机软件开发技术领域。本系统是将三维模型构建模块(20)、空间分析模块(30)、用户界面模块(40)和数据库模块(50)通过Python语言程序模块(10)集成,借助计算机硬件(60)形成3DGIS软件系统(70)。本方法包括:①基于多语言集成的三维模型构建模块的实现方法;②基于GRASS GIS后台调用的空间分析模块的实现方法;③基于Python语言“粘合剂”的3DGIS平台开发方法。本发明简化了软件开发过程,减轻了开发者工作负担;弥补了目前3DGIS系统从底层开发与二次开发两种方法的不足;适用于3DGIS系统平台的快速开发。

Description

基于Python的3DGIS系统及其快速开发的方法
技术领域
本发明涉及计算机软件开发技术领域,尤其涉及一种基于Python的3DGIS系统及其快速开发的方法,具体涉及三维地理信息系统、三维地质建模以及模型空间数据分析。
背景技术
目前,随着计算机、图形处理技术的发展,GIS技术在多个领域中得到推广与应用。相比二维GIS,三维GIS为空间信息的展示提供了更丰富、逼真的平台,使人们将抽象难懂的空间信息可视化和直观化,进而做出准确而快速的判断,并且三维GIS在可视化方面有着得天独厚的优势。然而3DGIS需要与具体领域中关注的特定问题进行结合,才能发挥强大的功能。因此,有必要研究一种3DGIS系统平台的快速开发方法。
在3DGIS系统开发中,一种方式是采用C或者C++等语言从底层开发。这种方法开发难度大,耗时长,对于仅仅采用3DGIS技术解决某一领域的专业问题而言,效率较低;另一种方式,基于已有的GIS软件平台或者提供的一些控件(如:MapX,MapObject等)进行二次开发,这种方法虽然起点高,但是在程序编写中无法触及软件或者控件的源代码,程序操控的灵活性差,根据具体领域需要解决的问题,软件将来进一步深入拓展的空间不足。
鉴于此,本发明基于Python语言,将三维建模、数学计算以及GIS等开源模块进行集成与耦合,可直接在已有源代码基础上进行开发,弥补了目前从底层开发与二次开发两种方法的不足,为某一专业领域3DGIS技术的应用提供了一种系统平台快速开发的方法。
发明内容
本发明的目的在于克服现有针对特定专业领域3DGIS软件底层开发中效率较低,二次开发程序操控灵活性差等不足,提供一种基于Python的3DGIS系统及其快速开发的方法。
本发明解决其技术问题所采用的技术方案是:
基于Python语言,通过调用Python开源库、Python动态链接库以及VTK开源库,实现三维建模基础算法;通过Python语言在后台运行GRASS GIS软件,形成系统的空间分析功能;将数据库、用户界面开源模块等进行耦合,完成3DGIS系统平台的建立。
具体地说:
一、基于Python的3DGIS系统(简称系统)
本系统包括Python语言程序模块、三维模型构建模块、空间分析模块、用户界面模块、数据库模块、计算机硬件和3DGIS软件系统;
将三维模型构建模块、空间分析模块、用户界面模块和数据库模块通过Python语言程序模块集成,借助计算机硬件形成3DGIS软件系统。
二、一种基于Python的3DGIS系统平台快速开发方法(简称方法)
本方法包括以下步骤:
①基于多语言集成的三维模型构建模块的实现方法
在三维模型构建模块中通过Python开源库中的Scipy与Numpy数学计算模块,实现三维建模中基本数学运算功能;
将具有三维建模常用算法功能的C、C++模块通过Swig与VC++编译成Python的动态链接库;
将具有三维建模常用算法功能的Fortran模块通过f2py开源软件编译成Python的动态链接库;
通过Python语言直接调用Python开源库、Python的动态链接库以及VTK开源库,形成多语言集成的三维模型构建模块;
②基于GRASS GIS后台调用的空间分析模块的实现方法
通过Python语言在后台运行GRASS GIS软件,并直接调用GRASS GIS开源库提供的相应功能,实现系统的空间分析模块;
③基于Python语言“粘合剂”的3DGIS平台开发方法
从数据库模块中提取Access与PostgreSQL中基础数据;
通过调用三维模型构建模块中Python开源库、Python动态链接库以及VTK开源库,实现三维模型构建方法;
调用GRASS GIS开源库,针对生成的三维模型进行空间分析;
调用用户界面模块中wxPython界面库与Matplotlib图形库,实现对三维模型以及空间分析结果的三维显示与曲线统计;
将通过Python语言程序模块耦合形成的系统安装在计算机硬件中,形成3DGIS软件系统。
本发明具有下列特点:
①基于开源软件模块构建3DGIS系统平台,实现了基于底层的开发方法,提高了软件开发效率;
②采用Python语言直接调用GRASS GIS空间分析模块,并对C、C++以及Fortran模块进行“粘合”,提高了计算效率;
③在程序编写中能够直接修改所调用开源软件模块的源代码,提高了程序开发的灵活性;
④通过Python对不同语言编写的程序模块进行调用,不同于采用其它单一语言的开发模式与开发环境。
依据上述特点和实际应用,本发明收到下列的有益效果:
①简化了软件开发过程,减轻了开发者工作负担;
②弥补了目前3DGIS系统从底层开发与二次开发两种方法的不足;
③适用于3DGIS系统平台的快速开发。
附图说明
图1是本系统的结构方框图。
其中:
10—Python语言程序模块;
20—三维模型构建模块;
21—Python开源库;
211—Scipy;212—Numpy;
22—Python动态链接库;
221—C、C++模块;222—Fortran模块;
23—VTK模块;
30—空间分析模块;
31—GRASS GIS开源库;
40—用户界面模块;
41—wxPython界面库;42—Matplotlib图形库;
50—数据库模块;
51—Access;52—PostgreSQL;
60—计算机硬件;
70—3DGIS软件系统。
具体实施方式
以下结合附图进行详细说明:
一、系统
1、总体
如图1,本系统包括Python语言程序模块10、三维模型构建模块20、空间分析模块30、用户界面模块40、数据库模块50、计算机硬件60和3DGIS软件系统70;
将三维模型构建模块20、空间分析模块30、用户界面模块40和数据库模块50通过Python语言程序模块10集成,借助计算机硬件60形成3DGIS软件系统70。
2、功能块
1)Python语言程序模块10
Python语言程序模块10包括用Python语言编写的对计算效率要求不高的常规性程序代码,同时还包含对各个模块进行“粘合”与数据传输的接口程序模块。
2)三维模型构建模块20
三维模型构建模块20包括Python开源库21、Python动态链接库22以及VTK模块23;
Python开源库21包括Scipy211与Numpy212,形成三维建模基础算法功能;
Python动态链接库22包含C、C++模块221与Fortran模块222,用于三维建模中对计算效率要求较高的矩阵计算、插值和裁剪运算功能;
VTK模块23包含三维建模与显示的一些重要算法。
3)空间分析模块30
空间分析模块30包括GRASS GIS开源库31,GRASS GIS开源库31包含了GIS中针对栅格与矢量地图进行空间分析的所有功能。
4)用户界面模块40
用户界面模块40包括wxPython界面库41与Matplotlib图形库42;
wxPython界面库41用于对三维模型与空间分析结果进行显示;
Matplotlib图形库42能够生成结果数据的分析曲线图。
5)数据库模块50
数据库模块50包括Access51与PostgreSQL52,主要用于系统数据存储。
6)计算机硬件60
计算机硬件60为软件安装载体。
7)3DGIS软件系统70
3DGIS软件系统70为最终形成的3DGIS软件系统。
二、方法
1、基于多语言集成的三维模型构建模块的实现方法
1)下载Python、swigwin、Scipy与Numpy模块并安装;
2)通过f2py、swigwin与VC++将调试好的Fortran或者C/C++代码,生成Python动态链接库(假设为test.pyd);
3)下载并安装便于Python调用的VTK模块vtkPython;
4)在Python程序中通过程序代码“import scipy,numpy,test,vtk”
即可实现对三维模型构建模块20中Python开源库21、Python动态链接库22以及VTK模块23的调用。
2、基于GRASS GIS后台调用的空间分析模块的实现方法
1)主要调用程序代码如下:
import os,sys
GrassGISbase="C:\Program Files(x86)\GRASS GIS 7.0.2"
os.environ['GISBASE']=GrassGISbase
os.environ['PATH']+=os.pathsep+os.path.join(GrassGISbase,
'extrabin')
home=os.path.expanduser("~")
print"home",home
os.environ['PATH']+=os.pathsep+os.path.join(home,'AppData',
'Roaming','grass7','addons','scripts')
gpydir=os.path.join(GrassGISbase,"etc","python")
sys.path.append(gpydir)
GrassGISdb=os.path.join('C:Users','user','Documents',
'grassdata')
location="AP_newLocation"
mapset="Meihuashan"
import grass.script as gscript
gsetup.init(GrassGISbase,GrassGISdb,location,mapset)
2)在Python程序中通过以上代码可控制GRASS GIS开源库31在后台运行,实现三维模型的空间分析功能。
3、基于Python语言“粘合剂”的3DGIS平台开发方法
1)下载PostgreSQL、wxPython以及Matplotlib并安装:
2)在Python程序中输入“import win32com.client,pg”;
3)通过win32com.client.Dispatch('ADODB.Connection')与pg.connect(dbname=”)可实现对数据库Access51与PostgreSQL52的操作;
4)在Python程序中输入“import wx,matplotlib”后可实现在Python程序中调用wxPython界面库41与Matplotlib图形库42的目的;
5)将通过Python语言程序模块10耦合形成的系统安装在计算机硬件60中,形成3DGIS软件系统70。

Claims (7)

1.一种基于Python的3DGIS系统,其特征在于:
包括Python语言程序模块(10)、三维模型构建模块(20)、空间分析模块(30)、用户界面模块(40)、数据库模块(50)、计算机硬件(60)和3DGIS软件系统(70);将三维模型构建模块(20)、空间分析模块(30)、用户界面模块(40)和数据库模块(50)通过Python语言程序模块(10)集成,借助计算机硬件(60)形成3DGIS软件系统(70)。
2.按权利要求1所述的基于Python的3DGIS系统,其特征在于:
所述的Python语言程序模块(10)包括用Python语言编写的对计算效率要求不高的常规性程序代码,同时还包含对各个模块进行“粘合”与数据传输的接口程序模块。
3.按权利要求1所述的基于Python的3DGIS系统,其特征在于:
所述的三维模型构建模块(20)包括Python开源库(21)、Python动态链接库(22)以及VTK模块(23);
Python开源库(21)包括Scipy(211)与Numpy(212),形成三维建模基础算法功能;
Python动态链接库(22)包含C、C++模块(221)与Fortran模块(222),用于三维建模中对计算效率要求较高的矩阵计算、插值和裁剪运算功能;
VTK模块(23)包含三维建模与显示的一些重要算法。
4.按权利要求1所述的基于Python的3DGIS系统,其特征在于:
所述的空间分析模块(30)包括GRASS GIS开源库(31),GRASS GIS开源库(31)包含了GIS中针对栅格与矢量地图进行空间分析的所有功能。
5.按权利要求1所述的基于Python的3DGIS系统,其特征在于:
所述的用户界面模块(40)包括wxPython界面库(41)与Matplotlib图形库(42);
wxPython界面库(41)用于对三维模型与空间分析结果进行显示;
Matplotlib图形库(42)能够生成结果数据的分析曲线图。
6.按权利要求1所述的基于Python的3DGIS系统,其特征在于:
所述的数据库模块(50)包括Access(51)与PostgreSQL(52),用于系统数据存储。
7.基于权利要求1-6所述基于Python的3DGIS系统快速开发的方法,其特征在包括下列步骤:
①基于多语言集成的三维模型构建模块的实现方法
在三维模型构建模块(20)中通过Python开源库(21)中的Scipy(211)与Numpy(212)数学计算模块,实现三维建模中基本数学运算功能;
将具有三维建模常用算法功能的C、C++模块(221)通过Swig与VC++编译成Python的动态链接库(22);
将具有三维建模常用算法功能的Fortran模块(222)通过f2py开源软件编译成Python的动态链接库(22);
通过Python语言直接调用Python开源库(21)、Python的动态链接库(22)以及VTK开源库(23),形成多语言集成的三维模型构建模块;
②基于GRASS GIS后台调用的空间分析模块的实现方法
通过Python语言在后台运行GRASS GIS软件,并直接调用GRASS GIS开源库(31)提供的相应功能,实现系统的空间分析模块(30);
③基于Python语言“粘合剂”的3DGIS平台开发方法
通过Python语言程序模块(10)从数据库模块(50)中提取Access(51)与PostgreSQL(52)中基础数据;
通过调用三维模型构建模块(20)中Python开源库(21)、Python动态链接库(22)以及VTK开源库(23),对获得的基础数据进行处理,实现三维模型构建方法;
通过Python语言程序模块(10)调用GRASS GIS开源库(31),针对生成的三维模型进行空间分析;
通过Python语言程序模块(10)调用用户界面模块(40)中wxPython界面库(41)与Matplotlib图形库(42),实现对三维模型以及空间分析结果的三维显示与曲线统计;
将通过Python语言程序模块(10)耦合形成的系统安装在计算机硬件(60)中,形成3DGIS软件系统(70)。
CN201610401943.4A 2016-06-08 2016-06-08 基于Python的3DGIS系统及其快速开发的方法 Pending CN106095431A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610401943.4A CN106095431A (zh) 2016-06-08 2016-06-08 基于Python的3DGIS系统及其快速开发的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610401943.4A CN106095431A (zh) 2016-06-08 2016-06-08 基于Python的3DGIS系统及其快速开发的方法

Publications (1)

Publication Number Publication Date
CN106095431A true CN106095431A (zh) 2016-11-09

Family

ID=57228838

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610401943.4A Pending CN106095431A (zh) 2016-06-08 2016-06-08 基于Python的3DGIS系统及其快速开发的方法

Country Status (1)

Country Link
CN (1) CN106095431A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463614A (zh) * 2017-06-30 2017-12-12 中国科学院寒区旱区环境与工程研究所 基于建模框架的生态水文模型构建与参数模拟方法
CN108304174A (zh) * 2017-08-22 2018-07-20 北京智行鸿远汽车有限公司 一种基于numpy的高精度C语言算法验证方法
CN109446286A (zh) * 2018-09-28 2019-03-08 山东中创软件商用中间件股份有限公司 一种高速公路路网图的可视化方法及装置
CN112527268A (zh) * 2020-12-16 2021-03-19 极弦科技有限公司 一种面向高性能复杂测试测量应用的高效率软件开发模式和架构
CN112560260A (zh) * 2020-12-11 2021-03-26 博迈科海洋工程股份有限公司 基于三维模型下电缆材料参数快速显示方法
CN113470178A (zh) * 2020-12-15 2021-10-01 北京构力科技有限公司 生成三维建筑模型的方法、电子设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1746627A (zh) * 2004-09-10 2006-03-15 旺玖科技股份有限公司 三维电子地图系统及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1746627A (zh) * 2004-09-10 2006-03-15 旺玖科技股份有限公司 三维电子地图系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘振平等: "基于Python 的三维建模可视化系统的研究", 《岩土力学》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463614A (zh) * 2017-06-30 2017-12-12 中国科学院寒区旱区环境与工程研究所 基于建模框架的生态水文模型构建与参数模拟方法
CN108304174A (zh) * 2017-08-22 2018-07-20 北京智行鸿远汽车有限公司 一种基于numpy的高精度C语言算法验证方法
CN109446286A (zh) * 2018-09-28 2019-03-08 山东中创软件商用中间件股份有限公司 一种高速公路路网图的可视化方法及装置
CN109446286B (zh) * 2018-09-28 2022-01-04 山东中创软件商用中间件股份有限公司 一种高速公路路网图的可视化方法及装置
CN112560260A (zh) * 2020-12-11 2021-03-26 博迈科海洋工程股份有限公司 基于三维模型下电缆材料参数快速显示方法
CN113470178A (zh) * 2020-12-15 2021-10-01 北京构力科技有限公司 生成三维建筑模型的方法、电子设备和存储介质
CN112527268A (zh) * 2020-12-16 2021-03-19 极弦科技有限公司 一种面向高性能复杂测试测量应用的高效率软件开发模式和架构
CN112527268B (zh) * 2020-12-16 2023-10-27 成都立思方信息技术有限公司 一种面向高性能复杂测试测量应用的软件开发系统

Similar Documents

Publication Publication Date Title
CN106095431A (zh) 基于Python的3DGIS系统及其快速开发的方法
KR102637513B1 (ko) 애니메이션 메이킹 방법 및 장치, 컴퓨팅 디바이스 및 저장 매체
CN102622476B (zh) 用于建筑算量领域的cad图纸整合系统
WO2016082311A1 (zh) 生成数控机床加工控制数据的系统及方法
CN102054217B (zh) 基于元模型的工具中的实体变形
CN106681718A (zh) 一种基于工具集的桌面端插件框架及实现方法
CN109710220B (zh) 关系型数据库查询方法、装置、设备及存储介质
CN105339889A (zh) 用于计算机应用的语言翻译本地化的技术
US8413109B2 (en) Systems and methods for metamodel transformation
CN108536964A (zh) 存储介质、卫星星座覆盖性能仿真分析方法及其系统
CN109196476A (zh) 共享垃圾收集器的不同类型图之间的无缝高性能互操作性
CN107608663A (zh) 一种移动应用插件及移动应用的开发方法及装置
WO2023035935A1 (zh) 数据处理方法、装置、电子设备和存储介质
WO2017035748A1 (zh) 一种代码编译方法及代码编译器
US8732655B2 (en) Systems and methods for metamodel transformation
US20130019225A1 (en) Incremental Inferences for Developing Data Models
CN114356341A (zh) 一种数据处理方法、装置、设备、存储介质及产品
CN102637123B (zh) 共同映射通信算子
CN105260177A (zh) 基于SiPESC平台的Python扩展模块开发方法
CN103677767A (zh) 一种处理应用程序的方法、操作系统及电子设备
CN112256252A (zh) 接口生成方法、装置、存储介质及电子设备
CN115794400A (zh) 深度学习模型的内存管理方法、装置、设备及存储介质
CN115098082A (zh) 基于Jenkins插件的流水线脚本生成方法、系统、设备及介质
CN114218261A (zh) 数据查询方法、装置、存储介质以及电子设备
CN106126056A (zh) 一种基于PowerPoint的幻灯片自动创建方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20161109