ESMF within UV-CDAT Charles Doutriaux AIMS Team LLNL June 12th 2014 Lawrence Livermore National Laboratory 1 UV-CDAT open source, easy-to-use application that links together disparate software subsystems and packages to form an integrated environment for analysis and visualization. This project seeks to advance climate science by fulfilling computational and diagnostic/visualization capabilities needed for DOE's climate research Lawrence Livermore National Laboratory 2 UV-CDAT UV-CDAT builds on the following key technologies: • The Climate Data Analysis Tools (CDAT) framework developed at LLNL for the analysis, visualization, and management of large-scale distributed climate data; • ParaView: an open-source, multi-platform, parallelcapable visualization tool with recently added capabilities to better support specific needs of the climate-science community; • VisTrails, an open-source scientific workflow and provenance management system that supports data exploration and visualization; Lawrence Livermore National Laboratory 3 UV-CDAT In short: • Climate (for now) oriented set of tools with pythonbased end-user interface. • Developed at PCMDI heart of MIPs projects I/O, Analysis and Viz. Variables are based upon Numpy with the addition of metadata which enables for “smart software” -> cdms2 Lawrence Livermore National Laboratory 4 CDMS2 UV-CDAT’s primary I/O system. Can read multiple file format Variables read in and based on top of Numpy’s masked arrays. Preserve metadata as much/long as possible Lawrence Livermore National Laboratory 5 Regrid UV-CDAT developed tools can take advantage of MVs metadata. Because each modeling group has its own (set of) grid, regrid of data often necessary Historically used area-weighted method. Worked only for regular grids. AR5 lot of “non-regular” grids Lawrence Livermore National Laboratory 6 ESMF CMIP5 users needed easy way to go back and forth between models’ grids. In came ESMF with python bindings BUT learning curve was a bit steep. With the help of Alex Pletzer and TechX ESMF was integrated into cdms2’ regridder(Summer 2012). And actually became the default regridder. Lawrence Livermore National Laboratory 7 ESMF and UV-CDAT filename = "so_Omon_inmcm4_1pctCO2_r1i1p1_209001209412_2timesteps.nc” g = cdms2.open(filename) so = g('so’) gLat = cdms2.createGaussianAxis(64) deltaLon = (360/128.) gLon = cdms2.createUniformLongitudeAxis(0, 128, deltaLon) gaussGrid = cdms2.grid.createGenericGrid(gLat[:], gLon[:], gLat.getBounds(), gLon.getBounds()) soN = so.regrid(gaussGrid, rt = 'esmf', rm = 'conserve', coordSys = 'deg', periodicity = 1, fixSrcBounds=True) Lawrence Livermore National Laboratory 8