# Logônia: Plant Growth Response Model in NetLogo 🌿

**URL:** <https://forum.netlogo.org/t/logonia-plant-growth-response-model-in-netlogo/640>\
**Category:** Share & Showcase\
**Tags:** levelspace, worldclim, logoclim, climate-change, netlogo-7\
**Created:** [September 16, 2025, 9:21am UTC](https://forum.netlogo.org/t/logonia-plant-growth-response-model-in-netlogo/640 "2025-09-16T09:21:11Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![danielvartan](https://forum.netlogo.org/user_avatar/forum.netlogo.org/danielvartan/32/593_2.png) [@danielvartan](https://forum.netlogo.org/u/danielvartan)\
**Post date:** [September 16, 2025, 9:21am UTC](https://forum.netlogo.org/t/logonia-plant-growth-response-model-in-netlogo/640/1 "2025-09-16T09:21:11Z")

</div>

Hi everyone!

I’m excited to share my new NetLogo project: [`Logônia`](https://github.com/sustentarea/logonia).

`Logônia` is a NetLogo model that simulates the growth response of a fictional plant, logônia, under different climatic conditions. The model uses climate data from [WorldClim 2.1](https://worldclim.org/) and demonstrates how to integrate the [`LogoClim`](https://github.com/sustentarea/logoclim) model through the [`LevelSpace`](https://ccl.northwestern.edu/netlogo/docs/ls.html) extension.

The model is openly available on the [CoMSES Network](https://www.comses.net/codebases/4f2be13a-3957-4537-bf64-3fad96ba271f/) and [GitHub](https://github.com/sustentarea/logonia).

 ![logo](https://forum.netlogo.org/uploads/default/original/1X/59ad581e508a5cbe31fcd6ac0714914390dd23d2.svg)

## How It Works

`Logônia` runs on a grid of patches, where each patch represents a piece of soil that can host a plant. Patches correspond to a specific geographic area and store historical climate data for _Average Minimum Temperature (°C)_ ( **A** ), _Average Maximum Temperature (°C)_ ( **B** ), and _Total Precipitation (mm)_ ( **C** ).

![worldclim-animation](https://forum.netlogo.org/uploads/default/original/1X/1958092e93b177915f401f153f289986cfb42892.gif)

Each simulation step represents _one month_. Over time, plants _grow_, _reproduce_, and _age_. These processes are controlled by sliders on the model’s interface. Climate conditions directly influence growth probability, adding realism and complexity to the simulation.

![logonia-interface](https://forum.netlogo.org/uploads/default/original/1X/f99c5caf53b545f38186c0fc07fe0810e6362ee9.gif)

Learn more at: [GitHub - sustentarea/logonia: 🌿 Plant Growth Response Model in NetLogo](https://github.com/sustentarea/logonia)

GitHub Stars are always appreciated! ⭐

Cheers,

Daniel Vartanian

---

<div class="post-metadata">

**Author:** ![jzkelter](https://forum.netlogo.org/letter_avatar_proxy/v4/letter/j/a5b964/32.png) [@jzkelter](https://forum.netlogo.org/u/jzkelter)\
**Post date:** [September 29, 2025, 4:22pm UTC](https://forum.netlogo.org/t/logonia-plant-growth-response-model-in-netlogo/640/2 "2025-09-29T16:22:19Z")

</div>

Very cool model and use of LevelSpace!

I have one question about the model and then a few smaller notes/questions about the interface.

**Question about the model:**  
You describe the rules of the plant growth as follows:

> A logônia gains or loses energy at each step according to the following rules:
> 
> - If a random number between `0` and `1` is _less than_ or _equal to_ the growth probability for the current patch, the plant gains the number of energy points defined by the `energy-gain` slider.
> - If the probability is _below_ `0.25` and does not meet the above condition, the plant loses `1` energy point.
> - Otherwise, its energy remains unchanged.

Why did you choose to do it this way rather than just drawing the energy gained/lost from a continuous distribution? For example, the variables that currently go into the logistic regression could be used instead to determine the mean of a normal distribution and then each plant draws its energy gained/lost from that distribution. That seems to me like a more natural way to model this, as it could be validated with real data (e.g., grow a bunch of plants under different temperature conditions and measure how much they grow, and then fit growth distributions to the data).

* * *

**A few notes/questions about the interface:**

1. For Climate Variable inspection, you only allow inspecting one at at time and if someone sets more than one of `inspect-tmin`, `inspect-tmax`, or `inspect-prec` to true, you get a message saying only one can be true. Why not just make it a chooser instead of three switches and then you would only be able to select one at at time?
2. Why don’t you have `inspection-intercept` for inspecting the logistic regression like other variables? Right now, that slider changes the same `intercept` slider that is used in the real model.
3. Why are the value ranges for `intercept`, `beta-tmin`, `beta-tmax`, `beta-prec` different from the inspection versions?

---

<div class="post-metadata">

**Author:** ![danielvartan](https://forum.netlogo.org/user_avatar/forum.netlogo.org/danielvartan/32/593_2.png) [@danielvartan](https://forum.netlogo.org/u/danielvartan)\
**Post date:** [September 29, 2025, 11:28pm UTC](https://forum.netlogo.org/t/logonia-plant-growth-response-model-in-netlogo/640/3 "2025-09-29T23:28:28Z")

</div>

Hi @jzkelter,

I’m glad you like the model!

Regarding your question:

That’s a solid idea—I had considered it before, but at the time I felt the model was already complex enough. I might implement it in the future (this suggestion is noted in this [issue](https://github.com/sustentarea/logonia/issues/2)). Although, I think it would work better if the logistic function parameters could vary slightly for each plant. The challenge with using a normal distribution in simulations is that it’s unbounded.

About your notes/questions on the interface:

1. Good point! I’ve already made those changes in the [developer version](https://github.com/sustentarea/logonia). Thanks for the suggestion! 🙂
2. The `intercept` in the _Logistic Regression Inspection_ section is the same as the `intercept` slider in the main controls, since `beta-tmin`, `beta-tmax`, and `beta-prec` remain unchanged. This section allows inspecting how the logistic regression behaves across different dimensions (`tmin`, `tmax`, and `prec`). Because the intercept has an additive effect—shifting the sigmoid curve along the x-axis—it felt important to include it here.
3. As mentioned in point 2, the ranges differ because they represent different things. The probability equation is:

![logistic-regression-probability-info-tab-gray](https://forum.netlogo.org/uploads/default/original/1X/0dc9db368a7126a9d3f099c8fc983342a834846e.png)

Here, `beta-tmin`, `beta-tmax`, and `beta-prec` are the regression coefficients, while `tmin`, `tmax`, and `prec` are the climate variables.

Thanks again for your thoughtful suggestions—they really help improve the model! Looking forward to hearing any other ideas you might have.

---

<div class="post-metadata">

**Author:** ![jzkelter](https://forum.netlogo.org/letter_avatar_proxy/v4/letter/j/a5b964/32.png) [@jzkelter](https://forum.netlogo.org/u/jzkelter)\
**Post date:** [September 30, 2025, 4:32am UTC](https://forum.netlogo.org/t/logonia-plant-growth-response-model-in-netlogo/640/4 "2025-09-30T04:32:55Z")

</div>

I didn’t look carefully enought at the logistic equation to realize that there are four contants and three variables. Makes sense!

I still don’t understand why you would prefer a logistic function. There are plenty of alternatives to a normal distribution which are bounded. Is there a way you could take real data on plant growth, t\_min, t\_max, and precipitation and use it to fit the parameters of the logistic function to it? I don’t see how you could, given that it only gives you a probability of growth, not an amount of growth, but I’m not an expert in statistical models.
