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

這個例程打開一個數據源,而後將一個柵格文件導入其中。

照着這個例子,能夠編寫一個批量數據導入的腳本,實現數據的快速導入。

相關文章
相關標籤/搜索