Skip to content

Commit

Permalink
fixed missing depdencies
Browse files Browse the repository at this point in the history
added device profile export as json
  • Loading branch information
noah80 committed Jun 3, 2020
1 parent 1b4672a commit f367ec7
Show file tree
Hide file tree
Showing 50 changed files with 1,378 additions and 712 deletions.
12 changes: 8 additions & 4 deletions Automation/CalcOption.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace Automation {
public enum CalcOption {
IndividualSumProfiles = 0,
HouseSumProfilesFromDetailedDats = 0,
OverallDats = 1,
OverallSum = 2,
DetailedDatFiles = 3,
Expand All @@ -12,7 +12,7 @@ public enum CalcOption {
DaylightTimesList = 9,
ActivationFrequencies = 10,
//ActionsLogfile = 11,
DeviceProfiles = 12,
DeviceProfilesIndividualHouseholds = 12,
TotalsPerLoadtype = 13,
HouseholdContents = 14,
TemperatureFile = 15,
Expand Down Expand Up @@ -43,12 +43,16 @@ public enum CalcOption {
ActionsEachTimestep = 40,
CalculationFlameChart = 41,
SumProfileExternalIndividualHouseholdsAsJson = 42,
JsonSumFiles = 43,
JsonHouseSumFiles = 43,
BodilyActivityStatistics = 44,
BasicOverview = 45,
DeviceActivations,
LocationsEntries,
ActionEntries,
AffordanceTaggingSets
AffordanceTaggingSets,
DeviceProfilesHouse,
HouseholdSumProfilesFromDetailedDats,
JsonHouseholdSumFiles,
JsonDeviceProfilesIndividualHouseholds
}
}
29 changes: 0 additions & 29 deletions Automation/JsonResultFile.cs

This file was deleted.

71 changes: 71 additions & 0 deletions Automation/JsonSumProfile.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
using System;
using System.Collections.Generic;
using Automation.ResultFiles;

namespace Automation
{

public class SingleDeviceProfile {
public SingleDeviceProfile(string? name) => Name = name;
[Obsolete("json only")]
public SingleDeviceProfile()
{

}

public string? Name { get; set; }
public List<double> Values { get; set; } = new List<double>();

}

public class JsonDeviceProfiles
{
public JsonDeviceProfiles(TimeSpan timeResolution, DateTime startTime, string loadTypeName, string unit, LoadTypeInformation loadTypeInformation)
{
TimeResolution = timeResolution;
StartTime = startTime;
LoadTypeName = loadTypeName;
Unit = unit;
LoadTypeInformation = loadTypeInformation;
}
[Obsolete("only for json")]
public JsonDeviceProfiles()
{
}

public List<SingleDeviceProfile> DeviceProfiles { get; set; } = new List<SingleDeviceProfile>();
public TimeSpan TimeResolution { get; set; }
public DateTime StartTime { get; set; }

public string? LoadTypeName { get; set; }

public LoadTypeInformation LoadTypeInformation { get; set; }
public string? Unit { get; set; }
}
public class JsonSumProfile
{
public JsonSumProfile(string name, TimeSpan timeResolution, DateTime startTime, string loadTypeName, string unit, LoadTypeInformation loadTypeInformation)
{
Name = name;
TimeResolution = timeResolution;
StartTime = startTime;
LoadTypeName = loadTypeName;
Unit = unit;
LoadTypeInformation = loadTypeInformation;
}
[Obsolete("only for json")]
public JsonSumProfile()
{
}

public string? Name { get; set; }
public TimeSpan TimeResolution { get; set; }
public List<double> Values { get; set; } = new List<double>();
public DateTime StartTime { get; set; }

public string? LoadTypeName { get; set; }

public LoadTypeInformation LoadTypeInformation { get; set; }
public string? Unit { get; set; }
}
}
7 changes: 4 additions & 3 deletions Automation/ResultFiles/ResultFileID.cs
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,9 @@ public enum ResultFileID {
TransportationStatistics = 80,
Sqlite = 81,
ExternalSumsForHouseholdsJson = 82,
JsonSums = 83,

SqliteResultFiles
JsonHouseSums = 83,
JsonHouseholdSums = 84,
SqliteResultFiles = 85,
JsonDeviceProfiles = 86
}
}
7 changes: 4 additions & 3 deletions Automation/UnitTestCategories.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
public static class UnitTestCategories {
public const string BasicTest = "BasicTest";
public const string ManualOnly = "ManualOnly";
public const string LongTest8 = "LongTest8";
public const string LongTest7 = "LongTest7";
public const string LongTest6 = "LongTest6";
public const string HouseholdsWithTransportation = "HouseholdsWithTransportation";
public const string HouseholdTest = "HouseholdTest";
public const string HousetypeTests = "HousetypeTests";
public const string CalcOptionTests = "CalcOptionTests";
public const string LongTest5 = "LongTest5";
public const string LongTest4 = "LongTest4";
public const string LongTest3 = "LongTest3";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ protected override void PerformActualStep(IStepParameters parameters)
}

[NotNull]
public override List<CalcOption> NeededOptions => new List<CalcOption>();
public override List<CalcOption> NeededOptions => new List<CalcOption>() {CalcOption.AffordanceTaggingSets, CalcOption.ActionEntries};

private void BuildActivationsPerHours([NotNull] IFileFactoryAndTracker fft,
[NotNull] HouseholdKey householdKey,
Expand Down
125 changes: 0 additions & 125 deletions CalcPostProcessor/LoadTypeHouseholdSteps/DeviceProfileFileProcessor.cs

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Automation;
using Automation.ResultFiles;
using CalcPostProcessor.Steps;
using Common;
using Common.SQLResultLogging;
using JetBrains.Annotations;
using Newtonsoft.Json;

namespace CalcPostProcessor.LoadTypeHouseholdSteps {
public class IndividualHouseholdDeviceProfileJsonProcessor : HouseholdLoadTypeStepBase {
[NotNull] private readonly IFileFactoryAndTracker _fft;

public IndividualHouseholdDeviceProfileJsonProcessor([NotNull] CalcDataRepository repository,
[NotNull] IFileFactoryAndTracker fft,
[NotNull] ICalculationProfiler calculationProfiler) : base(repository,
AutomationUtili.GetOptionList(CalcOption.JsonDeviceProfilesIndividualHouseholds),
calculationProfiler,
"Individual Household Json Device Profiles") =>
_fft = fft;

protected override void PerformActualStep([NotNull] IStepParameters parameters)
{
HouseholdLoadtypeStepParameters p = (HouseholdLoadtypeStepParameters)parameters;
if (p.Key.HouseholdKey == Constants.GeneralHouseholdKey) {
return;
}
var dstLoadType = p.LoadType;
var efc = Repository.ReadEnergyFileColumns(p.Key.HouseholdKey);
if (!efc.ColumnCountByLoadType.ContainsKey(dstLoadType))
{
return;
}
//var householdKeys = efc.ColumnEntriesByColumn[dstLoadType].Values.Select(entry => entry.HouseholdKey).Distinct().ToList();
if (!efc.ColumnCountByLoadType.ContainsKey(p.LoadType))
{
return;
}
var calcParameters = Repository.CalcParameters;
var key = p.Key.HouseholdKey;
var columns = efc.ColumnEntriesByColumn[p.LoadType].Values.Where(entry => entry.HouseholdKey == key).Select(entry => entry.Column)
.ToList();
var hhname = "." + key ;
var jrf = new JsonDeviceProfiles( calcParameters.InternalStepsize,
calcParameters.OfficialStartTime, dstLoadType.Name, dstLoadType.UnitOfSum, dstLoadType.ConvertToLoadTypeInformation());
foreach (int i in columns) {
var ce = efc.ColumnEntriesByColumn[dstLoadType][i];
SingleDeviceProfile sdp = new SingleDeviceProfile(ce.Name);
foreach (var efr in p.EnergyFileRows)
{
if (!efr.Timestep.DisplayThisStep)
{
continue;
}
sdp.Values.Add(efr.GetValueForSingleCols(i));

}
}

var sumfile = _fft.MakeFile<StreamWriter>("DeviceProfiles." + dstLoadType.FileName + hhname + ".json",
"Summed up energy profile for all devices for " + dstLoadType.Name + " as JSON file", true,
ResultFileID.JsonDeviceProfiles, p.Key.HouseholdKey, TargetDirectory.Results,
calcParameters.InternalStepsize, CalcOption.JsonDeviceProfilesIndividualHouseholds,
dstLoadType.ConvertToLoadTypeInformation());
sumfile.Write(JsonConvert.SerializeObject(jrf, Formatting.Indented));
sumfile.Flush();
}

[NotNull]
public override List<CalcOption> NeededOptions => new List<CalcOption>() {CalcOption.DetailedDatFiles};

}
}
Loading

0 comments on commit f367ec7

Please sign in to comment.