Cotton2K is a cotton simulation model specially adapted for irrigated cotton production in arid regions. It was originally written by Prof. Avishalom Marani and has been rewritten in Rust with Python bindings.
- High-performance cotton growth simulation
- Native Rust implementation with Python bindings
- TOML/JSON configuration format
- CSV output format
- Cross-platform support
Add to your Cargo.toml:
[dependencies]
cotton2k = { git = "https://github.com/tcztzy/cotton2k" }Install from PyPI:
pip install cotton2kOr install locally:
cd bindings/python
pip install .Example usage:
import cotton2k as c2k
# Run simulation with profile file
c2k.run("path/to/profile.toml")- Rust 1.70+ (for Rust usage)
- Python 3.10+ (for Python bindings)
- libclang (temporary, during transition from C++ to Rust)
Build Rust library:
cargo build --releaseBuild and install Python bindings:
cd bindings/python
maturin develop --release- Complete Rust migration
- GUI interface
- Improved documentation
- SWAP model integration
This project is licensed under:
I used to think this project could be licensed under MIT license, but finally I found that my translate-to-Rust implementation should also follow GPL, so I relicensed all code in Rust & Python under AGPLv3+.
Contributions are welcome! Please open an issue or submit a pull request.