На выходе программы metgrid формируются файлы, содержащие значения всех необходимых статических и изменяющихся во времени величин в узлах сетки, включая и характеристики самой расчётной сетки. Каждый отдельный выходной файл с именем met_em.dNN.<date> содержит данные для области счёта NN (met_nmm.d01.<date> в NMM) только для одного момента модельного времени <date>, интервал между ними задаётся пользователем параметром interval_seconds в записи &share файла списка имён namelist.wps и определяется, в сущности, необходимой для моделирования частотой обновления боковых граничных условий в исходной области. Выходные файлы metgrid, как и выходные фалы geogrid, имеют формат интерфейса ввода-вывода системы WRF, в качестве которого рекомендуется использовать NetCDF. В таком случае для их визуализации и анализа могут использоваться программы ncview, NCL и многие другие [9, 11].
Если в качестве формата выходных данных в WRF используется NetCDF, то для их визуализации могут использоваться универсальные программы, такие как ncview. В то же время, для ARW и NMM разработаны специализированные программные средства визуализации и последующего анализа результатов моделирования.
Для обоих динамических ядер может использоваться разработанная в NCEP система WRF Post-Processing (WPP), задачей которой является приведение выходных данных WRF к формату, пригодному для использования в метеослужбах [9, 11].
Популярной системой визуализации данных различных мезомасштабных моделей является RIP (Read / Interpolate / Plot), изначально предназначавшаяся для визуализации выходных данных MM5. Текущая версия RIP4 позволяет работать в том числе и с данными WRF, включая как ARW, так и NMM [9, 11]. Система RIP основывается на графической библиотеке NCAR Graphics.
Визуализация и анализ данных ARW наиболее полно может быть осуществлена с помощью сценариев языка NCL (NCAR Command Language). Начиная с NCL версии 5, NCAR объединил в библиотеках NCL все собственные разработки в области анализа и визуализации научных данных, включив NCL и NCAR Graphics.
NCL представляет собой интерпретируемый язык, предназначенный для работы с научными данными и их визуализации. Поддерживаются данные в форматах NetCDF, HDF4, HDF4-EOF, GRIB, двоичные и ASCII файлы. Библиотеки NCL доступны для скачивания на соответствующем разделе сайта UCAR [14].
NCL может равным образом использоваться для работы с любыми научными данными, однако для данных WRF в NCL были разработаны некоторые дополнительные компоненты (например, встроенные функции анализа данных ARW), наиболее полно представленные в NCL версии 5.1.0 и выше. Более того, доступно множество готовых сценариев NCL для типичных задач обработки результатов моделирования.
Система ARWpost предназначена для приведения данных ARW к формату популярных в метеорологии и атмосферных исследованиях систем визуализации GrADS и Vis5D [9].
В NCAR также разработана одна из наиболее универсальных программ визуализации научных данных — VAPOR (Visualization and Analysis Platform for Ocean, atmosphere and solar Researchers). Задачей VAPOR является интерактивный анализ и визуализация данных численного моделирования гидродинамических процессов различной природы. Особенностью VAPOR является возможность визуализации изменяющихся во времени трёхмерных полей данных с использованием техники DVR (Direct Volume Rendering – прямая объёмная визуализация) [9]. VAPOR доступна для свободного скачивания с сайта [15].
Рассмотрим пример использования системы WRF для моделирования атмосферных процессов, протекавших в прошлом (август 2005 года) на территории Беларуси, на основе архивных данных.
Статические геоданные глобального покрытия для программы geogrid могут быть взяты с сайта WRF [13]. Геоданные с максимальным разрешением в 30 угловых секунд в архиве geog.tar.gz занимают 354 Мб, после извлечения из архива — более 9,3 Гб.
Поля метеорологических величин, полученные в результате вычислений модели глобальной циркуляции GFS, для текущего момента времени и нескольких предшествующих дней могут скачиваться с сайта NCEP. Данные GFS для временного промежутка 01.08.2005 — 10.08.2005 доступны в архиве NOAA [16] или Архиве исследовательских данных (RDA, Research Data Archive) Лаборатории вычислительных и информационных систем (CISL, Computational and Information Systems Laboratory) NCAR [17].
Данные в исходном виде содержат значения множества переменных для всего земного шара, что существенно увеличивает их объём. На Web-странице архива [16] может быть указан необходимый для конкретной задачи набор переменных и изобарических уровней, а также ограничена географическая область. На основании указанных данных сценарий Perl формирует новый набор данных, доступный для скачивания с сайта в течение некоторого времени.
Набор данных в файлах gfs_3_2005*.grb формата GRIB для региона 20 — 35 градусов восточной долготы, 50 — 60 градусов северной долготы с пространственным разрешением в 1 градус и набора переменных, требуемого для организации моделирования в системе WRF, имеет объём порядка 42 Мб.
Разместим в центре выбранного региона область моделирования с расчётной сеткой 40 на 48 узлов и шагом 18,5 км.
Основные компоненты файла списка имён namelist.wps приведены в листинге 3.1. Параметры сетки и картографической проекции Ламберта, а также путь к каталогу, содержащему файлы статических геоданных (~/geog/) задаются в записи &geogrid, рассматриваемый промежуток времени и интервал между выходными файлами системы WPS в записи &metgrid.
Листинг 3.1 — Файл namelist.wps
&share
wrf_core = 'ARW',
max_dom = 1,
start_date = '2005-08-08_00:00:00'
end_date = '2005-08-11_00:00:00'
interval_seconds = 10800
io_form_geogrid = 2,
/
&geogrid
parent_id = 1,
parent_grid_ratio = 1,
i_parent_start = 1,
j_parent_start = 1,
e_we = 40,
e_sn = 48,
geog_data_res = '30s'
dx = 18500,
dy = 18500,
map_proj = 'lambert',
ref_lat = 53.00,
ref_lon = 27.00,
truelat1 = 53.0,
truelat2 = 57.0,
stand_lon = 27.0,
geog_data_path = '~/geog/'
/
&ungrib
out_format = 'WPS',
prefix = 'FILE',
/
&metgrid
fg_name = 'FILE'
io_form_metgrid = 2,
/
В результате работы программы geogrid.exe будет создан файл geo_em.d01.nc объёмом 790,8 Кб в формате NetCDF.
Перед запуском ungrib.exe предварительно необходимо с помощью сценария link_grib.csh создать символические ссылки GRIBFILE.AAA, GRIBFILE.AAB, … GRIBFILE.ZZZ в рабочем каталоге на файлы в формате GRIB, содержащие исходные метеоданные. На выходе программы ungrib.exe создаются файлы FILE:2005-08-01_00 – FILE:2005-08-10_24 с данными в промежуточном формате.
На выходе программы metgrid.exe файлы met_em.d01.2005-08-01_00:00:00.nc – met_em.d01.2005-08-10_24:00:00.nc содержат данные с интервалом в 3 часа, как указано в namelist.wps (interval_seconds = 10800).
Выходные файлы системы WPS met_em.d01.*.nc должны быть скопированы в рабочий каталог WRF для построения на их основе начальных и граничных условий. Ограничим моделирование интервалом длительностью в сутки. В листинге 3.2 приведено содержимое основных записей файла namelist.input.
Листинг 3.2 — Файл namelist.input
&time_control
run_days = 0,
run_hours = 72,
run_minutes = 0,
run_seconds = 0,
start_year = 2005,
start_month = 08,
start_day = 09,
start_hour = 12,
start_minute = 00,
start_second = 00,
end_year = 2005,
end_month = 08,
end_day = 10,
end_hour = 12,
end_minute = 00,
end_second = 00,
interval_seconds = 10800
input_from_file = .true.,
history_interval = 10,
frames_per_outfile = 10,
restart = .true.,
restart_interval = 1440,
io_form_history = 2
io_form_restart = 2
io_form_input = 2
io_form_boundary = 2
debug_level = 0
/
&domains
time_step = 10,
time_step_fract_num = 0,
time_step_fract_den = 1,
max_dom = 1,
s_we = 1,
e_we = 40,
s_sn = 1,
e_sn = 48,
s_vert = 1,
e_vert = 28,
num_metgrid_levels = 27
dx = 18500,
dy = 18500,
grid_id = 1,
parent_id = 0,
i_parent_start = 0,
j_parent_start = 0,
parent_grid_ratio = 1,
parent_time_step_ratio = 1,
feedback = 1,
smooth_option = 0
/
В результате работы программы real.exe создаются файл начальных условий wrfinput_d01 и файл граничных условий wrfbdy_d01, а после запуска основной программы wrf.exe начинается интегрирование уравнений модели. Результаты записываются в выходной файл wrfout_d01_2005-08-09_12:00:00 в формате NetCDF.
Для визуализации полученных результатов воспользуемся интерпретируемым языком NCL. Необходимый сценарий может быть составлен на основе предлагаемых шаблонов [14]. Рассмотрим сценарий для визуализации давления на уровне моря с помощью изобар, векторного поля скорости ветра, расчета и отображения энергии неустойчивости (обычно называемой также CAPE – Convective Available Potential Energy). Сценарий приведён в листинге 3.3.
Листинг 3.3 — сценарий cape_slp.ncl
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
begin
a = addfile("./wrfout_d01_2005-08-09_12:00:00.nc","r")
type = "pdf"
wks = gsn_open_wks(type,"CAPE-SLP-Windbarbs")
times = wrf_user_list_times(a)
ntimes = dimsizes(times)
do it = 1,ntimes-1,2
print("Working on time: " + times(it) )
res@TimeLabel = times(it)
slp = wrf_user_getvar(a,"slp",it)
p = wrf_user_getvar(a,"pressure",it)
wrf_smooth_2d(slp, 3 )
u10 = wrf_user_getvar(a,"U10",it)
v10 = wrf_user_getvar(a,"V10",it)
tc = wrf_user_getvar(a,"tc",it)
cape = wrf_user_getvar(a,"slp",it)
do i = 0, 38, 1
do j = 0, 46, 1
cape(i,j) = cape_thermo(p(:,i,j),tc(:,i,j),-999,0)
end do
end do
wrf_smooth_2d(cape,3)
cape@decription = "CAPE"
cape@units = "J/kg"
u10@units = "m/s"
v10@units = "m/s"
opts = True
opts@FieldTitle = "CAPE"
opts@cnFillOn = True
opts@cnLinesOn = False
opts@cnLineLabelsOn = True
opts@ContourParameters = (/ 0., 90., 1./)
opts@cnLineLabelBackgroundColor = -1
opts@gsnSpreadColorEnd = -3
cont_cape = wrf_contour(a,wks,cape,opts)
delete(opts)
opts = True
opts@cnLineColor = "Blue"
opts@cnHighLabelsOn = True
opts@cnLowLabelsOn = True
opts@ContourParameters = (/ 900., 1100., 4. /)
opts@cnLineLabelBackgroundColor = -1
opts@gsnContourLineThicknessesScale = 2.0
cont_psl = wrf_contour(a,wks,slp,opts)
delete(opts)
opts = True
opts@FieldTitle = "Wind"
opts@NumVectors = 30
vect = wrf_vector(a,wks,u10,v10,opts)