Skip to content

Instantly share code, notes, and snippets.

@pelson
Created April 17, 2019 11:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pelson/0b978341144d6ad5a67e3bc802019a66 to your computer and use it in GitHub Desktop.
Save pelson/0b978341144d6ad5a67e3bc802019a66 to your computer and use it in GitHub Desktop.
(old) Iris based interpolators, including spline and triangulation
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I've implemented an Interpolator class in ``iris.analysis.interpolator`` which allows one to define simple subclasses for the implementation of various interpolation schemes. "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from iris.analysis.interpolator import Interpolator"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There is already a specialised version of this which limits the interpolation to 1D monotonic coordinates, named ``RectilinearInterpolator``."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from iris.analysis.interpolator import RectilinearInterpolator"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With this we can implement some of the simpler interpolation schemes, such as NDLinear interpolation:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"class LinearInterpolator(RectilinearInterpolator):\n",
" def _build_interpolator(self, coord_points, data,\n",
" extrapolation_mode=None):\n",
" \"\"\"\n",
" Given the coordinate points of the source grid, and\n",
" some data which is of the appropriate shape for those coord\n",
" points, construct the interpolator.\n",
"\n",
" \"\"\"\n",
" from iris.experimental.regrid import _RegularGridInterpolator\n",
" self._interpolator = _RegularGridInterpolator(coord_points, data,\n",
" fill_value=None,\n",
" bounds_error=False)\n",
" return self._interpolator\n",
"\n",
" def _interpolate_data_at_coord_points(self, data, coord_points):\n",
" \"\"\"\n",
" Given some coord points (already prepared into the correct\n",
" form) and the data to interpolate, do the interpolation.\n",
" \n",
" \"\"\"\n",
" # Update the interpolator's data to the data passed through.\n",
" self._interpolator.values = data\n",
" return self._interpolator(coord_points)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"air_temperature / (K) (latitude: 73; longitude: 96)\n",
" Dimension coordinates:\n",
" latitude x -\n",
" longitude - x\n",
" Scalar coordinates:\n",
" forecast_period: 6477 hours, bound=(-28083.0, 6477.0) hours\n",
" forecast_reference_time: 1998-03-01 03:00:00\n",
" pressure: 1000.0 hPa\n",
" time: 1998-12-01 00:00:00, bound=(1994-12-01 00:00:00, 1998-12-01 00:00:00)\n",
" Attributes:\n",
" STASH: m01s16i203\n",
" source: Data from Met Office Unified Model\n",
" Cell methods:\n",
" mean: time\n"
]
}
],
"source": [
"import iris\n",
"\n",
"fname = iris.sample_data_path('air_temp.pp')\n",
"temperature = iris.load_cube(fname)\n",
"print temperature"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We construct the Interpolator with the cube to interpolate, and the interpolation coordinates:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"interpolator = LinearInterpolator(temperature, ['latitude', 'longitude'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With this, we can use the orthogonal_cube method:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"air_temperature / (K) (scalar cube)\n",
" Scalar coordinates:\n",
" forecast_period: 6477 hours, bound=(-28083.0, 6477.0) hours\n",
" forecast_reference_time: 1998-03-01 03:00:00\n",
" latitude: 51 degrees\n",
" longitude: 0 degrees\n",
" pressure: 1000.0 hPa\n",
" time: 1998-12-01 00:00:00, bound=(1994-12-01 00:00:00, 1998-12-01 00:00:00)\n",
" Attributes:\n",
" STASH: m01s16i203\n",
" source: Data from Met Office Unified Model\n",
" Cell methods:\n",
" mean: time\n"
]
}
],
"source": [
"print interpolator.orthogonal_cube([['latitude', 51],\n",
" ['longitude', 0]])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice how we didn't need to override the ``orthogonal_cube`` method - it could potentially be an external interface if there is commonality with the regrid interface. Perhaps even:\n",
"\n",
"```\n",
"InterpolatorRegridder(Regridder):\n",
" def __init__(self, interpolator):\n",
" ...\n",
"\n",
"```\n",
"\n",
"The implementation of the Interpolator class wouldn't need to change much to accommodate this."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Other interpolators\n",
"\n",
"So the real benefit of building the Interpolator class is that it is easy to implement other interpolation schemes with little code (and virtually no repeating of validation):"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"class Spline1DInterpolator(RectilinearInterpolator):\n",
" def __init__(self, *args, **kwargs):\n",
" super(Spline1DInterpolator, self).__init__(*args, **kwargs)\n",
" assert len(self.coord_dims) == self.ndims == 1\n",
" \n",
" def _build_interpolator(self, coord_points, mock_data,\n",
" extrapolation_mode=None):\n",
" # N.B. There is no need to build an interpolator here - spline is\n",
" # heavily dependent on the data and so data cannot be switched in and\n",
" # out efficiently. As a result, we need to construct the interpolators\n",
" # as we go. So just store the coord points for construction of the\n",
" # interpolator when we need it.\n",
" self._data_coord_points = coord_points\n",
"\n",
" def _interpolate_data_at_coord_points(self, data, coord_points):\n",
" assert data.ndim == 1\n",
" import scipy.interpolate\n",
" interp = scipy.interpolate.InterpolatedUnivariateSpline(\n",
" self._data_coord_points, data)\n",
" return interp(coord_points[:, 0])"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"air_temperature / (K) (time: 240; latitude: 37)\n",
" Dimension coordinates:\n",
" time x -\n",
" latitude - x\n",
" Auxiliary coordinates:\n",
" forecast_period x -\n",
" Scalar coordinates:\n",
" forecast_reference_time: 1859-09-01 06:00:00\n",
" height: 1.5 m\n",
" longitude: 262.5 degrees\n",
" Attributes:\n",
" Conventions: CF-1.5\n",
" Model scenario: E1\n",
" STASH: m01s03i236\n",
" source: Data from Met Office Unified Model 6.05\n",
" Cell methods:\n",
" mean: time (6 hour)\n"
]
}
],
"source": [
"import iris\n",
"e1 = iris.load_cube(iris.sample_data_path('E1_north_america.nc'))[:, :, 20]\n",
"print e1"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"air_temperature / (K) (time: 30; latitude: 37)\n",
" Dimension coordinates:\n",
" time x -\n",
" latitude - x\n",
" Auxiliary coordinates:\n",
" forecast_period x -\n",
" Scalar coordinates:\n",
" forecast_reference_time: 1859-09-01 06:00:00\n",
" height: 1.5 m\n",
" longitude: 262.5 degrees\n",
" Attributes:\n",
" Conventions: CF-1.5\n",
" Model scenario: E1\n",
" STASH: m01s03i236\n",
" source: Data from Met Office Unified Model 6.05\n",
" Cell methods:\n",
" mean: time (6 hour)\n"
]
}
],
"source": [
"times_to_interpolate = np.linspace(e1.coord('time').points[4],\n",
" e1.coord('time').points[7],\n",
" 30)\n",
"interpolator = Spline1DInterpolator(e1, ['time'])\n",
"\n",
"interpolated_cube = interpolator.orthogonal_cube([['time', times_to_interpolate]])\n",
"\n",
"print interpolated_cube"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x5053090>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"plt.plot(e1.coord('time').points[4:8],\n",
" e1.data[4:8, 20], 'xr', label='actual')\n",
"\n",
"plt.plot(times_to_interpolate, interpolated_cube[:, 20].data, label='Interpolated')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Triangulation based interpolation"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"from numpy.lib.stride_tricks import as_strided\n",
"import scipy.interpolate\n",
"\n",
"\n",
"class TriangulatedLinearInterpolator(Interpolator):\n",
" def _build_interpolator(self, coord_points, data,\n",
" extrapolation_mode=None):\n",
" data = as_strided(np.array(0, dtype=float),\n",
" shape=(np.product(data.shape), ), strides=[0])\n",
" # Flatten the coord points for this interpolator.\n",
" coord_points = np.array([points.flatten() for points in coord_points]).T\n",
" return scipy.interpolate.LinearNDInterpolator(coord_points, data) \n",
" \n",
" def interpolated_dtype(self, dtype):\n",
" return np.float\n",
"\n",
" def _interpolate_data_at_coord_points(self, data, coord_points):\n",
" # Cast the data to float64 - that is all it can handle.\n",
" self._interpolator.values = data.reshape(-1, 1).astype(np.float64)\n",
" return self._interpolator(coord_points)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sea_surface_temperature / (degC) (Time axis: 1; -- : 291; -- : 360)\n",
" Dimension coordinates:\n",
" Time axis x - -\n",
" Auxiliary coordinates:\n",
" latitude - x x\n",
" longitude - x x\n",
" Cell methods:\n",
" mean: time_counter\n"
]
}
],
"source": [
"fname = '/data/local/dataZoo/NetCDF/ORCA1/NEMO_ORCA1_CF.nc'\n",
"sst = iris.load_cube(fname, 'sea_surface_temperature')\n",
"sst.data[sst.data == 0] = np.nan \n",
"sst.attributes.clear()\n",
"print sst"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sea_surface_temperature / (degC) (Time axis: 1; -- : 1000)\n",
" Dimension coordinates:\n",
" Time axis x -\n",
" Auxiliary coordinates:\n",
" longitude - x\n",
" Scalar coordinates:\n",
" latitude: 60 degrees\n",
" Cell methods:\n",
" mean: time_counter\n"
]
}
],
"source": [
"interpolator = TriangulatedLinearInterpolator(sst, ['latitude', 'longitude'])\n",
"arctic_circle = interpolator.orthogonal_cube([['longitude', np.linspace(-180, 180, 1000)],\n",
" ['latitude', 60]])\n",
"\n",
"print arctic_circle"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x50a4b50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import iris.quickplot as qplt\n",
"\n",
"qplt.plot(arctic_circle[0].coord('longitude'), arctic_circle[0])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n/z8D74hBIgaqugAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x5095990>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"regridded = interpolator.orthogonal_cube([['longitude', np.linspace(-180, 180, 1000)],\n",
" ['latitude', np.linspace(-90, 90, 500)]])\n",
"qplt.contourf(regridded[0], coords=['longitude', 'latitude'])\n",
"plt.gca().coastlines()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"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.6.6"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment