aquacropos / aquacrop

AquaCrop-OSPy: Python implementation of AquaCrop-OS
https://aquacropos.github.io/aquacrop/
Apache License 2.0
98 stars 71 forks source link

Soil fertility stress simulation #107

Closed Han-Su22 closed 8 months ago

Han-Su22 commented 1 year ago
  1. Before testing, make sure the AQ-WIN are using the same data. To do so, use AquaCrop_WIN_TEST_DATA/DATA to replace AquaCropV61Nr02052018/DATA. (Which is in previous Github and the local code that I sent you. I delete them in this version to make it easier to find the changes, let me know if you cannot find it and I will send them again.)
  2. Make sure using the right crop files during testing (test_weatGDD.CRO, PotatoGDD_test.CRO, MaizeGDD_test.CRO)
  3. To replicate all the tests for each crop, for each combination of irrigation and soil fertility stress, set AQ-WIN manually first; then change the parameters in Jupyter Notebook according to AQ-WIN; run AQ-WIN; run Jupyter Notebook.

Brief explanations: • aquacrop/entities/crop.py Add the variables needed for soil fertility stress simulation and give the default values. The default values are the values under no soil fertility stress. • aquacrop/entities/crops/crop_params.py Add testing crops which will be the same with AQ-WIN • aquacrop/entities/initParamVariables.py Initialize some global variables for soil fertility stress calculation. These variables keep some critical values during the soil fertility stress simulation. • aquacrop/entities/output.py Add soil fertility stress output for testing • aquacrop/entities/soil.py I changed the logic to calculate the soil hydraulic parameters according to AQ-WIN, which should have no impact on soil fertility stress simulation. For my own global model, the previous code may lead to some errors. • aquacrop/initialize/compute_crop_calendar.py Calculate the crop phenological calendar with soil fertility stress parameters Initialize soil fertility stress simulation Calibrate soil fertility stress if needed • aquacrop/initialize/compute_variables.py Adjust to ensure CO2 data is available during initialization • aquacrop/initialize/read_model_parameters.py Read CO2 data first for soil fertility stress calculation and delete the redundant codes • aquacrop/solution/adjust_CCx.py Adjustment of CCx and canopy development because of soil fertility stress • aquacrop/solution/biomass_accumulation.py Adjustment of water productivity and biomass because of soil fertility stress There is a dynamic update of soil fertility stress according to AQ-WIN • aquacrop/solution/canopy_cover.py Adjustment of CCx, canopy development, and senescence because of soil fertility stress There is a interaction between soil fertility stress and early senescence • aquacrop/timestep/outputs_when_model_is_finished.py Add soil fertility stress output • aquacrop/timestep/reset_initial_conditions.py Reset initial conditions for soil fertility stress. Almost the same as aquacrop/initialize/compute_crop_calendar.py • aquacrop/timestep/run_single_timestep.py Enable some global variables passing to the next time step

MaartenVL commented 11 months ago

What's the status on this, I'm highly interested in this feature, is there any way to help?

Han-Su22 commented 11 months ago

What's the status on this, I'm highly interested in this feature, is there any way to help?

I've contacted with @Bowhaven . He is testing my code and will merge to master later on if there is no significant problem:) This is the code I used for my current research.

MaartenVL commented 11 months ago

What's the status on this, I'm highly interested in this feature, is there any way to help?

I've contacted with @Bowhaven . He is testing my code and will merge to master later on if there is no significant problem:) This is the code I used for my current research.

Seems like a tremendous amount of work already, good job! Looking forward to it being merged and testing it out.