zoukankan      html  css  js  c++  java
  • 用Python作GIS之三:入口程序

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

  • 相关阅读:
    设计模式C++学习笔记之一(Strategy策略模式)
    web服务器上某一中文名文件无法访问
    C++之多态性与虚函数
    常用的16个c/c++面试题
    C/C++ 笔试、面试题目大汇总
    利用jsoncpp将json字符串转换为Vector
    STL中vector、list、deque和map的区别
    C++类的继承中构造函数和析构函数调用顺序例子
    LNMP下Nginx 中文文件名或目录404无法访问的解决方法
    Python Web开发框架Django
  • 原文地址:https://www.cnblogs.com/columbus2/p/4298082.html
Copyright © 2011-2022 走看看