awips2/cave/com.raytheon.viz.core.graphing/localization/scripts/interpolation.py
root 9f19e3f712 Initial revision of AWIPS2 11.9.0-7p5
Former-commit-id: 64fa9254b946eae7e61bbc3f513b7c3696c4f54f
2012-01-06 08:55:05 -06:00

59 lines
No EOL
1.9 KiB
Python

##
# This software was developed and / or modified by Raytheon Company,
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
#
# U.S. EXPORT CONTROLLED TECHNICAL DATA
# This software product contains export-restricted data whose
# export/transfer/disclosure is restricted by U.S. law. Dissemination
# to non-U.S. persons whether in the United States or abroad requires
# an export license or other authorization.
#
# Contractor Name: Raytheon Company
# Contractor Address: 6825 Pine Street, Suite 340
# Mail Stop B8
# Omaha, NE 68106
# 402.291.0100
#
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
# further licensing information.
##
import numpy as np
from scipy.interpolate import Rbf
def logInterpolate(data, gridX, gridY, xMin, xMax, yMin, yMax):
x = data.__numpy__[0]
y = data.__numpy__[1]
z = data.__numpy__[2]
y = (np.log10(y) - np.log10(yMin))/(np.log10(yMax) - np.log10(yMin))*(gridY - 1)
x = (x - xMin)/(xMax - xMin)*(gridX - 1)
xspace = np.linspace(0, gridX, gridX)
yspace = np.linspace(0, gridY, gridY)
XI,YI = np.meshgrid(xspace,yspace)
rbf = Rbf(x,y,z, function="linear")
ZI = rbf(XI,YI)
data.setResults(xspace.astype(np.float32),yspace.astype(np.float32),ZI.astype(np.float32))
return data
def linInterpolate(data, gridX, gridY, xMin, xMax, yMin, yMax):
x = data.__numpy__[0]
y = data.__numpy__[1]
z = data.__numpy__[2]
y = (y - yMin)/(yMax - yMin)*(gridY - 1)
x = (x - xMin)/(xMax - xMin)*(gridX - 1)
xspace = np.linspace(0, gridX, gridX)
yspace = np.linspace(0, gridY, gridY)
XI,YI = np.meshgrid(xspace,yspace)
rbf = Rbf(x,y,z, function="linear")
ZI = rbf(XI,YI)
data.setResults(xspace.astype(np.float32),yspace.astype(np.float32),ZI.astype(np.float32))
return data