00:04
Hello my name's Ryan may I'am the lead developer of the met pie project and I'm here to talk to you all about met pie and what's next after one point out。So to start here what is met pie。Ly is a Python to meteorology and what that means is that。The goal the project is to try and provide a setTo General tools in Python to allow people to do whatever meteological computing tasks they'd like to accomplish in Python using me pie and the restreast of the scientific Python stack。We try to read as much as possible of what exists within the scientific Python ecosystem。And so that means we in mepi rely on things like using nump pie and pint pandas and X ray as kind of fundamental。
01:04
Libraries providing our data structures such as the nupi array PI provides unit support。Pandas provides some column data structures and then X array provides。Multi dimensional rays that also have Meta data and the coordinate information along with those multi dimensional rays。We also to use backlotly APP plotting and then we also have s PI for scientific algorithms。And so based on that we try to use what we can and not reinvent the wheel whenever we can avoid it。And so within metpie we kind of have a few broad categories of functionality。We have unit aware calculation so that means that when you provide input into the calculations in some way the inputs know what kind of physical quantities they represent so that it's not just an array values but。
02:06
We know it's temperature and degrees calvin or temperatures in celalvin or we have de points in degrees Fahrenheit or you pick your favorite physical parameter there's you information with it which helps ensure that the calculations were correctly。And so within the calculations we have a lot of like cinematic calculations like porticity divergence front of genesis potential porticity or them of dynamic calculations like dew point or moist IoT idbeatic lase rate various。To whether it sees precipiable water cape storm relative velicity and that's um the calculations is kind of the one of the largest parts of the library just trying to provide all those different calculations used within meorology gene and atmospheric science。And we also have functionality to support reading in data in all of our various interesting format that we use within。
03:07
Meteorology so we have support for passing mear reports。And we also have support for reading all the various next red level two and level three data formats within metpi。On the plotting side。We provide some classes based on mapt plot lib so we don't worry about making line plots or you know very basic plots because mapt plot lib does all already but we have MAT plot lib basic plots do things like acutlock peak or we have support for doing the station plots along with weather symbols。And then we also have a variety of interpretation methods we have kind of the support for taking。Irregularly space points and turning that into a grid using methods like chresman waiting or barns we also have support for calcul cross sections。
04:00
And so that kind of these building blocks。Are there to then help our users be able to do whatever scientific analyses they'd like to do。And so here's an example of what one of those plots coming in that pipe might look like so you'VE got a cross section here that output from the North American regional re analysis and so this is just doing a plot of some potential temperature as well as the。Tangential and normal winds on the cross section so you can do the thecomposition of your vector windfield。So at mepi one point oh we announced this last year at AMS the first release candidate and so we had a couple milestone releases in the last year we had the first of these candidate as I mentioned and also then this fall we had the second of these candidate and then we had our recently finally had our our one point of final release。And。
05:00
Those release CAS are very useful to help iron out and last corner cases and also collect some feedback from our community of users and special thanks everyone who tested those release candidates for us and。Made reports on the issues they encounter because that really helped ensure that thepoint of final was a solid release。So if you're not familiar what was the one point I release about well it's the first we call stable release if mepi。What that means is within the one point X series of hers we won't be changing any of the programming interfaces so throughout what point X we promise that code that works on and say one point oh we'LL continue to work throughout you know one point one one point two one point three etctera。A lot of work that one one point know was trying To Baseline test our functionality these the scalealor functions against GE pack。And a lot of the breakage we had to make because we had to make some changes you know To Get to one point out here was in support of using X ray data race and so。
06:10
In order to allow now having functions to return data rays not just take them as input obviously if you were not expecting you to data ray back out that's going To Break some user code and so some our users will likely need To Be updating especially if they're using。Data race and we have a helpful upgrade guide on our web documentation at the URL listed on the slide。So what's next's a title of talk what comes after what point out。And so we have a couple releases slated right now mepi。One point o point one。Will be a bug fix release we actually surprisingly don't have any actual。
07:05
Bugs reported yet but software being software we assume we'we'LL get a few of those so anticipating having a bug fix release whenever we accumulate。A few of those。Beyond that we're looking towards having another feature of release of met by one point one targeting late spring of twenty twenty one。And here are a few of the features we're looking at kind of a few things we'VE had cute up while we'VE been trying to stabilize one point out and get that out the door。And so a few plotting things here we have support for plotting frontal analysis from the weather prediction center so let's put out text products that analyze the front and high and low pressure centers and whatnot and so will have support for decoding those bulletins as well as then drawing those on a map。Using that plot lip we also have a poor request sitting on our github site for drawings and scout areas so areas with the。
08:08
Kind of curve lines on the outside shown image in the second but the those are often used in various。Forecast products from store prediction center weather prediction center ETC。We also have ah another community PR sitting there that does some support for reading in GE pack data some of the GE pack data formats and so anticipate getting those into the me PI one point one also having GE pack like syntax for controlling the plot area on our simplified plotting interface。It allows you to not just specified area VIA you know this text you know Colorado or northeast u s or something but then you can also zoom in out using plus or minus just like you with the GE pack。Also looking at tab completion for the simplified plotting interface as well as dropping support for by five three point six。
09:04
And so here's an example of what I was talking about with the。啊。The fronts so you can see cold front here warm front here included fronts the various pressure centers and in the here is what I was talking about with these s scalele area so have these you know very round scallops around area。Beyond one point one what are our longer term plans thus far with met pie development we'VE been very focused on I'm trying To Grow the feature set and just trying to provide a library that has the the user pieces that are user community is looking for and trying and fill those missing pieces that didn't exist within the Python sector。And we think we'VE done a pretty good job of attacking。Most of the major things that we're lacking obviously。
10:02
We're never going To Be completely done of every possible thing that is done with meteorology but we have a large enough chunk that we're think we're pretty good there will'continue to ADD to that is as more things are identified but going forward a lot of the focus is now going To Be trying To Gain in ease of use。Trying to improve the runtime performance of the library。Is that's frequently a problem with Python libraries that run time just you know not as fast as say something like fortran I'm also look at scaling which is little different than performance this is more about trying to。Make it feasible for mepi of work with really large data sets like you might see with some ensemble models or climate scale data sets things like that and then there's a never ending supply of。The spoke data formats that the meteorology community uses and so we'looking at it you know growing the roster。Formats that we support within e PI and reading into into Python。
11:04
So one of the broader features we're looking at in the ease of use categories is what we call the automated solve。And so with all those calculations we have it can be difficult to figure out what shade of calculations you need to say get to dew point from whatever moisture quantity you have in your input data set。Or if you need To Go calculate something like。Potential oresity or something like that and you don't want to have to necessarily sit and figure out what chain of functions you need to call it be nice if you could just ask for potential oracity。And give it your data set and have the library figure out and that's exactly where our goals to do is To Be able to automatically calculate a given parameter。If you provided the name of that parameter and your data set of input。And this also paves the way then onto our simplified plotting interface to allow instead of need to。Manually calculate a particular field and then plotted To Be just request a given field and the library will do the calculation for you。
12:09
On performance optimization。Um。You know the good mantra for。Software development is To Get it right and then make it fast and so we think we'VE done a pretty good job of get it right we have a exhaust of test suite for the library and we'VE done our best to and like we said we tested against je pack and we think we have things right。So now's the time to make it fast。And so that's where we're going To Be embarking。Probably speaking it means find hot spots using profileling tools we know certain calculations are slow like cake cap works pretty well if you're're working on a single profile but right now if you want to use our cape calculation on a large grid you know from a model output that's can be excruciatingly slow so we want to try to start addressing bottleneck like that one of the technical challenges coming up with that as we need to then decide on。
13:08
Detect approach here what kind of technology we're going to use to。Optimize it you know it's not enough just to try and tweak code here and there that's still in Python but instead we need to。Rewrite some of the bottlene code in something else either one option is using a tool like number。Which is a library that kind of takes your Python code and passes it through a just in time compiler and generates quick code runtime another option is Python which you write code in a Python like language but then it gets compiled to see。And use that at runtime both are are known to provide couple orders of magnitude better runtime performance and so we need to just figure out。Which of those that only gives us the best runtime performance but also。Imposes the least amount of challenges in terms of distributing metine in the future to our community。
14:05
In terms of packaging issues and things like that and then one thing that have an eye on I don't know how much work will be doing the short term on this but it'would be nice if we go about。Optizing things and andructuring things be good to keep an eye on seeing how much we can support existing libraries that that do GPU computing with Python。We're also looking at desk support so desk is the library that provides no like like AR raisey and chking allows you to do a raise that are larger than what would fit in your system memory。And so with that you can also get now a framework for distributed computing and so desk kind of provides those two things that out of core memory array。And。Distributed computing and we'd like To Be able to support using that with metpie if we could just take in dasarray and work with them just like we would anything else that would be great right now many of the calculations。Don't operate properly with desk they cause the full rate To Be directly computed which blows up memory usage and kind of erass all the benefits of desk。
15:08
And so we'd like To Get there so that then met by functionality can reach broader community here that are looking at climate scale applications or ensemble data sets things like that。And then file format support we want to continue To Grow the list of file format one you know right now。What example stands out to me is we have limited access upar data we have access to various individual soundings from things like the university of wyomings upar archives but in terms of the real time feed and trying To Get you know a。A five hundred millbar map of observations that problems kind of challenging and the existing solutions from buffer which is what the real time data feeds are in or are not great in Python someone address that by implementing some buffer support within met pie also like to expand the GE pack file supports so that we can get more of the。
16:01
Archive GE pack data available for me PI。Things like that。So by the numbers just separateary kind of how we're a stand last year or hundred forty thousand downloads and thirty hundred forty thousand downloads every year。Thirty thousand documentation pages every month。And the number I'm probably most proud of beyond our exceptional communitymtor of what we have you know as you can see their fifty three unique code contributors and one hundred and sixty one unique contributors on github is we have sixty one publications now that cyder mentioned metal。So that's we really want to continue to promote our community very grateful for the support we'VE had from our community and we want to continue to welcome。New contributors to the community we love we don't love having broken software but we do love getting issue reports that we can improve metpi for everyone and we have had a lot of our major features that have come in through community contributions and so if you'd like To Get involved with that PI。
17:03
We have now on our github web page there's a discussion session for greater questions and discussion。You can also ask questions using the mepi tag on stack overflow。And then for bugs bug reports in the future request there's also a link there to the issue tracker where you can reported the problems you're having or。Request features that you'd like to see in the library。With that just like to thank our community for all the helpful feedback and contributions we'VE gotten and here's a last link we have our the at nepie on Twitter and there's a link to the githu Bo story。Thanks。
我来说两句