Mike Hiley (and the McIDAS-V Team)

Slides:



Advertisements
Similar presentations
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Advertisements

The NCAR Command Language (NCL) and the NetCDF Data Format Research Tools Presentation Matthew Janiga 10/30/2012.
Tommy Jasmin1, Dan Lindsey2, Steve Miller3, Thomas Rink1, Don Hillger2
McIDAS-Lite Dave Santek Program Manager Space Science & Engineering Center University of Wisconsin-Madison 5 December 2002.
McIDAS-V McIDAS-V The 5 th Generation of McIDAS by Tom Whittaker Space Science and Engineering Center University of Wisconsin-Madison USA with contributions.
Web based tools Ideas for presentation of operational meteorological data Ernst de Vreede KNMI EGOWS /6/2009 Ideas for presentation of operational.
McIDAS-V Support for the GOES-R Program William Straka 1, Tom Rink 1, Tom Achtor 1, Tim Schmit 2, Kaba Bah 1, Joleen Feltz 1 1 CIMSS/SSEC, University of.
Why you need McIDAS-V Steve Ackerman Tom Achtor. Introduction What is McIDAS-V? Why I want it? Why you will want it!
Python Brandon Jeffcoat Dashaun West “Why settle for snake oil when you can have the whole snake?” -- From Usenet posting by Mark Jackson, June 1998.
Russell Taylor Lecturer in Computing & Business Studies.
Developing a Basic Web Page with HTML
Storm Tracker – a Web-Based Tool for Working with the Automated Tracking of Thunderstorm Clusters Bob Rabin NOAA / NSSL / CIMSS Tom Whittaker Space Science.
Unidata TDS Workshop THREDDS Data Server Overview October 2014.
McIDAS: The First True GIS Mashup Tommy Jasmin UW / CIMSS / SSEC McIDAS Users’ Group Meeting June 9, 2015.
Linux Operations and Administration
1 The NOAA Weather and Climate Toolkit Steve Ansari, Stephen Del Greco, Neal Lott (NOAA / NCDC)
Sikuli Ivailo Dinkov QA Engineer PhoneX Team Telerik QA Academy.
McIDAS Advisory Committee (MAC) Sponsored: Group Discussion Joleen Feltz McIDAS Advisory Committee Chair from Cooperative Institute for Meteorological.
EARTH SCIENCE MARKUP LANGUAGE “Define Once Use Anywhere” INFORMATION TECHNOLOGY AND SYSTEMS CENTER UNIVERSITY OF ALABAMA IN HUNTSVILLE.
© Crown copyright Met Office Introduction to IDV PRECIS Reading Workshop, August 2009.
Visual Linker Final presentation.
Capture and Replay Often used for regression test development –Tool used to capture interactions with the system under test. –Inputs must be captured;
Unidata TDS Workshop TDS Overview – Part I XX-XX October 2014.
K. Harrison CERN, 20th April 2004 AJDL interface and LCG submission - Overview of AJDL - Using AJDL from Python - LCG submission.
GMT: The Generic Mapping Tools Paul Wessel, Walter H.F. Smith and the GMT team.
CHAPTER TEN AUTHORING.
EARTH SCIENCE MARKUP LANGUAGE Why do you need it? How can it help you? INFORMATION TECHNOLOGY AND SYSTEMS CENTER UNIVERSITY OF ALABAMA IN HUNTSVILLE.
Unidata TDS Workshop THREDDS Data Server Overview
_______________________________________________________________CMAQ Libraries and Utilities ___________________________________________________Community.
ESIP Federation 2004 : L.B.Pham S. Berrick, L. Pham, G. Leptoukh, Z. Liu, H. Rui, S. Shen, W. Teng, T. Zhu NASA Goddard Earth Sciences (GES) Data & Information.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
The Next Generation McIDAS A Look Towards the Future 21 st IIPS 8.2 San Diego, CA - 11 January 2005 Dave Santek Tom Whittaker Thomas Achtor Space Science.
PaPCo, Das2, and Autoplot Jeremy Faden, University of Iowa.
Introduction to Processing. 2 What is processing? A simple programming environment that was created to make it easier to develop visually oriented applications.
McIDAS Advisory Committee (MAC) Sponsored: Group Discussion Joleen Feltz McIDAS Advisory Committee Co-Chair from Kristopher Bedka + McIDAS Advisory.
McIDAS Advisory Committee (MAC) Sponsored: Group Discussion Joleen Feltz * and Kristopher Bedka + McIDAS Advisory Committee Co-Chairs * Cooperative Institute.
Cooperative Institute for Meteorological Satellite Studies University of Wisconsin - Madison ABI and AIRS Retrievals in McIDAS-V Kaba Bah.
HDF4 OPeNDAP Project Progress Report MuQun Yang and Hyo-Kyung Lee 1 HDF Developers' Meeting11/24/2015.
McIDAS-XCD Status Kevin Baggett UW-SSEC. McIDAS-XCD Update  McIDAS GRIB server has continued its stable performance following the -XCD 2006 release (-
The HDF Group Introduction to netCDF-4 Elena Pourmal The HDF Group 110/17/2015.
International Collaboration between DB stations for EOS Data Networking Steve Dutcher, Paolo Antonelli, Gieuseppe Meoli, Tom Rink, Liam Gumley, Paul Menzel,
McIDAS-V Status and Demonstration by Gail Dengel Tom Whittaker University of Wisconsin-Madison SSEC 2005 MUG Meeting October 27-28, 2005 Madison, WI.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Data File Formats: netCDF by Tom Whittaker University of Wisconsin-Madison SSEC/CIMSS 2009 MUG Meeting June, 2009.
INFSO-RI Enabling Grids for E-sciencE ARDA Experiment Dashboard Ricardo Rocha (ARDA – CERN) on behalf of the Dashboard Team.
Presentation to Unidata User's Committee September 2006 IDV – Past, Present, Future Don Murray and Jeff McWhirter.
McIDAS-V Support for the GOES-R Program William Straka 1, Tom Rink 1, Tom Achtor 1, Joleen Feltz 1, Tim Schmit 2, and Kaba Bah 1 1 CIMSS/SSEC, University.
An introduction to McIDAS – the Man-computer Interactive Data Access System (as part of the 19 th Annual CIMSS High School Workshop on Atmospheric and.
Selenium server By, Kartikeya Rastogi Mayur Sapre Mosheca. R
Using a MATLAB/Photoshop Interface to Enhance Image Processing in the Interpretation of Radar Imagery.
Origami: Scientific Distributed Workflow in McIDAS-V Maciek Smuga-Otto, Bruce Flynn (also Bob Knuteson, Ray Garcia) SSEC.
Excel Services Displays all or parts of interactive Excel worksheets in the browser –Excel “publish” feature with optional parameters defined in worksheet.
McIDAS Transition Summary Tom Achtor McIDAS Users’ Group Meeting Madison, WI - 17 October 2007 Space Science & Engineering Center (SSEC) at the University.
NcBrowse: OPeNDAP Server Access and 3-D Graphics Presented by Nancy N. Soreide NOAA/PMEL Donald W. Denbo UW/JISAO-NOAA/PMEL.
1 RIC 2009 Symbolic Nuclear Analysis Package - SNAP version 1.0: Features and Applications Chester Gingrich RES/DSA/CDB 3/12/09.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
Andrew White, Brian Freitag, Udaysankar Nair, and Arastoo Pour Biazar
PERL.
Getting to and Using our Data
Tom Rink Tom Whittaker Paolo Antonelli Kevin Baggett.
Enhancing Cloud Foundry with CLI Plugins
McIDAS-V Powerful data analysis and 3-D visualization tool from SSEC
SVTRAININGS. SVTRAININGS Python Overview  Python is a high-level, interpreted, interactive and object-oriented scripting language. Python is designed.
McIDAS-X and McIDAS-V Information
McIDAS-V: Why it’s Based on VisAD and IDV
What's New in eCognition 9
What's New in eCognition 9
What's New in eCognition 9
SDMX IT Tools SDMX Registry
Presentation transcript:

Utilizing Python as a scripting language for the McIDAS-V visualization package Mike Hiley (and the McIDAS-V Team) SSEC/CIMSS, University of Wisconsin-Madison Introduction of myself … new to McIDAS-V team in January 2012, focused primarily on scripting, have also used McIDAS-V heavily as a teaching tool (TA, workshops). Background is atmospheric science 2013 McIDAS User’s Group Meeting September 10, 2013 Madison, WI

Quick Overview of McIDAS-V Free, open-source 3D visualization package under active development at SSEC/CIMSS Focused on meteorological data, but not limited to it User support provided by the McIDAS User Group (MUG) – anyone can create an account on the forum and get help! Java-based architecture; easy to install on Windows/OSX/Linux Based on several components (details coming)

McIDAS-V Supported Data Many supported data types: Point data Numerical weather model output in various formats (GRIB2, netCDF, GEMPAK, and more) Satellite imagery, including hyperspectral via HYDRA Radar (especially NEXRAD) netCDF files that conform to CF conventions Remote data access via ADDE, THREDDS Lots more

McIDAS-V Functionality Data choosers let the user put any combination of these data into a display, then manipulate the display interactively Display is fully three-dimensional – especially useful for conventional radar as well as cross sections from e.g., CloudSat and CALIPSO i.e. instruments a 3rd dimension is the most natural way to view the data. Example coming.

Example Image produced by McIDAS-V: putting the A-train in a single display! CloudSat vertically pointing cloud radar 89GHz vertically polarized brightness temperatures from AMSR-E 0.65 um reflectance from MODIS Careful to mention orientation of image; not clear what you are looking at especially if not familiar with CloudSat. Explain map outlines, mention Top-down geometry of cloudsat. Make some mention of educational labs I’ve worked on. Diverse A-train sensors all in one display. Thanks to Prof. Ralf Bennartz (Vanderbilt/SSEC) for help producing this image

Quick History of McIDAS-V “Fifth-generation McIDAS” – the successor to McIDAS-X (though codebase is almost completely unrelated) Based on several components: VisAD: Java component library for visualization of virtually any numerical dataset, developed at SSEC Integrated Data Viewer (IDV): Extension of VisAD providing support for meteorological data sources and adding a GUI interface, developed at Unidata HYperspectral-viewer for Development of Research Applications (HYDRA): Extension of VisAD focused on visualization of hyperspectral satellite data, developed at SSEC Main point: what we call “McIDAS-V” is primarily a combination of several Java-based components/libraries. It is a CONGOLOMERATION of code that has been developed by many different people at different institutions, with different ideas about code design, application functionality, etc. This was and still is intimidating for me as a relatively new developer.

In a nutshell, McIDAS-V is an extension of the IDV and VisAD that incorporates HYDRA and adds other features like Suomi NPP support, a dedicated support team, and… A new Jython scripting API ! Under active development at SSEC McIDAS-V previously had some scripting capabilities, but: limited functionality “Un-Pythonic” New API is designed from ground up to ease automation of common workflows in McIDAS-V via a user friendly and well documented API. Traditionally, IDV/McIDAS-V have had some limited scripting capabilities but users have had to deal with limited documentation and functionality. “Un-Pythonic”… arguments were often long strings with confusing non-Python syntax, generally not object oriented… really just a wrapper around the XML-based “IDV Scripting Language”

Current status of scripting API McIDAS-V version 1.2, released in April 2012, included the first version of this new scripting functionality. So far we have focused primarily on access to satellite imagery via ADDE Extensive tutorials and documentation available on McIDAS-V website Scripting framework continues to be heavily developed. 1.3 and 1.4 releases include some new functionality: listADDEImages (find out what is on the server without downloading images) Jython Shell improvements (keyboard shortcuts, easier to run scripts that are on disk) Numerous stability improvements

McIDAS-V scripting overview Users write scripts in the Python programming language Python scripts are interpreted in the Java-based McIDAS-V system via Jython, an implementation of the Python programming language in Java In addition to our new API, advanced users can call any piece of Java code in the McV/IDV/VisAD library. (Without having to actually write Java code). McV/IDV/VisAD includes a huge number of utilities for grid interpolation, quantitative analysis, etc. Lack of Java.. Scientists don’t want to learn multiple programming languages

Users can run scripts in two modes: Interactively: in a normal session of McIDAS-V by typing commands in the “Jython Shell” In the “background”: from a terminal session. McIDAS-V boots, runs a script, and closes Interactive mode

Simple example script Use the “getADDEImage” function* to get some satellite imagery. Put the data in a display. Add a descriptive label using metadata from ADDE. Change the map projection. Write out the image as a PNG. *(ADDE: Abstract Data Distribution Environment. Used heavily in McIDAS-X world. Main advantage: can get exactly the part of an image you need, nothing more.) Think of ADDE like HTTP for meteorological data, especially satellite imagery

Example script. Paste a vim screenshot here. Note that arbitrary strings are derived from existing GUI labels. Come back and note where the data, layer, display classes come into play. PNG automatically recognized.

Note Texas projection, layer label, low image resolution (on purpose)

API Design - principles Functions and methods should be named well so they have a predictable result Anywhere an arbitrary string is required - for example when specifying display type (image, contour, streamlines, etc.) – the user should be able to use the same strings found in the GUI labels Pythonic syntax wherever feasible “A predictable result”… may seem obvious, but harder than it sounds, hasn’t been the case in previous scripting functionality in McV

API design – key classes _Data: a piece of data, e.g. u and v model winds Key metadata can be accessed via Python dictionary syntax Can perform statistical analysis, do arithmetic operations, etc. _Layer: A piece of data that has been displayed (e.g. a streamline display of the model winds) Can change some key layer properties like enhancement table _Window: A combination of multiple layers, e.g. wind streamlines plotted on top of a satellite image Some key per-display properties you can set: Display size Lat/lon center point of image Map projection Can add text annotations and write image to disk Metadata: date/time, model name, satellite name, band, etc. We wrap existing IDV behavior into these classes to make their behavior consistent in a scripting environment, and make the syntax friendly to the end-user

Example script. Paste a vim screenshot here. Note that arbitrary strings are derived from existing GUI labels. Come back and note where the data, layer, display classes come into play. PNG automatically recognized.

Challenges – Implementation of new scripting API The foundation of the McIDAS-V codebase, the IDV, was built primarily as a GUI-based system. For us developers, providing scripting-based access to IDV features can be challenging. But – this is precisely why our work is important – to shield end users from these complications! GUI-based system… often GUI functionality intermingled with unrelated code

Challenges – Jython limitations Current “final” release is only Jython 2.5.3; Jython 2.7 is under development and it is unclear if we will see a Jython 3. (Current stable CPython is version 3.3). No NumPy! Jython code significantly slower than native Java code. Expand on implications of no NumPy…

Challenges – facilitating data analysis In McIDAS-V, all data is internally represented using the “VisAD Data Model”: a generic way of representing virtually any scientific dataset We want scientists to do data analysis and algorithm development in McIDAS-V, but that means scientists need to learn this “VisAD Data Model”, which can be seen as a pro or a con: PRO: VisAD provides a powerful way to manipulate/analyze a huge variety of data types in a uniform way. CON: The VisAD learning curve can be steep (VisAD lingo can seem strange to scientists coming from a MATLAB/IDL world) Part of our work will be to fill the gap between VisAD and traditional science code however we can… solid documentation, helper functions, boilerplate scripts, user forum support Skip to following slide showing VisAD simple case for satellite image… simple case not bad, but sometimes lingo takes getting used to.

Simple example of VisAD Data Model – a single-banded satellite image time series (Time -> ((Line, Element) -> Band4 Brightness Temperature)) Function B: maps pixel locations to actual brightness temperatures Function A: Maps time to satellite images Similar diagrams could be drawn for any dataset you could imagine (eg non-physical dimensions like ensemble models) Multi-banded image could just have additional RangeComponents Flip back to previous slide when done “Function” A maps the “DomainSet” (time steps) to the “Range” (in this case, another “Function” representing a single satellite image) “Function” B maps the “DomainSet” (the Line/Element pixel locations) to a single “RangeComponent”: the actual brightness temperature values

Conclusion New McIDAS-V scripting API promises to provide consistent access to a wide variety of meteorological data sources using the Python programming language. First edition of this scripting framework was introduced in version 1.2, and heavy development has continued since, and will continue for the foreseeable future. McIDAS-V already has a wide variety of powerful tools available for both visualization and data analysis. Access to these tools via scripting will get better with every release.

Things you can do right now!!! Install McIDAS-V; it’s easy and works on Windows/OSX/Linux; available for free at: http://www.ssec.wisc.edu/mcidas/software/v/ Create an account on the McIDAS-V support forum to get help from the developers, support team, and other users!: http://dcdbs.ssec.wisc.edu/mcidasv/forums/

Thanks for listening! Acknowledgements: McIDAS-V core “scripting team” Becky Schaffer Jonathan Beavers Rick Kohrs Bob Carp The rest of the McIDAS team: Tom Rink Tom Whittaker Tommy Jasmin Dave Santek Jay Heinzelman Barry Roth Users that keep pushing the boundaries of McV scripting: Joleen Feltz Hans-Peter Roesli (EUMETSAT)