96 lines
3.2 KiB
Text
96 lines
3.2 KiB
Text
|
# ----------------------------------------------------------------------------
|
||
|
# This software is in the public domain, furnished "as is", without technical
|
||
|
# support, and with no warranty, express or implied, as to its usefulness for
|
||
|
# any purpose.
|
||
|
#
|
||
|
# $itemName
|
||
|
#
|
||
|
# Author: $author
|
||
|
# ----------------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
ToolType = "numeric"
|
||
|
WeatherElementEdited = "$parmToEdit"
|
||
|
from numpy import *
|
||
|
HideTool = 0
|
||
|
|
||
|
# You can screen the elements for which your tool will appear by using
|
||
|
# a ScreenList. For example:
|
||
|
#
|
||
|
#ScreenList = ["T","Td"]
|
||
|
#ScreenList = ["SCALAR","VECTOR","WEATHER","DISCRETE"]
|
||
|
|
||
|
# If desired, Set up variables to be solicited from the user:
|
||
|
# VariableList = [
|
||
|
# ("Variable name1" , defaultValue1, "numeric"),
|
||
|
# ("Variable name2" , "default value2", "alphaNumeric"),
|
||
|
# ("Variable name3" , ["default value1", "default value2"], "check",
|
||
|
# ["value1", "value2", "value3"]),
|
||
|
# ("Variable name4" , "default value4", "radio",
|
||
|
# ["value1", "value2", "value3"]),
|
||
|
# ("Variable name5" , defaultValue, "scale",
|
||
|
# [minValue, maxValue], resolution),
|
||
|
# ("Variable name6" , "", "model"),
|
||
|
# ("Variable name7" , "", "D2D_model"),
|
||
|
# ("Label contents" , "", "label"),
|
||
|
# ("", dialogHeight, "scrollbar"),
|
||
|
# ]
|
||
|
|
||
|
# Set up Class
|
||
|
import SmartScript
|
||
|
# For available commands, see SmartScript
|
||
|
|
||
|
|
||
|
class Tool (SmartScript.SmartScript):
|
||
|
def __init__(self, dbss):
|
||
|
SmartScript.SmartScript.__init__(self, dbss)
|
||
|
|
||
|
# Required Method: Execute
|
||
|
# %comment
|
||
|
# Fill in the arguments you want to use -- WeatherElement1, WeatherElement2...
|
||
|
|
||
|
def execute(self, WeatherElement1, WeatherElement2, varDict):
|
||
|
"Put your tool description here"
|
||
|
|
||
|
# # Set up Variables from the varDict (see VariableList below)
|
||
|
# var1 = varDict["Variable name1"]
|
||
|
# var2 = varDict["Variable name2"]
|
||
|
|
||
|
# Determine new value
|
||
|
|
||
|
# Return the new value
|
||
|
return $parmToEdit
|
||
|
|
||
|
# Optional Methods
|
||
|
# # These methods can have the additional argument:
|
||
|
# # ToolTimeRange -- selected time range over which we are running the tool
|
||
|
# def preProcessTool(self, varDict):
|
||
|
# # Called once at beginning of Tool
|
||
|
# # Cannot have WeatherElement or Grid arguments
|
||
|
# pass
|
||
|
# def postProcessTool(self, varDict):
|
||
|
# # Called once at end of Tool
|
||
|
# # Cannot have WeatherElement or Grid arguments
|
||
|
# pass
|
||
|
|
||
|
# What is "self"????
|
||
|
# "Self" refers to this Tool class instance. Don't worry much about it.
|
||
|
# All you need to do is:
|
||
|
# -- Make sure to list "self" as the first argument of
|
||
|
# method Definitions:
|
||
|
# def _myMethod(self, arg1, arg2)
|
||
|
# -- When calling your methods, use self._methodName omitting
|
||
|
# "self" as the first argument:
|
||
|
# x = self._myMethod(arg1, arg2)
|
||
|
#
|
||
|
|
||
|
# Error Handling
|
||
|
# Call self.abort(errorString) to stop execution of your tool and
|
||
|
# display a message to the user.
|
||
|
# For example:
|
||
|
# if x > 1000:
|
||
|
# self.abort("x is too large")
|
||
|
#
|
||
|
# Call self.noData(messageString) to stop execution of your tool
|
||
|
# and return a "NoData" error which can be checked by a Procedure.
|