J2KBuechTest.java 12.20 KiB
/*
 * J2KProcessInterception_conv_potET
 * Created on 29-03-2013 after J2KProcessInterception.java by P. Krause
 * 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 * 
 * Dans ce module, on a change l'initialisation de l'ET0
 * et on a applique un changement d'unite pour potET (conversion de mm en L)
package cowattools;
import jams.data.*;
import jams.model.*;
/**
 * @author Francois Tilmant
@JAMSComponentDescription(
        title = "J2K_buech",
        author = "TOTO",
        description = "PLOP ",
        version = "1.0_0",
        date = "2013-03-19"
public class J2KBuechTest extends JAMSComponent {
     *  Component variables
    @JAMSVarDescription(
            access = JAMSVarDescription.AccessType.READ,
            update = JAMSVarDescription.UpdateType.RUN,
            description = "attribute area",
            unit = "m^2"
    public JAMSDouble area;
    @JAMSVarDescription(
            access = JAMSVarDescription.AccessType.READ,
            update = JAMSVarDescription.UpdateType.RUN,
            description = "state variable mean tempeature",
            unit = "degC"
    public JAMSDouble tmean;
    @JAMSVarDescription(
            access = JAMSVarDescription.AccessType.READ,
            update = JAMSVarDescription.UpdateType.RUN,
            description = "state variable rain",
            unit = "L"
    public JAMSDouble rain;
    @JAMSVarDescription(
            access = JAMSVarDescription.AccessType.READ,
            update = JAMSVarDescription.UpdateType.RUN,
            description = "state variable snow",
            unit = "L"
    public JAMSDouble snow;
    @JAMSVarDescription(
            access = JAMSVarDescription.AccessType.READWRITE,
            update = JAMSVarDescription.UpdateType.RUN,
            description = "state variable potET",
            unit = "mm(i)-L(o)"
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
public JAMSDouble potET; @JAMSVarDescription( access = JAMSVarDescription.AccessType.READWRITE, update = JAMSVarDescription.UpdateType.RUN, description = "state variable actET", unit = "L" ) public JAMSDouble actET; @JAMSVarDescription( access = JAMSVarDescription.AccessType.READ, update = JAMSVarDescription.UpdateType.RUN, description = "state variable LAI" ) public JAMSDouble actLAI; @JAMSVarDescription( access = JAMSVarDescription.AccessType.READ, update = JAMSVarDescription.UpdateType.INIT, description = "Snow parameter TRS", lowerBound = -10.0, upperBound = 10.0, defaultValue = "0.0", unit = "degC" ) public JAMSDouble snow_trs; @JAMSVarDescription( access = JAMSVarDescription.AccessType.READ, update = JAMSVarDescription.UpdateType.INIT, description = "Snow parameter TRANS", lowerBound = 0.0, upperBound = 5.0, defaultValue = "2.0", unit = "K" ) public JAMSDouble snow_trans; @JAMSVarDescription( access = JAMSVarDescription.AccessType.READ, update = JAMSVarDescription.UpdateType.INIT, description = "Interception parameter a_rain", lowerBound = 0.0, upperBound = 5.0, defaultValue = "0.2", unit = "mm" ) public JAMSDouble a_rain; @JAMSVarDescription( access = JAMSVarDescription.AccessType.READ, update = JAMSVarDescription.UpdateType.INIT, description = "Interception parameter a_snow", lowerBound = 0.0, upperBound = 5.0, defaultValue = "0.5", unit = "mm" ) public JAMSDouble a_snow; @JAMSVarDescription( access = JAMSVarDescription.AccessType.READWRITE, update = JAMSVarDescription.UpdateType.RUN, description = "state variable net-rain", unit = "L" ) public JAMSDouble netRain; @JAMSVarDescription(
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
access = JAMSVarDescription.AccessType.WRITE, update = JAMSVarDescription.UpdateType.RUN, description = "state variable net-snow", unit = "L" ) public JAMSDouble netSnow; @JAMSVarDescription( access = JAMSVarDescription.AccessType.WRITE, update = JAMSVarDescription.UpdateType.RUN, description = "state variable throughfall", unit = "L" ) public JAMSDouble throughfall; @JAMSVarDescription( access = JAMSVarDescription.AccessType.WRITE, update = JAMSVarDescription.UpdateType.RUN, description = "state variable dy-interception", unit = "L" ) public JAMSDouble interception; @JAMSVarDescription( access = JAMSVarDescription.AccessType.READWRITE, update = JAMSVarDescription.UpdateType.RUN, description = "state variable interception storage", unit = "L" ) public JAMSDouble intercStorage; @JAMSVarDescription(access = JAMSVarDescription.AccessType.READ, description = "The current hru entityyz") public Attribute.Entity entity; @JAMSVarDescription(access = JAMSVarDescription.AccessType.READ, description = "The current hru entity") public Attribute.EntityCollection hrus; /* @JAMSVarDescription( access = JAMSVarDescription.AccessType.READ, update = JAMSVarDescription.UpdateType.RUN, description = "id de la HRU pour Debug", unit="-" ) @JAMSVarDescription( access = JAMSVarDescription.AccessType.READ, update = JAMSVarDescription.UpdateType.RUN, description = "id de la HRU pour debug" ) public JAMSDouble HRU_id; @JAMSVarDescription(access = JAMSVarDescription.AccessType.READ, description = "Current time step", unit = "d") public Attribute.Calendar time; */ /* * Component run stages */ public void init() throws JAMSEntity.NoSuchAttributeException { //this.intercStorage.setValue(0); //Whatasit.plop(); System.out.println("POET initialized"); } public void run() throws JAMSEntity.NoSuchAttributeException { //System.out.println("Sprinkle bell " + Whatasit.getSprinkleIrrig());
211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
/*if (area == null) { System.out.println("AREA is null"); } else { double in_Area = area.getValue(); System.out.println("AREA: " + in_Area); }*/ try { if (hrus == null) { System.out.println("ACTHRU is null"); } else { System.out.println("ACTHRU is NOT null"); Attribute.Entity actHRU = hrus.getCurrent(); Double hruId = actHRU.getDouble("ID"); int iHruId = hruId.intValue(); String sHruId = String.valueOf(iHruId); System.out.println("HRUID: " + sHruId); if (netRain != null) { double outVal = CouplingCommunication.getTableValue("aspersion", String.valueOf(sHruId)); if (outVal != 0.0) { double net_rain = netRain.getValue(); System.out.println("NET RAIN BEFORE => "+net_rain); netRain.setValue(net_rain + outVal); net_rain = netRain.getValue(); System.out.println("NET RAIN AFTER => "+net_rain); } } } /*if (entity == null) { System.out.println("entity is null"); } else { System.out.println("entity is NOT null"); double ID_HRU = entity.getDouble("ID"); System.out.println("ENTITY HRU ID: "+ID_HRU); } */ } catch (java.lang.NullPointerException e) { System.out.println(e); } return; // double alpha = 0; // double out_throughfall = 0; // double out_interception = 0; // // /*double ID_HRU = HRU_id.getDouble();/*/ // // double in_rain = rain.getValue(); // double in_snow = snow.getValue(); // double in_temp = tmean.getValue(); // // double in_potETP = potET.getValue()*area.getValue(); // double in_actETP = 0; // // double in_LAI = this.actLAI.getValue(); // double in_Area = area.getValue(); // // double out_InterceptionStorage = intercStorage.getValue(); // double out_actETP = in_actETP; // // double sum_precip = in_rain + in_snow; // // // if (HRU_id.getValue() == 1.0){ // //System.out.println(time.toString()); // // } // // double deltaETP = in_potETP - in_actETP; // // double relRain, relSnow;
281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
// if(sum_precip > 0){ // relRain = in_rain / sum_precip; // relSnow = in_snow / sum_precip; // } else{ // relRain = 1.0; //throughfall without precip is in general considered to be liquid // relSnow = 0; // } // // //determining if precip falls as rain or snow // if(in_temp < (snow_trs.getValue() - snow_trans.getValue())){ // //alpha = alpha_snow; // alpha = a_snow.getValue(); // } else{ // //alpha = alpha_rain; // alpha = a_rain.getValue(); // } // // //determinining maximal interception capacity of actual day // double maxIntcCap = (in_LAI * alpha) * in_Area; // // //if interception storage has changed from snow to rain then throughfall // //occur because interception storage of antecedend day might be larger // //then the maximum storage capacity of the actual time step. // if(out_InterceptionStorage > maxIntcCap){ // out_throughfall = out_InterceptionStorage - maxIntcCap; // out_InterceptionStorage = maxIntcCap; // } // // //determining the potential storage volume for daily Interception // double deltaIntc = maxIntcCap - out_InterceptionStorage; // // //reducing rain and filling of Interception storage // if(deltaIntc > 0){ // //double save_rain = sum_precip; // if(sum_precip > deltaIntc){ // out_InterceptionStorage = maxIntcCap; // sum_precip = sum_precip - deltaIntc; // out_throughfall = out_throughfall + sum_precip; // out_interception = deltaIntc; // deltaIntc = 0; // } else{ // out_InterceptionStorage = (out_InterceptionStorage + sum_precip); // out_interception = sum_precip; // sum_precip = 0; // } // } else{ // out_throughfall = out_throughfall + sum_precip; // } // // // // if (HRU_id.getValue() == 1.0){ // // System.out.println(time.toString()); // // } // // //depletion of interception storage; beside the throughfall from above interc. // //storage can only be depleted by evapotranspiration // // if(deltaETP > 0){ // if(out_InterceptionStorage > deltaETP){ // out_InterceptionStorage = out_InterceptionStorage - deltaETP; // out_actETP = in_actETP + deltaETP; // deltaETP = 0; // // } else{ // out_actETP = in_actETP + out_InterceptionStorage; // out_InterceptionStorage = 0; // deltaETP = 0; // } // } //
351352353354355356357358359360361362363364365366367368369370371372
// // if (HRU_id.getValue() == 1.0){ // // System.out.println(time.toString()); // // } // // this.netRain.setValue(out_throughfall * relRain); // this.netSnow.setValue(out_throughfall * relSnow); // this.actET.setValue(out_actETP); // this.potET.setValue(in_potETP); // this.intercStorage.setValue(out_InterceptionStorage); // this.interception.setValue(out_interception); // this.throughfall.setValue(out_throughfall); // } public void cleanup() { //this.intercStorage.setValue(0); } }