All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
oms3.dsl.esp.Esp Maven / Gradle / Ivy
//package oms3.dsl.esp;
//
//import oms3.dsl.*;
//import java.io.File;
//import java.io.PrintWriter;
//import java.util.Calendar;
//import java.util.Date;
//import java.util.GregorianCalendar;
//import java.util.Map;
//import java.util.logging.Level;
//import java.util.logging.Logger;
//import ngmf.util.OutputStragegy;
//import oms3.ComponentAccess;
//import oms3.Compound;
//import oms3.Conversions;
//import oms3.annotations.Execute;
//import oms3.annotations.Finalize;
//import oms3.annotations.Initialize;
//import oms3.io.CSTable;
//import oms3.io.DataIO;
//import oms3.util.Times;
//
//public class Esp extends AbstractSimulation {
//
// // esp stuff
// int first_year;
// int last_year;
// //
// int fc;
// Calendar fc_end;
//
// @Override
// public Buildable create(Object name, Object value) {
// if (name.equals("forecast_end")) {
// Date d = Conversions.convert(value, Date.class);
// fc_end = new GregorianCalendar();
// fc_end.setTime(d);
// } else if (name.equals("forecast_days")) {
// fc = (Integer) value;
// if (fc < 1) {
// throw new IllegalArgumentException("forecast_days < 1");
// }
// } else if (name.equals("first_year")) {
// first_year = (Integer) value;
// } else if (name.equals("last_year")) {
// last_year = (Integer) value;
// } else {
// return super.create(name, value);
// }
// return LEAF;
// }
//
// @Override
// public Object run() throws Exception {
// Compound.reload();
// Logger.getLogger("oms3.model").setLevel(Level.WARNING);
//
// if (getModel() == null) {
// throw new IllegalArgumentException("missing model definition.");
// }
// Calendar now = new GregorianCalendar();
// int thisYear = now.get(Calendar.YEAR);
//
// if (fc == 0 && fc_end == null) {
// throw new IllegalArgumentException("set either 'forecast_days' or 'forecast_end'");
// }
// if (fc > 0 && fc_end != null) {
// throw new IllegalArgumentException("set 'forecast_days' or 'forecast_end', not both");
// }
//
// if (fc_end == null && (fc > 366 || fc < 1)) {
// throw new IllegalArgumentException("forecast_days: 1...366");
// }
//
// if (first_year < 1900 || last_year < 1900 || first_year >= last_year || first_year > thisYear || last_year > thisYear) {
// throw new IllegalArgumentException("invalid/missing first_year or/and last_year!");
// }
//
// OutputStragegy st = getOutput().getOutputStrategy(getName());
// File lastFolder = st.nextOutputFolder();
// if (log.isLoggable(Level.CONFIG)) {
// log.config("Simulation output folder: " + lastFolder);
// }
// lastFolder.mkdirs();
// PrintWriter res = new PrintWriter(new File(lastFolder, "result.csv"));
// res.println("@S, Result");
//
// Calendar start = null;
// Calendar end = null;
//
// System.out.print(" Running ESP Traces ");
// for (int year = first_year; year <= last_year; year++) {
// System.out.print(" " + year);
//
// Object comp = getModel().getComponent();
// log.config("Init ...");
// ComponentAccess.callAnnotated(comp, Initialize.class, true);
//
// // setting the input data;
// Map parameter = getModel().getParameter();
// boolean success = ComponentAccess.setInputData(parameter, comp, log);
// if (!success) {
// System.out.println("There are Parameter problems. Simulation exits.");
// return null;
// }
//
// boolean adjusted = ComponentAccess.adjustOutputPath(lastFolder, comp, log);
// if (adjusted) {
// lastFolder.mkdirs();
// }
//
// start = (Calendar) comp.getClass().getField("startTime").get(comp);
// end = (Calendar) comp.getClass().getField("endTime").get(comp);
// File input_file = (File) comp.getClass().getField("inputFile").get(comp);
// File out_file = (File) comp.getClass().getField("outFile").get(comp);
// if (start.after(end)) {
// throw new IllegalArgumentException("illegal startTime/endTime.");
// }
//
// if (fc == 0) {
// fc = (int) Times.diffDayPeriods(end, fc_end);
// } else {
// fc_end = new GregorianCalendar();
// fc_end.setTime(end.getTime());
// fc_end.add(Calendar.DATE, fc);
// }
//
// CSTable t = DataIO.table(input_file, "obs");
// CSTable esp = DataIO.synthESPInput(t, start.getTime(), end.getTime(), fc, year);
// File new_input_file = new File(lastFolder, "esp-" + year + "-" + input_file.getName());
// PrintWriter w = new PrintWriter(new_input_file);
// DataIO.print(esp, w);
// w.close();
//
// File new_outFile = new File(out_file.getParent(), "esp-" + year + "-" + out_file.getName());
//
// comp.getClass().getField("inputFile").set(comp, new_input_file);
// comp.getClass().getField("outFile").set(comp, new_outFile);
// comp.getClass().getField("endTime").set(comp, fc_end);
//
// // execute phases and be done.
// log.config("Exec ...");
// ComponentAccess.callAnnotated(comp, Execute.class, false);
// log.config("Finalize ...");
// ComponentAccess.callAnnotated(comp, Finalize.class, true);
// res.println(" trace." + year + ", \"" + new_outFile.toString() + "\"");
// }
// res.println(" initstart, " + Conversions.formatISO(start.getTime()));
// res.println(" initend, " + Conversions.formatISO(end.getTime()));
// res.println(" forecastend, " + Conversions.formatISO(fc_end.getTime()));
// res.println(" firstyear, " + first_year);
// res.println(" lastyear, " + last_year);
// res.close();
// System.out.println();
// Compound.shutdown();
// return null;
// }
//}