Skip to content

Commit 4b07bb6

Browse files
authored
Merge pull request #1063 from xylar/fix-bsf
Fix computation of barotropic streamfunction
2 parents 4ad6733 + f62744b commit 4b07bb6

File tree

6 files changed

+228
-87
lines changed

6 files changed

+228
-87
lines changed

docs/users_guide/analysis_tasks.rst

+41-43
Original file line numberDiff line numberDiff line change
@@ -4,76 +4,74 @@ Analysis Tasks
44
.. toctree::
55
:maxdepth: 1
66

7-
tasks/climatologyMapMassFluxes
7+
tasks/climatologyMapAntarcticMelt
8+
tasks/climatologyMapArgoSalinity
9+
tasks/climatologyMapArgoTemperature
10+
tasks/climatologyMapBGC
11+
tasks/climatologyMapBSF
12+
tasks/climatologyMapEKE
813
tasks/climatologyMapHeatFluxes
14+
tasks/climatologyMapMassFluxes
915
tasks/climatologyMapMLD
1016
tasks/climatologyMapMLDMinMax
17+
tasks/climatologyMapOHCAnomaly
18+
tasks/climatologyMapSchmidtko
19+
tasks/climatologyMapSose
1120
tasks/climatologyMapSST
1221
tasks/climatologyMapSSS
1322
tasks/climatologyMapSSH
14-
tasks/climatologyMapEKE
15-
tasks/climatologyMapOHCAnomaly
16-
tasks/climatologyMapSose
1723
tasks/climatologyMapVel
18-
tasks/climatologyMapBGC
19-
tasks/climatologyMapArgoTemperature
20-
tasks/climatologyMapArgoSalinity
21-
tasks/climatologyMapWoa
22-
tasks/climatologyMapSchmidtko
23-
tasks/climatologyMapAntarcticMelt
2424
tasks/climatologyMapWaves
25+
tasks/climatologyMapWoa
2526

27+
tasks/antshipTransects
28+
tasks/conservation
29+
tasks/geojsonTransects
2630
tasks/hovmollerOceanRegions
31+
tasks/indexNino34
32+
tasks/meridionalHeatTransport
33+
tasks/oceanHistogram
34+
tasks/oceanRegionalProfiles
35+
tasks/osnapTransects
36+
tasks/regionalTSDiagrams
37+
tasks/soseTransects
38+
tasks/streamfunctionMOC
2739
tasks/timeSeriesAntarcticMelt
40+
tasks/timeSeriesOHCAnomaly
2841
tasks/timeSeriesOceanRegions
29-
tasks/timeSeriesTemperatureAnomaly
3042
tasks/timeSeriesSalinityAnomaly
31-
tasks/timeSeriesOHCAnomaly
3243
tasks/timeSeriesSST
44+
tasks/timeSeriesTemperatureAnomaly
3345
tasks/timeSeriesTransport
34-
tasks/meridionalHeatTransport
35-
tasks/streamfunctionMOC
36-
tasks/indexNino34
37-
tasks/osnapTransects
38-
tasks/woceTransects
39-
tasks/soseTransects
4046
tasks/woaTransects
41-
tasks/antshipTransects
42-
tasks/geojsonTransects
43-
tasks/oceanRegionalProfiles
44-
tasks/regionalTSDiagrams
45-
tasks/oceanHistogram
46-
tasks/conservation
47+
tasks/woceTransects
4748

