gis python窗体gui_用Python作GIS之三:入口程序 - stargui.py

"""

gui start file for Space-Time Analysis of Regional Systems

#STARS的圖形用戶界面入口(高級用戶可以直接使用命令行方式進行操作)----------------------------------------------------------------------

AUTHOR(S): Serge Rey

Mark V. Janikas

Boris Dev

----------------------------------------------------------------------

Copyright (c) 2000-2006 Sergio J. Rey

======================================================================

This source code is licensed under the GNU General Public License,

Version 2. See the file COPYING for more details.

======================================================================

OVERVIEW:

top module for stars gui. all modules should be imported into this module.

methods can be attached to menu callbacks.

#頂層程序,運行該文件時需要保證與其它調用文件在統一目錄下

"""

import sys, os, string

from Tkinter import *                        # widget classes

from guimixin import *        # mix-in methods

from guimaker import *        # frame, plus menu/toolbar builder

from Numeric import *

import pickle

import os.path

import version

import time

VERSION = version.VERSION

VERSIONDATE = version.DATE

#以上為系統自帶的包

from stars import *

import Esda

import Markov

import Inequality

import Mobility

import Data

import Markov

import eda

from Table import Table as RTable

from History import *

from SDialog import *

from pdf import *

import help

import DataViewer as DV

from kmean import Kmeans

import sdialogue as sd

import Utility

import STARSsmoothing as smooth

#以上為stars目錄下的包

STARSHOME=options.getSTARSHOME()

PLATFORM=options.getPLATFORM()

ssTop = Tk()

ssTop.title("Welcome to STARS!")

ss=SplashScreen(master=ssTop)

#啟動歡迎界面

# view modules

from gView import *

class SProject(Project):

...

class SBroadcast:

...

class SMap(Map,SBroadcast):

...

class STable(Table,SBroadcast):

...

class SMoranScatter(MoranScatter,SBroadcast):

...

class SDensity(Density,SBroadcast):

...

class SCDF(CDF,SBroadcast):

...

class SHistogram(Histogram,SBroadcast):

...

class STimeSeries(TimeSeries,SBroadcast):

...

class SBoxPlot(BoxPlot,SBroadcast):

...

class SpaceTimeButtonMatrix(View):

...

class STimePath(TimePath):

...

class SPCP(PCP):

...

class App(GuiMixin, GuiMaker):   # or GuiMakerFrameMenu

"""application level class"""

#其中包含菜單定義與操作

...

if __name__ == '__main__':

import Tkinter

import sys

main = App()

main.disableMenus()

if len(sys.argv) == 1:

main.mainloop()

sys.exit()

else:

# below here are wrapper functions for shell

def openProject():

main.openProject()

def example():

main.example()

def catalogue():

print main.project.catalogue()

def matrixNames():

print main.getMatrixNames()

def openProject():

main.openProject()

def getVariable(name):

return main.project.getVariable(name)

def map(variable,t=[0]):

t=t[0]

title = "%s %s"%(variable.name,variable.timeString[t])

coords = main.project.coords

poly2cs = main.project.poly2cs

cs2poly = main.project.cs2poly

main.drawMap(title,coords,variable[:,t],variable.name,t,

poly2cs,cs2poly)

def boxPlot(variable,timePeriod = [0]):

t = timePeriod[0]

x = variable[:,t]

SBoxPlot(variable.name,main.project,main.master,

x= x,

csids = range(len(x)),

tsids = [t],

allX = variable)

def density(variable,timePeriod = [0]):

t=timePeriod[0]

yAll = variable

tsids = [t] * yAll.t

SDensity("Density",main.master,

main.project,y.name,y[:,t],csid=range(len(y)),

tsid = tsids,

title = "dtitle",xLabel=yAll.name,

xmin = None,

xmax = None)

def quit():

main.master.destroy()

sys.exit(0)

def disableMenus():

main.disableMenus()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值