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

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才行的哦。需要了解详细的内容可以看这里: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

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

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

时间: 2024-10-10 21:48:00

GIScript2015的第一个入门教程-使用UbuntuKylin15.04的相关文章

ReactiveCocoa入门教程:第二部分

翻译自:http://www.raywenderlich.com/62796/reactivecocoa-tutorial-pt2 原文链接: ReactiveCocoa 是一个框架,它允许你在你的iOS程序中使用函数响应式(FRP)技术.加上第一部分的讲解,你将会学会如何使用信号量(对事件发出数据流)如何替代标准的动作和事件处理逻辑.你也会学到如何转换.分离和组合这些信号量. 在这里,也就是第二部分里,你将会学到更多先进的ReactiveCocoa特性,包括: 1.另外两个事件类型:error

iOS开发 ReactiveCocoa入门教程 第二部分

ReactiveCocoa 是一个框架,它允许你在你的iOS程序中使用函数响应式(FRP)技术.加上第一部分的讲解,你将会学会如何使用信号量(对事件发出数据流)如何替代标准的动作和事件处理逻辑.你也会学到如何转换.分离和组合这些信号量. 在这里,也就是第二部分里,你将会学到更多先进的ReactiveCocoa特性,包括: 1.另外两个事件类型:error和completed 2.Throttling(节流) 3.Threading 4.Continuations 5.更多... 是时候开始了.

Windsor入门教程---第一部分 获取Windsor

介绍 从开发环境的角度看,Windsor只是一个类库.不需要安装,也不需要额外的工具,你直需要获取Windsor的类库到你的电脑上就可以了. 获取 有几个方法可以获取到Windsor,可以使用包管理工具OpenWrap,也可以使用微软的NuGet,或者也可以手动下载Windsor.最简单的方法就是使用Nuget,我们接下来就是使用NoGet. 新建解方案 启动Visual Studio 新建项目---ASP.NET MVC 3 Web Application 选择Internet 和 Razor

ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区

原文:ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区 1 引言 1.1 读者定位 我们假设用户在阅读本指南前应已具备以下知识: · 熟悉Windows的基本操作 · 接触过地理信息系统的概念 · 理解地理数据的特点 1.2 预期效果 我们期望用户在阅读完本指南后对以下知识有一定的了解: · 了解ArcGIS for Desktop的组成与功能 · 熟悉使用ArcGIS for Desktop进行数据编辑.整饰和输出的流程 · 如何使用

微信公众号开发入门教程第一篇

关键字:微信公众平台开发作者:方倍工作室 在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/JS等基础. 我们将使用微信公众账号方倍工作室作为讲解的例子,二维码见底部. 本系列教程将引导你完成如下任务: 创建新浪云计算平台应用 启用微信公众平台开发模式 体验常用接收消息及发送消息类型 了解数据收发原理及消息格式 第一章 申请服务器资源 创建新浪云计算应用 申请账号 我们使用SAE新浪云计算平台作为服务器资源,并且申请PH

github入门教程:第一步

[git教程] 以前在网上找过一些,见 http://www.wojilu.com/Forum1/Topic/702 我自己会一边学,一边写教程,过程中有不明白的,会跟大家请教交流.   --------------------------------   注册官网:https://github.com/  点击网站首页中间这个大大的按钮—— 进入plan界面,然后选择其中的免费项, 进入注册界面,填写注册信息——   注册完毕,进入git用户首页,里面有入门教程—— 点击其中第一个,就是针对新

【转载】GBDT(MART) 迭代决策树入门教程 | 简介

      转载地址:http://blog.csdn.net/w28971023/article/details/8240756        GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案.它在被提出之初就和SVM一起被认为是泛化能力(generalization)较强的算法.近些年更因为被用于搜索排

Android基础入门教程——8.1.3 Android中的13种Drawable小结 Part 3

Android基础入门教程--8.1.3 Android中的13种Drawable小结 Part 3 标签(空格分隔): Android基础入门教程 本节引言: 本节我们来把剩下的四种Drawable也学完,他们分别是: LayerDrawable,TransitionDrawable,LevelListDrawable和StateListDrawable, 依旧贴下13种Drawable的导图: 1.LayerDrawable 层图形对象,包含一个Drawable数组,然后按照数组对应的顺序来

Android基础入门教程——2.3.12 Date & Time组件(下)

Android基础入门教程--2.3.12 Date & Time组件(下) 标签(空格分隔): Android基础入门教程 本节引言: 本节我们来继续学习Android系统给我们提供的几个原生的Date & Time组件,他们分别是: DatePicker(日期选择器),TimePicker(时间选择器),CalendarView(日期视图),好吧, 其实一开始让我扣这几个玩意我是拒绝的,因为在我的印象里,他们是这样的: 简直把我丑哭了,有木有,终于知道为什么那么多人喜欢自定义这种类型的