您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
76 行
2.3 KiB
76 行
2.3 KiB
using System;
|
|
using System.IO;
|
|
using UnityEngine.Perception.Randomization.Parameters.Abstractions;
|
|
using UnityEngine.Perception.Randomization.Parameters.MonoBehaviours;
|
|
|
|
namespace UnityEngine.Perception.Randomization.Scenarios.Abstractions
|
|
{
|
|
public class CsvWriter
|
|
{
|
|
string m_Delimiter;
|
|
StreamWriter m_File;
|
|
ParameterConfiguration m_Config;
|
|
ParameterBase[] m_SelectedParameters;
|
|
|
|
public CsvWriter(
|
|
string filePath,
|
|
ParameterConfiguration config,
|
|
bool overwriteData,
|
|
ParameterBase[] selectedParameters = null,
|
|
string[] additionalHeaders = null,
|
|
string delimiter = "\t")
|
|
{
|
|
m_File = overwriteData
|
|
? new StreamWriter(filePath, false)
|
|
: new StreamWriter(filePath, true);
|
|
m_File.AutoFlush = true;
|
|
m_Config = config;
|
|
m_Delimiter = delimiter;
|
|
m_SelectedParameters = selectedParameters ?? m_Config.parameters.ToArray();
|
|
WriteHeaders(additionalHeaders);
|
|
}
|
|
|
|
~CsvWriter()
|
|
{
|
|
Close();
|
|
}
|
|
|
|
public void Close()
|
|
{
|
|
m_File.Close();
|
|
}
|
|
|
|
void WriteHeaders(string[] additionalHeaders)
|
|
{
|
|
var output = $"Global Iteration{m_Delimiter}";
|
|
foreach (var parameter in m_SelectedParameters)
|
|
{
|
|
output += $"{parameter.parameterName}{m_Delimiter}";
|
|
}
|
|
if (additionalHeaders != null)
|
|
{
|
|
foreach (var header in additionalHeaders)
|
|
output += $"{header}{m_Delimiter}";
|
|
}
|
|
output += "\n";
|
|
m_File.Write(output);
|
|
}
|
|
|
|
public void WriteParameterIterationToFile(string[] additionalData = null)
|
|
{
|
|
var output = $"{m_Config.GlobalIterationIndex}{m_Delimiter}";
|
|
foreach (var parameter in m_SelectedParameters)
|
|
{
|
|
output += $"{parameter.sampler.GetSampleString()}{m_Delimiter}";
|
|
}
|
|
|
|
if (additionalData != null)
|
|
{
|
|
foreach (var item in additionalData)
|
|
output += $"{item}{m_Delimiter}";
|
|
}
|
|
output += "\n";
|
|
m_File.Write(output);
|
|
}
|
|
}
|
|
}
|