49+
tasks/climatologyMapSeaIceAlbedoNH
50+
tasks/climatologyMapSeaIceAlbedoSH
51+
tasks/climatologyMapSeaIceAreaFractionRidgeNH
52+
tasks/climatologyMapSeaIceAreaFractionRidgeSH
53+
tasks/climatologyMapSeaIceAreaTendencyThermoNH
54+
tasks/climatologyMapSeaIceAreaTendencyThermoSH
55+
tasks/climatologyMapSeaIceAreaTendencyTranspNH
56+
tasks/climatologyMapSeaIceAreaTendencyTranspSH
4857
tasks/climatologyMapSeaIceConcNH
4958
tasks/climatologyMapSeaIceConcSH
50-
tasks/climatologyMapSeaIceThickNH
51-
tasks/climatologyMapSeaIceThickSH
59+
tasks/climatologyMapSeaIceMeltingNH
60+
tasks/climatologyMapSeaIceMeltingSH
61+
tasks/climatologyMapSeaIcePondAreaNH
62+
tasks/climatologyMapSeaIcePondAreaSH
63+
tasks/climatologyMapSeaIceProductionNH
64+
tasks/climatologyMapSeaIceProductionSH
5265
tasks/climatologyMapSeaIceSnowDepthNH
5366
tasks/climatologyMapSeaIceSnowDepthSH
54-
5567
tasks/climatologyMapSeaIceSnowiceFormationNH
5668
tasks/climatologyMapSeaIceSnowiceFormationSH
5769
tasks/climatologyMapSeaIceSnowMeltNH
5870
tasks/climatologyMapSeaIceSnowMeltSH
59-
tasks/climatologyMapSeaIcePondAreaNH
60-
tasks/climatologyMapSeaIcePondAreaSH
61-
tasks/climatologyMapSeaIceAreaFractionRidgeNH
62-
tasks/climatologyMapSeaIceAreaFractionRidgeSH
71+
tasks/climatologyMapSeaIceThickNH
72+
tasks/climatologyMapSeaIceThickSH
6373
tasks/climatologyMapSeaIceVolumeRidgeNH
6474
tasks/climatologyMapSeaIceVolumeRidgeSH
65-
tasks/climatologyMapSeaIceAlbedoNH
66-
tasks/climatologyMapSeaIceAlbedoSH
67-
68-
tasks/climatologyMapSeaIceProductionNH
69-
tasks/climatologyMapSeaIceProductionSH
70-
tasks/climatologyMapSeaIceMeltingNH
71-
tasks/climatologyMapSeaIceMeltingSH
72-
73-
tasks/climatologyMapSeaIceAreaTendencyThermoNH
74-
tasks/climatologyMapSeaIceAreaTendencyThermoSH
75-
tasks/climatologyMapSeaIceAreaTendencyTranspNH
76-
tasks/climatologyMapSeaIceAreaTendencyTranspSH
7775
tasks/climatologyMapSeaIceVolumeTendencyThermoNH
7876
tasks/climatologyMapSeaIceVolumeTendencyThermoSH
7977
tasks/climatologyMapSeaIceVolumeTendencyTranspNH
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
.. _task_climatologyMapBSF:
2+
3+
climatologyMapBSF
4+
=================
5+
6+
An analysis task for comparison of maps of barotropic streamfunction (BSF).
7+
8+
Component and Tags::
9+
10+
component: ocean
11+
tags: climatology, horizontalMap, barotropicStreamfunction, publicObs, streamfunction
12+
13+
Configuration Options
14+
---------------------
15+
16+
The following configuration options are available for this task::
17+
18+
[climatologyMapBSF]
19+
## options related to plotting horizontally remapped climatologies of
20+
## the barotropic streamfunction (BSF) against control model results
21+
## (if available)
22+
23+
# colormap for model/observations
24+
colormapNameResult = blue-orange-div
25+
# whether the colormap is indexed or continuous
26+
colormapTypeResult = continuous
27+
# color indices into colormapName for filled contours
28+
# the type of norm used in the colormap
29+
normTypeResult = symLog
30+
# A dictionary with keywords for the norm
31+
normArgsResult = {'linthresh': 30., 'linscale': 0.5, 'vmin': -100., 'vmax': 100.}
32+
colorbarTicksResult = [-100.,-40., -20., -10., 0., 10., 20., 40., 100.]
33+
# Adding contour lines to the figure
34+
contourLevelsResult = np.arange(-100., 101.0, 10.)
35+
contourThicknessResult = 0.5
36+
contourColorResult = black
37+
# Add arrows to contour lines
38+
# whether to include arrows on the contour lines showing the direction of flow
39+
arrowsOnContourResult = True
40+
# colormap for differences
41+
colormapNameDifference = cmo.balance
42+
# whether the colormap is indexed or continuous
43+
colormapTypeDifference = continuous
44+
# the type of norm used in the colormap
45+
normTypeDifference = linear
46+
# A dictionary with keywords for the norm
47+
normArgsDifference = {'vmin': -10., 'vmax': 10.}
48+
# colorbarTicksDifference = numpy.linspace(-10., 10., 9)
49+
50+
# Months or seasons to plot (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct,
51+
# Nov, Dec, JFM, AMJ, JAS, OND, ANN)
52+
seasons = ['ANN']
53+
54+
# comparison grid(s) on which to plot analysis
55+
comparisonGrids = ['latlon', 'subpolar_north_atlantic']
56+
57+
# list of tuples(pairs) of depths (min, max) to integrate horizontal transport over
58+
depthRanges = [(0.0, -10000.0), (0.0, -2000.0)]
59+
60+
# minimum latitude (degrees) above which the mean BSF on boundary vertices
61+
# averages to zero
62+
minLatitudeForZeroBSF = -45.0
63+
64+
65+
By default, the BSF is computed over two depth ranges---the full depth of
66+
the ocean and only to 2000 m. By default, global and subpolar North Atlantic
67+
plots are produced. The BSF is constrained to have a mean value on coastal
68+
boundaries of zero north of ``minLatitudeForZeroBSF``.
69+
70+
For more details, see:
71+
* :ref:`config_colormaps`
72+
* :ref:`config_seasons`
73+
* :ref:`config_comparison_grids`
74+
75+
Example Result
76+
--------------
77+
78+
.. image:: examples/bsf.png
79+
:width: 500 px
80+
:align: center

