文档章节

GIScript2015的第一个入门教程-使用UbuntuKylin15.04

openthings
 openthings
发布于 2015/07/27 14:38
字数 953
阅读 488
收藏 1

    GIScript2015是一个通用的GIS脚本库,可以帮助进行地理空间数据的处理和分析,提高数据处理的效率,帮助进行地理科学的研究。GIScript2015是一个开源工程,已建立Git版本库和虚拟Team、微信群(两个:GIScript语言、GIScript开发者)。

    GIScript2015与GIScript的区别是2015版完全采用SIP进行封装,与Qt和PyQt具有较好的相容性,接口可以与C++保持一致,从而减少了封装维护资源和增加了易用性。GIScript2015现已完成Windows/Linux的64位基础版本,可运行于UbuntuKylin15.04。

    GIScript2015可以支持Python并行框架Celery(本人已测试通过),从而实现分布式的数据处理调度操作。这个跟Hadoop和Spark应该也可以挂接上去运行的,有兴趣的同学可以试试。另外,这个里面的UGC基础库可以支持MongoDB,这个对大数据的存储和处理可是个利器。

    现在,我们开始一个简单的例程,感受一下GIScript运行的过程,体验一下使用脚本的“懒人模式”。

    GIScript完全是绿色软件、拷贝即用,不需要特殊的复杂安装,使用Python3。

    但是呢,UGC的SIP封装由于全部开放源码出来了,如果是获取的原始工程,需要自己先进Linux64-gcc4.9/SIP/UGC这个目录运行make/make install进行编译和安装(如果是编好的特定操作系统的版本,那么拷贝就可以用的)。由于使用sip封装,因此需要先编译安装sip才行的哦。

    SIP和PyQt的安装参考http://my.oschina.net/u/2306127/blog/484061。需要了解SIP封装的详细的内容可以看这里:http://my.oschina.net/u/2306127/blog/470102。这是一个开放的支持库模式,自己也可以写一个C++的库,参考这个封装过程做成Python来使用,把不同的功能集成到一起。

    进系统目录。

#运行gis.sh,进入Python3
./gis.sh

    或者,直接运行一个测试。

./gisrun.sh /testbed/test.py

    下面我们先看一下gisrun.sh的内容。

#!/bin/sh

echo "========================================================"
echo "*GIScript---Scripting The World.                       *"
echo "********************************************************"
echo "*GIScript Starting...                                  *"
echo "*Project: https://git.oschina.net/supergis/GIScript2015*"
echo "*DevTeam: https://team.oschina.net/GIScript/tweet      *"
echo "========================================================"

#set the enviroment-variable.
export SUPERMAP_HOME=/home/supermap/GIScript/GIScript2015/Linux64-gcc4.9
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SUPERMAP_HOME/Bin

#start run python script.
if [ x$1 != x ]
then
    echo "Run file:" $1
    python3 $1
else
    echo "Usage: gisrun.sh myprocess.py"
fi

这个脚本将设置环境变量,然后启动python3去运行一个Python文件。

如果GIScript2015的安装路径与上面的SUPERMAP_HOME不同,修改改路径即可。

我们再来看看test.py里面的内容:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import sys
import os
import PyUGC
from PyUGC import UGC
from PyUGC import OGDC

if __name__=='__main__':
    ds = UGC.UGDataSourceManager.CreateDataSource(UGC.UDB)
    con = ds.GetConnectionInfo()
    strTemp = OGDC.OgdcMBString("/home/supermap/GIScript/GIScript2015/data/world.udb")
    OGDC.MBString2Unicode(strTemp, con.m_strServer)
    bOpen = ds.Open()
    if bOpen[0] == 1:
        print("打开数据源成功!!")
    else:
        print("打开数据源失败!!")

    strFileName = OGDC.OgdcUnicodeString()
    strTemp = OGDC.OgdcMBString("/home/supermap/GIScript/GIScript2015/data/grid_Int32.grd")
    OGDC.MBString2Unicode(strTemp, strFileName)
    importParams = UGC.UGExchangeParamsManager.MakeImportParams(UGC.UGFileType.AIASCIIGrid)
    importParams.SetImportMode(UGC.UGImportParams.ModeGrid)
    importParams.SetFilePathName(strFileName)
    
    dataExchange = UGC.UGDataExchange()
    dataExchange.AttachDataSource(ds)
    bIsSuccss = dataExchange.Import(importParams)

    if bIsSuccss == 1:
        print("数据导入成功!!")
    else:
        print("数据导入失败!!")
        pass

    del importParams

    ds.Close()
    del ds

    pass

