基于ROMS的海洋环境数据生成方法及系统
未命名
09-22
阅读:62
评论:0
基于roms的海洋环境数据生成方法及系统
技术领域
1.本发明涉及数据模拟技术领域,更具体的说是涉及基于roms的海洋环境数据生成方法及系统。
背景技术:
2.针对各类试验科目构建较为真实的海洋环境来对装备进行性能的检验是国防重大需求,这对于检验和提升海洋装备在复杂海况下的实战能力至关重要。在现实世界中,复杂海况试验风险高,成本大,对资源造成较大的浪费,所以采用虚拟仿真的手段构建数字化的复杂海洋环境,通过虚拟试验的手段验证海洋装备模型在海况下的性能是目前来看最有前景的解决方案。目前常用的海洋数据模型有两种,分别是工程模型和海洋数值模型,工程模型能够不受限的生成任意强度及路径的风浪数据,但是工程模型的模型精细度和逼真度差,不能满足新型装备性能试验对复杂海况环境的需求,海洋数值模型则可以通过观测数据生成精确度较高的海洋模拟数据,为海洋装备联合试验提供了较好的选择。
3.如何在目前的海洋数值模型基础上,针对虚拟装备试验对海洋数据的需求,根据试验任务对环境的需求生成指定时空范围、时空分辨率的包括流场、温盐场、密度场等在内的海洋数据资源,是本领域技术人员亟需解决的技术问题。
技术实现要素:
4.有鉴于此,本发明提供了一种基于roms的海洋环境数据生成方法及系统,针对虚拟装备试验对海洋数据的需求,以开源的区域海洋模式roms为基础,根据试验任务对环境的需求生成指定时空范围、时空分辨率的包括流场、温盐场、密度场等在内的海洋数据资源。
5.为了实现上述目的,本发明采用如下技术方案:
6.第一方面,本发明提供一种基于roms的海洋环境数据生成方法,包括以下步骤:
7.基于相应数据集,构建初始运行模型,形成roms模式;所述初始运行模型包括:地理环境模型、初始场模型、强迫场模型和边界条件模型;
8.根据试验任务对海洋环境的需求,对试验任务进行时空拆分;
9.自动调用运行脚本,控制roms模式运行,并生成相应试验任务下所需的海洋环境数据;
10.实时显示roms模式的运行状态和海洋环境数据的生成进度。
11.进一步的,roms模式的地形网格分为水平方向和垂直方向,水平方向上采用arawac网格,垂直方向上采用经笛卡尔坐标系转换后的垂直sigma坐标系。
12.进一步的,所述地理环境模型的构建过程为:
13.根据空间范围及空间分辨率建立经纬度网格;
14.在经纬度网格的基础上建立uv网格,并计算与地球自转相关的科里奥利参数;
15.读取etopo地形数据集,对地形数据进行降采样处理,并通过双三次插值方法将地
形数据插值到建立的经纬度网格上;
16.对经纬度网格进行掩码处理,并剔除单独在外的点,根据地球投影绘制海岸线地图,将地形截断至已设置的最大水深,并通过汉宁窗对地形进行平滑处理,得到地理环境模型。
17.进一步的,所述初始场模型的构建过程为:
18.读取地形环境以及初始场数据集,读取完毕后,根据空间范围,在数据集上进行数据截取并对网格进行拉伸转换;
19.将初始场数据中的温度及盐度在已构建的地形网格上进行插值,判断数据是否缺失过多,若是,计算已有数据的平均值,将其赋给所有缺失的数据,否则,将距离最近的数据赋值给该缺失位置,得到初始场模型。
20.进一步的,所述强迫场模型的构建过程为:
21.读取地形环境以及强迫场数据集,根据空间范围,在数据集上进行数据截取,并为地形矩阵添加时间维度;
22.将强迫场数据中的风应力、热通量数据在已构建的地形网格上进行插值,判断数据是否缺失严重,若是,则计算已有数据的平均值,将其赋给所有缺失的数据,否则,通过最邻近插值方法将距离最近的数据赋值给该缺失位置,得到强迫场模型。
23.进一步的,所述边界条件模型的构建过程为:
24.选择champan边界条件计算开边界水位;
25.选择flather边界条件计算开边界流速;
26.选择辐射-松弛混合边界条件计算温盐场边界,将出流设置为辐射边界条件,将入流设置为松弛边界条件;
27.根据上述的各个边界条件在地形网格的四个边界上进行插值,得到边界条件模型。
28.进一步的,所述根据试验任务对海洋环境的需求,对试验任务进行时空拆分,包括:空间拆分和时间拆分;
29.空间拆分包括:根据输入的空间分辨率及空间范围进行网格格点数计算,若水平方向的格点总数小于2500个,则试验任务不进行空间上的拆分,若水平方向的格点数大于2500个,则需要对试验任务的空间范围进行拆分;对试验任务的空间范围拆分过程包括:
30.根据空间分辨率,计算出单个网格所包含的最大空间范围;
31.判断网格是否覆盖试验空间范围,当目前所有网格覆盖试验空间的范围时,试验任务的空间拆分结束,若无法将试验空间范围全部覆盖,则将网格扩大一圈,重新进行条件判断,直至所有网格全部覆盖试验空间范围;计算结束后,将每个网格的覆盖范围存入空间数组中;
32.时间拆分包括:对试验任务进行时间维度上的拆分,拆分公式为:
[0033][0034]
其中,t1为初始时间,t2为截止时间,t为时间分辨率,n为时间数组的大小。
[0035]
进一步的,对试验任务进行时空拆分时,将输入的时间格式转换为儒略日的表示
形式。
[0036]
进一步的,所述自动调用运行脚本,控制roms模式运行,并生成所需的海洋环境数据,包括:
[0037]
删除ocean_data文件夹中留存的全部数据文件;
[0038]
根据输入的空间分辨率及空间范围决定是否进行试验任务的空间维度拆分,当需要进行空间维度的拆分时,将拆分后的全部空间范围存入空间数组中;
[0039]
进入循环,调用file_ge.sh运行脚本,运行saddp、start以及param参数文件进行路径挂载和参数的全文件应用;调用roms_grid.m,根据在界面获得的空间分辨率及空间范围结合地形数据生成地形网格,为roms模式提供地理环境;将通过运行change_type文件将nc格式的格点文件转化为txt格式,读取txt格式的格点文件,将roms_upwelling.in文件相应的格点数、海洋垂向层数进行修改;运行roms_ini文件,将观测数据中的初始海平面高度、初始温盐场数据插入网格点生成初始场,定义roms模式的初始状态;运行roms_br y,将边界条件中控制边界强迫及耗散的数据插值到地形网格上,生成边界条件;运行ro ms_forcing,将大气通量、热通量海面数据进行插值,生成强迫场,对试验任务进行时间拆分,拆分后的数据存入时间数组中;
[0040]
进入第二层循环,根据时间数据修改roms模式输入文件roms_upwelling.in中时间参数,调用run.sh脚本控制roms模式运行,生成试验任务所需的海洋数据文件,并将虚拟海洋数据文件移入指定的文件夹中。
[0041]
第二方面,本发明提供一种基于roms的海洋环境数据生成系统,其特征在于,包括:预处理模块、试验任务时空拆分模块、预处理及运行控制模块和运行状态显示模块;
[0042]
所述预处理模块用于基于相应数据集,构建初始运行模型,形成roms模式;所述初始运行模型包括:地理环境模型、初始场模型、强迫场模型和边界条件模型;
[0043]
所述试验任务时空拆分模块用于根据试验任务对海洋环境的需求,对试验任务进行时空拆分;
[0044]
所述预处理及运行控制模块用于自动调用运行脚本,控制roms模式运行,并生成相应试验任务下所需的海洋环境数据;
[0045]
所述运行状态显示模块用于实时显示roms模式的运行状态和海洋环境数据的生成进度。
[0046]
经由上述的技术方案可知,与现有技术相比,本发明具有以下有益效果:
[0047]
本发明通过对roms原理的研究,构建了地理环境模型、初始场模型、强迫场模型和边界条件模型,并在此基础上,根据虚拟装备试验对海洋数据的需求,将试验任务在时间维度及空间维度上进行拆分,并自动调用运行脚本,控制roms模式自动运行,实现将高分辨率,大尺度的试验任务拆成保证软件稳定运行的一个个高分辨率,小尺度的试验任务,并自动生成海洋数据,为海洋装备联合试验提供依据。
附图说明
[0048]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
提供的附图获得其他的附图。
[0049]
图1为基于roms的海洋环境数据生成方法的流程图;
[0050]
图2为roms内外模式耦合计算流程图;
[0051]
图3为roms模式的依赖支撑关系示意图;
[0052]
图4为arawac网格示意图;
[0053]
图5为正交曲线坐标系示意图;
[0054]
图6为roms模式垂直坐标系示意图;
[0055]
图7为地理环境模型的构建流程图;
[0056]
图8为初始场模型的构建流程图;
[0057]
图9为强迫场模型的构建流程图;
[0058]
图10为试验任务空间维度拆分流程图;
[0059]
图11为roms模式自动化运行流程图;
[0060]
图12为基于roms的海洋环境数据生成系统的结构框图;
[0061]
图13为基于roms模式的海洋环境数据生成软件用例图;
[0062]
图14为基于roms模式的海洋环境数据生成静态类图;
[0063]
图15为时序图;
[0064]
图16为基于roms模式的海洋环境数据生成软件界面示意图。
具体实施方式
[0065]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0066]
如图1所示,本发明实施例公开了一种基于roms的海洋环境数据生成方法,包括以下步骤:
[0067]
基于相应数据集,构建初始运行模型,形成roms模式;初始运行模型包括:地理环境模型、初始场模型、强迫场模型和边界条件模型;
[0068]
根据试验任务对海洋环境的需求,对试验任务进行时空拆分;
[0069]
自动调用运行脚本和相应的初始运行模型,控制roms模式运行,并生成相应试验任务下所需的海洋环境数据;
[0070]
实时显示roms模式的运行状态和海洋环境数据的生成进度。
[0071]
roms模式,即区域海洋模式系统是用于对各种尺度的水体运动进行模拟的数值计算模型,模型在构建过程中其遵循地球系统建模原理,由初始化、运行、完成三个阶段完成一次计算过程,计算的核心为动态内核,分别是非线性模型、切线性模型、伴随切线性模型以及伴随模型,这四个模型将单独或组合进行数值计算。roms模式涉及的物理过程包括海洋的流体动力学、热力学、盐度和沉积学等方面,roms将根据这些过程的相互作用来模拟海洋的演化和变化,包括海水温度、盐度、流速、海洋生态系统的物理和生物化学特征等,roms的优势便在于能够模拟不同时间和空间尺度下的海洋动力学过程。此外,roms模型还可以嵌套在其他地球系统模型中,以模拟海洋与大气、陆地等其他系统之间的相互作用。
[0072]
除此之外,roms模式的构建需要依赖以下几个假设:静水压假设:垂直动量方程被简化为垂直压力梯度和浮力之间的平衡;boussinesq假说:在计算过程中忽略密度的变化,但密度变化对浮力的贡献需要考虑在内;不可压缩性假设:假设速度矢量的三维发散为零;球形地球近似:假设位势表面为球体,因此重力平行于地球半径;薄壁近似:与地球半径相比,海洋深度被忽略;以及湍流闭合假设:湍流通量以大尺度特征表示。
[0073]
在现实世界的海洋环境中,存在具有不同速率的两种运动,一种是以正压性为主的同海洋表面重力波相关的快运动,另一种是速率较慢的以斜压性为主的与密度变化有关的运动,因此roms模式在计算过程中分为内模式与外模式计算,外模式步长较小,速率较快,内模式用于温度场、盐度场以及流场的计算,步长较大,速率较慢,这种内外模式耦合的计算方式有助于提升计算效率,roms内外模式耦合计算流程如图2所示。
[0074]
(1)首先进行模式的初始化,包括模式全部的参数以及物理量,随后内模式开始循环运行,对压强梯度、水平流速、扩散系数等数值进行计算,并对上述参数进行垂直积分;
[0075]
(2)随后开始进行外模式的循环运行,包括水位计算、边界处理、平流与扩散项计算、流速计算以及时间平均流速计算,时间平均流速计算完毕后需返回给内模式,作为内模式计算的参数;
[0076]
(3)外模式循环结束后,跳出该循环,进入内模式循环,并对内外模式流速进行匹配;
[0077]
(4)施加垂直边界条件,并计算相关系数;
[0078]
(5)计算温度场、盐度场以及流场并施加水平边界条件;
[0079]
(6)内模式循环结束后,跳出这层循环,roms模式内外模式耦合计算流程结束,将输出所计算的海洋数据。
[0080]
roms模式的安装需要依赖支撑库,其中包括:编译器,并行通信库(mpi),hdf5以及netcdf4,其依赖关系如图3所示。搭建流程如下:
[0081]
(1)安装编译器,目前较为常用的编译器有intel编译套件(ifort,icc,icpc)以及gnu编译套件(gcc,gfortran,g++),由于intel套件安装相对繁琐,同时可能出现与依赖库不匹配的情况,因此roms的安装选择gnu编译套件;
[0082]
(2)安装mpi,由于mpi协议需与编译器进行版本上的匹配,因此安装roms模式的并行通行库时选择mpich,mpich2;
[0083]
(3)安装hdf5的支撑库szip、zlib;
[0084]
(4)安装hdf5;
[0085]
(5)安装roms模式的io,即netcdf,由于roms模式的要求,netcdf版本需高于4.2(分别安装netcdf-c和netcdf-fortran);
[0086]
(6)安装roms模式,roms模式更为详细的安装过程可以参考roms官网或者wiki文档。
[0087]
在一个具体实施例中,为了向roms模式提供较为真实的地理环境,需要将地形数据集处理成符合roms模式结构的地形网格,roms模式的地形网格分为水平和垂直两个方向,为了提升模式计算的稳定性,水平方向上使用的是arawac网格,变量离散在上面,其示意图如图4所示,其中v与u代表第(i,j)格点的流速,ρ代表该格点的密度。
[0088]
同时,为了能更好的贴合海岸线,roms模式采用正交曲线坐标系,示意图如图5所
示。
[0089]
垂直方向上,为了减少计算资源的浪费,roms模式采用经笛卡尔坐标系转换后的垂直sigma坐标系,简称s坐标系,并且采用非等深的层数划分,可根据自身的需要对分层方式进行设置,比如上密下疏等分层方式,s坐标系示意图如图6所示。
[0090]
为了实现s坐标系,目前roms模式通过两种转换函数用于s坐标系与笛卡尔坐标系的转换。
[0091]
(1)原始转换函数
[0092][0093]
z0(x,y,s)=hc·
s+[h(x,y)-hc]
·
c(s) (2)
[0094]
(2)经改进后的原始函数
[0095]
z(x,y,s,t)=ζ(x,y,s)+[ζ(x,y,t)+h(x,y)]
·
z0(x,y,s)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0096][0097][0098]
d=z+η
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0099]
其中z0(x,y,s)表示非线性垂直拉伸函数,ζ(x,y,s)表示自由表面水位,h(x,y)表示海洋静水深,hc表示控制拉伸的参数(正数),c(s)表示拉伸函数,s表示实际垂直拉伸坐标,由式5得出,数值范围为-1到0。
[0100]
为了实现层数非等深划分,拉伸函数主要包括如下四种:
[0101]
(1)原始拉伸函数,如式(7)所示
[0102][0103]
(2)shchepetkin函数,由式(8)至(11)表示
[0104]
c(s)=c
weight
·csur
(s)+(1-c
weight
)
·cbot
(s)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0105][0106][0107][0108]
(3)geyer函数通常在模拟浅水区域沉积物运动的情况下使用,由式(12)至(15)表示
[0109]
c(s)=c
weight
·cbot
(s)+(1-c
weight
)
·csur
(s)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0110]
[0111][0112]cweight
=0.5
·
{1-tanh[3
·
(s+0.5)]}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0113]
(4)改进后的双重拉伸函数,由式(16)至(18)表示
[0114][0115][0116][0117]
其中θb表示底部拉伸参数,数值越大,底部网格越密集;θs表示表面拉伸参数,数值越大,顶部网格越密集,两个参数的数值需根据任务的需求进行设置,二者取值范围:0≤θs≤20,0≤θb≤1;s表示距离水面的垂向距离;n表示分层;csf表示表面控制函数;sc表示分层的垂向拉伸坐标。
[0118]
地理环境构建过程观测数据来源于etopo数据集,是由美国地球物理中心发布的对卫星遥感、海底测量、地球物理探测等数据进行分析、整理的地形数据集,包括全球陆地和海底地形数据,分辨率约为1.85千米,是研究海底和陆地表面形态的重要工具。
[0119]
下面对初始运行模型的构建过程做进一步的说明。
[0120]
1.地理环境模型构建
[0121]
如图7所示,地理环境模型的构建过程为:
[0122]
根据空间范围及空间分辨率建立经纬度坐标系,即经纬度网格,由于地球为球体,因此为了保证经度和纬度的分辨率相同,纬度根据空间分辨率坐标系划分公式如式(19)所示,其中dl为空间分辨率,lati的范围为最小纬度到最大纬度。
[0123][0124]
温度及盐度同x,y方向上的流速u,v计算位置不同,因此在经纬度网格的基础上建立uv网格,并计算与地球自转相关的科里奥利参数,如式(20)所示
[0125][0126]
在此基础上,读取etopo地形数据集,为了保证地形平滑,首先对地形数据进行降采样处理,随后通过双三次插值方法将地形数据插值到建立的经纬度网格上,插值过程满足式(21)及式(22):
[0127]
[0128][0129]
其中,h(x,y)表示该位置待计算的地形数据,a=-0.5;h
ij
表示对待插值的地形数据(x,y),取其附近的3x3邻域点(xi,yj);w(i)表示i行的位置;w(j)表示j列的位置;w(x)表示用多项式w(x)来逼近理论上的最佳插值函数,基于bicubic基函数的双三次插值法,bicubic基函数形式。
[0130]
随后,对经纬度网格和uv网格进行掩码处理,以确保边界连续,并剔除单独在外的点,根据地球投影绘制海岸线地图,将地形截断至已设置的最大水深,并通过汉宁窗对地形进行平滑处理,得到地理环境模型。
[0131]
2.初始场模型构建
[0132]
如图8所示,初始场模型的构建过程为:
[0133]
读取地形环境以及初始场数据集,初始场使用的观测数据为简单海洋同化资料(simple ocean data assimilation,soda),是由全球简单海洋资料同化系统产生的海洋数据,包括温度、盐度、海流等,水平分辨率约为50千米;
[0134]
读取完毕后,根据空间范围,在数据集上进行数据截取并对网格进行拉伸转换;
[0135]
由于初始场数据集的空间分辨率相对较低,需将初始场数据中的温度及盐度在已构建的地形网格上进行插值,判断数据是否缺失过多,若是,计算已有数据的平均值,将其赋给所有缺失的数据,否则,将距离最近的数据赋值给该缺失位置,得到初始场模型。
[0136]
3.强迫场模型构建
[0137]
roms模式在地形网格上对各个变量的演化过程是通过控制方程计算的,其中x(纬度方向)和y(经度方向)方向上速度分量由动量平衡方程控制,如式(23)至(24)所示
[0138][0139][0140]
海洋特征参数的浓度场随着时间的演化过程由平流扩散方程控制,如式(25)所示,特征参数为c(x,y,z)(例如盐度、温度或营养物质)
[0141][0142]
密度场的状态方程由式(26)给出:
[0143]
ρ=ρ(t,s,p)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(26)
[0144]
由于roms模式采用boussinesq近似假设,因此除了需要考虑密度变化对垂直动量方程中浮力的贡献以外,动量方程将忽略密度变化的影响。在静水压近似下,进一步假设垂直压力梯度平衡浮力满足式(27)
[0145]
[0146]
式(28)表示对于不可压缩流体的连续性方程:
[0147][0148]
其中,du,dv,dc表示扩散项,fu,fv,fc表示强迫项,g表示重力加速度,f(x,y)表示coriolis参数,φ(x,y,z,t)表示动压力φ=p/ρ0,p为总压强,ρ0+ρ(x,y,z,t)表示原位密度,u,v,w,表示向量速度的x,y,z方向分量。
[0149]
在控制方程中的强迫项主要通过强迫场提供,强迫场使用的观测数据集为era5数据集,是由欧洲中期天气预报中心发布的全球再分析数据集。该数据集覆盖全球,数据空间范围包括大气、陆地和海洋,时间跨度从1979年至今。era5数据集提供了多种大气和陆地参数,包括温度、湿度、风速、降水、云量、辐射通量、地表温度等,分辨率能达到10千米以下。该数据集的更新频率为每日,是全球气候研究、天气预报、环境监测和气候变化研究等领域的重要数据来源。
[0150]
具体来说,如图9所示,强迫场模型的构建过程为:
[0151]
读取地形环境以及强迫场数据集,根据空间范围,在数据集上进行数据截取,并为地形矩阵添加时间维度;
[0152]
将强迫场数据中的风应力、热通量数据在已构建的地形网格上进行插值,判断数据是否缺失严重,若是,则计算已有数据的平均值,将其赋给所有缺失的数据,否则,通过最邻近插值方法将距离最近的数据赋值给该缺失位置,得到强迫场模型。
[0153]
4.边界条件模型构建
[0154]
roms模式边界条件分为两个方向,即垂向边界条件和水平边界条件。垂向边界条件用于海洋表面和海洋底部的计算,被划分为顶部边界条件和底部边界条件,水平边界条件根据边界的不同分为开边界与闭边界条件,当需要计算的海域边界为陆地时,需要为模式提供闭边界,闭边界中无参数交换,同时边界条件为控制方程提供强迫项与耗散项。
[0155]
roms模式的开边界条件主要包含以下几种:
[0156]
(1)梯度边界条件
[0157]
该边界条件直接将外部值设定与距其最近的内部值相等,这种计算方式默认边界附近没有平流输送,会导致入射至边界的波能量会被反射到计算区域,而不是被传送至外部,这种情况可能导致计算不稳定。
[0158][0159]
其中φ表示物理量。
[0160]
(2)flather边界条件
[0161]
该边界条件适用于正压流速的计算,其中是通过物理量衰减的方法进行估计得到的。
[0162][0163]
表示要模拟的边界网格点上的法向流速值;表示外部给出的法向流速值;g表
示重力加速度;d表示水深;η表示上一时刻模式边界网格点上计算的水位值;η
ext
表示外部给出的水位值。
[0164]
(3)chanmpan边界条件
[0165]
该边界条件适用于自由水位的计算,并将向计算区域外部流出的流体速度设为浅水波速度
[0166][0167]
(4)辐射边界条件
[0168]
该边界条件可以仅通过水平方向来进行三个方向的水波的计算,但是只适用于水波向计算区域外传播的情况。
[0169][0170]
其中,
[0171][0172][0173][0174]
φ
x
、φy分别表示平行于和垂直于边界方向的相速度。
[0175]
(5)松弛边界条件
[0176]
松弛边界条件如式(36)所示
[0177][0178]
其中,τ为时间步长,φ
ext
为外部数据;φ表示开边界处物理量。
[0179]
具体来说,边界条件模型的构建过程为:
[0180]
选择champan边界条件计算开边界水位;
[0181]
选择flather边界条件计算开边界流速;
[0182]
选择辐射-松弛混合边界条件计算温盐场边界,将出流设置为辐射边界条件,将入流设置为松弛边界条件;
[0183]
根据上述的各个边界条件在地形网格的四个边界上进行插值,得到边界条件模型。
[0184]
在一个实施例中,根据试验任务对海洋环境的需求,对试验任务进行时空拆分,包括:空间拆分和时间拆分;
[0185]
由于roms模式运行大尺度时空范围、高时空分辨率的试验任务时,可能会出现由于格点数过多导致模型计算崩溃的情况,为保证软件在运行过程中的稳定性,需要进行试验任务空间维度上的拆分,以空间范围为1
°
*1
°
,分辨率为2000米为例,x方向及y方向网格格点数约为50个,则水平方向上的格点数为2500个,当水平方向上的网格格点数超过2500时,模型计算过程中便会存在崩溃的风险。因此在这种情况下,软件会对试验任务进行空间上的拆分。空间拆分过程如图10所示,具体包括:
[0186]
根据输入的空间分辨率及空间范围进行网格格点数计算,若水平方向的格点总数小于2500个,则试验任务不进行空间上的拆分,若水平方向的格点数大于2500个,则需要对试验任务的空间范围进行拆分;对试验任务的空间范围拆分过程包括:
[0187]
根据空间分辨率,计算出单个网格所包含的最大空间范围;
[0188]
判断网格是否覆盖试验空间范围,当目前所有网格覆盖试验空间的范围时,试验任务的空间拆分结束,若无法将试验空间范围全部覆盖,则将网格扩大一圈,重新进行条件判断,直至所有网格全部覆盖试验空间范围;计算结束后,将每个网格的覆盖范围存入空间数组中,以便后续模式运行;
[0189]
与此同时,在roms模式生成所需的虚拟海洋环境数据的过程中,为了防止单个文件内部数据量过大,不便于后续数据的处理,软件将对试验任务进行时间维度上的拆分。拆分公式为:
[0190][0191]
其中,t1为初始时间,t2为截止时间,t为时间分辨率,n为时间数组的大小。
[0192]
其中,对试验任务进行时空拆分时,将输入的时间格式转换为儒略日的表示形式。
[0193]
儒略日是一种计算日期的方式,以儒略历引入日期的天数表示日期,从公元前4713年1月1日中午12时开始计算。这一时刻称为儒略日的起始日或者原点,对应的儒略日为0,儒略日的计算方式是基于地球的自转周期和公转周期,因此能够描述一个恒定的时间间隔,对于计算天体运动以及测量时间间隔非常方便,儒略日不仅在海洋与大气学科中被使用,在卫星通信和导航中也广泛使用儒略日来同步不同设备之间的时间。下面将介绍公历日期转为儒略日的方法。
[0194]
假设公历日期为y年m月d日(可以为小数)
[0195]
ifm》2m=m;y=y;
[0196]
ifm=1||m=2y-=1m+=12
[0197]
即如果日期为1月或者2月,会被视作是前一年的十三或者十四月。儒略日计算公式如式(38)所示:
[0198]
jd=int(365.25*(y+4716))+int(30.6001*(m+1))+d+b-1524.5 (38)
[0199]
在儒略日的计算中,b=0。
[0200]
由于儒略日的位数过长,为节省计算机存储空间,史密松天体物理台于1957年提出简化儒略日这一概念,简化儒略日的参考日期为1858年11月17日0点,即该时刻是简化儒略日的原点,简化儒略日的缩写为mjd,其数值计算如式所示,roms模式可根据参数来进行儒略日或简化儒略日的选择。
[0201]
mjd=jd-2400000.5 (39)
[0202]
在一个具体实施例中,如图11所示,自动调用运行脚本,控制roms模式运行,并生成所需的海洋环境数据,包括:
[0203]
删除ocean_data文件夹中留存的全部数据文件;
[0204]
根据输入的空间分辨率及空间范围决定是否进行试验任务的空间维度拆分,当需要进行空间维度的拆分时,将拆分后的全部空间范围存入空间数组中;
[0205]
进入循环,调用file_ge.sh运行脚本,运行saddp、start以及param参数文件进行路径挂载和参数的全文件应用;调用roms_grid.m,根据在界面获得的空间分辨率及空间范围结合地形数据生成地形网格,为roms模式提供地理环境;将通过运行change_type文件将nc格式的格点文件转化为txt格式,读取txt格式的格点文件,将roms_upwelling.in文件相应的格点数、海洋垂向层数(即三维空间分辨率)进行修改;运行roms_ini文件,将观测数据中的初始海平面高度、初始温盐场数据插入网格点生成初始场,定义roms模式的初始状态;运行roms_bry,将边界条件中包括水位边界、流速边界、温盐边界等控制边界强迫及耗散的数据插值到地形网格上,生成边界条件;运行roms_forcing,将大气通量、热通量等海面数据进行插值,生成强迫场,对试验任务进行时间拆分,拆分后的数据存入时间数组中;
[0206]
进入第二层循环,根据时间数据修改roms模式输入文件roms_upwelling.in中初试时间、时间步数等时间参数,调用run.sh脚本控制roms模式运行,生成试验任务所需的海洋数据文件,并将虚拟海洋数据文件移入指定的文件夹中。
[0207]
其中,roms模式的输入文件roms_upwelling.in控制着roms模式的运行,包括运行核数、时间范围以及roms模式输出文件路径等。
[0208]
本发明实施例还公开一种基于roms的海洋环境数据生成系统,roms模式是基于linux系统的区域海洋模式,所以本发明选择了ubuntu18.0.4系统进行roms模式的搭建,并选择qt5.12.10作为软件的开发环境。根据试验任务的高精度,大尺度范围的要求,在linux系统下开发基于roms模式的海洋数据生成软件,进行空间及时间范围的拆分,实现roms模式运行的自动化,总体框架图如图12所示。
[0209]
该系统包括四个模块,分别为:预处理模块、试验任务时空拆分模块、预处理及运行控制模块和运行状态显示模块;
[0210]
预处理模块用于基于相应数据集,构建初始运行模型,形成roms模式;初始运行模型包括:地理环境模型、初始场模型、强迫场模型和边界条件模型;
[0211]
试验任务时空拆分模块用于根据试验任务对海洋环境的需求,对试验任务进行时空拆分;将高时空分辨率、大尺度范围的试验任务拆分成为一个个高时空分辨率,小尺度范围的试验任务;
[0212]
预处理及运行控制模块用于自动调用运行脚本,控制roms模式运行,并生成相应试验任务下所需的海洋环境数据,生成的海洋环境数据以数据文件形式展示,数据文件中包括温度场、盐度场以及流场等;
[0213]
运行状态显示模块用于实时显示roms模式的运行状态和海洋环境数据的生成进度。
[0214]
该系统的外部输入数据包括试验人员在软件界面上输入的参数以及观测数据集,观测数据支持的空间范围为全球海域,时间范围为1999年至今。
[0215]
roms模式的运行需要进行预处理及一系列的配置,过程较为复杂和繁琐,为保证试验人员操作的简便性,海洋环境数据生成软件将这些步骤进行简化,试验人员只需在软件界面输入试验任务所需的时空范围以及时空分辨率即可获得所需的数据,具体包括如下的功能:
[0216]
(1)实现界面可视化,试验人员根据自身的需求,能够在软件界面上依次输入运行的起始时间和终止时间、经纬度范围、空间分辨率、时间分辨率、水深深度、垂向分层数、计算核数等数据,实现与模型的交互。在模型运行后,能够查看运行信息及运行进度,并在相应文件夹中获取所需的数据文件。
[0217]
(2)实现运行自动化,软件能够对外部输入的数据进行处理,使其能够为roms模式提供地理环境及初始场等模型,同时使参数符合运行脚本文件的规范,并自动对模型输入文件进行修改,调用运行脚本,控制roms模式的运行。
[0218]
根据系统所需的各种功能,软件的用例图如图13所示。
[0219]
用例包括海洋数据处理、初始模型生成以及roms模式运行控制,下面将对软件用例进行详细分析:
[0220]
(1)输入参数处理
[0221]
为试验人员提供输入数据的可视化界面,当输入数据有误或有所缺失,将进行错误信息提示,直到输入的数据无误时,会对输入的数据进行相应的处理,使其符合roms模式所需的表示方式并将参数进行传递。
[0222]
(2)初始模型生成
[0223]
根据试验人员设置的参数,对试验任务进行空间维度及时间维度上的拆分,将拆分后的试验任务相关数据存入数组中,循环运行shell脚本,通过上述数据生成相应模型。
[0224]
(3)roms模式运行控制
[0225]
软件根据从界面获得的数据修改模式输入文件中的相应参数,自动调用运行脚本,控制roms模式运行,并提供运行信息及运行进度查看功能;在roms每次运行结束时,将生成的海洋数据文件自动移入已设置完成的文件夹位置,并将生成的文件名称显示在软件界面中的文件列表上。
[0226]
进一步的,系统总共分为五个类,分别是数据处理类、文件修改类、调用类以及海洋环境类。软件的静态类图如图14所示。
[0227]
(1)数据处理类
[0228]
该类将进行数据的格式转换,将输入的公历日期时间格式转化为roms模式输入文件可识别的儒略日的表示方式。
[0229]
(2)文件修改类
[0230]
该类能够遍历已设置的文件夹路径,将文件夹内部留存的数据文件全部进行删除操作,同时该类可以根据试验人员传递的参数进行预处理模块的修改,并在初始模型生成之后,进行文件格式的转化,将地形网格的nc格式转化为txt格式,该类还包括读取文件的功能,在转化后的txt文件中获取格点文件的格点数以及水深层数,在roms模式修输入文件对应位置进行修改。
[0231]
(3)调用类
[0232]
该类在运行过程中接收到试验人员输入的海洋参数并调用预处理模块,生成初始
模型,并自动调用模式运行脚本,根据修改后的模式输入文件控制roms模式的运行,并能够接收运行过程中返回的信息,在运行错误的时候进行运行错误信息提示。
[0233]
(4)海洋环境类
[0234]
该类提供roms模式运行所需参数的输入界面,提供试验人员输入时空范围,时空分辨率等参数的途径,并对输入的参数进行可靠性检验。在参数输入完毕后,根据该参数进行试验任务的时间及空间拆分,同时,该类在运行过程中可以显示运行状态,并据此推动进度条的位置,在运行结束后,将生成的数据文件名展示在界面上的文件列表中,其中文件名称包括时间以及空间范围的信息,方便用户的查看。
[0235]
在试验人员完成参数输入并进行运行操作后,时序图如图15所示。
[0236]
试验人员根据软件界面上的标签,将起始及截止经纬度、时间范围、时空分辨率、水深深度、水深层数、roms模式运行核数等数据输入在界面上,当输入的数据缺失、或者输入的数据出现格式不符合规范、数据超出范围等问题,软件将以弹出错误信息窗的方式对试验人员进行错误提示,直到试验人员输入的数据通过软件的参数正误检查,才可进行下一步,在运行初始,文件修改类会清空指定的数据文件存放的文件夹,海洋环境类根据时空分辨率及时空范围的要求进行试验任务的时间及空间的拆分,将拆分后的数据分别传递给数据处理类与调用类,数据处理类将输入的公历日期时间转化为儒略日时间,调用类则运行预处理模块,生成roms模式所需的地形网格、初始场等,最终调用类调用运行脚本,文件修改类修改模式输入文件,设置好初始时间、格点数、水深层数等。模式开始运行,在运行过程中返回运行信息,海洋环境类据此显示运行状态及进度,最终生成所需的海洋环境数据。
[0237]
基于roms模式的海洋环境数据生成软件的界面设计图如图16所示,主要分为参数输入、运行信息、数据文件列表几个部分。
[0238]
(1)参数输入包括时间范围以及时空分辨率:起始时间,截止时间,起始经纬度,截止经纬度、空间分辨率、垂向层数、水深深度、时间分辨率及运行时的计算核数。
[0239]
(2)运行信息,包括能够查看运行进度的进度条以及接收运行信息的信息窗口,可根据该窗口查看详细的运行状态。
[0240]
(3)数据文件列表,用于将软件运行结束后的roms模式所生成的海洋数据文件进行展示。
[0241]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0242]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种基于roms的海洋环境数据生成方法,其特征在于,包括以下步骤:基于相应数据集,构建初始运行模型,形成roms模式;所述初始运行模型包括:地理环境模型、初始场模型、强迫场模型和边界条件模型;根据试验任务对海洋环境的需求,对试验任务进行时空拆分;自动调用运行脚本,控制roms模式运行,并生成相应试验任务下所需的海洋环境数据;实时显示roms模式的运行状态和海洋环境数据的生成进度。2.根据权利要求1所述的基于roms的海洋环境数据生成方法,其特征在于,roms模式的地形网格分为水平方向和垂直方向,水平方向上采用arawac网格,垂直方向上采用经笛卡尔坐标系转换后的垂直sigma坐标系。3.根据权利要求1所述的基于roms的海洋环境数据生成方法,其特征在于,所述地理环境模型的构建过程为:根据空间范围及空间分辨率建立经纬度网格;在经纬度网格的基础上建立uv网格,并计算与地球自转相关的科里奥利参数;读取etopo地形数据集,对地形数据进行降采样处理,并通过双三次插值方法将地形数据插值到建立的经纬度网格上;对经纬度网格进行掩码处理,并剔除单独在外的点,根据地球投影绘制海岸线地图,将地形截断至已设置的最大水深,并通过汉宁窗对地形进行平滑处理,得到地理环境模型。4.根据权利要求1所述的基于roms的海洋环境数据生成方法,其特征在于,所述初始场模型的构建过程为:读取地形环境以及初始场数据集,读取完毕后,根据空间范围,在数据集上进行数据截取并对网格进行拉伸转换;将初始场数据中的温度及盐度在已构建的地形网格上进行插值,判断数据是否缺失过多,若是,计算已有数据的平均值,将其赋给所有缺失的数据,否则,将距离最近的数据赋值给该缺失位置,得到初始场模型。5.根据权利要求1所述的基于roms的海洋环境数据生成方法,其特征在于,所述强迫场模型的构建过程为:读取地形环境以及强迫场数据集,根据空间范围,在数据集上进行数据截取,并为地形矩阵添加时间维度;将强迫场数据中的风应力、热通量数据在已构建的地形网格上进行插值,判断数据是否缺失严重,若是,则计算已有数据的平均值,将其赋给所有缺失的数据,否则,通过最邻近插值方法将距离最近的数据赋值给该缺失位置,得到强迫场模型。6.根据权利要求1所述的基于roms的海洋环境数据生成方法,其特征在于,所述边界条件模型的构建过程为:选择champan边界条件计算开边界水位;选择flather边界条件计算开边界流速;选择辐射-松弛混合边界条件计算温盐场边界,将出流设置为辐射边界条件,将入流设置为松弛边界条件;根据上述的各个边界条件在地形网格的四个边界上进行插值,得到边界条件模型。7.根据权利要求1所述的基于roms的海洋环境数据生成方法,其特征在于,所述根据试
验任务对海洋环境的需求,对试验任务进行时空拆分,包括:空间拆分和时间拆分;空间拆分包括:根据输入的空间分辨率及空间范围进行网格格点数计算,若水平方向的格点总数小于2500个,则试验任务不进行空间上的拆分,若水平方向的格点数大于2500个,则需要对试验任务的空间范围进行拆分;对试验任务的空间范围拆分过程包括:根据空间分辨率,计算出单个网格所包含的最大空间范围;判断网格是否覆盖试验空间范围,当目前所有网格覆盖试验空间的范围时,试验任务的空间拆分结束,若无法将试验空间范围全部覆盖,则将网格扩大一圈,重新进行条件判断,直至所有网格全部覆盖试验空间范围;计算结束后,将每个网格的覆盖范围存入空间数组中;时间拆分包括:对试验任务进行时间维度上的拆分,拆分公式为:其中,t1为初始时间,t2为截止时间,t为时间分辨率,n为时间数组的大小。8.根据权利要求7所述的基于roms的海洋环境数据生成方法,其特征在于,对试验任务进行时空拆分时,将输入的时间格式转换为儒略日的表示形式。9.根据权利要求1所述的基于roms的海洋环境数据生成方法,其特征在于,所述自动调用运行脚本,控制roms模式运行,并生成所需的海洋环境数据,包括:删除ocean_data文件夹中留存的全部数据文件;根据输入的空间分辨率及空间范围决定是否进行试验任务的空间维度拆分,当需要进行空间维度的拆分时,将拆分后的全部空间范围存入空间数组中;进入循环,调用file_ge.sh运行脚本,运行saddp、start以及param参数文件进行路径挂载和参数的全文件应用;调用roms_grid.m,根据在界面获得的空间分辨率及空间范围结合地形数据生成地形网格,为roms模式提供地理环境;将通过运行change_type文件将nc格式的格点文件转化为txt格式,读取txt格式的格点文件,将roms_upwelling.in文件相应的格点数、海洋垂向层数进行修改;运行roms_ini文件,将观测数据中的初始海平面高度、初始温盐场数据插入网格点生成初始场,定义roms模式的初始状态;运行roms_bry,将边界条件中控制边界强迫及耗散的数据插值到地形网格上,生成边界条件;运行ro ms_forcing,将大气通量、热通量海面数据进行插值,生成强迫场,对试验任务进行时间拆分,拆分后的数据存入时间数组中;进入第二层循环,根据时间数据修改roms模式输入文件roms_upwelling.in中时间参数,调用run.sh脚本控制roms模式运行,生成试验任务所需的海洋数据文件,并将虚拟海洋数据文件移入指定的文件夹中。10.一种基于roms的海洋环境数据生成系统,其特征在于,包括:预处理模块、试验任务时空拆分模块、预处理及运行控制模块和运行状态显示模块;所述预处理模块用于基于相应数据集,构建初始运行模型,形成roms模式;所述初始运行模型包括:地理环境模型、初始场模型、强迫场模型和边界条件模型;所述试验任务时空拆分模块用于根据试验任务对海洋环境的需求,对试验任务进行时空拆分;
所述预处理及运行控制模块用于自动调用运行脚本,控制roms模式运行,并生成相应试验任务下所需的海洋环境数据;所述运行状态显示模块用于实时显示roms模式的运行状态和海洋环境数据的生成进度。
技术总结
本发明涉及数据模拟技术领域,具体涉及一种基于ROMS的海洋环境数据生成方法及系统,方法包括:构建初始运行模型,形成ROMS模式;初始运行模型包括:地理环境模型、初始场模型、强迫场模型和边界条件模型;根据试验任务对海洋环境的需求,对试验任务进行时空拆分;自动调用运行脚本,控制ROMS模式运行,并生成相应试验任务下所需的海洋环境数据;实时显示ROMS模式的运行状态和海洋环境数据的生成进度。本发明针对虚拟装备试验对海洋数据的需求,以开源的区域海洋模式ROMS为基础,根据试验任务对环境的需求生成指定时空范围、时空分辨率的包括流场、温盐场、密度场等在内的海洋数据资源。密度场等在内的海洋数据资源。密度场等在内的海洋数据资源。
技术研发人员:林连雷 于航懿 陈嘉玮
受保护的技术使用者:哈尔滨工业大学
技术研发日:2023.06.19
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/