基于MATLAB的ROMS区域海洋模式预处理、后处理工具包
该工具包为本人进行ROMS相关科研时编写。所有公开的代码可以免费用于学习、科研工作等,但不可用于商业行为,不可盈利。
如果您使用本人修改的工具(仅my_tools_
前缀的目录为本人开发,其余来自COAWST)做出了相关成果,如发表了论文等,恳请给本项目点个Star。
MATLAB-based pre-processing and post-processing toolkit for ROMS regional ocean models
This toolkit is written for my ROMS related scientific research. All the open code can be used for free for study, research work, etc., but not for commercial behavior, not for profit.
If you use my modified tools (only the my_tools_
prefixed directory is developed by me, the rest is from COAWST) to produce relevant results, such as published papers, etc., you are kindly requested to give a Star to this project.
基于COAWST模式附带的工具包,用于制作ROMS模式的预处理文件,以及用于我的项目的分析、绘图。
mfiles目录下是一组Matlab的预处理/后处理工具
- 本项目将多个文件中分散的配置进行了综合,使用
config.m
文件进行统一管理 - 增加或修复了部分ROMS和SWAN工具,例如添加河流文件、增加初始场示踪剂等。
- 增加了一些通用型工具
- MATLAB R2019b+
- Image Processing Toolbox
- Mapping Toolbox
- Optimization Toolbox
- Parallel Computing Toolbox
- Statistic and Machine Learning Toolbox
- Symbolic Math Toolbox
- Python 3.5+
- requests
这些是COAWST工具包中自带的目录。目录中的部分文件可能也被我修改了。
目录名 | 内容 |
---|---|
inwave_tools |
inwave模式工具 |
m_map |
地图的绘制等 |
mtools |
ROMS创建网格、加载NC文件、将网格转为scrip、从ROMS网格创建WRF网格等工具 |
roms_clm |
创建边界、初始文件、气候文件等。主驱动文件是roms_master_climatology_coawst_mw.m |
rutgers |
来自Rutgers的水深测量、边界、海岸线、强迫、网格、陆地掩膜、 netcdf、海水、和实用文件夹 |
swan_forc |
读取WW3 Grib2文件并创建SWAN Trap强迫文件,主驱动文件是ww3_swan_input.m |
tides |
为ROMS创建潮汐强迫 |
文件名 | 内容 |
---|---|
my_tools_core |
用于ROMS输入输出的核心代码函数库 |
my_tools_temp |
临时代码 |
my_tools_project |
用于污染物扩散模拟和溯源研究中的专有代码 |
文件名 | 内容 |
---|---|
add_paths |
将当前目录注册到MATLAB中,并注册 nctoolbox |
configs |
集合的配置文件 |
文件名 | 内容 |
---|---|
roms_create_grid_core |
创建ROMS网格 |
roms_create_grid_from_wrfinput |
从WRF的 wrfinput 文件创建ROMS网格 |
roms_fill_grid_h_core |
向ROMS网格文件中填充深度信息 |
roms_fix_h |
修复GridBuilder导出的网格文件深度问题 |
roms_get_grid_details |
获取ROMS网格的详细信息 |
roms_get_volumes |
获取ROMS网格中每个单元格的体积 |
roms_get_xy_by_lonlat_core |
根据经纬度获取ROMS网格的XY位置 |
roms_load_grid_rho |
从网格文件获取ROMS网格中rho的经度、纬度和海陆掩膜矩阵 |
roms_load_grid_psi |
从网格文件获取ROMS网格中psi的经度、纬度和海陆掩膜矩阵 |
创建初始场、边界场、气候态强迫文件
文件名 | 内容 |
---|---|
roms_create_clm_bdy_ini |
创建ROMS的初始场、气象场、边界场文件 |
create_bdy |
根据已有的clm文件创建边界文件 |
create_clm_nc |
根据给定的变量创建clm的nc文件 |
create_clms |
创建指定时间的合并的clm文件 |
create_single_clm |
创建单个clm文件 |
download_hycom |
下载指定时间和区域的HYCOM数据 |
download_cmems |
下载指定时间和区域的CEMEMS数据(包含生态变量) |
get_bar |
根据UV计算Ubar和Vbar |
get_hycom_info |
获取HYCOM数据的信息 |
get_roms_grid_info |
获取ROMS网格信息 |
merge_clms |
合并一个时间一个的clm文件 |
rotate_uv |
将横平竖直的UV进行旋转以符合ROMS网格 |
文件名 | 内容 |
---|---|
download_fnl |
批量下载NCEP FNL数据 |
roms_create_force_NCEP |
通过NCEP的FNL数据,创建大气强迫文件 |
roms_add_radiations_NCEP |
通过NCEP的DS083.3数据向大气强迫文件中加入短波辐射数据 |
roms_create_force_radiation_ERA5 |
通过欧洲中心的ERA5数据,创建短波辐射、长波辐射文件 |
文件名 | 内容 |
---|---|
roms_create_tides_tpx |
基于TPX的两个.m 文件创建ROMS潮汐文件 |
roms_create_tides_tpxo9 |
基于TPXO9创建ROMS潮汐文件 |
文件名 | 内容 |
---|---|
roms_add_passive_tracer_core |
向初始场和边界场中添加被动示踪剂 |
roms_add_tracer_from_xyz |
从XYZ类型的数据集中提取数据,向初始文件、边界文件、气候态文件中添加(生物等)示踪剂变量 |
roms_add_tracer_to_bdy_nc |
将数据写入到边界文件 |
roms_add_tracer_to_clm_nc |
将数据写入到气候态文件 |
roms_get_dye |
获得nc文件中的示踪剂 |
文件名 | 内容 |
---|---|
roms_create_floats |
创建ROMS漂浮子文件 |
roms_create_timely_floats |
创建ROMS漂浮子文件,在同一地点每隔一定时间生成一个漂浮子 |
show_floats |
显示漂浮子轨迹 |
floats_contribution |
基于漂浮子,计算不同释放源对某一海域的贡献,即有多少粒子曾经经过指定海域 |
文件名 | 内容 |
---|---|
get_all_biology_vars |
获取所有生物变量的变量名和描述 |
mgL2mmolm3 |
将mg/L转换为millimole/m^3 |
文件名 | 内容 |
---|---|
roms_get_times |
获取ROMS的nc文件中的时间序列 |
roms_unify_uv |
将ROMS的U和V分量统一大小并计算速度 |
文件名 | 内容 |
---|---|
swan_create_boundary_core |
创建SWAN的边界场 |
文件名 | 内容 |
---|---|
interpolate_xyz_to_sigma |
将基于一维XY(Z)正交网格的数据插值插值为ROMS的i-j-σ地形追随坐标系网格数据 |
convert_rho_to_uv |
将输入的rho网格转换为u或v网格 |
fill_invalid_data |
使用5点拉普拉斯滤波器填充陆地点或无效数据点 |
get_xyz_data_info |
获取XY(Z)正交网格的数据的基本信息及需要处理的数据边界 |
interpolate_z_to_sigma |
将基于确定深度的z网格插值为地形追随的σ网格 |
文件名 | 内容 |
---|---|
roms_create_rivers_core |
创建ROMS河流文件 |
文件名 | 内容 |
---|---|
fill_rst_bio_to_ini |
将模拟中生成的rst文件(最后时刻)的变量写入到初始场文件中,用于旋转模拟 |
nc_compact |
将nc文件进行压缩。可输出每个变量独立的nc/mat文件。可去除z纬。可将double转为float。 |
nc_dem_clip_core |
将DEM的nc文件进行裁剪,减小文件体积便于处理和导入GridBuilder |
nc_extract_variables |
将nc文件中的变量导出为mat文件 |
nc_fill_values_from_another |
将nc文件中的某个变量复制到另一个文件中的相同变量 |
read_data |
读取普通nc文件或经过nc_compact 处理后的nc/mat文件/目录 |
roms_add_variable_to_xyzt_nc |
在nc文件中生成一个xyzt(或xy、xyt、xyz)维度的变量,并写入数据 |
文件名 | 内容 |
---|---|
ncl |
NCL colormap包 |
a2z_string |
获取a到z的字符数组或其中一个字符 |
apply_colors |
将给定的颜色关键帧插值到指定数量然后应用colormap |
apply_font |
应用字体和字号 |
color_* |
应用指定颜色的colormap |
draw_background |
在指定区域绘制一块纯色背景 |
draw_border |
在当前坐标区的四边绘制边框 |
draw_map |
绘制基于地图坐标系的网格图 |
draw_monthly_profile |
绘制单个变量每月剖面图 |
draw_profile |
绘制多个变量的平均剖面图 |
draw_single_lonlat_tick |
显示多图tile时,左侧tile显示y坐标,底部tile显示x坐标 |
draw_time_series_lines |
绘制某几个变量在某一(几)个位置随时间变化的折线图 |
draw_time_series_maps |
绘制某几个变量在不同月份的地图 |
equal_aspect_ratio |
限制坐标系等比例为1:1 |
save_all_figures |
将所有figure保存为图片 |
set_gcf_size |
设置图窗大小 |
set_tiledlayout_compact |
设置tiledlayout 的Margin和内部tile之间的间距为较小值 |
show_simulation_and_observation_core |
用填色图和带颜色的点表示模拟值和观测值 |
show_value_change_core |
显示某一点或某一柱或某一片的值随时间的变化 |
text_corner |
在图的角落添加文字 |
text_left_top |
在图的左上角添加白底黑字文字标签。过时,使用text_corner |
text_right_bottom |
在图的右下角添加白底黑字文字标签。过时,使用text_corner |
文件名 | 内容 |
---|---|
get_ioa |
计算一致性指数(Index of agreement) |
get_r |
计算皮尔逊相关系数(r) |
get_mb |
计算平均偏差(Mean Bias) |
由于最新项目代码丢失,该版本代码为不知道什么时候备份的一份代码,不同代码的版本存在不一致的情况,无法保证可以正确联调运行,仅供参考。
由于最新项目代码丢失,该版本代码为不知道什么时候备份的一份代码,不同代码的版本存在不一致的情况,无法保证可以正确联调运行,仅供参考。
由于最新项目代码丢失,该版本代码为不知道什么时候备份的一份代码,不同代码的版本存在不一致的情况,无法保证可以正确联调运行,仅供参考。
文件名 | 内容 |
---|---|
bundle |
项目所有代码的集合 |
project_data |
项目代码的常量、配置 |
show_area |
绘制研究区域示意图 |
文件名 | 内容 |
---|---|
add_ini_bdy_dye |
向初始场和边界场文件中添加示踪剂 |
adjust_tide |
调整潮汐和分潮的振幅,使其更符合实际 |
compare |
比较不同污染物、不同季节的模拟结果与观测值对比及绘图 |
compare_single |
单个污染物、单个季节的模拟结果与观测值的对比及绘图 |
create_real_emmision_points |
基于政府发布数据创建河流源和排污点 |
read_emmision_table |
读取并处理排放清单Excel表格 |
show_degradation_coefficient |
显示降解系数的分布 |
show_emission_points |
绘制排放点位置 |
show_value_change |
绘制某一个值的变化 |
show_year_average |
显示各污染物年平均分布 |
文件名 | 内容 |
---|---|
ParseWaterQualityJson |
解析从生态环境部下载的海洋水质观测数据JSON的C#工具 |
draw_observations_position |
绘制观测点位置 |
get_observations |
从Excel中读取观测数据 |
get_observations_of_all |
从ParseWaterQualityJson 处理结果中读取指定范围和时间的观测数据 |
get_observation_of_cluster |
从ParseWaterQualityJson 处理结果中读取聚类后的数据 |
get_observations_of_site_groups |
从ParseWaterQualityJson 处理结果中读取根据站点号分组的观测数据 |
observation_interpolation |
观测值插值并绘制地图 |
show_obs_and_emis |
同时绘制观测点和排放的位置 |
show_observations_per_quarter |
绘制每个季度的污染物的浓度 |
文件名 | 内容 |
---|---|
GridClassificationTool |
用于绘制虚拟排放点的C#写的WPF工具 |
add_ini_bdy_tracer |
向初始场和边界场中加入示踪剂 |
create_manual_virtual_emission_points |
创建包含由GridClassificationTool 创建的虚拟排放点的河流文件 |
create_manual_virtual_emission_points_with_time |
创建包含由GridClassificationTool 创建的虚拟排放点的河流文件,排放流量随时间而改变 |
create_virtual_emission_points |
创建包含由代码指定的排放点位置的河流文件 |
export_mask |
创建海陆掩膜ASCII文件,供GridClassificationTool 使用 |
show_contributions |
绘制每个排放区域对研究区域的贡献 |
trace |
对每种污染物、每个季节的污染源排放通量或浓度进行溯源,并绘制地图 |
trace_single |
对单个污染物和季节的污染源排放通量或浓度进行溯源,并绘制地图 |
文件名 | 内容 |
---|---|
DownloadTideData |
从海事服务网爬取指定站点的潮高数据 |
show_flow |
绘制24小时流场图 |
show_tide |
进行潮汐验证并绘图 |
文件名 | 内容 |
---|---|
add_water_exchange_dye |
向初始场文件中添加用于水交换研究的示踪剂 |
create_water_exchange_rivers |
创建用于水交换研究的不含示踪剂浓度的河流 |
get_points_in_range |
筛选在指定范围内的点集 |
show_half_exchange_map |
绘制水体半交换时间地图 |
show_tracer_map |
绘制示踪剂浓度时间序列图 |
show_tracer_percent_in_each_part |
绘制不同示踪剂在不同区域中的浓度变化图 |
文件名 | 内容 |
---|---|
add_bio_to_rivers |
向河流中添加生物河流。在create_bio_rivers 后执行 |
add_real_bio_varibles |
向初始文件、边界文件、气候态文件中加入生物变量,并创建包含生物变量的河流文件 |
create_bio_rivers |
创建项目2河流 |
get_all_biology_var_info |
包含需要写入的生物变量的信息 |
文件名 | 内容 |
---|---|
compare_chl_with_clm |
与气候态文件中的叶绿素进行对比 |
compare_chl_with_CMEMS |
与CMEMS再分析资料比较叶绿素 |
compare_chl_with_oceancolour |
与OceanColour遥感反演资料比较叶绿素 |
compare_SST_with_Argo |
与Argo浮标比较温度 |
compare_SST_with_AVHRR |
与AVHRR卫星反演温度数据比较水温 |
文件名 | 内容 |
---|---|
draw_biology_profile |
绘制用于该项目的剖面图 |
draw_biology_time_series_maps |
绘制用于该项目的时间序列地图 |
draw_seasonal_currents |
绘制每个季节的海流 |
draw_seasonal_wind |
绘制每个季节的风 |
draw_sensitivity_testing_bars |
绘制敏感性试验中典型位置的条形图 |
draw_sensitivity_testing_maps |
绘制敏感性试验中的地图 |
在进行一切操作之前,首先需要编辑配置文件 configs.m
。
用户输入 | 子配置项 | 含义 | 格式 |
---|---|---|---|
√ | project_dir |
项目目录,进行预处理的目录 | string |
√ | build_dir |
模拟文件的输出目录,仅在Linux下直接后处理时指定 | string |
用户输入 | 子配置项 | 含义 | 格式 |
---|---|---|---|
√ | start |
开始时间 | int[6] ,分别为年月日时分秒 |
√ | stop |
结束时间 | int[6] ,分别为年月日时分秒 |
start_julian |
开始时刻的简化儒略日 | ||
stop_julian |
结束时刻的简化儒略日 | ||
days |
总天数 |
用户输入 | 子配置项 | 含义 | 格式 |
---|---|---|---|
√ | longitude |
经度范围 | double[2] ,分别为西侧经度、东侧经度 |
√ | latitude |
经度范围 | double[2] ,分别为南侧纬度、北侧纬度 |
√ | size |
网格大小(分辨率) | int[2] ,分别为Lm、Mm |
√ | N |
垂向分层 | int |
√ | theta_s |
地形跟随坐标θs参数 | double |
√ | theta_b |
地形跟随坐标θb参数 | double |
√ | Tcline |
地形跟随坐标关键深度参数 | double |
√ | Hmin |
最小深度值 | double |
√ | Vtransform |
地形跟随坐标Vtransform参数 | int |
√ | Vstretching |
地形跟随坐标Vstretching参数 | int |
用户输入 | 子配置项 | 含义 | 格式 |
---|---|---|---|
√ | grid |
网格文件 | string |
√ | bot |
地形文件 | string |
√ | force |
气象强迫场文件 | string |
√ | climatology |
气候强迫场文件 | string |
√ | initialization |
初始场文件 | string |
√ | boundary |
边界场文件 | string |
√ | tides |
潮汐强迫场文件 | string |
√ | rivers |
河流文件 | string |
用户输入 | 子配置项 | 含义 | 格式 |
---|---|---|---|
√ | hisotry |
历史文件 | string |
√ | floats |
漂浮子文件 | string |
用户输入 | 子配置项 | 含义 | 格式 |
---|---|---|---|
√ | force_ncep_dir |
NCEP FNL数据的文件夹位置 需要下载NCEP的FNL数据,作为气象强迫文件的插值源。 |
string |
√ | force_ncep_step |
所提供的NCEP FNL数据的时间分辨率 | double (小时) |
√ | force_ncep_radiation_files |
包含辐射数据的NCEP DS083.3数据的文件通配名 | string |
√ | force_era5_radiation_file |
包含辐射数据的ERA5数据的文件名 | string |
用户输入 | 子配置项 | 含义 | 格式 |
---|---|---|---|
√ | elevation |
全球地形文件,用于网格文件的插值 ETOPO1可以从此处下载,选择Cell/pixel-registered,netCDF,...gmt4.grd.gz SRTM15可以从此处下载,选择FTP SRTM15+ and source identification (SID),SRTM15_V2.4.nc |
string |
√ | elevation_longitude elevation_latitude elevation_altitude |
高程文件中经度、纬度、海拔的字段名 | string |
√ | gshhs_f |
全球海岸线文件 用于编辑水陆点,可以从此处下载,选择binary files。 |
string |
用户输入 | 子配置项 | 含义 | 格式 |
---|---|---|---|
√ | tpx_uv tpx_h |
潮汐文件 用于制作潮汐文件,可以从此处下载。 |
string |
√ | tpxo9 |
高精度TPXO9的潮汐文件所在目录 | string |
√ | tpxo9_days |
使用TPXO9的潮汐时,指定估计的模拟总时间(天) | int |
用户输入 | 子配置项 | 含义 | 格式 |
---|---|---|---|
√ | hydrodynamics |
本地海洋数据的位置 | string |
hydrodynamics_type |
本地海洋数据的数据源 | `"HYCOM" | |
√ | hydrodynamics_step_time_hour |
本地海洋数据的时间分辨率 | double (小时) |
√ | _latitude _longitude _depth _time _u _v _temp _salt _surface_elevation |
本地海洋数据的经度、纬度、深度、时间、U速度、V速度、温度、盐度、海表高度变量名 | string |
√ | hycom_t0dt |
本地海洋数据的基准时间 | datetime |
hycom_t0 |
以日为单位存储的本地海洋数据的基准时间 | double |
|
√ | hycom_tunit |
本地海洋数据中1个时间单位表示的时间长度 | double (小时) |
用户输入 | 子配置项 | 含义 | 格式 |
---|---|---|---|
√ | count |
示踪剂图层数量 | int |
√ | age |
是否启用平均年龄 AGE_MEAN 功能 |
logical |
延迟 | densities |
示踪剂的浓度 | {double[grid.size(1)+1,grid.size(2)+1,grid.N,tracer.count]} 元胞数组的长度应与配置的示踪剂数量相同。 |
延迟 | ages |
示踪剂的初始年龄 | {double[grid.size(1)+1,grid.size(2)+1,grid.N,tracer.count]} 元胞数组的长度应与配置的示踪剂数量相同。 |
延迟 | east west south north |
边界示踪剂的浓度 | {double[grid.size(1/2),grid.N,tracer.count]} 元胞数组的长度应与配置的示踪剂数量相同。 |
用户输入 | 子配置项 | 含义 | 格式 |
---|---|---|---|
√ | count |
河流数量 | int |
延迟 | location |
河流所在的坐标 | int[rivers.count,2] 行数为河流数量,每一行分别为横坐标和纵坐标。 LuvSrc 时,指的是U/V面的位置;LwSrc 时,指的是ρ点的位置。 |
延迟 | direction |
流向 | int[rivers.count,2] LuvSrc 时,值为0(U方向)或1(V方向);LwSrc 时,值为2 |
延迟 | time |
时间 | double[] 应覆盖模拟时间段 |
延迟 | transport |
流量 | double[rivers.count,grid.N,rivers.time] LuvSrc 时,具有正负,正值代表向数值更大的方向流动;LwSrc 时,恒为正数。单位:$m ^ 3 / s$ |
延迟 | v_shape |
垂向流量分配 | double[rivers.count,grid.N] 流量在垂直层上的分布的百分比,每一列的总和应当为1。 |
延迟 | temp salt |
温度 盐度 |
double[rivers.count,grid.N,rivers.time] 单位分别为摄氏度、? |
延迟 | dye ages |
示踪剂及其初始年龄 | {double[rivers.count,grid.N,rivers.time]} 元胞数组的长度应与配置的示踪剂数量相同。 |
用户输入 | 子配置项 | 含义 | 格式 |
---|---|---|---|
√ | model |
所使用的生物模型 | `"fennel" |
用户输入 | 子配置项 | 含义 | 格式 |
---|---|---|---|
√ | deflate |
压缩机别 | int[0:9] 越大,压缩机别越高,0表示不压缩 |
√ | shuffle |
压缩时是否开启乱序数据写入 | logical |
配置名 | 含义 |
---|---|
language |
语言 |
axis_* |
坐标系标签 |
tide_* |
潮站名 |
legend_* |
图例名 |
title_* |
图名 |
配置名 | 含义 |
---|---|
pollutionNames |
污染物的名称 |
studyRange |
研究区域(能完全包含杭州湾的多边形) |
obsRange |
用于对比和溯源的观测值的选取区域 |
maxValue |
各污染物能够达到的最大浓度(用于绘图) |
colormapSteps |
各污染物的colorbar 的段数 |
bdy |
各污染物的边界强迫浓度 |
factor |
各指标的污染源(河流、排污口)浓度与海洋(监测)浓度的比值 |
excludeSites |
对结果进行对比和评估时,排除的异常值站点的站点号(废弃) |
emissionList |
排放清单Excel文件 |
observationInfo |
水质观测数据CSV文件 |
配置名 | 含义 |
---|---|
obsExtra |
额外的虚拟观测站的位置(前两列)和浓度值 |
partCount |
排放区域的数量 |
riverPartCount |
排放区域中,属于河流的数量 |
simFluxs |
各区域(列)的每个月份(行)的流量,其中河流使用真实流量,考虑月流量的不同,其他使用恒定值 |
refFluxs |
不同污染物(行),不同沿岸排放区域(列)的基于沿海排污数据的参考污染物通量 |
refConcentration |
不同污染物(行),不同河流排放区域(列)的基于河流水质数据的参考污染物通量 |
partNames |
各部分的名称 |
pointPerPart |
每个部分的实际排放点数量 |
maxValues |
各污染物能够达到的最大浓度(用于绘图) |
repeat |
每个示踪剂的重复生成次数。总的生成示踪剂数量为$(partCount+1) \times repeat$ |
配置名 | 含义 |
---|---|
tests |
敏感性试验案例地址 |
testNames |
敏感性试验案例名 |
locations |
典型位置经纬度坐标 |
locationNames |
典型位置地名 |
colorRanges |
每类变量在表层的值域 |
profileColorRanges |
每类变量在绘制剖面图时的值域 |
maxDepth |
每类变量在绘制剖面图时的最大深度 |
varName |
每个变量的名称 |
dh |
东海的经纬度坐标范围 |
配置名 | 含义 |
---|---|
*Values/Labels |
需要在地图坐标轴上注明的经纬度值和标签 |
landColor |
用来表示陆地的颜色 |
fontSize /lagerFontSize |
字体大小 |
font |
字体 |
使用 GridBuilder
来创建网格。
首先执行 roms_create_grid_from_wrfinput
,从 wrfinput
创建网格,在弹出的窗口中根据海岸线编辑水陆点;或执行 roms_create_grid_core
,根据高程文件来创建网格。。然后执行 roms_fill_grid_h
填充水深。
编辑 download_hycom.py
,指定区域和时间,使用Python下载所需的HYCOM数据。
手动下载:位于HYCOM(hybrid coordinate ocean model,混合坐标海洋模型)。这里选用的是GOFS 3.0: HYCOM + NCODA Global 1/12° Analysis (NRL)-GLBu0.08/expt_90.9 (2012-05 to 2013-08)/
,选择Hindcast Data: May-2012 to Aug-2013,然后选择OPeNDAP://tds.hycom.org/thredds/dodsC/GLBu0.08/expt_90.9,其中有个Data URL后面就是所需要的地址。
若需要示踪剂,则编辑 roms_add_tracer
文件,在需要的地方填充初始时刻的示踪剂浓度。
执行 roms_create_clm_bdy_ini
。会生成:
- 初始场文件:
roms_ini.nc
- 边界文件:
roms_bdy.nc
- 气象文件:
roms_clm.nc
对于嵌套中的子区域,需要创建初始场和气象文件。可以和上面进行相同的步骤,也可以:
create_roms_child_init( roms_grid, roms_child_grid, 'Sandy_ini.nc', 'Sandy_ini_ref3.nc')
create_roms_child_clm( roms_grid, roms_child_grid, 'Sandy_clm.nc', 'Sandy_clm_ref3.nc')
这一部分还未进行修改。
需要 tpx_h.mat
和 tpx_uv.mat
文件。进入Revision 41,选择tide,下载adcirc..或tpx_h.mat和tpx_uv.mat。这个网站用IE才能打开,Chromium打不开,因为加密方式太老了。
确保 roms_create_tides
中调用的是 roms_create_tides_tpx
。执行 roms_create_tides
。
使用 TPXO9
进行创建。下载地址未知。
确保 roms_create_tides
中调用的是 roms_create_tides_tpxo9
。执行 roms_create_tides
。
下载NCEP的FNL数据,不要重命名,放在配置中的 roms.res.force_ncep_dir
下。
执行 roms_create_ncep_force
下载链接:ERA5 hourly data on single levels from 1940 to present
在Variable
中找到Radiation and heat
,勾选:
- Surface net solar radiation(ssr,太阳短波辐射)
- Surface net thermal radiation(str,向上长波辐射,物体由于存在温度而辐射的长波)
- Surface thermal radiation downwards(strd,向下短波辐射,云、大气等由于存在温度而向下辐射的长波)
选择需要的Year、Month、Day、Time,在Geographical area中指定需要的范围,Format选择NetCDF,然后Submit Form
。
等待请求完成,下载数据,保证文件名与configs
中相同。
执行roms_create_force_radiation_ERA5
编辑 roms_create_rivers
,确认河流的位置、流量等信息。如果启用了示踪剂,则设置示踪剂浓度。之后执行。
- 网格文件:
roms_grid.nc
- 初始场文件:
roms_ini.nc
- 边界文件(若需要):
roms_bdy.nc
- 气候态逼近文件(若需要):
roms_clm.nc
- 潮汐强迫文件(若需要):
roms_tides.nc
- 河流强迫文件(若需要):
roms_rivers.nc
-
my_tools_core\graph\ncl
下的数据和代码来自slandarer,具体见代码中的注释。 -
部分代码基于COAWST工具包改编,而非本仓库原创。
-
2024年起,下载CMEMS的代码已经过时,需要修改后才可使用。
-
代码已申请软件著作权,请勿牟利。