The Indus Village's Weather model: procedural generation of daily weather (1.0.0)
Overview
The Weather model is a procedural generation model designed to create realistic daily weather data for socioecological simulations. It generates synthetic weather time series for solar radiation, temperature, and precipitation using algorithms based on sinusoidal and double logistic functions. The model incorporates stochastic variation to mimic unpredictable weather patterns and aims to provide realistic yet flexible weather inputs for exploring diverse climate scenarios.
The Weather model can be used independently or integrated into larger models, providing realistic weather patterns without extensive coding or data collection. It can be customized to meet specific requirements, enabling users to gain a better understanding of the underlying mechanisms and have greater confidence in their applications.
Key aspects
Procedural Generation: The Weather model is not a simulation model but a procedural generation engine. It does not represent realistic processes behind its output but generates datasets stochastically that match a range of sought patterns using meaningful parameters.
Realistic Weather Patterns: The model generates realistic time series of weather variables for a point location based on the distinction between climate and weather patterns. Climate patterns are long-term averages, particularly seasonality, while weather patterns are day-to-day variations around the climatic average, representing inter-annual variability and unpredictable events.
Targeted Weather Variables: The Weather model produces daily values of all-sky insolation (solar radiation) in megajoules (MJ), average/max/min temperature in degrees Celsius (ºC), and total precipitation in millimeters (mm).
Integration with the Indus Village Model: The Weather model was designed as a component of the Indus Village model, a larger simulation framework studying the Indus Civilization. It provides essential environmental inputs related to climate conditions, which, combined with regional hydrological dynamics, shape the environmental variables that inform the rest of the system. The Weather model’s output is pre-adapted for use by the Soil Water and Crop models, making it an integral part of the Land Water model.
Flexibility and Adaptability: The Weather model can generate a wide variety of patterns with parameters directly related to the model output. Once the role of parameters is understood, patterns can be explicitly sought and controlled.
Implementations
The Weather model is implemented in NetLogo and R, offering a computationally efficient method to generate extensive weather data. The implementations include auxiliary algorithms such as the calculation of reference evapotranspiration. The source code is available on GitHub, as part of the Indus Village model repository and in the supplementary materials for a dedicated publication (in submission).
Design details
The Weather model uses two general equations:
A sinusoidal function that approximates daily solar radiation and temperature as a sinusoid wave.
A double logistic function that approximates the annual cumulative precipitation as the sequence of two logistic curves.
The procedural approach offers a balance between complexity and flexibility. By employing parametric equations and algorithms, procedural models avoid dependence on extensive datasets, allowing for the flexible exploration of diverse weather scenarios. This design also circumvents the computational challenges of mechanistic models and the static and biased nature of observational datasets.
Caveats
The current version of the Weather model does not account for the delaying and depressing effects of atmospheric particles, humidity, and cloudiness on solar radiation and temperature. Also, precipitation might overestimate daily amounts, introducing unrealistic spikes due to the relatively free sampling of year parameters.
Release Notes
NetLogo implementation
USE: default workflow in NetLogo (setup, then go; parameters adjustable in interface).
NOTE: The current version updates a few minor code fragments in relation to the one used in Angourakis et. al. (2022). Outputs remains largely the same.
DEPENDENCIES: NetLogo 6.4.0. No extensions are required.
R implementation
USE: Import code base with source(), then create model instance with initialise_weather_model() and run_weather_model(). Specific arguments are required as parameters and run options. Roxygen documentation is available.
NOTE: Atmospheric CO2 concentrations are not included explicitly in this implementation, but can be easily covered following the approach used for solar radiation.
DEPENDENCIES: R 4.3.3. No extra packages are required.
Associated Publications
Angourakis, Andreas, Jean-Philippe Baudouin, and Cameron A. Petrie. (in submission). The Weather model (Indus Village): procedural generation of daily weather for the simulation of small-scale socioecological systems. JASSS X (X). DOI: X
Angourakis, Andreas, Jennifer Bates, Jean-Philippe Baudouin, Alena Giesche, Joanna R. Walker, M. Cemre Ustunkaya, Nathan Wright, Ravindra Nath Singh, and Cameron A. Petrie. 2022. ‘Weather, Land and Crops in the Indus Village Model: A Simulation Framework for Crop Dynamics under Environmental Variability and Climate Change in the Indus Civilisation’. Quaternary 5 (2): 25. https://doi.org/10.3390/quat5020025.
Angourakis, Andreas. 2021. ‘Two-Rains/Indus-Village-Model: The Indus Village Model Development Files (May 2021)’. Zenodo. https://doi.org/10.5281/zenodo.4814255.
The Indus Village's Weather model: procedural generation of daily weather 1.0.0
Submitted byAndreas AngourakisPublished May 13, 2025
Last modified May 13, 2025
The Weather model is a procedural generation model designed to create realistic daily weather data for socioecological simulations. It generates synthetic weather time series for solar radiation, temperature, and precipitation using algorithms based on sinusoidal and double logistic functions. The model incorporates stochastic variation to mimic unpredictable weather patterns and aims to provide realistic yet flexible weather inputs for exploring diverse climate scenarios.
The Weather model can be used independently or integrated into larger models, providing realistic weather patterns without extensive coding or data collection. It can be customized to meet specific requirements, enabling users to gain a better understanding of the underlying mechanisms and have greater confidence in their applications.
Key aspects
Procedural Generation: The Weather model is not a simulation model but a procedural generation engine. It does not represent realistic processes behind its output but generates datasets stochastically that match a range of sought patterns using meaningful parameters.
Realistic Weather Patterns: The model generates realistic time series of weather variables for a point location based on the distinction between climate and weather patterns. Climate patterns are long-term averages, particularly seasonality, while weather patterns are day-to-day variations around the climatic average, representing inter-annual variability and unpredictable events.
Targeted Weather Variables: The Weather model produces daily values of all-sky insolation (solar radiation) in megajoules (MJ), average/max/min temperature in degrees Celsius (ºC), and total precipitation in millimeters (mm).
Integration with the Indus Village Model: The Weather model was designed as a component of the Indus Village model, a larger simulation framework studying the Indus Civilization. It provides essential environmental inputs related to climate conditions, which, combined with regional hydrological dynamics, shape the environmental variables that inform the rest of the system. The Weather model’s output is pre-adapted for use by the Soil Water and Crop models, making it an integral part of the Land Water model.
Flexibility and Adaptability: The Weather model can generate a wide variety of patterns with parameters directly related to the model output. Once the role of parameters is understood, patterns can be explicitly sought and controlled.
Implementations
The Weather model is implemented in NetLogo and R, offering a computationally efficient method to generate extensive weather data. The implementations include auxiliary algorithms such as the calculation of reference evapotranspiration. The source code is available on GitHub, as part of the Indus Village model repository and in the supplementary materials for a dedicated publication (in submission).
Design details
The Weather model uses two general equations:
A sinusoidal function that approximates daily solar radiation and temperature as a sinusoid wave.
A double logistic function that approximates the annual cumulative precipitation as the sequence of two logistic curves.
The procedural approach offers a balance between complexity and flexibility. By employing parametric equations and algorithms, procedural models avoid dependence on extensive datasets, allowing for the flexible exploration of diverse weather scenarios. This design also circumvents the computational challenges of mechanistic models and the static and biased nature of observational datasets.
Caveats
The current version of the Weather model does not account for the delaying and depressing effects of atmospheric particles, humidity, and cloudiness on solar radiation and temperature. Also, precipitation might overestimate daily amounts, introducing unrealistic spikes due to the relatively free sampling of year parameters.
Release Notes
NetLogo implementation
USE: default workflow in NetLogo (setup, then go; parameters adjustable in interface).
NOTE: The current version updates a few minor code fragments in relation to the one used in Angourakis et. al. (2022). Outputs remains largely the same.
DEPENDENCIES: NetLogo 6.4.0. No extensions are required.
R implementation
USE: Import code base with source(), then create model instance with initialise_weather_model() and run_weather_model(). Specific arguments are required as parameters and run options. Roxygen documentation is available.
NOTE: Atmospheric CO2 concentrations are not included explicitly in this implementation, but can be easily covered following the approach used for solar radiation.
DEPENDENCIES: R 4.3.3. No extra packages are required.
Angourakis, Andreas, Jean-Philippe Baudouin, and Cameron A. Petrie. (in submission). The Weather model (Indus Village): procedural generation of daily weather for the simulation of small-scale socioecological systems. JASSS X (X). DOI: X
Angourakis, Andreas, Jennifer Bates, Jean-Philippe Baudouin, Alena Giesche, Joanna R. Walker, M. Cemre Ustunkaya, Nathan Wright, Ravindra Nath Singh, and Cameron A. Petrie. 2022. ‘Weather, Land and Crops in the Indus Village Model: A Simulation Framework for Crop Dynamics under Environmental Variability and Climate Change in the Indus Civilisation’. Quaternary 5 (2): 25. https://doi.org/10.3390/quat5020025.
Angourakis, Andreas. 2021. ‘Two-Rains/Indus-Village-Model: The Indus Village Model Development Files (May 2021)’. Zenodo. https://doi.org/10.5281/zenodo.4814255.
References
Allen, Richard G., Luis S. Pereira, Dirk Raes, and Martin Smith. 1998. Crop Evapotranspiration - FAO Irrigation and Drainage Paper No. 56. Rome: FAO. http://www.fao.org/3/X0490E/x0490e00.htm.
Shabani, A., A. R. Sepaskhah, A. A. Kamgar-Haghighi, and T. Honar. 2018. ‘Using Double Logistic Equation to Describe the Growth of Winter Rapeseed’. Journal of Agricultural Science 156 (1): 37–45. https://doi.org/10.1017/S0021859617000934.
Suleiman, Ayman A., and Gerrit Hoogenboom. 2007. ‘Comparison of Priestley-Taylor and FAO-56 Penman-Monteith for Daily Reference Evapotranspiration Estimation in Georgia’. Journal of Irrigation and Drainage Engineering 133 (2): 175–82. https://doi.org/10.1061/(ASCE)0733-9437(2007)133:2(175).
Woli, Prem, James W. Jones, Keith T. Ingram, and Clyde W. Fraisse. 2012. ‘Agricultural Reference Index for Drought (ARID)’. Agronomy Journal 104 (2): 287. https://doi.org/10.2134/agronj2011.0286.
Zhao, Chuang, Bing Liu, Liujun Xiao, Gerrit Hoogenboom, Kenneth J. Boote, Belay T. Kassie, Willingthon Pavan, et al. 2019. ‘A SIMPLE Crop Model’. European Journal of Agronomy 104 (March):97–106. https://doi.org/10.1016/J.EJA.2019.01.009.
Create an Open Code Badge that links to this model more info
This website uses cookies and Google Analytics to help us track user engagement and improve our site. If
you'd like to know more information about what data we collect and why, please see
our data privacy policy. If you continue to use this site, you consent to
our use of cookies.