protected override void RunActualProcess() { string fn = CombineForRaw("stadtprofil_15min_auflösung.csv"); const string profilename = "01-bkwlast"; var bkwRaw = ZZ_ProfileImportHelper.ReadCSV(fn, profilename); JsonSerializableProfile jsp = new JsonSerializableProfile(bkwRaw); var bkp = new BkwProfile { Profile = jsp, Name = "BKW übergabe" }; var db = Services.SqlConnectionPreparer.GetDatabaseConnection(Stage.Raw, Constants.PresentSlice); db.RecreateTable <BkwProfile>(); db.BeginTransaction(); db.Save(bkp); db.CompleteTransaction(); }
public void Run() { var logger = new Logging.Logger(null); var pm = new PlotMaker(new MapDrawer(logger), logger, null); const string targetDir = @"c:\work\simzukunft\Stadtprofile"; //read profiles const string filename = @"U:\SimZukunft\StadtProfil\BKWLast_1h.csv"; const string profilename = "01-bkwlast"; var bkwRaw = ZZ_ProfileImportHelper.ReadCSV(filename, profilename); var bkwScaled = bkwRaw.ScaleToTargetSum(103_000_000, "BKW"); VisualizeOneProfile(targetDir, bkwScaled, pm, false); const string filename2 = @"U:\SimZukunft\StadtProfil\PVEinspeisung_1h.csv"; const string profilename2 = "01-pv"; var evProfile = Profile.MakeConstantProfile(15_000_000, "EV", Profile.ProfileResolution.Hourly); var pv = ZZ_ProfileImportHelper.ReadCSV(filename2, profilename2); VisualizeOneProfile(targetDir, pv, pm, false); //scaling const string filename3 = @"U:\SimZukunft\StadtProfil\temperaturen.csv"; const string profilename3 = "01-temperaturen"; var temperaturen = ZZ_ProfileImportHelper.ReadCSV(filename3, profilename3); const string filename4 = @"U:\SimZukunft\StadtProfil\pv_einspeisung_pvgis_2016_35_süd.csv"; const string profilename4 = "pvgis_süd_35"; var pvgis35 = ZZ_ProfileImportHelper.ReadCSV(filename4, profilename4); const string filename5 = @"U:\SimZukunft\StadtProfil\pv_einspeisung_pvgis_2016_90_süd.csv"; const string profilename5 = "pvgis_süd_90"; var pvgis90 = ZZ_ProfileImportHelper.ReadCSV(filename5, profilename5); VisualizeOneProfile(targetDir, temperaturen, pm, false); var degreeDayPowerProfile = temperaturen.MakeDegreeDayPowerProfile("02-HeatingDegreedays", 15, 22_000_000); var coolingdegreeDayPowerProfile = temperaturen.MakeCoolingDegreeHours("02-CoolingDegreeHours", 20, 15_000_000); VisualizeOneProfile(targetDir, coolingdegreeDayPowerProfile, pm, false); var summedLoadProfile = bkwScaled.Add(evProfile, "with ev").Add(degreeDayPowerProfile, "with heating").Add(coolingdegreeDayPowerProfile, "with cooling"); var bkwsum = summedLoadProfile.EnergySum(); var scaledPv1 = pv.ScaleToTargetSum(bkwsum, "02-PV Scaled"); var scaledPv35 = pvgis35.ScaleToTargetSum(bkwsum, "pvgis_süd_35_scaled"); VisualizeOneProfile(targetDir, scaledPv35, pm, false); var scaledPv90 = pvgis90.ScaleToTargetSum(bkwsum, "pvgis_süd_90_scaled"); VisualizeOneProfile(targetDir, scaledPv90, pm, false); VisualizeOneProfile(targetDir, degreeDayPowerProfile, pm, false); const string targetdir1 = @"c:\work\simzukunft\Stadtprofile\measured"; AnalyzePVProfile(bkwScaled, scaledPv1, degreeDayPowerProfile, evProfile, coolingdegreeDayPowerProfile, targetdir1, pm, summedLoadProfile); const string targetdir2 = @"c:\work\simzukunft\Stadtprofile\35süd"; AnalyzePVProfile(bkwScaled, scaledPv35, degreeDayPowerProfile, evProfile, coolingdegreeDayPowerProfile, targetdir2, pm, summedLoadProfile); const string targetdir3 = @"c:\work\simzukunft\Stadtprofile\90süd"; AnalyzePVProfile(bkwScaled, scaledPv90, degreeDayPowerProfile, evProfile, coolingdegreeDayPowerProfile, targetdir3, pm, summedLoadProfile); //var withStorage50KWh = residualAfterPv.IntegrateStorage(50 * 4000, "06-50kwhStorage", out var storageValues50Kwh); //VisualizeOneProfile(withStorage50KWh, pm, true); //VisualizeOneProfile(storageValues50Kwh, pm, false); //var onlypositiveBattery50Kwh = withStorage50KWh.GetOnlyPositive("06-50kwhBatterly only positive"); //VisualizeOneProfile(onlypositiveBattery50Kwh, pm, false); //level target for 10 kWh //var targetLoad = FindMinimumTargetLoad(summedLoadProfile, residualAfterPv,10); //var leveledProfile =residualAfterPv.IntegrateStorageWithAdjustedCurrentValue(20 * 4000,"07-20kwhStoragePredictive-target-" + targetLoad,out var _, targetLoad); //VisualizeOneProfile(leveledProfile, pm, true); //VisualizeOneProfile(leveledProfile.GetOnlyPositive("07-20kwh_predicitive_onlypositive"), pm, true); //look at minimum power draw over different storage sizes //Profile minimumTargetLoads = new Profile("08-MinimumTargetLoads"); //double maxLoad = summedLoadProfile.Values.Max(); //for (int i = 0; i < 3000; i+=10) { //var targetLoad1 = FindMinimumTargetLoad(summedLoadProfile, residualAfterPv,i); //double relativeLoad = targetLoad1 / maxLoad; //minimumTargetLoads.Values.Add(relativeLoad); //} //VisualizeOneProfile(minimumTargetLoads, pm, true); pm.Finish(); }