[Home]History of Voidious/WaveReader

Robo Home | Changes | Preferences | AllPages


Revision 3 . . October 24, 2006 15:02 EST by Voidious [updated WaveReader]
Revision 2 . . (edit) October 18, 2006 17:47 EST by Voidious [updated the source here]
  

Difference (from prior major revision) (no other diffs)

Changed: 26c26
"/Users?/pcupka/eclipse_workspace/WaveRecorder?.data/max/";
"/your/data/dir/";

Changed: 40,43c40,43
String[] files = {"cig5000.txt", "dm5000.txt", "sparrow5000.txt",
"floodmini5000.txt", "rmb5000.txt", "aspid5000.txt",
"dt5000.txt", "fhqw5000.txt", "funky5000.txt", "taow5000.txt",
"tron5000.txt"};
String[] files = {"cig900.w2.txt", "dm900.w2.txt", "sparrow900.w2.txt",
"fm900.w2.txt", "rmb900.w2.txt", "aspid900.w2.txt",
"dt900.w2.txt", "fhqw900.w2.txt", "funky900.w2.txt", "taow900.w2.txt",
"tron900.w2.txt", "grb900.w2.txt"};

Changed: 143,146c143,144
wr.findBestLatVelDistanceWallDistanceVChangeTimeSlicesTwoAll?(2, 37);
wr.findBestLatVelDistanceWallDistanceVChangeTimeSlicesTwoAll?(3, 37);
wr.findBestLatVelDistanceWallDistanceVChangeTimeSlicesTwoAll?(4, 37);
wr.findBestLatVelDistanceWallDistanceVChangeTimeSlicesTwoAll?(5, 37);
wr.findBestLatVelDistanceWallDistanceReverseWallDistanceVChangeTimeSlicesTwoAll?(
3, 3, 3, 1, 3, 37);

Changed: 211,213c209,217
w.distance = (float)Double.parseDouble(fields[8]);
w.wallDistance = (float)Double.parseDouble(fields[9]);
w.relativeHeading = (float)Double.parseDouble(fields[10]);
w.timeSinceZeroVelocity? = Integer.parseInt(fields[8]);
w.timeSinceMaxVelocity? = Integer.parseInt(fields[9]);
w.distance = (float)Double.parseDouble(fields[10]);
w.wallDistance = (float)Double.parseDouble(fields[11]);
w.reverseWallDistance = (float)Double.parseDouble(fields[12]);
w.relativeHeading = (float)Double.parseDouble(fields[13]);
w.distanceLastEightTicks? = (float)Double.parseDouble(fields[14]);
w.distanceLastFifteenTicks? = (float)Double.parseDouble(fields[15]);
w.distanceLastTwentyFiveTicks? = (float)Double.parseDouble(fields[16]);

Added: 417a422,721

