More laziness

21 views
Skip to first unread message

Johan Swanljung

unread,
Nov 4, 2016, 6:25:13 AM11/4/16
to Iris-dev
I have a couple of feature requests/enhancement proposals. Is opening issues on github the right way to submit them?

Here, briefly:

1. lazy aggregated_by: Here's a typical use case. I have 37 years of six-hourly global reanalysis data, say temperature. I want to take daily maxima and then make a daily climatology (by day of year). In Iris I would do this by adding categorised coordinates and using aggregated_by, except that the dataset is huge and aggregated_by doesn't support lazy aggregation. Are there any plans to add support for this? I've rolled my own lazy climatology functions, so it isn't an urgent problem for me personally but seems like it would be nice to have.

2. Lazy, elementwise functions on more than two cubes: Typical use case: I use a python package that can calculate common thermodynamic quantities, which frequently depend on more than two meteorological fields. For instance, I might want to calculate wet-bulb temperature using air temperature dew-point temperature and pressure for a large dataset. Using iris.analysis.maths.IFunc I can create a cube function for two cubes, but not more. Would be nice to have, but I guess it would require additions to biggus. 

marqh

unread,
Nov 18, 2016, 7:16:32 AM11/18/16
to Iris-dev
Hello Johan

you are welcome to raise issues on github to drive the discussions; these can help to shape prospective pull requests

with regard to these topics

1. we have been adding lazy functionality to some operations, driven by need; if aggregated by doesn't support this, then it would be a sensible thing to look to add. If you were to share you own-rolled code on a github issue, there might be suggestions of how to implement it within iris

2. i can see how a multiple input function has value; i'm not certain that this would require biggus upgrades, but it might do.  perhaps an interesting path to take with this would be to try and write a biggus test which exhibits the behaviour you want, with a small custom function and checking that data is lazy before and after use.
   we can then investigate how far away we currently are from this kind of behaviour

these sound interesting additions, but they are not high on our to do list right now, so any input you can provide on plausible implementations will be hugely valuable

thank you
mark
Reply all
Reply to author
Forward
0 new messages