Example #1
0
        public static List <UavLog> FilterUavlosAndSort(List <UavLog> uavLogs)
        {
            uavLogs.Sort((x, y) => DateTime.Compare(x.DateTime, y.DateTime));


            UavLog uavLogFirst = uavLogs.FirstOrDefault();

            var years    = uavLogs.Select(l => l.DateTime.Year);
            var distinct = years.Distinct();

            var dictionary = new Dictionary <int, int>();

            foreach (var year in distinct)
            {
                var count = uavLogs.Count(l => l.DateTime.Year == year);
                dictionary.Add(year, count);
            }
            var max = dictionary.Aggregate((l, r) => l.Value > r.Value ? l : r).Key;

            var maxyearLogs = uavLogs.Where(l => l.DateTime.Year == max).ToList();

            maxyearLogs.Sort((x, y) => DateTime.Compare(x.DateTime, y.DateTime));

            return(maxyearLogs);
        }
Example #2
0
        public static Dictionary <string, int> GetDjiHeaderDictionary(string[] headres)
        {
            var djiLogs          = UavLog.GetDJIMappingProperty();
            var headerDictionary = new Dictionary <string, int>();

            for (var i = 0; i < headres.Count(); i++)
            {
                foreach (var djilog in djiLogs)
                {
                    if (headres[i] == djilog.Value)
                    {
                        headerDictionary.Add(djilog.Key, i);
                    }
                }
            }
            return(headerDictionary);
        }
Example #3
0
        public static List <UavLog> ConvertSrtToUavLog(List <DjiSrtVideoLogModel> djiSrtVideoLogModels)
        {
            List <UavLog> uavLogs = new List <UavLog>();

            foreach (var djiSrt in djiSrtVideoLogModels)
            {
                var uavLog = new UavLog()
                {
                    UavLatititud    = djiSrt.UavLatitud,
                    UavLongitud     = djiSrt.UavLongitud,
                    VideoRecordTime = Helpers.ConvertMilisecondsToHMSmm(djiSrt.StartLog.TotalMilliseconds),
                    FlyTime         = djiSrt.DateTimeLog.Minute.ToString(),
                    DateTime        = djiSrt.DateTimeLog
                };
                uavLogs.Add(uavLog);
            }

            return(uavLogs);
        }
Example #4
0
        public static UavLog GetUavLogFromVideoTimeStamp(TimeSpan imageTimeStamp, List <UavLog> uavLogs)
        {
            UavLog uavLog = null;

            if (imageTimeStamp != TimeSpan.Zero)
            {
                try
                {
                    var sortedUavLogs = FilterUavlosAndSort(uavLogs);
                    var videoLenght   = GetVideoLenghtInMilliseconds(sortedUavLogs);
                    var videoLengh    = ConvertMilisecondsToHMSmm(videoLenght);
                    var milli         = imageTimeStamp.TotalMilliseconds;
                    var videoLengh2   = ConvertMilisecondsToHMSmm(milli);

                    if (imageTimeStamp.TotalMilliseconds < videoLenght)
                    {
                        var firstVideoLog = GetfirstLog(uavLogs);

                        var photoTimeInVideo = firstVideoLog.DateTime + imageTimeStamp;

                        //https://stackoverflow.com/a/7016646
                        var nearestDiff = uavLogs.Min(log => Math.Abs((log.DateTime - photoTimeInVideo).Ticks));
                        var nearest     = uavLogs.First(log => Math.Abs((log.DateTime - photoTimeInVideo).Ticks) == nearestDiff);

                        //https://stackoverflow.com/a/4075380
                        var uavLogIndex = uavLogs.Select((value, index) => new { value, index })
                                          .First(log => Math.Abs((log.value.DateTime - photoTimeInVideo).Ticks) == nearestDiff);

                        uavLog = uavLogIndex.value;
                        var LatLong = $"{nearest.UavLatititud},{nearest.UavLongitud}"; //"59.409424,9.132055"
                        var dif1    = ConvertMilisecondsToHMSmm(TimeSpan.FromTicks(nearestDiff).TotalMilliseconds);
                    }
                }
                catch
                {
                    //return null;
                }
            }
            return(uavLog);
        }
Example #5
0
        public static UavLog GetUavLog(string[] fields, Dictionary <string, int> headers, int rowNumber)
        {
            var uavLog = new UavLog();
            var djiLog = UavLog.GetDJIMappingProperty();


            //uavLog.RowNumber = rowNumber;
            uavLog.FlyTime         = fields[headers["FlyTime"]];
            uavLog.UavLatititud    = fields[headers["UavLatititud"]];
            uavLog.UavLongitud     = fields[headers["UavLongitud"]];
            uavLog.VideoRecordTime = fields[headers["VideoRecordTime"]];
            var pointDateTime = fields[headers["DateTime"]];

            DateTime    dateTime;
            var         formatStrings = new string[] { "yyyy/MM/dd HH:mm:ss.fff", "yyyy-MM-dd hh:mm:ss", "yyyy-MM-dd", "mm:ss.f", "MM-dd-yyyy hh:mm:ss.fff tt", "dd-MM-yyyy hh:mm:ss.fff tt", "dd/MM/yyyy hh:mm:ss.fff" };
            CultureInfo enUS          = new CultureInfo("en-US");

            if (DateTime.TryParseExact(pointDateTime, formatStrings, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
            {
                uavLog.DateTime = dateTime;
            }

            return(uavLog);
        }