Issue #3095 Update JGridData for creation of numeric java package.

Former-commit-id: a3081bf46908788e78c707bf51e08f6c98d997bc
This commit is contained in:
Ben Steffensmeier 2014-05-01 15:15:16 -05:00
parent c8ba70a146
commit 6bdaba048c
2 changed files with 21 additions and 14 deletions

View file

@ -28,6 +28,7 @@
# Date Ticket# Engineer Description
# ------------ ---------- ----------- --------------------------
# 12/12/12 njensen Initial Creation.
# 05/01/14 3095 bsteffen Don't default fcstTime to 0 in init.
#
#
#
@ -38,7 +39,7 @@ from com.raytheon.uf.common.time import DataTime as JavaDataTime
class DataTime(JUtil.JavaWrapperClass):
def __init__(self, dtime, fcstTime=0):
def __init__(self, dtime, fcstTime=None):
if isinstance(dtime, AbsTime.AbsTime):
self.__dt = JavaDataTime(dtime.toJavaObj())
elif isinstance(dtime, str):
@ -47,8 +48,8 @@ class DataTime(JUtil.JavaWrapperClass):
# assuming Java object
self.__dt = dtime
# TODO add support for other possible types of dtime?
self.__dt.setFcstTime(fcstTime)
if fcstTime is not None:
self.__dt.setFcstTime(fcstTime)
def __eq__(self, other):
return self.__dt.equals(other.toJavaObj())

View file

@ -28,14 +28,19 @@
# Date Ticket# Engineer Description
# ------------ ---------- ----------- --------------------------
# 12/10/12 njensen Initial Creation.
# 05/01/14 3095 bsteffen Move numeric data access to new plugin.
#
#
#
from ufpy.dataaccess import IGridData
import JData
from jep import jarray
from com.raytheon.uf.common.geospatial.interpolation.data import FloatArrayWrapper, UnitConvertingDataDestination
from com.raytheon.uf.common.numeric.buffer import FloatBufferWrapper
from com.raytheon.uf.common.geospatial.data import UnitConvertingDataFilter
from com.raytheon.uf.common.numeric.dest import FilteredDataDestination
from com.raytheon.uf.common.python import PythonNumpyFloatArray
from com.raytheon.uf.common.geospatial import LatLonReprojection
from javax.measure.unit import UnitFormat
@ -64,21 +69,22 @@ class JGridData(IGridData, JData.JData):
return str(self.jobj.getUnit())
def getRawData(self, unit=None):
dest = FloatArrayWrapper(self.jobj.getGridGeometry())
nx = self.jobj.getGridGeometry().getGridRange().getSpan(0)
ny = self.jobj.getGridGeometry().getGridRange().getSpan(1)
dest = FloatBufferWrapper(nx, ny)
pnfa = None
if unit:
unitObj = UnitFormat.getUCUMInstance().parseObject(unit)
converter = self.jobj.getUnit().getConverterTo(unitObj)
unitDest = UnitConvertingDataDestination(converter, dest)
filledDest = self.jobj.populateData(unitDest)
nx = self.jobj.getGridGeometry().getGridRange().getSpan(0)
ny = self.jobj.getGridGeometry().getGridRange().getSpan(1)
pnfa = PythonNumpyFloatArray(filledDest.getWrappedDestination().getArray(), nx, ny)
filter = UnitConvertingDataFilter(converter)
filter = UnitConvertingDataFilter(converter)
filters = jarray(1, UnitConvertingDataFilter)
filters[0] = filter
unitDest = FilteredDataDestination.addFilters(dest, filters)
self.jobj.populateData(unitDest)
else:
filledDest = self.jobj.populateData(dest)
nx = self.jobj.getGridGeometry().getGridRange().getSpan(0);
ny = self.jobj.getGridGeometry().getGridRange().getSpan(1);
pnfa = PythonNumpyFloatArray(dest.getArray(), nx, ny)
self.jobj.populateData(dest)
pnfa = PythonNumpyFloatArray(dest.getBuffer().array(), nx, ny)
return pnfa.__numpy__[0]
def getLatLonCoords(self):