"""
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()

用Python作GIS之三:入口程序 - stargui.py的更多相关文章

  1. 用Python作GIS之五:从示例入手—example函数

    进入STARS后,最简单的学习方法就是演示示例数据.对于源码的分析也可以从这里入手.        以下为出发菜单项“Example Project”的函数example:def example(se ...

  2. 用Python作GIS之二:STARS开发环境配置

    STARS的一般使用可以通过REGAL网页快速学习http://regionalanalysislab.org/?n=STARS再次不做详细介绍这里关注的主题是对STARS源代码分析即为使用Pytho ...

  3. 用Python作GIS之一:介入STARS

    STARS的全称是Space-Time Analysis of Regional Systems,直译过来就是区域系统时空分析软件.这是针对区域多时相数据的分析包,源代码公开.该软件将最近几年发展起来 ...

  4. 用Python作GIS之四:Tkinter基本界面的搭建

    Python下的主窗口可以定义如下:def start(self):        #self.project = Project("temp")        #self.pro ...

  5. python小练习之三---购物车程序

    购物车购物的例子 严格来讲,这个例子相对大一些 功能也稍完备一些,具有用户登录,商品上架,用户购物,放入购物车,展示每个用户的购物车里的商品的数量,用户账户余额,支持用户账户充值等 下面展示的代码有些 ...

  6. 【python学习】新手基础程序练习(二)

    Ι 继续上一节得内容,这里主要是对各种知识的理解以及如何运用. 一.执行 Python 脚本的两种方式 1.把python执行文件加到计算机的环境变量中,然后新建文件把程序写在新文件里,再通过cmd命 ...

  7. MVC入口程序 | 简单调用及实例化

    入口程序: 现在大多采用单一入口机制,单一入口就是指在一个web应用程序中,所有的请求都指向一个脚本文件.通俗点说就是一幢大楼只有一个大门入口可以进去... 目录: 建立一个控制器/模型/视图调用函数 ...

  8. PHPCMS V9 框架代码分析(入口程序)

    PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口. 入口程序是在前期处理用户请求的引导程序.它是 ...

  9. Python打包项目为EXE程序

    安装pyinstaller 如果使用了VirtualENV环境,则必须在要打包的项目环境中安装... 否则会找不到项目需求的包和模块 pip install -i https://pypi.douba ...

随机推荐

  1. 正则转nfa:完成

    太累了,感觉不会再爱了.问题已经解决,具体的懒得说了. #include "regular_preprocess.h" //这个版本终于要上nfa了,好兴奋啊 //由于连个节点之间 ...

  2. Matlab之矩阵

    1.新建矩阵 A = zeros(5,5); 2.矩阵赋值 A(:,j) = [5  5]表示取A矩阵的第j列全部元素 a.矩阵的同行元素之间用空格(或”,”)隔开: b.矩阵的行与行之间用”;”(或 ...

  3. SQLSERVER数据库中的 时间函数

    一.sql server日期时间函数 Sql Server中的日期与时间函数 1.  当前系统日期.时间 select getdate() 2. dateadd  在向指定日期加上一段时间的基础上,返 ...

  4. 在sql-server上建立mysql链接库

    EXEC sp_addlinkedserver @server = N'RESUME_MYSQL_CONN', @srvproduct=N'MySQL ODBC 5.1 Driver', @provi ...

  5. MYSQL多实例配置与使用教程

    原文http://www.111cn.net/database/mysql/58651.htm 在实际的开发过程中,可能会需要在一台服务器上部署多个MYSQL实例,那建议使用MYSQL官方的解决方案 ...

  6. ios中的事件处理、响应者链条以及第一响应者

    在ios中,事件UIEvent类来表示,当一个事件发生时,系统会搜集的相关事件信息,创建一个UIEvent对象,最后将该事件转发给应用程序对象(UIApplication).日常生活中,主要有三种类型 ...

  7. 20171107--SQL变量,运算符,存储过程

    create database shujuku03 go use shujuku03 go create table jiaoshi--创建jiaoshi表-- ( code int primary ...

  8. MiZ702学习笔记12——封装一个普通的VGA IP

    还记得<MiZ702学习笔记(番外篇)--纯PL VGA驱动>这篇文章中,用verilog写了一个VGA驱动.我们今天要介绍的就是将这个工程打包成一个普通的IP,目的是为后面的一篇文章做个 ...

  9. 10款让人惊叹的HTML5/jQuery图片动画特效

    1.HTML5相册照片浏览器 可连接Flickr照片服务 以前我们经常会分享一些jQuery相册浏览插件,效果不错,实用性也很强.不过如果能利用HTML5来实现相册浏览器,那么相册浏览效果肯定会更加炫 ...

  10. 济南学习 Day 2 T2 pm

    她[问题描述]给你L,R,S,M,求满足L≤ (S × x) mod M ≤ R最小的正整数 X.[输入格式]第一行一个数T代表数据组数.接下来一行每行四个数代表该组数据的L,R,S,M.[输出格式] ...