This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
> Hi Yuan, > > Thanks for your explanation of my error. I have found that using the ** > operator seems to work. So, for example, 2.718**EQPT. Is this the best > way to perform something like e^EQPT on the whole 3D grid? Thanks for your > help, > > Paul > Paul, Again, I will not trust the result of 2.718**EQRT since the EQRT is a visad object. You need to verify the result by create the value plot. I will try to extract the value from EQRT and do the calculation, something like: def expTest(data): """change values in data to newvalue """ newData = data.clone(); if (GridUtil.isTimeSequence(newData)): for t in range(newData.getDomainSet().getLength()): rangeObject = newData.getSample(t) values = rangeObject.getFloats(0); for i in range(len(values)): for j in range(len(values[0])): newValue = 2.718**values[i][j]; values[i][j] = newValue; rangeObject.setSamples(values,1); else: rangeObject = newData; values = rangeObject.getFloats(0); for i in range(len(values)): for j in range(len(values[0])): newValue = 2.718**values[i][j]; values[i][j] = newValue; rangeObject.setSamples(values,1); return newData; This formula has not been tested, you need to do it yourself. Yuan > > On 17 December 2013 10:07, Unidata IDV Support <address@hidden > > wrote: > > > > Hi Unidata Support, > > > > > > Thanks for getting back to my so promptly. A test formula I was using is > > > when this error occurred is: > > > > > > def testExp(EQPT): > > > return exp(noUnit(EQPT.clone())) > > > > > > I think the problem has something to do with stripping the units with > > > noUnit(). > > > > > > Regards, > > > > > > Paul > > > > Paul, > > The problem is that the input of your formula is a visad object, and > > Jython can not handle this kind of > > object. In the IDV, we handle this kind of calculation in Java, extract > > the numeric value from the visad object and > > do the calculation, and then construct a new visad object and return to > > the IDV. But, > > we don't have exp formula yet. > > > > > > Yuan > > > > > > > > address@hidden > > > > wrote: > > > > > > > > Full Name: Paul Graham > > > > > Email Address: address@hidden > > > > > Organization: Weathersim > > > > > Package Version: 4.1u1 build date:2013-09-25 07:05 UTC > > > > > Operating System: Linux > > > > > Hardware: Java: home: /usr/local/bin/IDV_4.1u1/jre version: 1.6.0_41 > > > > j3d:1.5.2 fcs (build4) > > > > > Description of problem: Not sure as to why the IDV gives this error > > when > > > > trying to use the exponential function on a field: > > > > > > > > > > Creating display: Color-Filled Contour Plan View > > > > > visad.UnitException: visad.UnitException: FlatField: RangeUnits must > > be > > > > convertable with RangeType default Units > > > > > FlatField: RangeUnits must be convertable with RangeType default > > Units > > > > > > > > Paul, > > > > Could you provide us the formula you were trying? > > > > > > > > > > > > Yuan > > > > > > > > > > ****************** > > > > > Stack trace: > > > > > visad.UnitException: FlatField: RangeUnits must be convertable with > > > > RangeType default Units > > > > > at visad.FlatField.<init>(FlatField.java:412) > > > > > at visad.FlatField.cloneFloat(FlatField.java:5605) > > > > > at visad.FlatField.unary(FlatField.java:3744) > > > > > at visad.FieldImpl.unary(FieldImpl.java:906) > > > > > at visad.DataImpl.unary(DataImpl.java:485) > > > > > at visad.DataImpl.exp(DataImpl.java:662) > > > > > at visad.python.JPythonMethods.exp(JPythonMethods.java:942) > > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > > > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > > > > > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > > > > > at java.lang.reflect.Method.invoke(Unknown Source) > > > > > at > > > > > > org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:186) > > > > > at > > > > > > org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:204) > > > > > at org.python.core.PyObject.__call__(PyObject.java:387) > > > > > at org.python.core.PyObject.__call__(PyObject.java:391) > > > > > at org.python.pycode._pyx283.hailRiskII$15(<string>:240) > > > > > at org.python.pycode._pyx283.call_function(<string>) > > > > > at org.python.core.PyTableCode.call(PyTableCode.java:165) > > > > > at org.python.core.PyBaseCode.call(PyBaseCode.java:149) > > > > > at org.python.core.PyFunction.__call__(PyFunction.java:327) > > > > > at org.python.pycode._pyx285.f$0(<string>:1) > > > > > at org.python.pycode._pyx285.call_function(<string>) > > > > > at org.python.core.PyTableCode.call(PyTableCode.java:165) > > > > > at org.python.core.PyCode.call(PyCode.java:18) > > > > > at org.python.core.Py.runCode(Py.java:1261) > > > > > at org.python.core.__builtin__.eval(__builtin__.java:484) > > > > > at org.python.core.__builtin__.eval(__builtin__.java:488) > > > > > at org.python.util.PythonInterpreter.eval(PythonInterpreter.java:190) > > > > > at > > > > ucar.unidata.data.DerivedDataChoice.getData(DerivedDataChoice.java:787) > > > > > at ucar.unidata.data.DataChoice.getData(DataChoice.java:637) > > > > > at ucar.unidata.data.DataInstance.getData(DataInstance.java:243) > > > > > at ucar.unidata.data.DataInstance.getData(DataInstance.java:207) > > > > > at > > > > ucar.unidata.data.grid.GridDataInstance.init(GridDataInstance.java:206) > > > > > at > > > > > > ucar.unidata.data.grid.GridDataInstance.<init>(GridDataInstance.java:163) > > > > > at > > > > > > ucar.unidata.data.grid.GridDataInstance.<init>(GridDataInstance.java:144) > > > > > at > > > > > > ucar.unidata.idv.control.GridDisplayControl.doMakeDataInstance(GridDisplayControl.java:284) > > > > > at > > > > > > ucar.unidata.idv.control.DisplayControlImpl.initializeDataInstance(DisplayControlImpl.java:3224) > > > > > at > > > > > > ucar.unidata.idv.control.DisplayControlImpl.setData(DisplayControlImpl.java:3206) > > > > > at > > > > > > ucar.unidata.idv.control.PlanViewControl.setData(PlanViewControl.java:641) > > > > > at > > > > > > ucar.unidata.idv.control.ContourPlanViewControl.setData(ContourPlanViewControl.java:194) > > > > > at > > > > ucar.unidata.idv.control.PlanViewControl.init(PlanViewControl.java:471) > > > > > at > > > > > > ucar.unidata.idv.control.DisplayControlImpl.init(DisplayControlImpl.java:1421) > > > > > at > > > > > > ucar.unidata.idv.control.DisplayControlImpl.init(DisplayControlImpl.java:1106) > > > > > at > > > > > > ucar.unidata.idv.ControlDescriptor.initControl(ControlDescriptor.java:986) > > > > > at > > ucar.unidata.idv.ControlDescriptor$1.run(ControlDescriptor.java:911) > > > > > at ucar.unidata.util.Misc$3.run(Misc.java:1251) > > > > > > > > > > > > > > > > > > > > > > > > > > > Ticket Details > > > > =================== > > > > Ticket ID: JBN-701347 > > > > Department: Support IDV > > > > Priority: Normal > > > > Status: Open > > > > > > > > > > > > > > > > > -- > > > Paul Graham > > > Email: address@hidden > > > Mobile: 0403003784 > > > > > > > > > > > > Ticket Details > > =================== > > Ticket ID: JBN-701347 > > Department: Support IDV > > Priority: Normal > > Status: Closed > > > > > > > -- > Paul Graham > Email: address@hidden > Mobile: 0403003784 > > Ticket Details =================== Ticket ID: JBN-701347 Department: Support IDV Priority: Normal Status: Closed