def testResampleData(self): # test upsampling by a factor of 2 timestamps = numpy.array([numpy.datetime64( datetime.datetime(2000, 1, 1, tzinfo=dateutil.tz.tzlocal()) + datetime.timedelta(hours=i)) for i in xrange(8)]) values = numpy.linspace(0, 7, 8) newSamplingInterval = numpy.timedelta64(1800, 's') (newTimeStamps, newValues) = param_finder._resampleData(timestamps, values, newSamplingInterval) trueNewTimeStamps = numpy.array([numpy.datetime64( datetime.datetime(2000, 1, 1, tzinfo=dateutil.tz.tzlocal()) + datetime.timedelta(hours=0.5 * i)) for i in xrange(15)]) self.assertTrue(numpy.allclose(newValues, numpy.linspace(0, 7, 15))) timestampError = (numpy.sum( numpy.abs(newTimeStamps - trueNewTimeStamps))).item().total_seconds() self.assertAlmostEqual(timestampError, 0) # test down-sampling by a factor of 2 newSamplingInterval = numpy.timedelta64(7200, 's') (newTimeStamps, newValues) = param_finder._resampleData(timestamps, values, newSamplingInterval) trueNewTimeStamps = numpy.array([numpy.datetime64( datetime.datetime(2000, 1, 1, tzinfo=dateutil.tz.tzlocal()) + datetime.timedelta(hours=2 * i)) for i in xrange(4)]) timestampError = (numpy.sum( numpy.abs(newTimeStamps - trueNewTimeStamps))).item().total_seconds() self.assertTrue(numpy.allclose(newValues, numpy.linspace(0, 6, 4))) self.assertAlmostEqual(timestampError, 0)
def testResampleData(self): # test upsampling by a factor of 2 timestampsInS = numpy.array([ numpy.datetime64( datetime.datetime(2000, 1, 1, tzinfo=dateutil.tz.tzlocal()) + datetime.timedelta(hours=i)) for i in xrange(8) ]) values = numpy.linspace(0, 7, 8) newSamplingIntervalInS = numpy.timedelta64(1800, 's') newSamplingIntervalInMs = newSamplingIntervalInS.astype( 'timedelta64[ms]') timestampsInMs = timestampsInS.astype('datetime64[ms]') newValues = param_finder._resampleData(timestampsInMs, values, newSamplingIntervalInMs) self.assertTrue(numpy.allclose(newValues, numpy.linspace(0, 7, 15))) # test down-sampling by a factor of 2 newSamplingIntervalInS = numpy.timedelta64(7200, 's') newSamplingIntervalInMs = newSamplingIntervalInS.astype( 'timedelta64[ms]') newValues = param_finder._resampleData(timestampsInMs, values, newSamplingIntervalInMs) self.assertTrue(numpy.allclose(newValues, numpy.linspace(0, 6, 4)))
def testResampleData(self): # test upsampling by a factor of 2 timestampsInS = numpy.array( [ numpy.datetime64( datetime.datetime(2000, 1, 1, tzinfo=dateutil.tz.tzlocal()) + datetime.timedelta(hours=i) ) for i in xrange(8) ] ) values = numpy.linspace(0, 7, 8) newSamplingIntervalInS = numpy.timedelta64(1800, "s") newSamplingIntervalInMs = newSamplingIntervalInS.astype("timedelta64[ms]") timestampsInMs = timestampsInS.astype("datetime64[ms]") newValues = param_finder._resampleData(timestampsInMs, values, newSamplingIntervalInMs) self.assertTrue(numpy.allclose(newValues, numpy.linspace(0, 7, 15))) # test down-sampling by a factor of 2 newSamplingIntervalInS = numpy.timedelta64(7200, "s") newSamplingIntervalInMs = newSamplingIntervalInS.astype("timedelta64[ms]") newValues = param_finder._resampleData(timestampsInMs, values, newSamplingIntervalInMs) self.assertTrue(numpy.allclose(newValues, numpy.linspace(0, 6, 4)))
def testResampleData(self): # test upsampling by a factor of 2 timestamps = numpy.array([ numpy.datetime64( datetime.datetime(2000, 1, 1, tzinfo=dateutil.tz.tzlocal()) + datetime.timedelta(hours=i)) for i in xrange(8) ]) values = numpy.linspace(0, 7, 8) newSamplingInterval = numpy.timedelta64(1800, 's') (newTimeStamps, newValues) = param_finder._resampleData(timestamps, values, newSamplingInterval) trueNewTimeStamps = numpy.array([ numpy.datetime64( datetime.datetime(2000, 1, 1, tzinfo=dateutil.tz.tzlocal()) + datetime.timedelta(hours=0.5 * i)) for i in xrange(15) ]) self.assertTrue(numpy.allclose(newValues, numpy.linspace(0, 7, 15))) timestampError = (numpy.sum( numpy.abs(newTimeStamps - trueNewTimeStamps))).item().total_seconds() self.assertAlmostEqual(timestampError, 0) # test down-sampling by a factor of 2 newSamplingInterval = numpy.timedelta64(7200, 's') (newTimeStamps, newValues) = param_finder._resampleData(timestamps, values, newSamplingInterval) trueNewTimeStamps = numpy.array([ numpy.datetime64( datetime.datetime(2000, 1, 1, tzinfo=dateutil.tz.tzlocal()) + datetime.timedelta(hours=2 * i)) for i in xrange(4) ]) timestampError = (numpy.sum( numpy.abs(newTimeStamps - trueNewTimeStamps))).item().total_seconds() self.assertTrue(numpy.allclose(newValues, numpy.linspace(0, 6, 4))) self.assertAlmostEqual(timestampError, 0)