BASH example (by MoviePlotter)¶
The python plugin for the MoviePlotter (movieplotter.py):¶
import os from evaluation_system.api import plugin, parameters class MoviePlotter(plugin.PluginAbstract): tool_developer = {'name':'Christopher Kadow', 'email':'christopher.kadow@met.fu-berlin.de'} __short_description__ = "Plots 2D lon/lat movies in GIF format" __version__ = (0,0,1) __parameters__ = parameters.ParameterDictionary( parameters.File(name='input', mandatory=True, help='The NetCDF file to be plotted'), parameters.Directory(name='outputdir', default='$USER_OUTPUT_DIR', mandatory=True, help='The default output directory of the MiKlip Evaluation System')) # SHORTENED OPTIONS FOR BETTER OVERVIEW def runTool(self, config_dict=None): input = config_dict['input'] outputdir = config_dict['outputdir'] result= self.call('%s/movie_plotter.sh %s %s' % (self.getClassBaseDir(),input,outputdir)) print result[0]
The BASH script (movie_plotter.sh) which is called by the framework through the plugin (movieplotter.py)¶
#!/bin/bash #set -x # UNSET HASHMARK FOR DEBUGGING # MOVIE PLOTTER (GIF-Format) # this application plots 2D maps along the time axes in a file with the # structure (TIME/LAT/LON, e.g. surface variables like tas,uas,tos, etc.). # Therefore every variable in a file gets a movie in a GIF format. # Just for NetCDF Format! ####################### # CONFIGURATION # LOAD FROM PYTHON INPUT1=$1 # GET INPUT AND OUTPUTDIR FROM PYTHON FRAMEWORK OUTPUTDIR=$2 ######################## # MAKE DIRECTORY AND SET CACHE # NOT NECESSARY ANYMORE, DONE BY THE FRANEWORK! #CACHE=$OUTPUTDIR/.cache #mkdir -p $OUTPUTDIR #mkdir -p $CACHE ######################## # LOAD MODULES module purge # JUST TO MAKE SURE NOTHING IS LOADED module load ncl module load cdo ################ # MAIN PROGRAM ############### # ... SHORTNED FOR BETTER OVERVIEW, NOW THE MAIN PART BEGINS AND CONFIGURATION IS FINISHED
For detailed informations on the tool and its linkage, check out the the GIT repository
/work/bmx828/miklip-ces/misc4freva/repos4freva/