Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add sea ice production/melting analysis tasks #907

Merged
merged 19 commits into from
Oct 10, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions mpas_analysis/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,18 @@ def build_analysis_list(config, controlConfig):
config=config, mpasClimatologyTask=seaIceClimatolgyTask,
hemisphere='SH', controlConfig=controlConfig))
analyses.append(seaIceTimeSeriesTask)
analyses.append(sea_ice.ClimatologyMapSeaIceProduction(
config=config, mpas_climatology_task=seaIceClimatolgyTask,
hemisphere='NH', control_config=controlConfig))
analyses.append(sea_ice.ClimatologyMapSeaIceProduction(
config=config, mpas_climatology_task=seaIceClimatolgyTask,
hemisphere='SH', control_config=controlConfig))
analyses.append(sea_ice.ClimatologyMapSeaIceMelting(
config=config, mpas_climatology_task=seaIceClimatolgyTask,
hemisphere='NH', control_config=controlConfig))
analyses.append(sea_ice.ClimatologyMapSeaIceMelting(
config=config, mpas_climatology_task=seaIceClimatolgyTask,
hemisphere='SH', control_config=controlConfig))

analyses.append(sea_ice.TimeSeriesSeaIce(config, seaIceTimeSeriesTask,
controlConfig))
Expand Down
170 changes: 170 additions & 0 deletions mpas_analysis/default.cfg
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -3736,3 +3736,173 @@ areaNH = IceArea_timeseries/iceAreaNH_climo_20180710.nc
areaSH = IceArea_timeseries/iceAreaSH_climo_20180710.nc
volNH = PIOMAS/PIOMASvolume_monthly_climo_20180710.nc
volSH = none


[climatologyMapSeaIceProductionNH]
# options related to plotting horizontally remapped climatologies of
# sea ice production against control model results and observations
# in the northern hemisphere (NH)

# colormap for model/observations
colormapNameResult = dense
# whether the colormap is indexed or continuous
colormapTypeResult = continuous
# the type of norm used in the colormap
normTypeResult = linear
# A dictionary with keywords for the norm
normArgsResult = {'vmin': 0., 'vmax': 5.}
# place the ticks automatically by default
# colorbarTicksResult = numpy.linspace(-2., 2., 9)

# colormap for differences
colormapNameDifference = balance
# whether the colormap is indexed or continuous
colormapTypeDifference = continuous
# the type of norm used in the colormap
normTypeDifference = linear
# A dictionary with keywords for the norm
normArgsDifference = {'vmin': -3., 'vmax': 3.}
# place the ticks automatically by default
colorbarTicksDifference = [-3, -2, -1, 0, 1, 2, 3]

# Times for comparison times
seasons = ['ANN', 'DJF', 'JJA']

# comparison grid(s) ('latlon', 'antarctic') on which to plot analysis
comparisonGrids = ['latlon']

# reference lat/lon for sea ice plots in the northern hemisphere
minimumLatitude = 50
referenceLongitude = 0

# arrange subplots vertically?
vertical = False


[climatologyMapSeaIceProductionSH]
# options related to plotting horizontally remapped climatologies of
# sea ice production against control model results and observations
# in the southern hemisphere (SH)

# colormap for model/observations
colormapNameResult = dense
# whether the colormap is indexed or continuous
colormapTypeResult = continuous
# the type of norm used in the colormap
normTypeResult = linear
# A dictionary with keywords for the norm
normArgsResult = {'vmin': 0., 'vmax': 5.}
# place the ticks automatically by default
# colorbarTicksResult = numpy.linspace(-2., 2., 9)

# colormap for differences
colormapNameDifference = balance
# whether the colormap is indexed or continuous
colormapTypeDifference = continuous
# the type of norm used in the colormap
normTypeDifference = linear
# A dictionary with keywords for the norm
normArgsDifference = {'vmin': -3., 'vmax': 3.}
# place the ticks automatically by default
colorbarTicksDifference = [-3, -2, -1, 0, 1, 2, 3]

# Times for comparison times
seasons = ['ANN', 'DJF', 'JJA']

# comparison grid(s) ('latlon', 'antarctic') on which to plot analysis
comparisonGrids = ['latlon']

# reference lat/lon for sea ice plots in the northern hemisphere
minimumLatitude = -50
referenceLongitude = 180

# arrange subplots vertically?
vertical = False

# observations files
productionSH = AnIceFlux/aniceflux_v01_clim_mean_1982-2008.nc


[climatologyMapSeaIceMeltingNH]
# options related to plotting horizontally remapped climatologies of
# sea ice melting against control model results and observations
# in the northern hemisphere (NH)

# colormap for model/observations
colormapNameResult = amp
# whether the colormap is indexed or continuous
colormapTypeResult = continuous
# the type of norm used in the colormap
normTypeResult = linear
# A dictionary with keywords for the norm
normArgsResult = {'vmin': 0., 'vmax': 5.}
# place the ticks automatically by default
# colorbarTicksResult = numpy.linspace(-2., 2., 9)

# colormap for differences
colormapNameDifference = balance
# whether the colormap is indexed or continuous
colormapTypeDifference = continuous
# the type of norm used in the colormap
normTypeDifference = linear
# A dictionary with keywords for the norm
normArgsDifference = {'vmin': -3., 'vmax': 3.}
# place the ticks automatically by default
colorbarTicksDifference = [-3, -2, -1, 0, 1, 2, 3]

# Times for comparison times
seasons = ['ANN', 'DJF', 'JJA']

