public static void ExtractProfilesForNN(Przejazd06 przejazd06)
        {
            int upcomingProfilesCount = 10;

            float[,,] upcomingProfiles1      = new float[przejazd06.KP.VehiclesCount, przejazd06.KP.MaximumTime, upcomingProfilesCount];
            float[,,] upcomingDistances1     = new float[przejazd06.KP.VehiclesCount, przejazd06.KP.MaximumTime, upcomingProfilesCount];
            float[,,] upcomingProfiles2      = new float[przejazd06.KP.VehiclesCount, przejazd06.KP.MaximumTime, upcomingProfilesCount];
            float[,,] upcomingDistances2     = new float[przejazd06.KP.VehiclesCount, przejazd06.KP.MaximumTime, upcomingProfilesCount];
            float[,,] upcomingLimits         = new float[przejazd06.KP.VehiclesCount, przejazd06.KP.MaximumTime, 1];
            float[,,] upcomingDistanceLimits = new float[przejazd06.KP.VehiclesCount, przejazd06.KP.MaximumTime, 1];
            float[,] upcomingStop            = new float[przejazd06.KP.VehiclesCount, przejazd06.KP.MaximumTime];

            for (int i = 0; i < przejazd06.KP.MaximumTime; i++)
            {
                Parallel.For(0, przejazd06.KP.VehiclesCount, v =>
                {
                    float position = przejazd06.PT[v][i, 5];
                    CheckProfileForNN(przejazd06.KP.CO.Profile1, v, upcomingProfilesCount, ref upcomingProfiles1, ref upcomingDistances1, i, position);
                    CheckProfileForNN(przejazd06.KP.CO.Profile2, v, upcomingProfilesCount, ref upcomingProfiles2, ref upcomingDistances2, i, position);
                    CheckProfileForNN(przejazd06.KP.CO.Limits, v, 1, ref upcomingLimits, ref upcomingDistanceLimits, i, position);
                    //CheckUpcomingStopForNN(v, i, przejazd06)
                });
            }
        }
 private static void CheckUpcomingStopForNN(int v, int i, Przejazd06 przejazd06)
 {
 }