Expand description
§Vanaspati
Vanaspati (वनस्पति — Sanskrit for “lord of the forest, plant/tree”) — botany and plant behavior engine for the AGNOS ecosystem.
Provides plant growth models, photosynthesis, seasonal cycles, root systems, pollination, seed dispersal, biomass allocation, mortality, and ecosystem dynamics.
§Modules
| Module | Description |
|---|---|
growth | Logistic growth model with stage progression and species presets |
photosynthesis | Light response curves, C3/C4/CAM pathways, temperature factors |
season | Day-of-year mapping, latitude-aware daylight hours, growth modifiers |
root | Root system types, depth/spread, water uptake, soil stabilization |
pollination | Pollination methods and distance-based probability |
dispersal | Seed dispersal methods, distance kernels, seed profiles |
biomass | Carbon allocation across plant organs, allometric scaling |
mortality | Age, drought, frost, competition mortality models |
decomposition | Litter decay, temperature/moisture factors, nutrient release |
water | Soil water storage, infiltration, drainage, evaporation |
stomata | Ball-Berry stomatal conductance, transpiration, VPD, boundary layer |
phenology | Growing degree days, chilling hours, lifecycle event triggers |
nitrogen | Soil N pools, mineralization, uptake, leaching, N stress |
herbivory | Grazing/browsing biomass removal, compensatory growth |
fire | Fire adaptation strategies, bark protection, post-fire regeneration |
mycorrhiza | Plant-fungal symbiosis, nutrient enhancement, hyphal networks |
allelopathy | Chemical competition, allelochemical dose-response |
succession | Pioneer/climax dynamics, shade tolerance, establishment |
reproduction | Vegetative reproduction — runners, rhizomes, clonal spread |
ecosystem | Lotka-Volterra competition, Shannon diversity, NPP |
bridge | Cross-crate conversions for badal, ushma, jantu |
error | Error types |
§Quick Start
use vanaspati::{GrowthModel, Season, photosynthesis_rate, growth_stage, daylight_hours_at};
// Grow an oak for a year
let oak = GrowthModel::oak();
let height = oak.height_at_day(365.0);
let stage = growth_stage(height, oak.max_height);
// Photosynthesis under full sun
let rate = photosynthesis_rate(20.0, 0.05, 800.0);
// Latitude-aware daylight
let hours = daylight_hours_at(172, 45.0); // summer solstice, 45°N
assert!(hours > 15.0);Re-exports§
pub use error::Result;pub use error::VanaspatiError;pub use growth::GrowthModel;pub use growth::GrowthStage;pub use growth::growth_stage;pub use growth::water_stress_growth_factor;pub use photosynthesis::PhotosynthesisPathway;pub use photosynthesis::canopy_light_at_depth;pub use photosynthesis::co2_factor;pub use photosynthesis::light_compensation_point;pub use photosynthesis::light_interception;pub use photosynthesis::pathway_params;pub use photosynthesis::photosynthesis_rate;pub use photosynthesis::photosynthesis_rate_co2;pub use photosynthesis::shaded_photosynthesis_rate;pub use photosynthesis::temperature_factor;pub use photosynthesis::temperature_factor_c4;pub use photosynthesis::temperature_factor_cam;pub use photosynthesis::understory_light_fraction;pub use photosynthesis::water_stress_factor;pub use photosynthesis::water_use_efficiency;pub use season::Season;pub use season::daylight_hours_at;pub use season::growth_modifier_at;pub use root::RootSystem;pub use root::RootType;pub use pollination::PollinationMethod;pub use pollination::pollination_probability;pub use dispersal::DispersalMethod;pub use dispersal::SeedProfile;pub use dispersal::dispersal_distance;pub use dispersal::dispersal_probability;pub use biomass::AllocationStrategy;pub use biomass::BiomassPool;pub use biomass::allocate;pub use biomass::height_to_diameter;pub use biomass::height_to_leaf_area;pub use mortality::MortalityCause;pub use mortality::age_mortality_rate;pub use mortality::disease_mortality;pub use mortality::drought_mortality;pub use mortality::fire_mortality;pub use mortality::frost_mortality;pub use mortality::self_thinning_mortality;pub use mortality::windthrow_mortality;pub use fire::FireStrategy;pub use fire::bark_protection;pub use fire::fire_return_interval_years;pub use fire::post_fire_establishment;pub use fire::resprout_vigor;pub use fire::serotinous_release;pub use mycorrhiza::MycorrhizalType;pub use mycorrhiza::carbon_cost_fraction;pub use mycorrhiza::colonization_rate;pub use mycorrhiza::enhanced_n_uptake;pub use mycorrhiza::hyphal_reach_m;pub use mycorrhiza::net_benefit_ratio;pub use mycorrhiza::nutrient_enhancement;pub use allelopathy::AllelopathicPotency;pub use allelopathy::daily_input as allelopathic_input;pub use allelopathy::germination_inhibition;pub use allelopathy::growth_inhibition;pub use allelopathy::production_rate as allelopathic_production_rate;pub use allelopathy::soil_concentration;pub use water::SoilType;pub use water::SoilWater;pub use water::WaterFluxes;pub use water::daily_water_balance;pub use water::infiltration_rate;pub use water::saturated_conductivity;pub use water::soil_evaporation;pub use stomata::StomatalBehavior;pub use stomata::ball_berry_conductance;pub use stomata::boundary_layer_conductance;pub use stomata::drought_stomatal_factor;pub use stomata::instantaneous_wue;pub use stomata::saturation_vapor_pressure;pub use stomata::total_leaf_conductance;pub use stomata::transpiration_rate;pub use stomata::vapor_pressure_deficit;pub use stomata::vpd_stomatal_factor;pub use phenology::PhenologicalEvent;pub use phenology::accumulated_chill;pub use phenology::accumulated_gdd;pub use phenology::chilling_contribution;pub use phenology::dormancy_broken;pub use phenology::dormancy_onset_triggered;pub use phenology::event_reached;pub use phenology::event_to_growth_stage;pub use phenology::gdd_threshold;pub use phenology::growing_degree_days;pub use phenology::phenological_progress;pub use phenology::senescence_triggered;pub use decomposition::LitterType;pub use decomposition::SoilCarbon;pub use decomposition::SomFluxes;pub use decomposition::SomPool;pub use decomposition::base_decomposition_rate;pub use decomposition::daily_decomposition_rate;pub use decomposition::daily_som_turnover;pub use decomposition::half_life_days;pub use decomposition::mass_decomposed;pub use decomposition::moisture_decomposition_factor;pub use decomposition::nitrogen_release;pub use decomposition::remaining_mass;pub use decomposition::som_transfer_fractions;pub use decomposition::som_turnover_rate;pub use decomposition::temperature_decomposition_factor;pub use respiration::RespirationComponent;pub use respiration::growth_respiration;pub use respiration::growth_respiration_fraction;pub use respiration::maintenance_respiration;pub use respiration::net_primary_productivity_carbon;pub use respiration::organ_respiration_coefficient;pub use respiration::partitioned_maintenance_respiration;pub use respiration::total_autotrophic_respiration;pub use lai::LeafHabit;pub use lai::drought_leaf_retention;pub use lai::effective_lai;pub use lai::frost_leaf_loss;pub use lai::lai_from_biomass;pub use lai::max_lai;pub use lai::seasonal_lai_multiplier;pub use evapotranspiration::penman_monteith_et;pub use evapotranspiration::psychrometric_constant;pub use evapotranspiration::reference_et;pub use evapotranspiration::surface_resistance;pub use evapotranspiration::svp_slope;pub use pft::PftParams;pub use pft::PftType;pub use nitrogen::NitrogenFluxes;pub use nitrogen::SoilNitrogen;pub use nitrogen::critical_n_concentration;pub use nitrogen::daily_nitrogen_balance;pub use nitrogen::mineralization_rate;pub use nitrogen::nitrogen_leaching;pub use nitrogen::nitrogen_stress_factor;pub use nitrogen::nitrogen_uptake;pub use nitrogen::plant_n_demand;pub use herbivory::HerbivoryType;pub use herbivory::biomass_removal;pub use herbivory::compensatory_growth_factor;pub use herbivory::herbivory_mortality;pub use herbivory::organ_vulnerability;pub use herbivory::total_biomass_removed;pub use succession::SuccessionalStage;pub use succession::competitive_displacement;pub use succession::effective_growth_multiplier;pub use succession::establishment_probability;pub use succession::max_growth_rate_multiplier;pub use succession::shade_tolerance;pub use succession::typical_lifespan_years;pub use reproduction::VegetativeMethod;pub use reproduction::base_ramet_rate;pub use reproduction::clonal_area_m2;pub use reproduction::parent_cost_kg;pub use reproduction::ramet_cost_fraction;pub use reproduction::resource_limited_ramets;pub use reproduction::spread_distance_m;pub use ecosystem::competition_growth;pub use ecosystem::net_primary_productivity;pub use ecosystem::shannon_diversity;pub use bridge::allelopathy_growth_factor;pub use bridge::atmosphere_to_photosynthesis_inputs;pub use bridge::canopy_to_habitat_score;pub use bridge::evapotranspiration_cooling;pub use bridge::fire_weather_risk;pub use bridge::frost_risk_to_mortality;pub use bridge::frost_to_dormancy;pub use bridge::growing_conditions_to_growth_multiplier;pub use bridge::herbivore_to_biomass_loss;pub use bridge::humidity_to_vpd;pub use bridge::light_to_successional_advantage;pub use bridge::mycorrhiza_enhanced_uptake;pub use bridge::nitrogen_to_growth_stress;pub use bridge::rainfall_to_water_supply;pub use bridge::seed_production_to_food;pub use bridge::soil_temperature_to_growth_factor;pub use bridge::soil_temperature_to_root_activity;pub use bridge::soil_water_to_growth_stress;pub use bridge::soil_water_to_photosynthesis_stress;pub use bridge::solar_to_par;pub use bridge::wet_bulb_to_heat_stress;pub use bridge::wind_to_boundary_conductance;pub use bridge::wind_to_dispersal_speed;
Modules§
- allelopathy
- Allelopathy — chemical competition between plants.
- biomass
- bridge
- Cross-crate primitive-value conversions for AGNOS science crates.
- decomposition
- dispersal
- ecosystem
- error
- evapotranspiration
- Evapotranspiration — Penman-Monteith energy-balance model.
- fire
- Fire ecology — fire adaptation traits, bark protection, post-fire regeneration, and serotiny.
- growth
- herbivory
- Herbivory pressure — grazing, browsing, and plant compensatory responses.
- integration
- Integration APIs for downstream consumers (soorat rendering). Integration APIs for downstream consumers.
- lai
- Dynamic leaf area index — seasonal LAI changes, stress-induced leaf loss, and the connection between leaf biomass and canopy light interception.
- mortality
- mycorrhiza
- Mycorrhizal networks — plant-fungal symbiosis for nutrient exchange.
- nitrogen
- Soil nitrogen cycling — mineralization, plant uptake, leaching, and nitrogen limitation on plant growth. Nitrogen is the most commonly limiting nutrient in terrestrial ecosystems.
- pft
- Plant Functional Types (PFTs) — standardized species parameterization.
- phenology
- photosynthesis
- pollination
- reproduction
- Vegetative reproduction — clonal spread via runners, rhizomes, root sprouting, and layering.
- respiration
- Plant respiration — maintenance and growth respiration for carbon budget.
- root
- season
- stomata
- Stomatal conductance — the valve controlling gas exchange between leaf interior and atmosphere. Stomata regulate the trade-off between CO₂ uptake (photosynthesis) and water loss (transpiration).
- succession
- Succession dynamics — pioneer vs. climax species, shade tolerance, and community replacement over time.
- water
- Soil water storage and hydrology — precipitation, infiltration, drainage, root uptake, and water balance for plant-soil systems.