-
Notifications
You must be signed in to change notification settings - Fork 0
/
atmos_observation_simulation.py
129 lines (115 loc) · 4.22 KB
/
atmos_observation_simulation.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
"""
A realm process specialization.
For further information goto http://wordpress.es-doc.org/cmip6-model-specializations.
"""
# --------------------------------------------------------------------
# INTERNAL (do not change)
# --------------------------------------------------------------------
from collections import OrderedDict
DETAILS = OrderedDict()
ENUMERATIONS = OrderedDict()
# --------------------------------------------------------------------
# DESCRIPTION: Short description of the specialization.
# --------------------------------------------------------------------
DESCRIPTION = 'Characteristics of observation simulation'
# --------------------------------------------------------------------
# SUB-PROCESSES
# --------------------------------------------------------------------
DETAILS['isscp_attributes'] = {
'description': 'ISSCP Characteristics',
'properties': [
('top_height_estimation_method', 'ENUM:isscp_top_height', '0.N',
'Cloud simulator ISSCP top height estimation methodUo'),
('top_height_direction', 'ENUM:isscp_top_height_direction', '0.1',
'Cloud simulator ISSCP top height direction'),
]
}
DETAILS['cosp_attributes'] = {
'description': 'CFMIP Observational Simulator Package attributes',
'properties': [
('run_configuration', 'ENUM:cosp_run_configuration', '0.1',
'Cloud simulator COSP run configuration'),
('number_of_grid_points', 'int', '0.1',
'Cloud simulator COSP number of grid points'),
('number_of_sub_columns', 'int', '0.1',
'Cloud simulator COSP number of sub-cloumns used to simulate sub-grid variability'),
('number_of_levels', 'int', '0.1',
'Cloud simulator COSP number of levels'),
]
}
DETAILS['radar_inputs'] = {
'description': 'Characteristics of the cloud radar simulator',
'properties': [
('frequency', 'float', '0.1',
'Cloud simulator radar frequency (Hz)'),
('type', 'ENUM:inputs_radar_type', '0.1',
'Cloud simulator radar type'),
('gas_absorption', 'bool', '0.1',
'Cloud simulator radar uses gas absorption'),
('effective_radius', 'bool', '0.1',
'Cloud simulator radar uses effective radius'),
]
}
DETAILS['lidar_inputs'] = {
'description': 'Characteristics of the cloud lidar simulator',
'properties': [
('ice_types', 'ENUM:inputs_lidar_ice_type', '0.1',
'Cloud simulator lidar ice type'),
('overlap', 'ENUM:inputs_lidar_overlap', '0.N',
'Cloud simulator lidar overlap'),
]
}
# --------------------------------------------------------------------
# PROCESS: ENUMERATIONS
# --------------------------------------------------------------------
ENUMERATIONS['isscp_top_height'] = {
'description': 'Cloud top height management',
'is_open': True,
'members': [
('no adjustment', None),
('IR brightness', None),
('visible optical depth', None),
]
}
ENUMERATIONS['isscp_top_height_direction'] = {
'description': 'Direction for finding the radiance determined cloud-top pressure. '
'Atmosphere pressure level with interpolated temperature equal to '
'the radiance determined cloud-top pressure.',
'is_open': True,
'members': [
('lowest altitude level', None),
('highest altitude level', None),
]
}
ENUMERATIONS['cosp_run_configuration'] = {
'description': 'Method used to run the CFMIP Observational Simulator Package',
'is_open': True,
'members': [
('Inline', None),
('Offline', None),
]
}
ENUMERATIONS['inputs_radar_type'] = {
'description': 'Type of radar',
'is_open': True,
'members': [
('surface', None),
('space borne', None),
]
}
ENUMERATIONS['inputs_lidar_ice_type'] = {
'description': 'Ice particle shape in lidar calculations',
'is_open': True,
'members': [
('ice spheres', None),
('ice non-spherical', None),
]
}
ENUMERATIONS['inputs_lidar_overlap'] = {
'description': 'lidar overlap type',
'is_open': True,
'members': [
('max', None),
('random', None),
]
}