这个例程打开一个数据源,然后将一个栅格文件导入其中。

照着这个例子,可以编写一个批量数据导入的脚本,实现数据的快速导入。



© 著作权归作者所有

openthings
粉丝 323
博文 1140
码字总数 689435
作品 1
东城
架构师
私信 提问
在UbuntuKylin15.04上安装GIScript2015

GIScript入门教程参见:http://my.oschina.net/u/2306127/blog/484213,这里介绍基于SIP的C++封装为Python的方法和使用过程。 GIScript2015版采用了新的SIP封装,从而可以更好地与C++接口保持...

openthings
2015/06/24
320
0
UbuntuKylin15.04编译OpenSCAD源码

OpenSCAD(http://www.openscad.org)是一个简单高效的三维建模软件,使用模型描述脚本进行建模,使用CGAL引擎进行几何体的空间布尔运算。这里介绍其源码编译方法,使用UbuntuKylin15.04. 把下...

openthings
2015/08/03
202
0
爬虫入门教程⑧— BeautifulSoup解析豆瓣即将上映的电影信息

Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间. 这是...

皮卡丘丶
2018/05/11
0
0
实践随笔之初识Tensorflow

TensorFlow是Google推出的深度学习框架,相信谷歌出品,必属精品。养成良好的写笔记习惯,好记性不如烂笔头(* ̄(oo) ̄) 安装&入门教程 网上一堆安装和入门教程,以下两个链接都是比较靠谱的。...

oncast
2017/09/08
0
0
优客们,看过来 !Ubuntu Kylin 15.04 发布派对活动城市招募正式启动啦!

Ubuntu Kylin介绍: 活动招募内容: 报名方式:请在活动行(http://www.huodongxing.com/go/ubuntukylin1504)点击“我要报名”。为方便联系,请在报名时提供姓名、手机号码、电子邮箱、组织名...

优麒麟
2015/04/22
4.8K
34

没有更多内容

加载失败,请刷新页面

加载更多

手持式人证核验设备助力国家安全系统

手持式人证核验设备,是针对公共安全领域的移动化身份核验、追逃等需求推出的手持式一体化设备。其特点是具备人员信息采集、存储和比对功能,将采集到的人脸信息与居民身份证芯片中的人脸信息...

非思丸智能FaceTo
27分钟前
4
0
好程序员web前端教程分享JavaScript简写方法

今天好程序员web前端教程为大家分享JavaScript简写方法,小伙伴们快来看一看吧。 1.三元操作符 当想写if...else语句时,使用三元操作符来代替。 constx =20; let answer; if(x >10) { answer...

好程序员官网
31分钟前
5
0
PHP面试题2019年小米工程师面试题和答案解析

一、单选题(共29题,每题5分) 1.PHP面向对象方法重写描述错误的是? A、子类必须继承父类 B、子类可以重写父类已有方法 C、重写之后子类会调用父类方法 D、子类也可以具有与父类同名的属性...

一个PHP程序媛
34分钟前
4
0
K8s 从懵圈到熟练 – 镜像拉取这件小事

导读:相比 K8s 集群的其他功能,私有镜像的自动拉取,看起来可能是比较简单的。而镜像拉取失败,大多数情况下都和权限有关。所以,在处理相关问题的时候,我们往往会轻松的说:这问题很简单...

Mr_zebra
34分钟前
4
0
分布式锁简单入门以及实现方法

学过Java多线程的应该都知道什么是锁,没学过的也不用担心,Java中的锁可以简单的理解为多线程情况下访问临界资源的一种线程同步机制。 在学习或者使用Java的过程中进程会遇到各种各样的锁的...

yanlijun_java
37分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部