	public ArrayList<Observation> parse(String line)
	{
		ArrayList<Observation> observations = new ArrayList<Observation>();
		String[] obs = line.split(",");
		try
		{
			String date = obs[0];
			String time = obs[1];
			String avgX = (obs[5].equals("") ? "0" : obs[5]);
			String avgY = (obs[8].equals("") ? "0" : obs[8]);
			String avgZ = (obs[11].equals("") ? "0" : obs[11]);
			String hum = (obs[12].equals("") ? "0" : obs[12]);
			String temp = (obs[13].equals("") ? "0" : obs[13]);
			String lat = (obs[14].equals("") ? "0" : obs[14]);
			String lon = (obs[15].equals("") ? "0" : obs[15]);
			String alt = (obs[16].equals("") ? "0" : obs[16]);
			String speed = (obs[17].equals("") ? "0" : obs[17]);
			String sat = (obs[18].equals("") ? "0" : obs[18]);
			String prec = (obs[19].equals("") ? "0" : obs[19]);
			String event = (obs[20].equals("") ? "0" : obs[20]);
			time = date.trim() + " " + time.trim();
			if(!time.equals(" ") && (count == 2) && !time.contains("VALUE"))
			{
				observations.add(new AccelerometerObservation(ObservationType.ACCELERATION, "X", time, avgX, event));
				observations.add(new AccelerometerObservation(ObservationType.ACCELERATION, "Y", time, avgY, event));
				observations.add(new AccelerometerObservation(ObservationType.ACCELERATION, "Z", time, avgZ, event));
				observations.add(new Observation(ObservationType.HUMIDITY, time, hum, event));
				observations.add(new Observation(ObservationType.TEMPERATURE, time, temp, event));
				observations.add(new GPSObservation(ObservationType.GPS, time, lat, lon, sat, prec, event));
				observations.add(new AltitudeObservation(ObservationType.ALTITUDE, time, alt, sat, event));
				observations.add(new SpeedObservation(ObservationType.SPEED, time, speed, event));
				count = 0;
			} else
				count++;
		}
		catch(ArrayIndexOutOfBoundsException aex)
		{
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
		}
		return observations;
	}

	public ArrayList<Observation> parse(String line)
	{
		ArrayList<Observation> observations = new ArrayList<Observation>();
		String[] obs = line.split(",");
		try
		{
			String date = obs[0];
			String time = obs[1];
			String avgX = (obs[5].equals("") ? "0" : obs[5]);
			String avgY = (obs[8].equals("") ? "0" : obs[8]);
			String avgZ = (obs[11].equals("") ? "0" : obs[11]);
			String hum = (obs[12].equals("") ? "0" : obs[12]);
			String temp = (obs[13].equals("") ? "0" : obs[13]);
			String lat = (obs[14].equals("") ? "0" : obs[14]);
			String lon = (obs[15].equals("") ? "0" : obs[15]);
			String alt = (obs[16].equals("") ? "0" : obs[16]);
			String speed = (obs[17].equals("") ? "0" : obs[17]);
			String sat = (obs[18].equals("") ? "0" : obs[18]);
			String prec = (obs[19].equals("") ? "0" : obs[19]);
			String event = (obs[20].equals("") ? "0" : obs[20]);
			time = date.trim() + " " + time.trim();
			if(count == 4)
			{
				if(!time.equals(" ") && !time.contains("#VALUE"))
				{
					observations.add(new AccelerometerObservation(ObservationType.ACCELERATION, "X", time, avgX, event));
					observations.add(new AccelerometerObservation(ObservationType.ACCELERATION, "Y", time, avgY, event));
					observations.add(new AccelerometerObservation(ObservationType.ACCELERATION, "Z", time, avgZ, event));
					observations.add(new Observation(ObservationType.HUMIDITY, time, hum, event));
					observations.add(new Observation(ObservationType.TEMPERATURE, time, temp, event));
					observations.add(new GPSObservation(ObservationType.GPS, time, lat, lon, sat, prec, event));
					observations.add(new AltitudeObservation(ObservationType.ALTITUDE, time, alt, sat, event));
					observations.add(new SpeedObservation(ObservationType.SPEED, time, speed, event));
				}
				count = 0;
			}
			else
				count++;
		}
		catch(ArrayIndexOutOfBoundsException aex)
		{
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
		}
		return observations;
	}