# comparison grid(s) ('latlon', 'antarctic') on which to plot analysis
comparisonGrids = ['latlon']

# reference lat/lon for sea ice plots in the northern hemisphere
minimumLatitude = 50
referenceLongitude = 0

# arrange subplots vertically?
vertical = False


[climatologyMapSeaIceMeltingSH]
# options related to plotting horizontally remapped climatologies of
# sea ice melting against control model results and observations
# in the southern hemisphere (SH)

# colormap for model/observations
colormapNameResult = amp
# whether the colormap is indexed or continuous
colormapTypeResult = continuous
# the type of norm used in the colormap
normTypeResult = linear
# A dictionary with keywords for the norm
normArgsResult = {'vmin': 0., 'vmax': 5.}
# place the ticks automatically by default
# colorbarTicksResult = numpy.linspace(-2., 2., 9)

# colormap for differences
colormapNameDifference = balance
# whether the colormap is indexed or continuous
colormapTypeDifference = continuous
# the type of norm used in the colormap
normTypeDifference = linear
# A dictionary with keywords for the norm
normArgsDifference = {'vmin': -3., 'vmax': 3.}
# place the ticks automatically by default
colorbarTicksDifference = [-3, -2, -1, 0, 1, 2, 3]

# Times for comparison times
seasons = ['ANN', 'DJF', 'JJA']

# comparison grid(s) ('latlon', 'antarctic') on which to plot analysis
comparisonGrids = ['latlon']

# reference lat/lon for sea ice plots in the northern hemisphere
minimumLatitude = -50
referenceLongitude = 180

# arrange subplots vertically?
vertical = False

# observations files
meltingSH = AnIceFlux/aniceflux_v01_clim_mean_1982-2008.nc
72 changes: 72 additions & 0 deletions mpas_analysis/obs/observational_datasets.xml
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -1627,6 +1627,78 @@
</nameInDocs>
</observation>

<observation>
<name>
Sea ice production and transport: Haumann et al 2016
</name>
<component>
seaice
</component>
<description>
This data set provides estimates of annual freshwater fluxes related to sea-ice formation from ocean freezing
and snow-ice formation, sea-ice melting, lateral transport of sea ice in the Southern Ocean over the period
1982 to 2008. It is derived from a mass balance calculation of local sea-ice volume change and divergence
from satellite data and sea-ice reconstructions. The mass balance is calculated on a daily basis and fluxes are
then integrated over the entire year, where a year is defined from March to February of the next year (i.e.
from March 1982 to February 2009). This approach combines multiple products of sea-ice concentration
(Cavalieri &amp; Parkinson, 2008; Comiso, 1986; Meier et al., 2013), sea-ice thickness (Kurtz &amp; Markus, 2012;
Massonnet et al., 2013; Worby et al., 2008), and sea-ice drift (Fowler et al., 2013; Kwok 2005; Schwegmann
et al., 2011). For a detailed description of the method see Haumann et al. (2016). The data set is derived to
estimate large-scale (regional to basin-scale) fluxes on an annual basis. Our confidence is reduced on a grid
cell basis, such as for single coastal polynyas, where the method and underlying data induce large, unknown
uncertainties.
</description>
<source>
[EnviDat](https://www.envidat.ch/dataset/10-16904-8)
</source>
<releasePolicy>
This data set is free to use for any non-commercial purpose at the risk of the user'
and the authors do not take any liability on the use of the data set. The authors
assembled the data set carefully and assessed accuracy, errors, and uncertainties.
Please contact the authors if you find any issues.
</releasePolicy>
<references>
[Haumann et al (2016), data](https://doi.org/10.16904/8)
[Haumann et al (2016), paper](https://doi.org/10.1038/nature19101)
</references>
<bibtex>
@article{haumann2016antarctic,
title={Antarctic sea-ice freshwater fluxes associated with freezing, transport, and melting},
author={Haumann, Alexander and Gruber, Nicolas and M{\"u}nnich, Matthias and Frenger, Ivy and Kern, Stefan},
year={2016},
doi={10.16904/8},
publisher={ETH Z{\"u}rich}
}
@article{haumann2016sea,
title={Sea-ice transport driving Southern Ocean salinity and its recent trends},
author={Haumann, F Alexander and Gruber, Nicolas and M{\"u}nnich, Matthias and Frenger, Ivy and Kern, Stefan},
journal={Nature},
volume={537},
number={7618},
pages={89--92},
year={2016},
doi={10.1038/nature19101}
publisher={Nature Publishing Group}
}
</bibtex>
<dataUrls>
-https://data.up.ethz.ch/shared/AnIceFlux/AnIceFlux_v01.pdf
</dataUrls>
<preprocessing>
none
</preprocessing>
<tasks>
- climatologyMapSeaIceProductionSH
- climatologyMapSeaIceMeltingSH
</tasks>
<subdirectory>
SeaIce/Haumann
</subdirectory>
<nameInDocs>
aniceflux
</nameInDocs>
</observation>

<!-- ICEBERGS -->

<observation>
Expand Down
4 changes: 4 additions & 0 deletions mpas_analysis/sea_ice/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,7 @@
from mpas_analysis.sea_ice.time_series import TimeSeriesSeaIce
from mpas_analysis.sea_ice.climatology_map_berg_conc import \
ClimatologyMapIcebergConc
from mpas_analysis.sea_ice.climatology_map_production import \
ClimatologyMapSeaIceProduction
from mpas_analysis.sea_ice.climatology_map_melting import \
ClimatologyMapSeaIceMelting
Loading