清华大学 地球系统科学系, 北京 100084
收稿日期:2018-05-11
作者简介:董丽婷(1992-), 女, 硕士研究生
通信作者:刘利, 副教授, E-mail:liuli-cess@tsinghua.edu.cn
摘要:地球系统模式是开展气候变化研究与无缝隙天气预报的基础软件之一。耦合器实现了地球系统模式中分量模式之间的协作,是实现地球系统模式的系统集成和模块化的关键。为了使用户能便捷地开展耦合模式的构建,且能了解分量模式间的耦合关系,该文以中国最新研制的自主耦合器C-Coupler2为基础平台,研究了面向耦合器操作的可视化技术,实现了C-Coupler2耦合配置文件的可视化显示构建,以及分量模式间耦合关系的交互式可视化显示。该工作提高了C-Coupler2的用户友好性,使C-Coupler2成为第一个具有可视化支持的自主耦合器。
关键词:耦合器可视化耦合信息配置耦合连接
Visualization system for coupler C-Coupler2
DONG Liting, LIU LI
Department of Earth System Science, Tsinghua University, Beijing 100084, China
Abstract: The earth system models (ESMs) are the basic tools used for climate change research and unseamable weather forecasting. The coupler connects the components in the ESMs and is the key to integrating and the modular development of the ESMs. This paper presents a visualization of the coupler operation based on the C-Coupler2 developed in China. The visualization facilitates coupling construction and the coupling connections among components. The system allows visual display and construction of the C-Coupler2 coupling configuration file and an interactive display of the C-Coupler2 coupling connections among components. This improves the user friendliness of C-Coupler2 and makes C-Coupler2 the first autonomous coupler with visual support.
Key words: couplervisualizationcoupling information configurationcoupling connection
政府间气候变化专业委员会(Intergovernmental Panel on Climate Change,IPCC)第4次评估报告表明, 自1906年到2005年, 全球温度上升了约0.74 ℃[1]。全球变暖对人类的活动及生态环境造成了巨大的影响。
地球系统模式(earth system model,ESM)[2]是研究地球系统变化的重要工具之一。国际上著名的地球系统模式主要包括CESM1[3]、CCSM4[4]、IPSL-CM5[5]、CNRM-CM5[6]、MPI-ESM[7]、EC-Earth[8]、CMCC-ESM[9]等。随着模式的发展,地球系统模式包含的模块越来越多,代码量也快速增长,模式中的很多配置需要通过用户修改代码来完成,具体的耦合过程也在代码中实现。因此,提高模式配置和使用过程友好性的可视化支持将有助于地球系统模式的发展。
地球系统模式中已经有了对模式模拟结果、观测数据或者外强迫资料进行可视化分析的工具。例如,NCL(NCAR command language)是一种专门为科学数据处理以及数据可视化设计的高级语言,很适合用在气象数据的处理和可视化上,同时MATLAB和Python等也可以用来处理地球系统模式的模拟结果和观测数据。然而,地球系统模式领域的可视化不只涉及到模式模拟结果,还应体现在使用和展现模式方面。
地球系统是由多个圈层构成的,如大气、陆地、海洋、海冰等。为了方便对地球系统的研究,一般针对不同圈层会研制相应的分量模式程序,再通过耦合器将不同的分量模式程序耦合在一起构成耦合模式。耦合器的主要作用是完成分量模式之间的并行通信,并控制整个地球系统模式的运行[10],是地球系统模式的核心模块之一[11]。当前国际上的耦合器主要包括法国研制的OASIS(ocean atmosphere sea ice soil coupling software)耦合器[12-13],美国研制的MCT(model coupling toolkit)[14]、CPL[15-16]、ESMF(earth system modeling framework)[17]、FMS(flexible modeling system)[18]和BFG(bespoke framework generator)[19-20]耦合器,以及中国研制的C-Coupler[21]耦合器。C-Coupler耦合器是由清华大学C-Coupler小组自主设计研发的,从2010年开始研制,2014年完成了第一个版本C-Coupler1,得到了国内外同行的初步认可,2018年将完成C-Coupler2的开发,并将进行大范围的推广使用。
一系列的调研结果表明,当前国际上主要的耦合器中,除本文即将实现的C-Coupler2的可视化系统以外,只有OASIS耦合器实现了可视化。在OASIS3-MCT版本中,提供了OASISGUI, 即可视化图形界面,其主要功能是完成耦合器的配置。OASISGUI以图形界面的方式完成配置,在一定程度上避免了用户直接操作文件带来的不确定性,从而保证配置文件的正确性。但是,使用OASISGUI需要安装客户端软件,同时需要安装OpenTEA、Python2.6及以上版本、Tcl/Tk8.5及以上版本等多个第三方软件,存在客户端或插件的版本及兼容性问题。
1 C-Coupler2耦合器简介C-Coupler2耦合器是C-Coupler系列的最新产品,由清华大学C-Coupler小组研发完成,目前正在测试应用阶段。相对于C-Coupler1,C-Coupler2有很多新特性,例如通用、灵活并且用户友好的耦合配置接口,支持模式嵌套和动态三维耦合,强大有效的耦合生成器,可以进行异步数据传输,同时兼容其他的耦合器,支持调试, 有较高的软件质量。
2 C-Coupler2耦合器的可视化需求分析C-Coupler2耦合器的配置采用xml文件格式。该格式文件的可读性比OASIS的配置文件更友好,但是规则约束复杂,配置内容较多,无法保证用户输入的正确性。因此,为了提高配置接口的用户友好性,需要提供C-Coupler2可视化配置接口。
由于耦合程序流程对用户透明,为了让用户更加便捷地了解分量模式间耦合关系,需要实现耦合信息配置及耦合关系的可视化接口。这些功能是目前所有其他耦合器都不具备的。
2.1 耦合信息配置可视化需求C-Coupler2耦合器中提供可视化接口的配置文件主要分为两种:coupling_connections.xml和remapping_configuration.xml。remapping_configur-ation.xml文件主要用来指定耦合变量进行插值的规则,coupling_connections.xml文件可以让用户灵活地为输入耦合变量和输入网格指定输入来源。因此,需要提供这两种耦合配置文件的可视化接口,以便正确、便捷地生成相应的配置文件。
2.2 耦合关系可视化需求耦合关系可视化给用户提供了解分量模式间复杂耦合关系的接口,主要包括耦合分量之间的嵌套关系以及耦合连接关系,即耦合分量之间数据交换的具体信息。嵌套关系需要显示每个耦合分量的基本信息(component_full_name、type、processes等)以及耦合分量之间的父子关系。由于耦合分量可能嵌套复杂,需要完成交互式查看功能,因此需要通过用户操作来控制显示的嵌套关系。耦合连接关系需要提供用于显示耦合分量之间数据流动的接口,包括数据的流向、数据的发送方和接收方、发送数据和接收数据的接口名称,以及相应的变量名称等。
3 可视化系统设计3.1 概要设计可视化系统采取浏览器浏览、离线拷贝的方式实现。该方式要点如下:1)不需要安装客户端,只依赖浏览器,将配置和显示的可视化通过浏览器显示;2)由于不需要频繁地与服务器端进行交互,配置过程中该系统不与服务器端保持连接,采取用户自行对文件进行拷贝的方式。可见,该方式配置简单, 易操作,且具有跨平台的通用性。
该实现方式的整体流程如图 1的可视化系统整体流程图所示。模式运行一般在Linux上进行,用户通过ssh(secure shell)等方式对其进行操作。为了与用户本地进行区分,下文中将部署地球系统模式的机器称为服务器,将用户自己的计算机端称为本地。可视化系统的整体实现流程如下:
图 1 可视化系统整体流程图 |
图选项 |
1) 用户将系统提供的网页文件从服务器拷贝到本地,其中包括配置信息的网页和显示耦合关系的网页;
2) 用户可以用浏览器打开配置信息的网页,进行信息的配置;
3) 配置完成后进行保存,以文件的形式保存在本地的计算机中,用户将生成的配置文件拷贝到服务器端C-Coupler2耦合器相关的目录下,供C-Coupler2耦合器进行读取;
4) C-Coupler2耦合器获取相关配置进行一系列耦合操作。
模式耦合的过程中有很多复杂的耦合操作,用户可以导出耦合分量之间的嵌套关系和连接关系,将这些关系保存至文件。
用户可以将导出的相应耦合关系的文件拷贝到本地,用浏览器打开显示耦合关系的网页,上传本地耦合关系的文件在网页端进行查看。
3.2 详细设计3.2.1 耦合信息配置详细设计耦合信息配置的功能是用户通过网页端配置耦合信息,生成xml格式的配置文件,从而避免用户直接操作xml文件。对于配置耦合信息,需要实现的具体功能如下:
1) 可以进行不同类型的配置。需求分析中提到需要网页端进行的配置包括两种类型,配置耦合输入变量和输入网格的来源以及配置耦合变量的插值规则,进而分别生成两种配置文件coupling_connections.xml和remapping_configuration.xml,因此配置耦合信息需要提供能够完成这两个文件配置的接口。
2) 可以修改配置文件。所有的配置信息并不是一经配置就不可修改的,用户可以根据需要调整配置,例如增加或删除某些字段等。同时,不同耦合分量的配置可能相类似,用户可以在其他耦合分量配置的基础上进行修改并保存为新的配置,因此系统必须能够获取已有配置信息,并提供修改配置文件的功能。
3) 体现配置文件的约束规则。配置文件的字段内容和字段之间有很多约束规则,比如某些字段在某个节点内只能出现一次,某些字段的内容只能为特定的某些值,以及字段之间的父子关系等。在网页端进行配置时,必须体现配置文件的约束规则,保证配置内容的正确性和格式的合法性。
4) 文件合法性检查。系统允许用户上传配置好的文件,但对文件的合法性必须进行检查,因此系统需要提供完备的文件检查功能,包括对文件格式、字段内容以及是否满足字段约束规则等的检查。
5) 用户友好性。耦合配置接口通过以下几个方面来进一步提高用户的友好性:导航提示、错误提示、缓存机制等。
3.2.2 耦合流程显示详细设计耦合流程对用户透明是为了让用户便捷地了解整个耦合流程,耦合流程的可视化接口的主要功能是显示耦合分量之间的嵌套关系和连接关系:
1) 显示耦合分量的嵌套关系。为了便于用户了解模式中耦合分量的嵌套关系,系统需要对耦合分量之间的嵌套关系进行显示。对于单个的耦合分量需要显示的信息有分量模式的全名(full_name)、分量模式的类型(type)以及运行该分量模式的进程号(processes)。每个耦合分量按照父子关系通过树形结构进行展示,根节点的父节点为NULL。
2) 显示耦合连接关系。耦合连接关系用来显示数据的流动方向和数据交换的具体信息。对于单个的耦合分量需要显示的信息有耦合分量的全名(full_name)、跟该耦合分量有数据交换的所有分量模式、进行数据交换接口及交换的变量等信息。
3) 数据输出模块。C-Coupler2提供了输出显示信息的模块,将需要显示的信息导出到文件中。
4) 文件合法性检查。为了保证上传文件的合法性,需要在解析之前对文件的格式、文件的内容等进行全面检查。
5) 用户友好性。耦合分量嵌套关系复杂,为了提高用户体验,采取动态交互式展示、响应用户的具体操作。耦合连接关系显示的是某个分量模式与其他分量模式之间数据的输入输出,通过带箭头连接线来呈现分量模式之间的关系,通过点击具体的连接线来显示数据交换的细节。上传到服务器的所有文件都会经过文件格式和文件内容的检查,对于不合法的文件系统将给出详细的错误提示和说明,方便用户对文件进行检查和修改。
4 可视化系统的实现4.1 实现语言网页端主要采用超文本链接语言(hypertext markup language, HTML)、层叠样式表(cascading style sheets, CSS)和JavaScript 3种语言来实现。HTML可以用浏览器直接打开,网页上的所有元素(如文本框、按钮、下拉框等)都可以放在HTML文件中;CSS负责设置HTML页面中元素的样式,可以嵌在HTML文件中使用,也可以写成单独的文件在HTML中引用;JavaScript是网络端的脚本语言,用来为网页添加动态效果,能获取网页的元素并对浏览器事件作出响应,同时还可以完成对数据的验证和检查等功能,此外还用到了Jquery,一个快速简洁的JavaScript库。C-Coupler2中提供的信息输出模块由C++来完成。
4.2 系统实现系统实现的代码目录如图 2所示,“.html”结尾的文件是用户可以直接用浏览器打开进行相关操作的,css文件夹包括HTML文件用到的所有样式表文件,javascript文件夹包括用到的所有JavaScript文件。
图 2 系统实现的代码目录 |
图选项 |
使用本文的可视化系统只需一台装有浏览器(推荐使用IE、Chrome、Firefox、Safari)的计算机,无需安装任何其他软件。config_index.html文件可以直接用浏览器打开,它负责配置耦合信息。具体使用步骤如下:
1) 用浏览器打开config_index.html;
2) 选择需要配置的文件类型;
3) 配置元素并进行保存;
4) 上传已有配置进行修改并保存;
5) 配置完成后,拷贝配置文件到模式模拟的服务器的相应目录中。
具体配置信息如图 3的耦合信息配置页面所示且测试通过。
图 3 耦合信息配置页面 |
图选项 |
display_index.html负责显示耦合分量之间的嵌套关系,具体使用步骤如下:
1) 模式稳定运行后,将嵌套关系文件拷贝到本地;
2) 打开display_index.html;
3) 上传嵌套关系文件。
具体过程如图 4嵌套关系页面所示且测试通过。
图 4 嵌套关系页面 |
图选项 |
relationship.html文件负责显示耦合分量的连接关系,具体使用步骤如下:
1) 模式稳定运行后, 将耦合连接关系文件拷贝到本地;
2) 打开relationship.html;
3) 上传连接关系文件;
4) 点击箭头,查看数据交换的详细信息。
具体过程如图 5和6耦合连接关系页面及详细信息所示且测试通过。
图 5 耦合连接关系页面 |
图选项 |
图 6 耦合连接关系详细信息 |
图选项 |
本文系统在各大主流浏览器的兼容性测试结果如表 1所示,可见该系统具有很好的兼容性。
表 1 浏览器兼容性测试结果
浏览器 | 版本号 | 是否兼容 |
Chrome | Chrome66 | 兼容 |
IE | IE11 | 兼容 |
Safari | Safari11 | 兼容 |
Firefox | Firefox60 | 兼容 |
表选项
5 结论C-Coupler2耦合器的配置采用xml文件格式,该文件格式在地球系统模式领域并没有被广泛熟知,且如果用户直接对文件进行操作,无法保证用户配置的正确性和合法性,因此本文开发了耦合信息配置的可视化接口,它具有配置内容的约束和合法性检查功能。同时,为了让用户了解分量模式间复杂的耦合关系,本文还开发了耦合关系的可视化接口,能够显示耦合分量之间的嵌套关系和连接关系。
本文开发的C-Coupler2耦合器的可视化系统实现了分量模式间耦合关系的交互式显示,这使得C-Coupler2成为国际上第一个具有耦合关系可视化接口的耦合器。此外,本文开发的可视化系统具有跨平台性,无需安装其他软件,即可在不同操作系统下完成耦合模式的构建和显示,同时采取浏览器的方式完全规避了OASIS耦合器可视化客户端的版本升级兼容等一系列问题,大大提高了用户友好性。
参考文献
[1] | BERNSTEIN L, BOSCH P, CANZIANI O, et al. Climate change 2007: Synthesis report: An assessment of the intergovernmental panel on climate change[C]//IPCC Plenary XXVII. Valencia, Spain, 2007. |
[2] | 王斌, 周天军, 俞永强, 等. 地球系统模式发展展望[J]. 气象学报, 2008, 66(6): 857-869. WANG B, ZHOU T J, YU Y Q, et al. A perspective on earth system model development[J]. Acta Meteorologica Sinica, 2008, 66(6): 857-869. DOI:10.3321/j.issn:0577-6619.2008.06.002 (in Chinese) |
[3] | HURRELL J W, HOLLAND M M, GENT P R, et al. The community earth system model:A framework for collaborative research[J]. Bulletin of the American Meteorological Society, 2013, 94(9): 1339-1360. DOI:10.1175/BAMS-D-12-00121.1 |
[4] | GENT P R, DANABASOGLU G, DONNER L J, et al. The community climate system model version 4[J]. Journal of Climate, 2011, 24(19): 4973-4991. DOI:10.1175/2011JCLI4083.1 |
[5] | DUFRESNE J L, FOUJOLS M A, DENVIL S, et al. Climate change projections using the IPSL-CM5 earth system model:From CMIP3 to CMIP5[J]. Climate Dynamics, 2013, 40(9-10): 2123-2165. DOI:10.1007/s00382-012-1636-1 |
[6] | VOLDOIRE A, SANCHEZ-GOMEZ E, MéLIA D S Y, et al. The CNRM-CM5.1 global climate model:Description and basic evaluation[J]. Climate Dynamics, 2013, 40(9-10): 2091-2121. DOI:10.1007/s00382-011-1259-y |
[7] | GIORGETTA M A, JUNGCLAUS J, REICK C H, et al. Climate and carbon cycle changes from 1850 to 2100 in MPI-ESM simulations for the Coupled Model Intercomparison Project phase 5[J]. Journal of Advances in Modeling Earth Systems, 2013, 5(3): 572-597. DOI:10.1002/jame.v5.3 |
[8] | HAZELEGER W, WANG X, SEVERIJNS C, et al. EC-Earth V2.2:Description and validation of a new seamless earth system prediction model[J]. Climate Dynamics, 2012, 39(11): 2611-2629. DOI:10.1007/s00382-011-1228-5 |
[9] | VICHI M, MANZINI E, FOGLI P G, et al. Global and regional ocean carbon uptake and climate change:Sensitivity to a substantial mitigation scenario[J]. Climate Dynamics, 2011, 37(9-10): 1929-1947. DOI:10.1007/s00382-011-1079-0 |
[10] | VALCKE S, BALAJI V, CRAIG A, et al. Coupling technologies for earth system modelling[J]. Geoscientific Model Development Discussions, 2012, 5(6): 1589-1596. DOI:10.5194/gmd-5-1589-2012 |
[11] | ALEXANDER K, EASTERBROOK S M. The software architecture of climate models:A graphical comparison of CMIP5 and EMICAR5 configurations[J]. Geoscientific Model Development, 2015, 8(4): 1221-1232. DOI:10.5194/gmd-8-1221-2015 |
[12] | REDLER R, VALCKE S, RITZDORF H. OASIS4:A coupling software for next generation earth system modelling[J]. Geoscientific Model Development, 2010, 3(1): 87-104. DOI:10.5194/gmd-3-87-2010 |
[13] | VALCKE S. The OASIS3 coupler:A European climate modelling community software[J]. Geoscientific Model Development Discussions, 2013, 6(5): 2139-2178. |
[14] | LARSON J, JACOB R, ONG E. The model coupling toolkit:A new FORTRAN90 toolkit for building multiphysics parallel coupled models[J]. International Journal of High Performance Computing Applications, 2005, 19(3): 277-292. DOI:10.1177/1094342005056115 |
[15] | CRAIG A P, JACOB R, KAUFFMAN B, et al. CPL6:The new extensible, high performance parallel coupler for the community climate system model[J]. International Journal of High Performance Computing Applications, 2005, 19(3): 309-327. DOI:10.1177/1094342005056117 |
[16] | CRAIG A P, VERTENSTEIN M, JACOB R. A new flexible coupler for earth system modeling developed for CCSM4 and CESM1[J]. International Journal of High Performance Computing Applications, 2011, 26(1): 31-42. DOI:10.5120/ijca |
[17] | HILL C, DELUCA C, BALAJI, et al. The architecture of the earth system modeling framework[C]//Proceedings of EGS-AGU-EUG Joint Assembly. Nice, France, 2003: 18-28. https://www.researchgate.net/publication/3422645_Architecture_of_the_Earth_System_Modeling_Framework |
[18] | BALAJI V, ANDERSON J, HELD I, et al. The exchange grid:A mechanism for data exchange between earth system components on independent grids[J]. Parallel Computational Fluid Dynamics, 2006, 179-186. DOI:10.1016/B978-044452206-1/50021-5 |
[19] | ARMSTRONG C W, FORD R W, RILEY G D. Coupling integrated earth system model components with BFG2[J]. Concurrency and Computation Practice and Experience, 2009, 21(6): 767-791. DOI:10.1002/cpe.v21:6 |
[20] | FORD R W, RILEY G D, BANE M K, et al. GCF:A general coupling framework[J]. Concurrency and Computation Practice and Experience, 2006, 18(2): 163-181. DOI:10.1002/(ISSN)1532-0634 |
[21] | LIU L, YANG G, WANG B, et al. C-Coupler1:A Chinese community coupler for earth system modeling[J]. Geoscientific Model Development, 2014, 7(5): 2281-2302. DOI:10.5194/gmd-7-2281-2014 |