Skip to content

Instantly share code, notes, and snippets.

View pp-mo's full-sized avatar

Patrick Peglar pp-mo

  • MetOffice
  • Exeter, UK
View GitHub Profile
@pp-mo
pp-mo / exercise_lazy_save.py
Created March 10, 2023 15:51
Testing for various Iris netcdf saving options, including lazy-saving and distributed scheduler
import iris
from iris.tests.stock import realistic_4d
from iris.fileformats.netcdf._dask_locks import get_dask_array_scheduler_type
import dask.array as da
import dask.config
try:
import distributed
except ImportError:
distributed = None
@pp-mo
pp-mo / iris_netcdf_append_example.py
Created October 7, 2021 15:08
Example: Append Iris cubes to a netcdf file.
# Example showing how to append ~similar cubes onto an existing netcdf file.
import numpy as np
import iris
from iris.cube import Cube
from iris.coords import DimCoord, AuxCoord
#
# Generate a really simple timestepped data sequence
#
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@pp-mo
pp-mo / expanded_hybrid_height.py
Last active June 22, 2017 14:54
Interpolate hybrid-height data onto a finer grid to make a big cube for performance testing.
# Script to make bigger hybrid-height data.
# E.G. "$ python expanded_hybrid_height.py 5"
import datetime
import sys
import numpy as np
import iris
from iris.aux_factory import HybridHeightFactory
@pp-mo
pp-mo / gist:12f97ec50ebc3e6f5c90cbf6d271d41c
Created March 7, 2017 11:30
Iris Lazy-only aggregations
# N.B. currently requires/assumes "dask_timed" feature branch version of Iris (commit 1013ad9)
from functools import wraps
import dask.array as da
import numpy as np
import numpy.ma as ma
from iris.cube import Cube
from iris.coords import DimCoord
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@pp-mo
pp-mo / numpy_array_differences_summary.py
Last active August 29, 2015 13:58
Snippets for calculating and printing array difference statistics -- especially relative difference figures
from collections import OrderedDict
import numpy as np
import numpy.ma as ma
def array_difference_stats(array_a, array_b, min_reldiff=1e-20):
# Calculate different types of array differences and basic stats on them.
diffs = array_a - array_b
absdiffs = np.abs(diffs)
absmags = 0.5*(np.abs(array_a) + np.abs(array_b))
absmags = np.max(absmags, min_reldiff * np.max(absmags))
@pp-mo
pp-mo / cartopy_robinson_problem_testing.py
Last active December 17, 2015 16:09
Test code for demonstrating and/or testing the correct + incorrect testcase behaviours of the Cartopy Robinson projection -- for problem as reported in : https://github.com/SciTools/cartopy/issues/232
'''
Code for demonstrating Robinson projection problems + fixes
As reported in : https://github.com/SciTools/cartopy/issues/23
Proposed fixes in : https://github.com/SciTools/cartopy/pull/277
'''
import sys
import numpy as np
import cartopy.crs as ccrs