docs/users_guide/tasks/climatologyMapEKE.rst

+1-4
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
climatologyMapEKE
44
=================
55

6-
An analysis task for comparison of global maps of sea surface height (SSH)
7-
with zero mean against observations. The mean has been subtracted because the
8-
initial sea level is somewhat arbitrary and will lead to a systematic offset
9-
when compared with the observations.
6+
An analysis task for comparison of global maps of eddy kinetic energy (EKE).
107

118
Component and Tags::
129

128 KB
Loading

mpas_analysis/default.cfg

+6-2
Original file line numberDiff line numberDiff line change
@@ -1544,15 +1544,15 @@ comparisonGrids = ['latlon', 'subpolar_north_atlantic']
15441544
## (if available)
15451545

15461546
# colormap for model/observations
1547-
colormapNameResult = cmo.curl
1547+
colormapNameResult = blue-orange-div
15481548
# whether the colormap is indexed or continuous
15491549
colormapTypeResult = continuous
15501550
# color indices into colormapName for filled contours
15511551
# the type of norm used in the colormap
15521552
normTypeResult = symLog
15531553
# A dictionary with keywords for the norm
15541554
normArgsResult = {'linthresh': 30., 'linscale': 0.5, 'vmin': -100., 'vmax': 100.}
1555-
colorbarTicksResult = [-100.,-40.,-20.,-10., 0., 10., 20., 40.,100.]
1555+
colorbarTicksResult = [-100.,-40., -20., -10., 0., 10., 20., 40., 100.]
15561556
# Adding contour lines to the figure
15571557
contourLevelsResult = np.arange(-100., 101.0, 10.)
15581558
contourThicknessResult = 0.5
@@ -1580,6 +1580,10 @@ comparisonGrids = ['latlon', 'subpolar_north_atlantic']
15801580
# list of tuples(pairs) of depths (min, max) to integrate horizontal transport over
15811581
depthRanges = [(0.0, -10000.0), (0.0, -2000.0)]
15821582

1583+
# minimum latitude (degrees) above which the mean BSF on boundary vertices
1584+
# averages to zero
1585+
minLatitudeForZeroBSF = -45.0
1586+
15831587
[climatologyMapOHCAnomaly]
15841588
## options related to plotting horizontally remapped climatologies of
15851589
## ocean heat content (OHC) against control model results (if available)

0 commit comments

Comments
 (0)