Skip to content

Instantly share code, notes, and snippets.

@lgloege
Last active March 17, 2021 03:28
Show Gist options
  • Save lgloege/3fdb1ed83b002d68d8944539a797b0bc to your computer and use it in GitHub Desktop.
Save lgloege/3fdb1ed83b002d68d8944539a797b0bc to your computer and use it in GitHub Desktop.
This notebook calculated the global average temperature anomaly from the Berkley Earth gridded product
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Berkley Earth area-weighted mean"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import xarray as xr\n",
"import pooch\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib.ticker import AutoMinorLocator"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Load data"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/home/gloege/.cache/pooch/5d70b847d9bc470e9cf3c7296348a0bc-Land_and_Ocean_LatLong1.nc\n"
]
}
],
"source": [
"# save data to temporary location\n",
"flname = pooch.retrieve('http://berkeleyearth.lbl.gov/auto/Global/Gridded/Land_and_Ocean_LatLong1.nc', None)\n",
"print(flname)\n",
"\n",
"# read data into memory\n",
"ds = xr.open_dataset(flname)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"xarray.Dataset {\n",
"dimensions:\n",
"\tlatitude = 180 ;\n",
"\tlongitude = 360 ;\n",
"\tmonth_number = 12 ;\n",
"\ttime = 2053 ;\n",
"\n",
"variables:\n",
"\tfloat32 longitude(longitude) ;\n",
"\t\tlongitude:units = degrees_east ;\n",
"\t\tlongitude:standard_name = longitude ;\n",
"\t\tlongitude:long_name = Longitude ;\n",
"\tfloat32 latitude(latitude) ;\n",
"\t\tlatitude:units = degrees_north ;\n",
"\t\tlatitude:standard_name = latitude ;\n",
"\t\tlatitude:long_name = Latitude ;\n",
"\tfloat64 time(time) ;\n",
"\t\ttime:units = year A.D. ;\n",
"\t\ttime:standard_name = time ;\n",
"\t\ttime:long_name = Time ;\n",
"\tfloat64 land_mask(latitude, longitude) ;\n",
"\t\tland_mask:units = none ;\n",
"\t\tland_mask:standard_name = land_mask ;\n",
"\t\tland_mask:long_name = Land Mask ;\n",
"\t\tland_mask:valid_min = 0.0 ;\n",
"\t\tland_mask:valid_max = 1.0 ;\n",
"\tfloat32 temperature(time, latitude, longitude) ;\n",
"\t\ttemperature:units = degree C ;\n",
"\t\ttemperature:standard_name = surface_temperature_anomaly ;\n",
"\t\ttemperature:long_name = Air Surface Temperature Anomaly ;\n",
"\t\ttemperature:valid_min = -20.140585291401653 ;\n",
"\t\ttemperature:valid_max = 25.472171897140964 ;\n",
"\tfloat32 climatology(month_number, latitude, longitude) ;\n",
"\t\tclimatology:units = degree C ;\n",
"\t\tclimatology:standard_name = surface_temperature_climatology ;\n",
"\t\tclimatology:long_name = Air Surface Temperature Climatology (Jan 1951 - Dec 1980) ;\n",
"\t\tclimatology:valid_min = -69.33474092282161 ;\n",
"\t\tclimatology:valid_max = 38.20322974161036 ;\n",
"\n",
"// global attributes:\n",
"\t:Conventions = Berkeley Earth Internal Convention (based on CF-1.5) ;\n",
"\t:title = Native Format Berkeley Earth Surface Temperature Anomaly Field ;\n",
"\t:history = 26-Feb-2021 07:43:08 ;\n",
"\t:institution = Berkeley Earth Surface Temperature Project ;\n",
"\t:land_source_history = 09-Feb-2021 03:09:39 ;\n",
"\t:ocean_source_history = 26-Feb-2021 03:36:37 ;\n",
"\t:comment = This file contains Berkeley Earth surface temperature anomaly field in our native equal-area format. ;\n",
"}"
]
}
],
"source": [
"ds.info()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Change time to datetime64"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"dates = pd.date_range(start=f'1850-01T00:00:00.000000000', \n",
" end=f'2021-01T00:00:00.000000000',freq='MS')+ np.timedelta64(14, 'D')\n",
"ds['time'] = dates"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Radius and area of earth equations"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def earth_radius(lat):\n",
" '''\n",
" calculate radius of Earth assuming oblate spheroid\n",
" defined by WGS84\n",
" \n",
" Input\n",
" ---------\n",
" lat: vector or latitudes in degrees \n",
" \n",
" Output\n",
" ----------\n",
" r: vector of radius in meters\n",
" \n",
" Notes\n",
" -----------\n",
" WGS84: https://earth-info.nga.mil/GandG/publications/tr8350.2/tr8350.2-a/Chapter%203.pdf\n",
" '''\n",
" from numpy import deg2rad, sin, cos\n",
"\n",
" # define oblate spheroid from WGS84\n",
" a = 6378137\n",
" b = 6356752.3142\n",
" e2 = 1 - (b**2/a**2)\n",
" \n",
" # convert from geodecic to geocentric\n",
" # see equation 3-110 in WGS84\n",
" lat = deg2rad(lat)\n",
" lat_gc = np.arctan( (1-e2)*np.tan(lat) )\n",
"\n",
" # radius equation\n",
" # see equation 3-107 in WGS84\n",
" r = (\n",
" (a * (1 - e2)**0.5) \n",
" / (1 - (e2 * np.cos(lat_gc)**2))**0.5 \n",
" )\n",
"\n",
" return r\n",
"\n",
"\n",
"def area_grid(lat, lon):\n",
" \"\"\"\n",
" Calculate the area of each grid cell\n",
" Area is in square meters\n",
" \n",
" Input\n",
" -----------\n",
" lat: vector of latitude in degrees\n",
" lon: vector of longitude in degrees\n",
" \n",
" Output\n",
" -----------\n",
" area: grid-cell area in square-meters with dimensions, [lat,lon]\n",
" \n",
" Notes\n",
" -----------\n",
" Based on the function in\n",
" https://github.com/chadagreene/CDT/blob/master/cdt/cdtarea.m\n",
" \"\"\"\n",
" from numpy import meshgrid, deg2rad, gradient, cos\n",
" from xarray import DataArray\n",
"\n",
" xlon, ylat = meshgrid(lon, lat)\n",
" R = earth_radius(ylat)\n",
"\n",
" dlat = deg2rad(gradient(ylat, axis=0))\n",
" dlon = deg2rad(gradient(xlon, axis=1))\n",
"\n",
" dy = dlat * R\n",
" dx = dlon * R * cos(deg2rad(ylat))\n",
"\n",
" area = dy * dx\n",
"\n",
" xda = DataArray(\n",
" area,\n",
" dims=[\"latitude\", \"longitude\"],\n",
" coords={\"latitude\": lat, \"longitude\": lon},\n",
" attrs={\n",
" \"long_name\": \"area_per_pixel\",\n",
" \"description\": \"area per pixel\",\n",
" \"units\": \"m^2\",\n",
" },\n",
" )\n",
" return xda"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Area grid"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"grid_cell_area = area_grid(ds['latitude'].values, ds['longitude'].values)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Standard mean"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"standard_mean = ds['temperature'].mean(['latitude','longitude'])\n",
"standard_mean_smooth = standard_mean.rolling(time=12*5, center=True).mean().dropna(\"time\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Weighted mean"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"total_area_of_earth = grid_cell_area.sum(['latitude','longitude'])\n",
"weighted_mean = ((ds['temperature'] * grid_cell_area) / total_area_of_earth).sum(['latitude','longitude'])"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"weighted_mean_smooth = weighted_mean.rolling(time=12*5, center=True).mean().dropna(\"time\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# plot data"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# --------------------------------------------\n",
"# setup the figure\n",
"# --------------------------------------------\n",
"fig = plt.figure(figsize=(6,6)) \n",
"ax = fig.add_subplot(111)\n",
"\n",
"# --------------------------------------------\n",
"# plot the data\n",
"# --------------------------------------------\n",
"#ax.plot(ds['time'], standard_mean, color=[1,0.8,0.8], label='Monthly (weighted mean)')\n",
"ax.plot(ds['time'], weighted_mean, color=[0.8,0.8,0.8], label='Monthly (weighted mean)')\n",
"ax.plot(weighted_mean_smooth['time'], weighted_mean_smooth, color='k', label='5 year smoothed (weighted mean)')\n",
"ax.plot(standard_mean_smooth['time'], standard_mean_smooth, color='r', label='5 year smoothed (standard mean)')\n",
"\n",
"# --------------------------------------------\n",
"# plot legend\n",
"# --------------------------------------------\n",
"ax.legend(loc='upper left',frameon=False, fontsize=14)\n",
"\n",
"# --------------------------------------------\n",
"# Range of axes\n",
"# --------------------------------------------\n",
"ax.set_ylim([-1, 1.5])\n",
"ax.set_xlim([np.datetime64('1850-01-15'), np.datetime64('2021-02-15')])\n",
"\n",
"# --------------------------------------------\n",
"# Labels\n",
"# --------------------------------------------\n",
"ax.set_ylabel(f'degrees celsius ($^\\circ$C)', fontsize=16)\n",
"ax.set_title(f'Temperature Anomaly', fontsize=18)\n",
"\n",
"# --------------------------------------------\n",
"# Fontsize and rotation of axis labels\n",
"# --------------------------------------------\n",
"ax.tick_params(axis='x', rotation=45, labelsize=14)\n",
"ax.tick_params(axis='y', rotation=0, labelsize=14)\n",
"\n",
"# --------------------------------------------\n",
"# Turn off the display of all ticks.\n",
"# --------------------------------------------\n",
"ax.tick_params(which='both', # Options for both major and minor ticks\n",
" top='off', # turn off top ticks\n",
" left='off', # turn off left ticks\n",
" right='off', # turn off right ticks\n",
" bottom='off',) # turn off bottom ticks\n",
"\n",
"\n",
"# --------------------------------------------\n",
"# Hide the right and top spines\n",
"# --------------------------------------------\n",
"ax.spines['right'].set_visible(False)\n",
"ax.spines['left'].set_visible(False)\n",
"ax.spines['top'].set_visible(False)\n",
"ax.spines['bottom'].set_visible(False)\n",
"\n",
"# --------------------------------------------\n",
"# major / minor tick spaces\n",
"# --------------------------------------------\n",
"ax.minorticks_on()\n",
"ax.yaxis.set_minor_locator(AutoMinorLocator(5)) \n",
"ax.xaxis.set_minor_locator(AutoMinorLocator(4))\n",
"ax.grid(axis='y', which='major', color=[0.8,0.8,0.8], linestyle='-')\n",
"\n",
"# --------------------------------------------\n",
"# Only show ticks on the left and bottom spines\n",
"# --------------------------------------------\n",
"ax.yaxis.set_ticks_position('left')\n",
"ax.xaxis.set_ticks_position('bottom')\n",
"\n",
"# --------------------------------------------\n",
"# Make axis square\n",
"# --------------------------------------------\n",
"x0, x1 = ax.get_xlim()\n",
"y0, y1 = ax.get_ylim()\n",
"ax.set_aspect(abs(x1-x0)/abs(y1-y0))\n",
"\n",
"# --------------------------------------------\n",
"# Don't allow the axis to be on top of your data\n",
"# --------------------------------------------\n",
"ax.set_axisbelow(True)\n",
"\n",
"# --------------------------------------------\n",
"# save figure\n",
"# --------------------------------------------\n",
"plt.savefig(f'./flux_time-series.pdf', \n",
" transparent = True, \n",
" bbox_inches = 'tight', \n",
" pad_inches = 0)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "tensorflow",
"language": "python",
"name": "tensorflow"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment