用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()
用Python作GIS之三:入口程序 - stargui.py的更多相关文章
- 用Python作GIS之五:从示例入手—example函数
进入STARS后,最简单的学习方法就是演示示例数据.对于源码的分析也可以从这里入手. 以下为出发菜单项“Example Project”的函数example:def example(se ...
- 用Python作GIS之二:STARS开发环境配置
STARS的一般使用可以通过REGAL网页快速学习http://regionalanalysislab.org/?n=STARS再次不做详细介绍这里关注的主题是对STARS源代码分析即为使用Pytho ...
- 用Python作GIS之一:介入STARS
STARS的全称是Space-Time Analysis of Regional Systems,直译过来就是区域系统时空分析软件.这是针对区域多时相数据的分析包,源代码公开.该软件将最近几年发展起来 ...
- 用Python作GIS之四:Tkinter基本界面的搭建
Python下的主窗口可以定义如下:def start(self): #self.project = Project("temp") #self.pro ...
- python小练习之三---购物车程序
购物车购物的例子 严格来讲,这个例子相对大一些 功能也稍完备一些,具有用户登录,商品上架,用户购物,放入购物车,展示每个用户的购物车里的商品的数量,用户账户余额,支持用户账户充值等 下面展示的代码有些 ...
- 【python学习】新手基础程序练习(二)
Ι 继续上一节得内容,这里主要是对各种知识的理解以及如何运用. 一.执行 Python 脚本的两种方式 1.把python执行文件加到计算机的环境变量中,然后新建文件把程序写在新文件里,再通过cmd命 ...
- MVC入口程序 | 简单调用及实例化
入口程序: 现在大多采用单一入口机制,单一入口就是指在一个web应用程序中,所有的请求都指向一个脚本文件.通俗点说就是一幢大楼只有一个大门入口可以进去... 目录: 建立一个控制器/模型/视图调用函数 ...
- PHPCMS V9 框架代码分析(入口程序)
PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口. 入口程序是在前期处理用户请求的引导程序.它是 ...
- Python打包项目为EXE程序
安装pyinstaller 如果使用了VirtualENV环境,则必须在要打包的项目环境中安装... 否则会找不到项目需求的包和模块 pip install -i https://pypi.douba ...
随机推荐
- 让UIScrollView、UITableView的滚动条一直显示
先用xcode5.1.1或更低版本创建一个Category,如图: 然后拷贝以下代码到刚创建的UIImageView+ForScrollView.m文件中: - (void) setAlpha:(fl ...
- Hibernate学习小结
之前从事.net开发的三年经验里,我是用过EF.Microsoft Dynamic crm中集成的ORM以及上一家公司自主开发的ORM. 再接触Hibernate后,上手比较简单,但其提供了大量的接口 ...
- oracle 常用技巧及脚本
[Q]怎么样查询特殊字符,如通配符%与_ [A]select * from table where name like 'A/_%' escape '/' [Q]如何插入单引号到数据库表中 [A]可以 ...
- JQuery Mobile 实战一
今天我们来使用JQuery Mobile来开发一个web mobile app. 要实现的如下所示效果: 开始: 第一步:添加JS包等引用,直接去官网下载最新的JQuery Mobile 包,http ...
- .NET DLL 保护措施详解(四)各操作系统运行情况
我准备了WEB应用程序及WinForm应用程序,分别在WIN SERVER 2012/2008/2003.Win7/10上实测,以下为实测结果截图: 2012 2008 2003 WIN7 WIN10 ...
- ANDROID内存优化——大汇总(转)
原文作者博客:转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! ANDROID内存优化(大汇总——上) 写在最前: 本文的思路主要借鉴了20 ...
- 更改Activity亮度
有些需求需进入到页面后更改Activity的亮度,退出页面后恢复到之前的亮度.通过更改WindowManager.LayoutParams的screenBrightness可以达到这个效果.scree ...
- ASP.NET,web.config 中SessionState的配置
web Form 网页是基于HTTP的,它们没有状态, 这意味着它们不知道所有的请求是否来自同一台客户端计算机,网页是受到了破坏,以及是否得到了刷新,这样就可能造成信息的丢失. 于是, 状态管理就成了 ...
- Cocos2d-JS中的精灵菜单和图片菜单
精灵菜单的菜单项类是cc.MenuItemSprite,图片菜单的菜单项类是cc.MenuItemImage.由于cc.MenuItemImage继承于cc.MenuItemSprite,所以图片菜单 ...
- AMQ学习笔记 - 10. Spring-JmsTemplate之浏览
概述 浏览只是针对Queue的概念,Topic没有浏览.浏览是指获取消息而消息依然保持在broker中,而消息的接收会把消息从broker中移除. 浏览可以用来实现对Queue中消息的监控. JMS ...