Files
annotations/Azaion.Common/DTO/GpsCsvResult.cs
T
2025-03-17 09:08:43 +02:00

50 lines
1.5 KiB
C#

namespace Azaion.Common.DTO;
using System.Collections.Generic;
using System.IO;
public class GpsCsvResult
{
public string Image { get; set; }
public double Latitude { get; set; }
public double Longitude { get; set; }
public int Keypoints { get; set; }
public int Rotation { get; set; }
public string MatchType { get; set; }
public static List<GpsCsvResult> ReadFromCsv(string csvFilePath)
{
var imageDatas = new List<GpsCsvResult>();
using var reader = new StreamReader(csvFilePath);
//read header
reader.ReadLine();
if (reader.EndOfStream)
return new List<GpsCsvResult>();
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
if (string.IsNullOrWhiteSpace(line))
continue;
var values = line.Split(',');
if (values.Length == 6)
{
imageDatas.Add(new GpsCsvResult
{
Image = GetFilename(values[0]),
Latitude = double.Parse(values[1]),
Longitude = double.Parse(values[2]),
Keypoints = int.Parse(values[3]),
Rotation = int.Parse(values[4]),
MatchType = values[5]
});
}
}
return imageDatas;
}
private static string GetFilename(string imagePath) =>
Path.GetFileNameWithoutExtension(imagePath)
.Replace("-small", "");
}