Commit 91b00ea7 authored by Kennedy, Joseph H's avatar Kennedy, Joseph H
Browse files

LEX-0.1-rc2

A second release candidate of the LIVVkit Extensions repository to
demonstrate our extensions functionality. It lincludes the CESM
Greenland analyses for cloud cover, energy balance, and surface mass
balance, as well the CISM-Albany dynamics analyses, which will be
documented in the Evans et al. (2018) LIVVkit validation paper.

This relase candidate:
    Improves the context of all plots and tables
    Fixes some display issues in plots and tables
parents 4c4655cf b4e536dd
...@@ -36,7 +36,7 @@ or this command in `csh` variants: ...@@ -36,7 +36,7 @@ or this command in `csh` variants:
which git-lfs which git-lfs
If ``git-fls`` is not installed, you can install it by following the instructions here: If ``git-lfs`` is not installed, you can install it by following the instructions here:
https://git-lfs.github.com https://git-lfs.github.com
......
...@@ -7,7 +7,14 @@ from netCDF4 import Dataset ...@@ -7,7 +7,14 @@ from netCDF4 import Dataset
from livvkit.util import elements as el from livvkit.util import elements as el
describe = """CESM_cldhgh_ANN plot.""" describe = """
Climatological annual average of high cloud cover over Greenland
for CESM (left), ISCCP (middle; Rossow and Schiffer, 1999), and CLOUDSAT (right;
Kay and Gettelman, 2009). The black solid lines denote the 0, 1000, 2000, and
3000 meter Greenland ice sheet elevation contours as seen by CESM.
"""
title = "High cloud cover over Greenland"
def make_plot(config, out_path='.'): def make_plot(config, out_path='.'):
...@@ -184,7 +191,7 @@ def make_plot(config, out_path='.'): ...@@ -184,7 +191,7 @@ def make_plot(config, out_path='.'):
img_link = os.path.join(os.path.basename(out_path), img_link = os.path.join(os.path.basename(out_path),
os.path.basename(wks_img + '.' + wks_type)) os.path.basename(wks_img + '.' + wks_type))
img_elem = el.image('CESM_cldhgh_ANN', img_elem = el.image(title,
' '.join(describe.split()), ' '.join(describe.split()),
img_link) img_link)
img_elem['Height'] = config['image_height'] img_elem['Height'] = config['image_height']
......
...@@ -7,7 +7,14 @@ from netCDF4 import Dataset ...@@ -7,7 +7,14 @@ from netCDF4 import Dataset
from livvkit.util import elements as el from livvkit.util import elements as el
describe = """CESM_cldlow_ANN plot.""" describe = """
Climatological annual average of low cloud cover over Greenland
for CESM (left), ISCCP (middle; Rossow and Schiffer, 1999), and CLOUDSAT (right;
Kay and Gettelman, 2009). The black solid lines denote the 0, 1000, 2000, and
3000 meter Greenland ice sheet elevation contours as seen by CESM.
"""
title = "Low cloud cover over Greenland"
def make_plot(config, out_path='.'): def make_plot(config, out_path='.'):
...@@ -184,7 +191,7 @@ def make_plot(config, out_path='.'): ...@@ -184,7 +191,7 @@ def make_plot(config, out_path='.'):
img_link = os.path.join(os.path.basename(out_path), img_link = os.path.join(os.path.basename(out_path),
os.path.basename(wks_img + '.' + wks_type)) os.path.basename(wks_img + '.' + wks_type))
img_elem = el.image('CESM_cldlow_ANN', img_elem = el.image(title,
' '.join(describe.split()), ' '.join(describe.split()),
img_link) img_link)
img_elem['Height'] = config['image_height'] img_elem['Height'] = config['image_height']
......
...@@ -7,7 +7,14 @@ from netCDF4 import Dataset ...@@ -7,7 +7,14 @@ from netCDF4 import Dataset
from livvkit.util import elements as el from livvkit.util import elements as el
describe = """CESM_cldtot_ANN plot.""" describe = """
Climatological annual average of cloud cover over Greenland
for CESM (left), ISCCP (middle; Rossow and Schiffer, 1999), and CLOUDSAT (right;
Kay and Gettelman, 2009). The black solid lines denote the 0, 1000, 2000, and
3000 meter Greenland ice sheet elevation contours as seen by CESM.
"""
title = "Cloud cover over Greenland"
def make_plot(config, out_path='.'): def make_plot(config, out_path='.'):
...@@ -184,7 +191,7 @@ def make_plot(config, out_path='.'): ...@@ -184,7 +191,7 @@ def make_plot(config, out_path='.'):
img_link = os.path.join(os.path.basename(out_path), img_link = os.path.join(os.path.basename(out_path),
os.path.basename(wks_img + '.' + wks_type)) os.path.basename(wks_img + '.' + wks_type))
img_elem = el.image('CESM_cldtot_ANN', img_elem = el.image(title,
' '.join(describe.split()), ' '.join(describe.split()),
img_link) img_link)
img_elem['Height'] = config['image_height'] img_elem['Height'] = config['image_height']
......
...@@ -7,7 +7,13 @@ from netCDF4 import Dataset ...@@ -7,7 +7,13 @@ from netCDF4 import Dataset
from livvkit.util import elements as el from livvkit.util import elements as el
describe = """yearly_cycle_cldhgh plot.""" describe = """
Climatological monthly average of total high cloud cover over Greenland
for CESM (red), ISCCP (green; Rossow and Schiffer, 1999), and CLOUDSAT (cyan;
Kay and Gettelman, 2009).
"""
title = "Monthly total high cloud cover over Greenland"
def make_plot(config, out_path='.'): def make_plot(config, out_path='.'):
...@@ -64,7 +70,7 @@ def make_plot(config, out_path='.'): ...@@ -64,7 +70,7 @@ def make_plot(config, out_path='.'):
img_link = os.path.join(os.path.basename(out_path), img_link = os.path.join(os.path.basename(out_path),
os.path.basename(img_path)) os.path.basename(img_path))
img_elem = el.image('yearly_cycle_cldhgh', img_elem = el.image(title,
' '.join(describe.split()), ' '.join(describe.split()),
img_link) img_link)
if config: if config:
......
...@@ -7,7 +7,13 @@ from netCDF4 import Dataset ...@@ -7,7 +7,13 @@ from netCDF4 import Dataset
from livvkit.util import elements as el from livvkit.util import elements as el
describe = """yearly_cycle_cldlow plot.""" describe = """
Climatological monthly average of total low cloud cover over Greenland
for CESM (red), ISCCP (green; Rossow and Schiffer, 1999), and CLOUDSAT (cyan;
Kay and Gettelman, 2009).
"""
title = "Monthly total low cloud cover over Greenland"
def make_plot(config, out_path='.'): def make_plot(config, out_path='.'):
...@@ -65,7 +71,7 @@ def make_plot(config, out_path='.'): ...@@ -65,7 +71,7 @@ def make_plot(config, out_path='.'):
img_link = os.path.join(os.path.basename(out_path), img_link = os.path.join(os.path.basename(out_path),
os.path.basename(img_path)) os.path.basename(img_path))
img_elem = el.image('yearly_cycle_cldlow', img_elem = el.image(title,
' '.join(describe.split()), ' '.join(describe.split()),
img_link) img_link)
if config: if config:
......
...@@ -7,7 +7,13 @@ from netCDF4 import Dataset ...@@ -7,7 +7,13 @@ from netCDF4 import Dataset
from livvkit.util import elements as el from livvkit.util import elements as el
describe = """yearly_cycle_cldtot plot.""" describe = """
Climatological monthly average of total cloud cover over Greenland
for CESM (red), ISCCP (green; Rossow and Schiffer, 1999), and CLOUDSAT (cyan;
Kay and Gettelman, 2009).
"""
title = "Monthly total cloud cover over Greenland"
def make_plot(config, out_path='.'): def make_plot(config, out_path='.'):
...@@ -65,7 +71,7 @@ def make_plot(config, out_path='.'): ...@@ -65,7 +71,7 @@ def make_plot(config, out_path='.'):
img_link = os.path.join(os.path.basename(out_path), img_link = os.path.join(os.path.basename(out_path),
os.path.basename(img_path)) os.path.basename(img_path))
img_elem = el.image('yearly_cycle_cldtot', img_elem = el.image(title,
' '.join(describe.split()), ' '.join(describe.split()),
img_link) img_link)
if config: if config:
......
...@@ -9,3 +9,24 @@ ...@@ -9,3 +9,24 @@
PAGES = {854--869}, PAGES = {854--869},
YEAR = {2017}, YEAR = {2017},
} }
@Article{isccp99,
AUTHOR = {R. B. Rossow and R.A. Schiffer},
title = {Advances in understanding clouds from ISCCP},
YEAR = {1999},
JOURNAL = {Bulletin of the American Meteorological Society},
VOLUME = {80},
DOI = {10.1175/1520-0477(1999)080<2261:AIUCFI>2.0.CO;2},
PAGES = {2261--2287}
}
@article {kg09,
AUTHOR = {Kay, Jennifer E. and Gettelman, Andrew},
TITLE = {Cloud influence on and response to seasonal Arctic sea ice loss},
JOURNAL = {Journal of Geophysical Research: Atmospheres},
VOLUME = {114},
NUMBER = {D18},
DOI = {10.1029/2009JD011773},
YEAR = {2009},
NOTE = {D18204},
}
\ No newline at end of file
# -*- coding: utf-8 -*-
import os import os
import Ngl import Ngl
...@@ -7,9 +9,16 @@ from netCDF4 import Dataset ...@@ -7,9 +9,16 @@ from netCDF4 import Dataset
from livvkit.util import elements as el from livvkit.util import elements as el
describe = """CISMA_js plot""" describe = """
The norm of the surface velocity (m s^-1) from CISM initialization dataset
(left; Joughin et al., 2010a,b), CISM-Albany after spin-up (middle), and their
difference (CISM-A - init) over Jakobshavn glacier (West Greenland; Zwally et al.
(2012) basins 7).
"""
# plots velnorm, zooms in on Jakobshavn 69.2N 51.1W # plots velnorm, zooms in on Jakobshavn 69.2N 51.1W
title = "Surface velocity norm over Jakobshavn glacier"
def make_plot(config, out_path='.'): def make_plot(config, out_path='.'):
# ---------------- Read Data ----------------------------------- # ---------------- Read Data -----------------------------------
...@@ -161,7 +170,7 @@ def make_plot(config, out_path='.'): ...@@ -161,7 +170,7 @@ def make_plot(config, out_path='.'):
img_link = os.path.join(os.path.basename(out_path), img_link = os.path.join(os.path.basename(out_path),
os.path.basename(wks_img + '.' + wks_type)) os.path.basename(wks_img + '.' + wks_type))
img_elem = el.image('CISMA_js', img_elem = el.image(title,
' '.join(describe.split()), ' '.join(describe.split()),
img_link) img_link)
img_elem['Height'] = config['image_height'] img_elem['Height'] = config['image_height']
......
# -*- coding: utf-8 -*-
import os import os
import Ngl import Ngl
...@@ -7,9 +9,16 @@ from netCDF4 import Dataset ...@@ -7,9 +9,16 @@ from netCDF4 import Dataset
from livvkit.util import elements as el from livvkit.util import elements as el
describe = """CISMA_pm plot""" describe = """
The norm of the surface velocity (m s^-1) from CISM initialization dataset
(left; Joughin et al., 2010a,b), CISM-Albany after spin-up (middle), and their
difference (CISM-A - init) over Petermann glacier (North-West Greenland; Zwally et al.
(2012) basins 1).
"""
# Plots velnorm, zooms in on Petermann glacier, 80.5N -59.5 # Plots velnorm, zooms in on Petermann glacier, 80.5N -59.5
title = "Surface velocity norm over Petermann glacier"
def make_plot(config, out_path='.'): def make_plot(config, out_path='.'):
# ---------------- Read Data ----------------------------------- # ---------------- Read Data -----------------------------------
...@@ -161,7 +170,7 @@ def make_plot(config, out_path='.'): ...@@ -161,7 +170,7 @@ def make_plot(config, out_path='.'):
img_link = os.path.join(os.path.basename(out_path), img_link = os.path.join(os.path.basename(out_path),
os.path.basename(wks_img + '.' + wks_type)) os.path.basename(wks_img + '.' + wks_type))
img_elem = el.image('CISMA_pm', img_elem = el.image(title,
' '.join(describe.split()), ' '.join(describe.split()),
img_link) img_link)
img_elem['Height'] = config['image_height'] img_elem['Height'] = config['image_height']
......
# -*- coding: utf-8 -*-
import os import os
import numpy as np import numpy as np
...@@ -8,7 +10,13 @@ from netCDF4 import Dataset ...@@ -8,7 +10,13 @@ from netCDF4 import Dataset
from livvkit.util import elements as el from livvkit.util import elements as el
describe = """scatter_CISMA_RACMO23 plot.""" describe = """
Comparison of the surface mass balance (kg m^-2 a^-1) at grid point over Greenland
for RACMO 2.3 and CISM-Albany (after spin-up forced by RACMO 2.0) interpolated to
the coarser RACMO grid.
"""
title = "Surface mass balance comparison"
def make_plot(config, out_path='.'): def make_plot(config, out_path='.'):
...@@ -83,7 +91,7 @@ def make_plot(config, out_path='.'): ...@@ -83,7 +91,7 @@ def make_plot(config, out_path='.'):
img_link = os.path.join(os.path.basename(out_path), img_link = os.path.join(os.path.basename(out_path),
os.path.basename(img_path)) os.path.basename(img_path))
img_elem = el.image('scatter_CISMA_RACMO23', img_elem = el.image(title,
' '.join(describe.split()), ' '.join(describe.split()),
img_link) img_link)
img_elem['Height'] = config['image_height'] img_elem['Height'] = config['image_height']
......
# -*- coding: utf-8 -*-
import os import os
import Ngl import Ngl
...@@ -7,7 +9,13 @@ from netCDF4 import Dataset ...@@ -7,7 +9,13 @@ from netCDF4 import Dataset
from livvkit.util import elements as el from livvkit.util import elements as el
describe = """CISMA_RACMO23 plot""" describe = """
Surface mass balance (kg m^-2 a^-1) over Greenland for CISM-Albany after spin-up
forced with RACMO 2.0 (left), RACMO 2.3 (right), and their difference
(CISM-Albany - RACMO 2.3) with CISM-Albany interpolated to the coarser RACMO 2.3 grid.
"""
title = "Surface mass balance over Greenland"
def make_plot(config, out_path='.'): def make_plot(config, out_path='.'):
...@@ -173,7 +181,7 @@ def make_plot(config, out_path='.'): ...@@ -173,7 +181,7 @@ def make_plot(config, out_path='.'):
# Creat multiple figures and draw, which now contains the elevation and temperature # Creat multiple figures and draw, which now contains the elevation and temperature
# "[1,3]" indicates 1 row, 3 columns. # "[1,3]" indicates 1 row, 3 columns.
map_title = ["CISM-A","RACMO23", "CISM-A--RACMO23"] map_title = ["CISM-A", "RACMO23", "CISM-A--RACMO23"]
nmap = 3 nmap = 3
plot = [] plot = []
...@@ -190,7 +198,7 @@ def make_plot(config, out_path='.'): ...@@ -190,7 +198,7 @@ def make_plot(config, out_path='.'):
img_link = os.path.join(os.path.basename(out_path), img_link = os.path.join(os.path.basename(out_path),
os.path.basename(wks_img + '.' + wks_type)) os.path.basename(wks_img + '.' + wks_type))
img_elem = el.image('CISMA_RACMO23', img_elem = el.image(title,
' '.join(describe.split()), ' '.join(describe.split()),
img_link) img_link)
img_elem['Height'] = config['image_height'] img_elem['Height'] = config['image_height']
......
# -*- coding: utf-8 -*-
import os import os
import Ngl import Ngl
...@@ -7,7 +9,12 @@ from netCDF4 import Dataset ...@@ -7,7 +9,12 @@ from netCDF4 import Dataset
from livvkit.util import elements as el from livvkit.util import elements as el
describe = """CISMA_temp plot""" describe = """
Surface temperature (°C) of the Greenland ice sheet after CISM-Albany spin-up.
"""
title = "Surface temperature of the Greenland ice sheet"
def make_plot(config, out_path='.'): def make_plot(config, out_path='.'):
...@@ -150,7 +157,7 @@ def make_plot(config, out_path='.'): ...@@ -150,7 +157,7 @@ def make_plot(config, out_path='.'):
img_link = os.path.join(os.path.basename(out_path), img_link = os.path.join(os.path.basename(out_path),
os.path.basename(wks_img + '.' + wks_type)) os.path.basename(wks_img + '.' + wks_type))
img_elem = el.image('CISMA_temp', img_elem = el.image(title,
' '.join(describe.split()), ' '.join(describe.split()),
img_link) img_link)
img_elem['Height'] = config['image_height'] img_elem['Height'] = config['image_height']
......
# -*- coding: utf-8 -*-
import os import os
import Ngl import Ngl
...@@ -8,7 +10,13 @@ from netCDF4 import Dataset ...@@ -8,7 +10,13 @@ from netCDF4 import Dataset
from livvkit.util import elements as el from livvkit.util import elements as el
describe = """CISMA_velnorm plot""" describe = """
The norm of the surface velocity (m s^-1) from CISM initialization dataset
(left; Joughin et al., 2010a,b), CISM-Albany after spin-up (middle), and their
difference (CISM-A - init) over Greenland.
"""
title = "Surface velocity norm over Greenland"
def make_plot(config, out_path='.'): def make_plot(config, out_path='.'):
...@@ -161,7 +169,7 @@ def make_plot(config, out_path='.'): ...@@ -161,7 +169,7 @@ def make_plot(config, out_path='.'):
img_link = os.path.join(os.path.basename(out_path), img_link = os.path.join(os.path.basename(out_path),
os.path.basename(wks_img + '.' + wks_type)) os.path.basename(wks_img + '.' + wks_type))
img_elem = el.image('CISMA_velnorm', img_elem = el.image(title,
' '.join(describe.split()), ' '.join(describe.split()),
img_link) img_link)
img_elem['Height'] = config['image_height'] img_elem['Height'] = config['image_height']
......
# -*- coding: utf-8 -*-
import os import os
import Ngl import Ngl
...@@ -8,9 +10,15 @@ from netCDF4 import Dataset ...@@ -8,9 +10,15 @@ from netCDF4 import Dataset
from livvkit.util import elements as el from livvkit.util import elements as el
describe = """CISMA_zach plot""" describe = """
The norm of the surface velocity (m s^-1) from CISM initialization dataset
(left; Joughin et al., 2010a,b), CISM-Albany after spin-up (middle), and their
difference (CISM-A - init) over North-East Greenland (Zwally et al. (2012) basins 1 and 2).
"""
# zoomed in velnorm over Zachariae glacier at 78N, -30E # zoomed in velnorm over Zachariae glacier at 78N, -30E
title = "Surface velocity norm over North-East Greenland"
def make_plot(config, out_path='.'): def make_plot(config, out_path='.'):
# ---------------- Read Data ----------------------------------- # ---------------- Read Data -----------------------------------
...@@ -162,7 +170,7 @@ def make_plot(config, out_path='.'): ...@@ -162,7 +170,7 @@ def make_plot(config, out_path='.'):
img_link = os.path.join(os.path.basename(out_path), img_link = os.path.join(os.path.basename(out_path),
os.path.basename(wks_img + '.' + wks_type)) os.path.basename(wks_img + '.' + wks_type))
img_elem = el.image('CISMA_zach', img_elem = el.image(title,
' '.join(describe.split()), ' '.join(describe.split()),
img_link) img_link)
img_elem['Height'] = config['image_height'] img_elem['Height'] = config['image_height']
......
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import pybtex.database import pybtex.database
import pybtex.io import pybtex.io
......
...@@ -9,3 +9,53 @@ ...@@ -9,3 +9,53 @@
PAGES = {854--869}, PAGES = {854--869},
YEAR = {2017}, YEAR = {2017},
} }
@misc{Zwally2012,
AUTHOR = {H. Jay Zwally and Mario B. Giovinetto and Matthew A. Beckley and Jack L. Saba},
TITLE = {Antarctic and Greenland Drainage Systems},
NOTE = {GSFC Cryospheric Sciences Laboratory},
HOWPUBLISHED = {\url{http://icesat4.gsfc.nasa.gov/cryo_data/ant_grn_drainage_systems.php}},
YEAR = {2012}
}
@techreport{insar2010b,
AUTHOR = {Joughin, I. and B. Smith and I. Howat and T. Scambos},
TITLE = {{MEaSUREs Greenland Ice Velocity Map from InSAR Data}},
INSTITUTION = {National Snow and Ice Data Center},
ADDRESS = {Boulder, Colorado USA},
URL = {http://nsidc.org/data/docs/measures/nsidc0478_joughin/},
YEAR = {2010},
MONTH = {April},
DOI = {10.5067/MEASURES/CRYOSPHERE/nsidc-0478.001}
}
@Article{insar2010a,
AUTHOR = {Joughin, I. and B. Smith and I. M. Howat and T. Scambos and T. Moon},
TITLE = {Greenland Flow Variability from Ice-Sheet-Wide Velocity Mapping},
JOURNAL = {Journal of Glaciology},
VOLUME = {56},
YEAR = {2010},
PAGES = {415--430},