private static void FuzzVelocityValue(ref DetectedAttributeValue targetDV, ref Random random) { double stdDev = targetDV.stdDev; double VX = ((VelocityValue)((DetectedAttributeValue)targetDV).value).VX; double VY = ((VelocityValue)((DetectedAttributeValue)targetDV).value).VY; double VZ = ((VelocityValue)((DetectedAttributeValue)targetDV).value).VZ; double r = random.NextDouble();// in [0,1] double vx = ZInverse.FindZ(r); r = random.NextDouble(); double vy = ZInverse.FindZ(r); r = random.NextDouble(); double vz = ZInverse.FindZ(r); //add noise to VX ((VelocityValue)((DetectedAttributeValue)targetDV).value).VX = (double)(vx * stdDev + VX); //add noise toe VY ((VelocityValue)((DetectedAttributeValue)targetDV).value).VY = (double)(vy * stdDev + VY); //add noise to VZ ((VelocityValue)((DetectedAttributeValue)targetDV).value).VZ = (double)(vz * stdDev + VZ); //exit //No: let smaller confidence be what chooses a value in ViewProtargetDV.confidence= 1/stdDev; }
private static void FuzzLocationValue(ref DetectedAttributeValue targetDV, ref Random random) { double stdDev = targetDV.stdDev; double X = ((LocationValue)((DetectedAttributeValue)targetDV).value).X; double Y = ((LocationValue)((DetectedAttributeValue)targetDV).value).Y; double Z = ((LocationValue)((DetectedAttributeValue)targetDV).value).Z; double r = random.NextDouble();// in [0,1] double x = ZInverse.FindZ(r); r = random.NextDouble();// in [0,1] double y = ZInverse.FindZ(r); r = random.NextDouble();// in [0,1] double z = ZInverse.FindZ(r); //obfuscate X ((LocationValue)((DetectedAttributeValue)targetDV).value).X = (double)(x * stdDev + X); //obfuscate Y ((LocationValue)((DetectedAttributeValue)targetDV).value).Y = (double)(y * stdDev + Y); //obfuscate Z ((LocationValue)((DetectedAttributeValue)targetDV).value).Z = (double)(z * stdDev + Z); //exit // No: let smaller confidence be what chooses a value in ViewPro targetDV.stdDev = GetConfidence(Y) * 100; }
private static void FuzzDoubleValue(ref DetectedAttributeValue targetDV, ref Random random) { // not called if stdDev=0 double stdDev = targetDV.stdDev; double dblVal = ((DoubleValue)((DetectedAttributeValue)targetDV).value).value; double r = random.NextDouble();// in [0,1] double z = ZInverse.FindZ(r); //add noise to double ((DoubleValue)((DetectedAttributeValue)targetDV).value).value = (double)(z * stdDev + dblVal); //exit // No: let smaller confidence be what chooses a value in ViewPro targetDV.confidence = 1 / stdDev; }