public void findBestLatVelDistanceWallDistanceReverseWallDistanceVChangeTimeSlicesTwoAll?(
int numLatVelSlices?, int numDistSlices?, int numWallDistSlices?,
int numReverseWallDistSlices?, int numVChangeTimeSlices?, int gfSlices) {

DataRecordTwoGroup?[] drtg = new DataRecordTwoGroup?[waveSets.size() * 3];

Iterator iter;
int gIndex = 0;

for (int y = 0; y < 3; y++) {
iter = waveSets.keySet().iterator();

gIndex = 0;
while (iter.hasNext()) {
String filename = (String)iter.next();

ArrayList waves = waveSets.get(filename);
DataRecordTwo?[] drt = new DataRecordTwo?[waves.size()];

int tempIndex = 0;

for (int x = 0; x < waves.size(); x++) {
Wave w = (Wave)waves.get(x);
if (w.accel == y) {
drt[tempIndex++] = parseWaveLatVel?(w, gfSlices);
}
}

drt = trimDataSet?(drt, tempIndex);

drtg[(y * waveSets.size()) + gIndex] = new DataRecordTwoGroup?(gIndex, drt);
gIndex++;
}
}

int[] baseCounts = new int[drtg.length];
for (int x = 0; x < drtg.length; x++) {
baseCounts[x] = drtg[x].dataSet.length;
}

ThresholdData? latVelData? = findBestAttrSlices?(drtg, numLatVelSlices?,
0.25f, gfSlices, 0, 8, baseCounts);

float[] latVelSlices? = new float[numLatVelSlices? + 1];
for (int x = 0; x < numLatVelSlices?; x++) {
latVelSlices?[x] = latVelData?.slices[x];
}
latVelSlices?[numLatVelSlices?] = Float.POSITIVE_INFINITY;


float[] distSlices = new float[numDistSlices? + 1];
drtg = new DataRecordTwoGroup?[waveSets.size() * 3 * (numLatVelSlices? + 1)];

for (int y = 0; y < 3; y++) {
for (int z = 0; z < latVelSlices?.length; z++) {
iter = waveSets.keySet().iterator();

gIndex = 0;
while (iter.hasNext()) {
String filename = (String)iter.next();

ArrayList waves = waveSets.get(filename);
DataRecordTwo?[] drt = new DataRecordTwo?[waves.size()];

int tempIndex = 0;

for (int x = 0; x < waves.size(); x++) {
Wave w = (Wave)waves.get(x);
if (w.accel == y &&
w.latVel < latVelSlices?[z] &&
(z == 0 || w.latVel >= latVelSlices?[z-1])) {
drt[tempIndex++] = parseWaveDistance?(w, gfSlices);
}
}

drt = trimDataSet?(drt, tempIndex);

drtg[((y * latVelSlices?.length + z) * waveSets.size()) + gIndex] = new DataRecordTwoGroup?(gIndex, drt);
gIndex++;
}
}
}

baseCounts = new int[drtg.length];
for (int x = 0; x < drtg.length; x++) {
baseCounts[x] = drtg[x].dataSet.length;
}

ThresholdData? distData = findBestAttrSlices?(drtg, numDistSlices?,
25, gfSlices, 0, 1000, baseCounts);

for (int x = 0; x < numDistSlices?; x++) {
distSlices[x] = distData.slices[x];
}
distSlices[numDistSlices?] = Float.POSITIVE_INFINITY;


float[] walldistSlices = new float[numWallDistSlices? + 1];
drtg = new DataRecordTwoGroup?[waveSets.size() * 3 * (numLatVelSlices? + 1) * (numDistSlices? + 1)];

for (int y = 0; y < 3; y++) {
for (int z = 0; z < latVelSlices?.length; z++) {
for (int a = 0; a < distSlices.length; a++) {
iter = waveSets.keySet().iterator();

gIndex = 0;
while (iter.hasNext()) {
String filename = (String)iter.next();

ArrayList waves = waveSets.get(filename);
DataRecordTwo?[] drt = new DataRecordTwo?[waves.size()];

int tempIndex = 0;

for (int x = 0; x < waves.size(); x++) {
Wave w = (Wave)waves.get(x);
if (w.accel == y &&
w.latVel < latVelSlices?[z] &&
(z == 0 || w.latVel >= latVelSlices?[z-1]) &&
w.distance < distSlices[a] &&
(a == 0 || w.distance >= distSlices[a-1])) {
drt[tempIndex++] = parseWaveWallDistance?(w, gfSlices);
}
}

drt = trimDataSet?(drt, tempIndex);

drtg[((a + z * distSlices.length + y * latVelSlices?.length * distSlices.length) * waveSets.size()) + gIndex] = new DataRecordTwoGroup?(gIndex, drt);
gIndex++;
}
}
}
}
baseCounts = new int[drtg.length];
for (int x = 0; x < drtg.length; x++) {
baseCounts[x] = drtg[x].dataSet.length;
}

ThresholdData? walldistData = findBestAttrSlices?(drtg, numWallDistSlices?,
0.05f, gfSlices, 0, 1.2f, baseCounts);

for (int x = 0; x < numWallDistSlices?; x++) {
walldistSlices[x] = walldistData.slices[x];
}
walldistSlices[numWallDistSlices?] = Float.POSITIVE_INFINITY;


float[] reverseWallDistSlices? = new float[numReverseWallDistSlices? + 1];
drtg = new DataRecordTwoGroup?[waveSets.size() * 3 * (numLatVelSlices? + 1) *
(numDistSlices? + 1) * (numWallDistSlices? + 1)];

for (int y = 0; y < 3; y++) {
for (int z = 0; z < latVelSlices?.length; z++) {
for (int a = 0; a < distSlices.length; a++) {
for (int b = 0; b < walldistSlices.length; b++) {
iter = waveSets.keySet().iterator();

gIndex = 0;
while (iter.hasNext()) {
String filename = (String)iter.next();

ArrayList waves = waveSets.get(filename);
DataRecordTwo?[] drt = new DataRecordTwo?[waves.size()];

int tempIndex = 0;

for (int x = 0; x < waves.size(); x++) {
Wave w = (Wave)waves.get(x);
if (w.accel == y &&
w.latVel < latVelSlices?[z] &&
(z == 0 || w.latVel >= latVelSlices?[z-1]) &&
w.distance < distSlices[a] &&
(a == 0 || w.distance >= distSlices[a-1]) &&
w.wallDistance < walldistSlices[b] &&
(b == 0 || w.wallDistance >= walldistSlices[b-1])) {
DataRecordTwo? drtTemp =
parseWaveReverseWallDistance?(w, gfSlices);
if (drtTemp != null) {
drt[tempIndex++] = drtTemp;
}
}
}

drt = trimDataSet?(drt, tempIndex);

drtg[((b + a * walldistSlices.length + z * distSlices.length * walldistSlices.length + y * latVelSlices?.length * distSlices.length * walldistSlices.length) * waveSets.size()) + gIndex] = new DataRecordTwoGroup?(gIndex, drt);
gIndex++;
}
}
}
}
}
baseCounts = new int[drtg.length];
for (int x = 0; x < drtg.length; x++) {
baseCounts[x] = drtg[x].dataSet.length;
}

ThresholdData? reverseWallDistData? = findBestAttrSlices?(drtg, numReverseWallDistSlices?,
0.05f, gfSlices, 0, 1.2f, baseCounts);

for (int x = 0; x < numReverseWallDistSlices?; x++) {
reverseWallDistSlices?[x] = reverseWallDistData?.slices[x];
}
reverseWallDistSlices?[numReverseWallDistSlices?] = Float.POSITIVE_INFINITY;


float[] vchangeSlices = new float[numVChangeTimeSlices? + 1];
drtg = new DataRecordTwoGroup?[waveSets.size() * 3 * (numLatVelSlices? + 1) *
(numDistSlices? + 1) * (numWallDistSlices? + 1) * (numReverseWallDistSlices? + 1)];

for (int y = 0; y < 3; y++) {
for (int z = 0; z < latVelSlices?.length; z++) {
for (int a = 0; a < distSlices.length; a++) {
for (int b = 0; b < walldistSlices.length; b++) {
for (int c = 0; c < reverseWallDistSlices?.length; c++) {
iter = waveSets.keySet().iterator();

gIndex = 0;
while (iter.hasNext()) {
String filename = (String)iter.next();

ArrayList waves = waveSets.get(filename);
DataRecordTwo?[] drt = new DataRecordTwo?[waves.size()];

int tempIndex = 0;

for (int x = 0; x < waves.size(); x++) {
Wave w = (Wave)waves.get(x);
if (w.accel == y &&
w.latVel < latVelSlices?[z] &&
(z == 0 || w.latVel >= latVelSlices?[z-1]) &&
w.distance < distSlices[a] &&
(a == 0 || w.distance >= distSlices[a-1]) &&
w.wallDistance < walldistSlices[b] &&
(b == 0 || w.wallDistance >= walldistSlices[b-1]) &&
w.reverseWallDistance < reverseWallDistSlices?[c] &&
(c == 0 || w.reverseWallDistance >= reverseWallDistSlices?[c-1])) {
DataRecordTwo? drtTemp = parseWaveVChangeTime?(w, gfSlices);
if (drtTemp != null) {
drt[tempIndex++] = drtTemp;
}
}
}

drt = trimDataSet?(drt, tempIndex);

drtg[((c + b * reverseWallDistSlices?.length + a * reverseWallDistSlices?.length * walldistSlices.length + z * reverseWallDistSlices?.length * distSlices.length * walldistSlices.length + y * latVelSlices?.length * distSlices.length * walldistSlices.length * reverseWallDistSlices?.length) * waveSets.size()) + gIndex] = new DataRecordTwoGroup?(gIndex, drt);
gIndex++;
}
}
}
}
}
}
baseCounts = new int[drtg.length];
for (int x = 0; x < drtg.length; x++) {
baseCounts[x] = drtg[x].dataSet.length;
}

ThresholdData? vchangeData = findBestAttrSlices?(drtg, numVChangeTimeSlices?,
0.05f, gfSlices, 0, 1.2f, baseCounts);

for (int x = 0; x < numVChangeTimeSlices?; x++) {
vchangeSlices[x] = vchangeData.slices[x];
}
vchangeSlices[numVChangeTimeSlices?] = Float.POSITIVE_INFINITY;

System.out.print("LatVel? Slices: " + round(latVelSlices?[0], 2));
for (int z = 1; z < latVelSlices?.length - 1; z++) {
System.out.print(" / " + round(latVelSlices?[z], 2));
}
System.out.println();

System.out.print("Distance Slices: " + round(distSlices[0], 0));
for (int z = 1; z < distSlices.length - 1; z++) {
System.out.print(" / " + round(distSlices[z], 0));
}
System.out.println();

System.out.print("WallDistance Slices: " + round(walldistSlices[0], 2));
for (int z = 1; z < walldistSlices.length - 1; z++) {
System.out.print(" / " + round(walldistSlices[z], 2));
}
System.out.println();

System.out.print("ReverseWallDistance? Slices: " + round(reverseWallDistSlices?[0], 2));
for (int z = 1; z < reverseWallDistSlices?.length - 1; z++) {
System.out.print(" / " + round(reverseWallDistSlices?[z], 2));
}
System.out.println();

System.out.print("VChangeTime? Slices: " + round(vchangeSlices[0], 2));
for (int z = 1; z < vchangeSlices.length - 1; z++) {
System.out.print(" / " + round(vchangeSlices[z], 2));
}
System.out.println();

System.out.println("Final entropy: " + vchangeData.entropy);
}

Added: 1112a1417,1427
public DataRecordTwo? parseWaveReverseWallDistance?(Wave w, int gfSlices) {
DataRecordTwo? drt = new DataRecordTwo?();

drt.attr1 = w.reverseWallDistance;
drt.output = (int) limit(0,
Math.round(w.guessFactor * ((gfSlices - 1) / 2) + (gfSlices - 1)),
gfSlices - 1);

return drt;
}


Changed: 1281,1282c1596,1600
int timeSinceVChange?;
float velocity, distance, latVel, wallDistance, relativeHeading;
int timeSinceVChange?, timeSinceZeroVelocity?, timeSinceMaxVelocity?;
float velocity, distance, latVel, reverseWallDistance,
wallDistance, relativeHeading;
float distanceLastEightTicks?, distanceLastFifteenTicks?,
distanceLastTwentyFiveTicks?;

Robo Home | Changes | Preferences | AllPages
Search: