A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Recent Releases of Cycles

Cycles - 1.4.3

WHAT'S NEW:

  1. ✨ Used a five-point averaging for thermal time calculation to improve model thermal time calculation under extreme conditions
  2. πŸ› Fixed water balance errors caused by changing soil thicknesses
  3. πŸ—ƒοΈ Added 2024 global CO2 concentration to co2.txt input
  4. πŸ“¦ Included two MacOS packages, for both Intel (intel64) and Silicon (arm64) chips

Consumption - Agriculture and Nutrition
Published by shiyuning 3 months ago

Cycles - 1.4.1

WHAT'S NEW:

  1. ✨ Added correction terms to pedotransfer functions to ensure calculated hydraulic properties match user input
  2. ✨ #74 - Added dynamic soil thicknesses due to the change of organic matter and texture
  3. ✨ Added a new nitrogen harvest index algorithm. As a result, five new parameters were introduced to crop description files
  4. ✨ The model now reports errors when model start date is later than end date
  5. ✨ The model now uses the average of max, min, and mean daily temperature for thermal time calculation to improve performance in high temperature
  6. πŸ’„ #84 - season.txt was renamed to harvest.txt
  7. πŸ’„ Changed soil organic matter input to soil organic carbon in soil description files
  8. πŸ› Fixed bug that the weather file range error was not reported correctly
  9. πŸ› Fixed a bug that CO2 file could not be read correctly when a path was specified

NOTE:
Update to this version requires changes in soil and crop description files.

  1. Soil description file:
    The OM, i.e., organic matter parameter has been changed to SOC, i.e., soil organic carbon. To use previously prepared soil description files with the new version, a factor of 0.58 should be used to convert soil organic matter to soil organic carbon.

  2. Crop description file:
    Five new parameters were introduced to enable the new nitrogen harvest index algorithm.
    These parameters are N_MAX_CONCENTRATION_GRAIN, N_MIN_CONCENTRATION_GRAIN, N_MAX_CONCENTRATION_STRAW, N_MIN_CONCENTRATION_STRAW, and N_PARTITIONING_FACTOR.
    They are maximum allowable grain N concentration (%), minimum allowable grain N concentration (%), maximum allowable straw N concentration at harvest (%), minimum allowable straw N concentration at harvest (%), and empirical constant in N partitioning (and applied to winter wheat), respectively.
    Those parameters were added to the end of the Allocation blocks in crop description files.

Consumption - Agriculture and Nutrition
Published by shiyuning 8 months ago

Cycles - 1.3.0

WHAT'S NEW:

  1. ✨ Added effect of CO2 on crop growth, and an annual CO2 concentration input file
  2. ✨ Let severe cold damage kill annual crops before maturity
  3. ✨ Allowed planting windows to cross years
  4. ✨ Avoided physically implausible bulk densities from PTF
  5. ✨ Updated soil hydraulic properties after spin-up to reflect the impact of steady-state soil organic carbon.
  6. ✨ Added a new grain growth model that can be turned on using the -g command line option
  7. ⚑ Improved error handling
  8. πŸ’„ Updated control file and multi-mode file formats
  9. πŸ› Fixed NaN errors caused by residue evaporation calculation when either standing residue or flat residue becomes 0
  10. πŸ› Fixed a bug that 0 shoot biomass at harvest causes harvest index to be nan.

NOTE:
Update to this version requires changes in control and multi-mode files.

  1. Simulation control file:
    SIMULATION_START_YEAR and SIMULATION_END_YEAR parameters are now SIMULATION_START_DATE and SIMULATION_END_DATE, and the input format should be YYYY-MM-DD.

    The "input files" block has been moved to up, right below the "simulation years" block.

    A CO2_LEVEL parameter is required in the "simulation options" block, which should be the atmospheric CO2 concentration in ppm.
    This parameters is by default -999, which uses the co2.txt input file in the input directory.

  2. Multi-mode file:
    A 'CO2_LEVEL` parameter is required in the multi-mode file.

Consumption - Agriculture and Nutrition
Published by shiyuning about 1 year ago

Cycles - 1.2.1

WHAT'S NEW:

  1. ✨ Allow users to customize output extensions using command line option -e
  2. ✨ Add more parameters to calibration files
  3. ✨ Add a "burn residue" operation
  4. ✨ Update soil hydraulic properties after spin-up to reflect the impact of steady-state soil organic carbon.
  5. πŸ’„ Rename calibration files to *.nudge
  6. πŸ’„ Update ASCII art
  7. πŸ’„ Rename command line option -f to -p
  8. πŸ› Fix a bug in rotation builder that crops were not planted correctly after building the yield matrix
  9. πŸ› Fix a bug that could cause negative microbial C or N pools

Consumption - Agriculture and Nutrition
Published by shiyuning almost 2 years ago

Cycles - 1.1.0

WHAT'S NEW:

  1. ✨ Fill in missing curve number and slope in soil input
  2. ✨ Update harvest index calculation algorithm
  3. ✨ Add calibration functionality
  4. πŸ’„ Fix operation input file parameter name
  5. πŸ’„ Fix crop input file parameter name
  6. πŸ› Avoid unreasonable thermal time and N stress

NOTE:
Update to this version requires changes in crop description and management operations files.

  1. Crop description file:
    The parameter HARVEST_INDEX should be changed to HARVEST_INDEX_SLOPE_MULTIPLIER, with a default value of 1.0
  2. Management operations file:
    For planting operations, the parameter FRACTION should be changed to DENSITY.

Consumption - Agriculture and Nutrition
Published by shiyuning about 2 years ago

Cycles - 1.0.0

WHAT'S NEW:

  1. ✨ #68 - When organic nitrogen is present in the fertilizer, organic carbon will be added if not already existed.
  2. ✨ πŸ’„ #72 - Specify depth of fertilizer application instead of soil layer in operation files.
  3. ✨ πŸ’„ #75 - Add maximum soil temperature constraint for conditional planting.
  4. ✨ Fill nitrate and ammonium values in soil files if they are specified as -999.
  5. ✨ Check input soil parameters to make sure they are in their physically plausible ranges.
  6. ✨ Limit the number of spin-up cycles to 100.
  7. πŸ› Fix unreported nitrogen in harvest.
  8. πŸ› Fix nitrogen balance errors caused by incorrect nitrogen uptake calculation.
  9. ⚑ Improve computational efficiency for conditional planting
  10. πŸ’„ Use new crop file format.
  11. πŸ’„ Fix some minor format problems in output files.
  12. πŸ’„ Extensions of all output files have been changed to .txt.
  13. πŸ—ƒοΈ Add databases for fertilizer and tillage (fert.txt and till.txt in the input directory).

NOTE:
Update to this version requires changes in crop description and management operations files.

  1. Crop description file:
    The parameters in the crop description files are now categorized by their functionalities. A Jupyter notebook is provided to help convert the format of crop description files.
  2. Management operations file:
    For planting operations, a MAX_SOIL_TEMP parameter (degree C) is added as the maximum soil temperature allowed for conditional planting.
    For fertilization operations, the LAYER parameter is now replaced by the DEPTH parameter (meter), to specify the depth of fertilizer application.

Consumption - Agriculture and Nutrition
Published by shiyuning almost 3 years ago

Cycles - 0.13.0 alpha

WHAT'S NEW:

  1. ✨ Allow running control file in a subfolder inside the input directory
  2. πŸ› Fix a bug that re-initialization file is not read in in spin-up mode
  3. πŸ› Add missing values for forage harvest to season output file
  4. πŸ› Fix a bug in residue calculation during grain harvest
  5. πŸ’„ Fix annual SOM output alignment
  6. ✨ Improve rotation management in dynamic rotation builder

Consumption - Agriculture and Nutrition
Published by shiyuning over 3 years ago

Cycles - 0.12.9 alpha

WHAT'S NEW:

  1. ✨ Schedule harvests with multiple tillage tool names, e.g., Grain_Harvest, GrainHarvest, Harvest_Grain, and HarvestGrain. The same applies to forage harvests.
  2. πŸ› Fix a bug that reference ET and precipitation were not printed in environ.dat
  3. πŸ› Fix bypass water transport bug in cascade mode
  4. πŸ› Improve compatibility with text files of different formats

Consumption - Agriculture and Nutrition
Published by shiyuning about 4 years ago

Cycles - 0.12.7 alpha

WHAT'S NEW:

  1. πŸ› Fix N balance errors caused by negative solute fluxes

Consumption - Agriculture and Nutrition
Published by shiyuning about 4 years ago

Cycles - 0.12.6 alpha

WHAT'S NEW:

  1. ✨ Allow using weather files without leap years
  2. ✨ Use 7-day moving average soil temperature for conditional planting constraints. Previously only the current day soil temperature was taken into account.
  3. ✨ In the operation files, use fractions between PWP and FC for conditional planting constraints. Previously absolute soil water content values were used.
  4. πŸ› Fix some potential NAN errors in soil moisture and soil carbon/nitrogen processes.
  5. ⚑ Improve Python scripts
  6. πŸ’„ Rename weather.dat output file to environ.dat, and add soil temperature and vapor pressure deficit to the environ.dat output file.
  7. πŸ’¬ Print simulation name when reporting errors in multi-mode simulations

Consumption - Agriculture and Nutrition
Published by shiyuning about 4 years ago

Cycles - 0.12.5 alpha

WHAT'S NEW:

  1. ✨ Allow scheduled harvest/kill operations to override -999 clip start date
  2. πŸ› Skip transpiration calculation when radiation interception is 0
  3. ⚑ Improve model stability under dry conditions
  4. πŸ’¬ Improve error reporting
  5. πŸ—ƒοΈ Fix crop parameters in crop description file

Consumption - Agriculture and Nutrition
Published by shiyuning over 4 years ago

Cycles - 0.12.4 alpha

WHAT'S NEW:

  1. πŸ—ƒοΈ Update crop description file
  2. ⚑ Improve hydraulic lift simulation

Consumption - Agriculture and Nutrition
Published by shiyuning almost 5 years ago

Cycles - 0.12.3 alpha

WHAT'S NEW:

  1. ✨ Constrain SOC and SON turnover by root mass
  2. πŸ› Fix a bug that auto irrigation was not correctly read into the model
  3. πŸ› Fix a bug in forage harvest calculation
  4. πŸ› Fix a bug in root fraction calculation
  5. ⚑ Initialize SON and MBN using a C:N ratio of 9
  6. πŸ’„ Add optional SON values to soil input file
  7. ✨ πŸ’„ Add irrigation to season file
  8. πŸ—ƒοΈ Update default crop description file

NOTE:
Update to this version requires changes in the soil input files. A column of SON is required, though -999 can be used to start the model using a default C:N ratio of 9. Please see the example soil file for more details.

Consumption - Agriculture and Nutrition
Published by shiyuning almost 5 years ago

Cycles - 0.12.2 alpha

WHAT'S NEW:

  1. ✨ Report kill stage in crop files
  2. ✨ Report N in harvest in annual N flux output file
  3. πŸ’¬ Improve screen output
  4. ⚑ Improve water and N flow simulations
  5. πŸ› Fix N2O emmission calculation
  6. πŸ› Fix a bug that only the first simulation spins-up in multi-mode
  7. πŸ› Fix bugs related to harvest handling
  8. πŸ› Fix N stress and automatic nitrogen related bugs
  9. πŸ› Fix a couple of potential NAN bugs
  10. πŸ› Fix a bug that bypass fractions were not printed in the steady state soil files

Consumption - Agriculture and Nutrition
Published by shiyuning almost 5 years ago

Cycles - 0.12.1 alpha

WHAT'S NEW:

  1. ✏️ Fix a typo in output file header.
  2. ✨ #31 - Add a KILL_AFTER_HARVEST parameter to control harvest operations and allow fixed harvest without killing crops.
  3. ✨ Remove forage_harvest and grain_harvest parameters in tillage operations. Instead, use forage_harvest and grain_harvest as tool names to perform scheduled harvests.
  4. ✨ Always kill crops after cold damage triggered harvest events.
  5. πŸ’¬ Improve screen output regarding scheduled harvest events.
  6. ✨ Add annual N2O flux to output.
  7. ✨ Add vertical and horizontal bypass flows (water and nitrogen).
  8. ✨ Report killing in daily crop files
  9. ✨ Add a Python script to compile multi-mode results.
  10. ✨ Add switch to control annual N flux output file.
  11. πŸ› Fix a bug that may cause over-saturation in soil moisture calculation.
  12. πŸ› Fix a bug that infiltration is always reported to be 0 when cascade redistribution is used.
  13. πŸ’¬ Give warnings when old format input files are used.

NOTE:
A Python script that compiles multi-mode simulation results is added to the util directory. The code will find the overlapping time period from all simulations in the multi-mode run, extract the same variable across different simulations, and put them in the same file. To use the script, the multi-mode control file and desired variable needs to be specified. In the Cycles directory, run

python3 ./util/multi_analy.py <multi-mode control file> <output file> <column in output file>

For example, to compare profile NO3, which is the third column in the N.dat output file, between the CornSoyWheatPasture and ContinuousCorn simulations in the multi.txt control file, do

python3 ./util/multi_analy.py multi.txt N.dat 3

The compiled output file will be created in the Cycles directory with the name multi-XXX.dat, where XXX is the chosen output file name. In the above case, this file will be named multi-N.dat.

Update to this version requires changes in the a number of input files.

  1. Simulation control file:
    The SEASON_OUT keyword is replaced by ANNUAL_NFLUX_OUT as the switch to control annual N flux output file. Season output is always printed.
  2. Crop description file:
    A KILL_AFTER_HARVEST parameter is added for each crop after HARVEST_TIMING to determine whether the crop needs to be killed after harvest. Usually this parameter is set to 1 for annual crops, and 0 for perennial crops.
  3. Management operations file:
    The GRAIN_HARVEST and FORAGE_HARVEST parameters in tillage operations are removed. Now to schedule a grain/forage harvest, a tillage operation with GRAIN_HARVEST/FORAGE_HARVEST as TOOL should be used. When crop name is ALL or N/A, the scheduled grain/forage harvest operation will target all annual/perennial crops. Note that scheduled harvest operations do not kill crops. To kill crops after harvests, a tillage operation with KILL_CROP as TOOL is needed after the scheduled harvest.
  4. Soil file:
    Two new columns, BYP_H and BYP_V are added to soil files for each soil layer. They represent the ratio of horizontal and vertical bypass flows to total inter layer outflow at each layer. The sum of BYP_H and BYP_V should be smaller than 1. They can be set to 0 if bypass flow does not need to be simulated.

Some output files also have format changes to report added bypass water and nitrogen flows.

Consumption - Agriculture and Nutrition
Published by shiyuning about 5 years ago

Cycles - 0.11.1 alpha

WHAT'S NEW:

  1. ✨ Improve soil over-saturation handling
  2. πŸ› Fix a bug that conditional planting is performed repeatedly in some cases
  3. πŸ› Fix a bug that in multi-mode simulations, only the first simulation spins-up

Consumption - Agriculture and Nutrition
Published by shiyuning about 5 years ago

Cycles - 0.11.0 alpha

WHAT'S NEW:

  1. πŸ› Fix a bug that soil moisture could exceed soil porosity
  2. ✨ Turn on acceleration of microbial turnover
  3. πŸ’„ Add column of planting date in season output files
  4. πŸ’„ Add a soil nitrogen source/sink output file
  5. πŸ› Fix NAN errors when using some input files
  6. πŸ› Fix linking between planting and auto irrigation
  7. πŸ› #30 - Kill crops after each spin-up cycle
  8. πŸ› Fix a bug that season files are not written in multi-mode spin-up
  9. 🏁 Improve Windows compatibility

Consumption - Agriculture and Nutrition
Published by shiyuning about 5 years ago

Cycles - 0.10.1 alpha

WHAT'S NEW:

  1. ⚑ Name steady state soil files after simulations to avoid being overwritten from other simulations using the same soil file.
  2. ✨ Allow no harvest option for crops. If the parameter CLIPPING_START is set to -999 in planting operations, harvest will be disabled for the corresponding crop.
  3. ✨ Add conditional planting with high soil moisture constraint. Allow users to use keywords FC and PWP as maximum and minimum soil moisture constraints on conditional planting
  4. πŸ› Fix a nitrogen balance error

NOTE:
Update to this version requires changes in the operation input files.
For planting operations, the following line need to be added after the line of END_DOY:

MAX_SMCΒ Β Β Β Β Β Β Β Β Β Β Β Β -999

MAX_SMC is the maximum volumetric soil moisture (m3 m-3) allowed for planting. Using -999 disables maximum soil moisture constraints. Users can use the keyword FC for the MAX_SMC value, which represents field capacity. Similarly, users can use the keyword PWP for the MIN_SMC value, which represents permanent wilting point.

Consumption - Agriculture and Nutrition
Published by shiyuning over 5 years ago

Cycles - 0.9.3 alpha

WHAT'S NEW:

  1. πŸ› Fix unexpected harvest reports
  2. πŸ› Fix repeated planting when conditional planting is activated and when there is only one planting per rotation

Consumption - Agriculture and Nutrition
Published by shiyuning almost 6 years ago

Cycles - 0.9.2 alpha

WHAT'S NEW:
πŸ› Fix season and annual output

Consumption - Agriculture and Nutrition
Published by shiyuning almost 6 years ago

Cycles - 0.9.0 alpha

WHAT'S NEW:

  1. ✨ Allow negative water uptake as hydraulic lifting
  2. ✨ Add aeration factor on crop growth
  3. ✨ Add conditional planting depending on soil moisture and soil temperature
  4. ✨ Add spin-up capability
  5. ✨ πŸ’„ Use new re-initialization file format
  6. ✨ Add "baseline" mode that can spin-up and generate re-initialization input
  7. ✨ Add script to run a "baseline" simulation followed by batch simulations using re-initialization from the baseline
  8. πŸ› Avoid NAN in C:N ratio output
  9. πŸ› Fix bug that rhizo C input was not initialized each year
  10. πŸ› Fix bug to avoid segmentation fault when daily crop output is turned off

NOTE:
The baseline script only works in Unix for now.

Update to this version requires changes in the operation input files.
For planting operations, the following three lines need to be added after the line of DOY:

END_DOYΒ Β Β Β Β Β Β Β Β Β Β Β Β  -999
MIN_SMCΒ Β Β Β Β Β Β Β Β Β Β Β Β Β 0.0
MIN_SOIL_TEMPΒ Β Β 0.0

END_DOY is the last to complete the conditional planting; a value of -999 will disable conditional planting; MIN_SMC is the minimum volumetric soil moisture (m3 m-3) required for planting; and MIN_SOIL_TEMP is the minimum soil temperature (degree C) required for planting.

Consumption - Agriculture and Nutrition
Published by shiyuning almost 6 years ago

Cycles - 0.8.0 alpha

WHAT'S NEW:

  1. πŸ› Fix bug that adsorption was not calculated correctly
  2. πŸ› Fix bug to avoid "nan" nitrogen uptake
  3. πŸ› Fix bug to avoid negative water uptake
  4. πŸ› Fix bug to avoid negative water stress factor
  5. πŸ› Fix bug that irrigation was not calculated correctly
  6. πŸ› Fix bug that the number of active crops was not calculated correctly which causes FALLOW output instead of NO_CROP
  7. πŸ› Fix the output units of residue and crop files
  8. ✏️ Fix a typo in .crop input files
  9. ✨ Add infiltration reinitialization option for DARPA project
  10. ✨ Add reinitialization option to multimode simulations
  11. ✨ Program now prints line number when input format error occurs

Consumption - Agriculture and Nutrition
Published by shiyuning over 6 years ago

Cycles - 0.7.1 alpha

WHAT'S NEW:
✨ Add more reinitialization options

Consumption - Agriculture and Nutrition
Published by shiyuning about 7 years ago

Cycles - 0.7.0 alpha

WHAT'S NEW:
✨ Add option to reinitialize model variables with observations

Consumption - Agriculture and Nutrition
Published by shiyuning about 7 years ago

Cycles - 0.6.0 alpha

WHAT'S NEW:

  1. ✨ Add brown leaf representation
  2. ✨ Add the capability to run Cycles in Multi-mode
  3. πŸ› Fix a bug that auto fertilization was not correctly applied before
  4. πŸ› Fix some initialization issues
  5. 🏁 Now compatible with MS Visual Studio

Consumption - Agriculture and Nutrition
Published by shiyuning over 7 years ago

Cycles - 0.5.0 alpha

πŸŽ‰

Consumption - Agriculture and Nutrition
Published by shiyuning about 8 years ago