From 6bdaba048cbc0f856c8c9bbfbe27622347a3b9db Mon Sep 17 00:00:00 2001 From: Ben Steffensmeier Date: Thu, 1 May 2014 15:15:16 -0500 Subject: [PATCH] Issue #3095 Update JGridData for creation of numeric java package. Former-commit-id: a3081bf46908788e78c707bf51e08f6c98d997bc --- .../base/python/time/DataTime.py | 7 +++-- .../base/python/dataaccess/JGridData.py | 28 +++++++++++-------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/edexOsgi/com.raytheon.uf.common.time/utility/common_static/base/python/time/DataTime.py b/edexOsgi/com.raytheon.uf.common.time/utility/common_static/base/python/time/DataTime.py index 0bedba6203..e0130d5049 100644 --- a/edexOsgi/com.raytheon.uf.common.time/utility/common_static/base/python/time/DataTime.py +++ b/edexOsgi/com.raytheon.uf.common.time/utility/common_static/base/python/time/DataTime.py @@ -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()) diff --git a/edexOsgi/com.raytheon.uf.edex.dataaccess/utility/common_static/base/python/dataaccess/JGridData.py b/edexOsgi/com.raytheon.uf.edex.dataaccess/utility/common_static/base/python/dataaccess/JGridData.py index c8ee7ff32b..1901b10349 100644 --- a/edexOsgi/com.raytheon.uf.edex.dataaccess/utility/common_static/base/python/dataaccess/JGridData.py +++ b/edexOsgi/com.raytheon.uf.edex.dataaccess/utility/common_static/base/python/dataaccess/JGridData.py @@ -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):