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

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

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

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

    如今,咱们开始一个简单的例程,感觉一下GIScript运行的过程,体验一下使用脚本的“懒人模式”。
shell

    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来使用,把不一样的功能集成到一块儿。分布式

    进系统目录。oop

#运行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

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

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

相关文章
相关标签/搜索