Tabs Page |
---|
|
Code Block |
---|
language | py |
---|
title | Time Series from GRIB Example |
---|
|
# Metview Macro
# **************************** LICENSE START ***********************************
#
# Copyright 2018 ECMWF. This software is distributed under the terms
# of the Apache License version 2.0. In applying this license, ECMWF does not
# waive the privileges and immunities granted to it by virtue of its status as
# an Intergovernmental Organization or submit itself to any jurisdiction.
#
# ***************************** LICENSE END ************************************
# read a set of t2m and t2d forecast steps from a GRIB file
both_t = read('t2m_td.grib')
# filter the t2m and dewpoint t into separate fieldsets (and K->C)
t2m = read(data : both_t, param : '2t') - 273.15
t2d = read(data : both_t, param : '2d') - 273.15
# for each temperature type, get the integralweighted averages over an area
# - returns a list of numbers, one for each field
area = [75,-12.5,35,42.5] # N,W,S,E
t2m_int = integrate(t2m, area)
t2d_int = integrate(t2d, area)
print('t2m integralsaverages: ', t2m_int)
print('t2d integralsaverages: ', t2d_int)
# get the valid times for each field
times_t2m = valid_date(t2m)
times_t2d = valid_date(t2d)
# set up the Cartesian view to plot into
# including customised axes so that we can change the size
# of the labels and add titles
haxis = maxis(axis_type : 'date',
axis_years_label_height : 0.45,
axis_months_label_height : 0.45,
axis_days_label_height : 0.45)
vaxis = maxis(axis_title_text : 'Temperature, K',
axis_title_height : 0.5)
ts_view = cartesianview(
x_automatic : "on",
x_axis_type : "date",
y_automatic : "on",
horizontal_axis : haxis,
vertical_axis : vaxis)
# create the curves for both parameters
curve_2t = input_visualiser(
input_x_type : "date",
input_date_x_values : times_t2m,
input_y_values : t2m_int)
curve_2d = input_visualiser(
input_x_type : "date",
input_date_x_values : times_t2d,
input_y_values : t2d_int)
# set up visual styling for each curve
common_graph = ('graph_line_thickness' : 2, 'legend' : 'on')
graph_2t = mgraph(common_graph, graph_line_colour : 'black', legend_user_text : 't2m')
graph_2d = mgraph(common_graph, graph_line_colour : 'red', legend_user_text : 't2d')
# customise the legend
legend = mlegend(legend_display_type : 'disjoint', legend_text_font_size : 0.5)
# define the output plot file
setoutput(pdf_output(output_name : 'time_series'))
# plot everything into the Cartesian view
plot(ts_view, curve_2t, graph_2t, curve_2d, graph_2d, legend)
|
|
Tabs Page |
---|
|
Code Block |
---|
language | py |
---|
title | Time Series from GRIB Example |
---|
|
# Metview Example
# **************************** LICENSE START ***********************************
#
# Copyright 2018 ECMWF. This software is distributed under the terms
# of the Apache License version 2.0. In applying this license, ECMWF does not
# waive the privileges and immunities granted to it by virtue of its status as
# an Intergovernmental Organization or submit itself to any jurisdiction.
#
# ***************************** LICENSE END ************************************
import metview as mv
# read a set of t2m and t2d forecast steps from a GRIB file
both_t = mv.read('"t2m_td.grib'")
# filter the t2m and dewpoint t into separate fieldsets (and K->C)
t2m = mv.read(data = both_t, param = '"2t'") - 273.15
t2d = mv.read(data = both_t, param = '"2d'") - 273.15
# for each temperature type, get the weighted integralaverages over an area
# - returns a list of numbers, one for each field
area = [75,-12.5,35,42.5] # N,W,S,E
t2m_int = mv.integrate(t2m, area)
t2d_int = mv.integrate(t2d, area)
print('"t2m integralsaverages: '", t2m_int)
print('"t2d integralsaverages: '", t2d_int)
# get the valid times for each field
times_t2m = mv.valid_date(t2m)
times_t2d = mv.valid_date(t2d)
# set up the Cartesian view to plot into
# including customised axes so that we can change the size
# of the labels and add titles
haxis = mv.maxis(axis_type = '"date'",
axis_years_label_height = 0.45,
axis_months_label_height = 0.45,
axis_days_label_height = 0.45)
vaxis = mv.maxis(axis_title_text = '"Temperature, K'",
axis_title_height = 0.5)
ts_view = mv.cartesianview(
x_automatic = "on",
x_axis_type = "date",
y_automatic = "on",
horizontal_axis = haxis,
vertical_axis = vaxis)
# create the curves for both parameters
curve_2t = mv.input_visualiser(
input_x_type = "date",
input_date_x_values = times_t2m,
input_y_values = t2m_int)
curve_2d = mv.input_visualiser(
input_x_type = "date",
input_date_x_values = times_t2d,
input_y_values = t2d_int)
# set up visual styling for each curve
common_graph = {'"graph_line_thickness'" : 2, '"legend'" : 'on'}
graph_2t = mv.mgraph(common_graph, graph_line_colour = 'black', legend_user_text = 't2m')
graph_2d = mv.mgraph(common_graph, graph_line_colour = 'red', legend_user_text = 't2d')
# customise the legend
legend = mv.mlegend(legend_display_type = '"disjoint'", legend_text_font_size = 0.5)
# define the output plot file
mv.setoutput(mv.pdf_output(output_name = '"time_series'"))
# plot everything into the Cartesian view
mv.plot(ts_view, curve_2t, graph_2t, curve_2d, graph_2d, legend)
|
|
|