Hi All,

Regarding to the RCMES refactoring API codes (Toolkit), I thought is good to 
have a wiki page that summarize the API we are going to have for RCMES in 
future.
This is not the actual document we will have later for RCMES code, but it just 
the list of classes, modules, methods and functions we may need to develop.
It would be great if you guys help me to complete this wiki before we start the 
refactoring toolkit's codes.

https://cwiki.apache.org/confluence/display/CLIMATE/Open+Climate+Workbench+API+summary

Best,
Mazi


On Jun 5, 2013, at 7:40 AM, Michael Joyce wrote:

> +1 for cutting 0.1-incubating and starting these changes in 0.2.
> 
> 
> -- Joyce
> 
> 
> On Wed, Jun 5, 2013 at 7:19 AM, Mattmann, Chris A (398J) <
> [email protected]> wrote:
> 
>> This sounds like a good path to proceed down to me.
>> 
>> I would formulate the below into a set of JIRA issues,
>> then proceed by incrementally evolving the toolkit to
>> support this.
>> 
>> The only catch is that many of these could potentially
>> be API back compat. Since we haven't really talked or
>> suggested about the impact of this; nee made a release,
>> it's certainly possible to do this in trunk.
>> 
>> My suggestion though since trunk represents what we
>> all believe to be RCMET 2.0 API compat, we should probably
>> create a branch for this. Or, better yet:
>> 
>> 1. Close out current JIRA issues for 0.1-incubating.
>> 2. Cut a 0.1-incubating RC/release process.
>> 3. Start to implement the below in 0.2-incubating.
>> 
>> Thoughts?
>> 
>> Cheers,
>> Chris
>> 
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> Chris Mattmann, Ph.D.
>> Senior Computer Scientist
>> NASA Jet Propulsion Laboratory Pasadena, CA 91109 USA
>> Office: 171-266B, Mailstop: 171-246
>> Email: [email protected]
>> WWW:  http://sunset.usc.edu/~mattmann/
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> Adjunct Assistant Professor, Computer Science Department
>> University of Southern California, Los Angeles, CA 90089 USA
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> 
>> 
>> 
>> 
>> 
>> 
>> -----Original Message-----
>> From: Michael Joyce <[email protected]>
>> Reply-To: "[email protected]"
>> <[email protected]>
>> Date: Wednesday, June 5, 2013 6:56 AM
>> To: dev <[email protected]>
>> Subject: Proposed Toolkit Refactoring
>> 
>>> All,
>>> 
>>> This is a brief rundown of a discussion that Paul, Cam, Mazi, and I had
>>> yesterday regarding the current state of the toolkit and proposed changes
>>> that we would like to discuss with the list.
>>> 
>>> We discussed adding a number of objects that should help simplify toolkit
>>> usage. Below is a high-level rundown of our discussion.
>>> 
>>> --
>>> 
>>> Dataset: Simple container object for a dataset. Provides helpers for
>>> accessing relevant data (getLatsLons, getTime) and convenience functions
>>> (writeToFile()).
>>> 
>>> DataSource: Provides the user with helper functions for grabbing the data
>>> that they want to evaluate. There's a RCMED module specifically for
>>> grabbing RCMED data and a Local module for grabbing local data. This could
>>> easily be expanded to include ESG and other data sources.
>>> 
>>> DatasetProcessor: Any operation that needs to be run on datasets (that
>>> isn't the evaluation obviously) is found in the DatasetProcessor. It
>>> supports:
>>> - regridding (spatial and temporal)
>>> - masking/cleaning/filtering
>>> - subsetting (spatial and temporal)
>>> - ensemble generation
>>> - anything else that fits here.
>>> 
>>> Evaluation: The Evaluation object is (surprise surprise) in charge of
>>> running Evaluations. It keeps track of the datasets (both 'reference' and
>>> the 'targets') that the user wants to use in the evaluation. It runs all
>>> the necessary evaluations and keeps the results nicely stored and readily
>>> accessible for the user.
>>> 
>>> Metric: Metrics are added to an Evaluation and used during the run. All
>>> metrics inherit from the base Metric class. All you need to add new
>>> metrics
>>> is inherit from Metric and override the 'run' method.
>>> 
>>> Plotter: The Plotter makes result visualization a breeze. If you give it
>>> an
>>> Evaluation object it will spit
>>> out plots of all the results. Give it a Dataset and it will spit out a
>>> plot. You can even have it return
>>> Matplotlib objects so you can make your results look exactly the way you'd
>>> like.
>>> 
>>> -- Joyce
>> 
>> 

Reply via email to