Yu Lianqing, Hu Zhengguang. Subsystem for interactively drawing synoptic chart in MICAPS. J Appl Meteor Sci, 2011, 22(3): 375-384.
Citation: Yu Lianqing, Hu Zhengguang. Subsystem for interactively drawing synoptic chart in MICAPS. J Appl Meteor Sci, 2011, 22(3): 375-384.

Subsystem for Interactively Drawing Synoptic Chart in MICAPS

  • Received Date: 2010-08-16
  • Rev Recd Date: 2011-03-09
  • Publish Date: 2011-06-30
  • A subsystem is developed for interactively drawing synoptic chart to solve issues in previous versions of MICAPS and meet new user requirements. First of all, the composite design pattern is used to define the class hierarchy that describes graphical objects. This class hierarchy fits well with the relation among different graphical objects and therefore reduces the spatial complexity of the program, making manipulations to graphical objects much easier to implement. Thanks to the polymorphism feature provided by modern object-oriented programming languages, clients manipulating the graphical objects can treat all objects in this composite structure uniformly. The consequential benefit of this design advantage in practice is that the client code does not need to be modified when new types of graphical objects are introduced. This is especially useful for developers to define customized graphical object in their own applications. Above all, the proposed class hierarchy not only promotes code reusability, but also makes it easy to add new types of graphical objects. The code that draws rubber band graphical objects is constructed using the state design pattern, in which the behavior of drawing a particular type of graphical object is implemented in the corresponding class. The advantage of this approach is that introducing new types of graphical objects only require deriving new subclass and does not affect existing code. In addition, the gesture event class is proposed to represent the start, continue and end gestures in the rubber band drawing. In this way, the gestures can be customized at runtime by users. On the contrary, if the conventional code structure using large conditional statements is employed for rubber band drawing as in the previous implementation, the code complexity will increase dramatically when new types of graphical objects are introduced and the code defining the gestures has to be modified when user changes these gestures. The disadvantage makes it difficult to extend, debug and maintain the code. An algorithm to modify linestrip-type graphical objects, in particular isolines, is proposed. By taking advantage of the smoothness constraint, the proposed algorithm is able to solve the ambiguity in isolines modification and make the modified result meet the user expectation. The command design pattern is employed to implement undo/redo and runtime logging. The former feature facilitates users manipulation and the latter feature can restore the program session to the last successful state after the program quits abnormally. These two features enhance usability and reliability of the program. The implementation of automatically saving edited document which ensures the integrity of the documents is discussed. With all these features implemented, the proposed system not only facilitates users manipulation but provides good performance and reliability as well.
  • Fig. 1  The class hierarchy that encapsulates all types of graphical objects in a subsystem for interactively drawing synoptic chart

    Fig. 2  Using the state design pattern, a class hierarchy is proposed to represents all states corresponding to users' selection of graphical objects

    Fig. 3  The toolbox dialog

    Fig. 4  Two cases demonstrating the ambiguity of modified isolines

    Fig. 5  12 unique cases according to the shape and direction of isolines

    Fig. 6  The class hierarchy that represents some user operations in a subsystem for interactively drawing synoptic chart

    Table  1  The subclasses of mDrawState represent seven drawing states

    类名称 绘图状态 被操作的图形对象
    mDrawNullOperation 空操作,即不绘制任何图形,对应于用户没有选择任何图形对象的情况
    mDrawSingleElement 绘制一个单点型图形对象,用户绘制此类对象一般需要在视图中单击1次鼠标左键 所有的天气符号(如雨,雪,台风等)
    mDrawDualElement 绘制一个单点型图形对象,但该对象的具体标识与所使用的鼠标键有关 (用户单击左键时,生成高压中心;点击右键时,生成低压中心) 高低压中心,冷暖中心
    mDrawMultipointElement 绘制曲线型图形对象,用户绘制时需要多次单击鼠标键来确定曲线上点的位置 等值线,槽线,各种类型的锋面,霜冻线,降水区等
    mDrawVector 绘制矢量型图形对象,用户首先通过单击鼠标确定图形对象位置,然后移动鼠标调整图形对象方向和长度 风向杆
    mDrawModifyLinestrip 修改已绘制的线条型图形对象 曲线型图形对象
    mDrawDeleteObject 删除选中的图形对象 所有的图形对象
    DownLoad: Download CSV
  • [1]
    李月安, 曹莉, 沃伟峰, 等.强天气监测和潜势预报系统.应用气象学报, 2006, 17(4): 141-146. http://www.cnki.com.cn/Article/CJFDTOTAL-YYQX2006S1020.htm
    [2]
    李月安, 曹莉, 高嵩, 等. MICAPS预报业务平台现状与发展.气象, 2010, 26(7):50-55. doi:  10.7519/j.issn.1000-0526.2010.07.010
    [3]
    Yu L, Cao L, Li Y, et al. Introduce on Typhoon Forecast Operational System//Proceedings of 27th IIPS for Meteorology, Oceanography, and Hydrology. 2011.
    [4]
    郑卫江, 吴焕萍, 罗兵, 等. GIS技术在台风预报服务产品制作系统中的应用.应用气象学报, 2010, 21(2): 250-255. http://qikan.camscma.cn/jams/ch/reader/view_abstract.aspx?file_no=20100216&flag=1
    [5]
    孙利华, 吴焕萍, 郑金伟, 等.基于Flex的气象信息网络发布平台设计与实现.应用气象学报, 2010, 21(6): 754-761. http://qikan.camscma.cn/jams/ch/reader/view_abstract.aspx?file_no=20100613&flag=1
    [6]
    吴焕萍, 罗兵, 王维国, 等. GIS技术在决策气象服务系统建设中的应用.应用气象学报, 2008, 19(3): 380-384. http://qikan.camscma.cn/jams/ch/reader/view_abstract.aspx?file_no=20080362&flag=1
    [7]
    吴焕萍, 罗兵, 曹莉.地理信息服务及基于服务的气象业务系统框架探讨.应用气象学报, 2006, 17(增刊): 135-140. http://www.cnki.com.cn/Article/CJFDTOTAL-YYQX2006S1019.htm
    [8]
    Hopkins T, Henry R, Mandel E, et al. AWIPS Ⅱ Migration Status//Proceedings of 27th IIPS for Meteorology, Oceanography, and Hydrology. 2011.
    [9]
    Griffith F. AWIPS-Ⅱ Into the Future//Proceedings of 27th IIPS for Meteorology, Oceanography, and Hydrology. 2011.
    [10]
    Daabeck J. Overview of Meteorological Workstation Development in Europe//Proceedings of 21st International Conference on Interactive Information Processing Systems (IIPS) for Meteorology, Oceanography, and Hydrology. 2005.
    [11]
    Gamma E, Helm R, Johnson R, et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley Professional, 1994. https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612
    [12]
    Moran J M, Morgan M D, Pauley P M. Meteorology: The Atmosphere and Science of Weather. New Jersey: Prentice Hall, 1996.
    [13]
    寿绍文.天气学分析.北京:气象出版社, 2002.
    [14]
    Boor C de. A Practical Guide to Splines, Revised Edition. New York: Springer-Verlag, 2001.
    [15]
    Stroustrup B. The C++ Programming Language. Boston: Addison-Wesley Professional, 2000.
  • 加载中
  • -->

Catalog

    Figures(6)  / Tables(1)

    Article views (3296) PDF downloads(1515) Cited by()
    • Received : 2010-08-16
    • Accepted : 2011-03-09
    • Published : 2011-06-30

    /

    DownLoad:  Full-Size Img  PowerPoint