| Автор |
Сообщение |
Alter
Участник
Москва, ЮЗАО
|
# Дата: 19 Ноя 2014 18:44
Имеется файл с нормамим температуры на Т850 за период 1981-2010.
qwerty, откуда брали?
В общем, готова программка, использующая файл формата NETCDF с этого замечательного сайта.
http://www.ecad.eu/download/ensembles/download.php #datafiles
Умеет: вычислять и выводить на экран скользящие средние нормы по периодам, начиная от 1951, заканчивая 2013 годом. Период расчета норм - любой, в пределах суток до года.
Ровно так же можно посчитать аномалии по скользящим нормам за любой выбранный период.
Также можно варьировать сами "нормы", что позволяет выводить на экран среднюю любого количества произвольных лет.
Примеры:
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 18:46
Alter
qwerty, откуда брали?
На компе имеется.
|
Alter
Участник
Москва, ЮЗАО
|
# Дата: 19 Ноя 2014 18:50
На компе имеется.
qwerty, В смысле имеется? Не из вакуума же материализовались.
Вы же откуда-то скачивали?
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 18:52
Alter
Отсюда http://cfs.ncep.noaa.gov
Но там сейчас реконструкция сервера. Я ещё летом оттуда файл скачал.
P.S почему то градс отказывается открывать файлы формата .nc
|
Alter
Участник
Москва, ЮЗАО
|
# Дата: 19 Ноя 2014 18:53
P.S почему то градс отказывается открывать файлы формата .nc
qwerty, разве
'sdfopen <filename>' не помогает?
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 18:55
Alter
Помогло. Просто думал, что надо open file.nc
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 18:58
Alter
А что насчёт моего вопроса вокруг расчёта аномалий по высоте Т850?
|
Alter
Участник
Москва, ЮЗАО
|
# Дата: 19 Ноя 2014 18:59
open file.nc
qwerty, это только для *.ctl - файла описания grib-овского файла, который надо создавать вручную, либо с помощью утилиты.
|
Alter
Участник
Москва, ЮЗАО
|
# Дата: 19 Ноя 2014 19:02
qwerty, какой шаг по времени? Сутки, 4-часа?
Сколько всего файлов и по каким временным промежуткам разбиты?
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 19:04
Alter
Использую GFS. Там есть и 0,25 и 0,5 градуса. Шаг 3 часа.
Под какую градусную сетку можно сделать?
|
Alter
Участник
Москва, ЮЗАО
|
# Дата: 19 Ноя 2014 19:05
Использую GFS. Там есть и 0,25 и 0,5 градуса. Шаг 3 часа.
qwerty, нет, я про архивные данные.
Там какой шаг и какая сетка.
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 19:06 - Поправил: qwerty
Alter
У меня файл с шагом 6 часов
|
Corvus
Автор сайта
###Corvus###
|
# Дата: 19 Ноя 2014 19:13
В обоих файлах сетка должна быть одинаковая.
|
Alter
Участник
Москва, ЮЗАО
|
# Дата: 19 Ноя 2014 19:23
qwerty, то есть, один файл, правильно?
Тогда для получения аномалии нужно:
1. Вычислить норму.
2. Вычислить прогноз
3. Вычесть норму из прогноза
1. Для вычисления нормы берем цикл. Сначала анализируем входные параметры. Прогноз, например на 20 ноября 2014 года 0 UTC.
Задаем переменные
d = 20
m = 'NOV'
h = '06'
Начальный год
yn = 1981
Далее в цикле можем написать так
y = yn
counter = 1
strsum = ''
while(y<2011)
'define norm'counter' = tmp2m.1(T='h'z'd''m''y')'
counter = counter + 1
if(y=yn)
strsum = strsum%'norm'counter
else
strsum = strsum%'+norm'counter
endif
y = y + 1
endwhile
'define mean = ('strsum')/30'
Вот это и будет средняя
2.Думаю, тут сами справитесь.
Один момент. Возможно понадобятся команды типа
SET lev 1000
Поскольку при инициализации первого файла с архивами могут быть заданы параметры, выходящие за границы допустимых в прогнозном.
Аналогично может быть с вычислением нормы, если первым открываете файл с прогнозом
3. Самое интересное.
Главная сложность состоит в том, что сетки патологически не совпадают. Лечится совместным приведением к одной сетке, например к 0,5. Даже если оба по 0.5, могут не совпадать оси, поэтому совместный регридинг все равно понадобится.
'departure = re(forecast, 0.5, 0.5) - re(mean, 0.5, 05)'
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 19:27
Alter
Вопрос в другом. Как вычислять на основе прогноза GFS?
Т.е вот у меня гриб-файл с прогнозом ГФС и файл с нормами. Как совместить их, чтоб рассчитывать аномалию.
|
Alter
Участник
Москва, ЮЗАО
|
# Дата: 19 Ноя 2014 19:28 - Поправил: Alter
Т.е вот у меня гриб-файл с прогнозом ГФС и файл с нормами. Как совместить их, чтоб рассчитывать аномалию.
qwerty, гриб или тоже nc?
Вещи разные, вообще-то.
Первый содержит лишь часть переменных, к тому же к нему нужен индекс и дескриптор.
А как совместить, я уже все написал.
Да, еще момент - когда открываете два и более файлов, если есть одинаковые переменные, то к ним можно обращаться только через
<var>.n
Где - <var> - имя переменной, n - номер файла в порядке открытия, от 1.
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 19:29 - Поправил: qwerty
Alter
Но я использую, как гриб, так формаn NETCDF.
|
Alter
Участник
Москва, ЮЗАО
|
# Дата: 19 Ноя 2014 19:32
qwerty, GRIB - это для чего.
У GFS есть вполне приличная сетка 0,5° в формате netcdf - зачем Вам больше?
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 19:33
Alter
В общем спасибо за помощь. Сейчас буду переваривать сказанное вами.
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 19:37
Alter
<var>.n
Вот так писать tmp850mb.1?
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 19:41 - Поправил: qwerty
Alter
Тогда для получения аномалии нужно:
В файлах с нормами переменная называется tmp850mb
А у прогноза t850mb
d = 20
m = 'NOV'
h = '06'
А функция, которая задаёт переменную какая?
|
Alter
Участник
Москва, ЮЗАО
|
# Дата: 19 Ноя 2014 19:43
qwerty, читайте внимательнее.
Если первым в скрипте открываете файл прогноза, то все верно.
А функция, которая задаёт переменную какая?
qwerty, какую переменную?
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 19:45
Alter
какую переменную?
День, месяц и час.
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 19:52
Alter
Вот файл с нормами.
https://mega.co.nz/#!EV83kSKR!1kfd61-KwTjBqdhE_9rG CQQhtwEnkj2Ohg_KSyu6pUg
|
Alter
Участник
Москва, ЮЗАО
|
# Дата: 19 Ноя 2014 19:53
Можете задать, как аргументы при вызове функции, а потом анализировать их.
Долго все объяснять. Попробуйте в качестве помощи использовать мой скрипт.
|
Alter
Участник
Москва, ЮЗАО
|
# Дата: 19 Ноя 2014 19:54
qwerty, спасибо за ссылку, а почему с 1982? Или это ошибка в названии?
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 19:58
Alter
Там в файле вообще с 1984
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 20:07 - Поправил: qwerty
Alter
А что делать если в файле прогноза шаг 3 часа, а в файле с нормами шаг 6 часов?
|
Alter
Участник
Москва, ЮЗАО
|
# Дата: 19 Ноя 2014 20:07
Там в файле вообще с 1984
qwerty, там в файле только один 1984-й.
Так что качайте еще 29 таких.
|
qwerty
Участник
Владимирская область, г.Киржач
|
# Дата: 19 Ноя 2014 20:11 - Поправил: qwerty
*
|