-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpubliccode.yml
More file actions
216 lines (143 loc) · 7.29 KB
/
publiccode.yml
File metadata and controls
216 lines (143 loc) · 7.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
publiccodeYmlVersion: 0.5.0
name: Plasmopy
url: https://github.com/agroscope-ch/plasmopy
landingURL: https://github.com/agroscope-ch/plasmopy/blob/main/README.md
softwareVersion: "1.0"
releaseDate: 2025-07-09
platforms:
- linux
categories:
- other
fundedBy:
- name: Agroscope
uri: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwjxy5z2_cGSAxUW0AIHHbn7BXMQFnoECCIQAQ&url=https%3A%2F%2Fwww.agroscope.admin.ch%2Fagroscope%2Fen%2Fhome.html&usg=AOvVaw38MIoPtH6NosgSpoaWsqSU&opi=89978449
usedBy:
- Agroscope
developmentStatus: stable
softwareType: standalone/desktop
organisation:
uri: https://ld.admin.ch/ou/10003634
name: Agroscope
description:
en:
localisedName: Plasmopy
shortDescription: Plasmopara viticola (downy mildew) infection risk prediction
model for grapevine.
longDescription: >-
Infection prediction modeling of Plasmopara viticola life cycle stages in
vineyards using weather data. This project represents a revisited and
customizable Python version of the VitiMeteo-Plasmopara model in use at
Agroscope (Switzerland) for downy mildew infection forecasting.
Input data - Weather variables
Input data needs to be in the form of timeseries in a semicolon-delimited
CSV file, where the positioning of columns must be precisely kept in the
following order:
1) Date and time of measurement in the %d.%m.%Y %H:%M local timezone
format.
2) Average temperature [°C] in degrees Celsius.
3) Relative humidity [%] in percentages.
4) Rainfall intensity [mm/h] in millimeters per hour.
5) Leaf wetness [min] in minutes of wetness over 10 minutes (by default,
or whatever sampling period is available).
Such timeseries data is publicly available for Switzerland from the
Agroscope weather stations, accessible at Agrometeo.
Examples of input weather data are available in data/input/.
Be sure to update accordingly the most important input-dependent
parameters in config/main.yaml: measurement_time_interval,
computational_time_steps, algorithmic_time_steps.
The file can be managed directly, or through the streamlit web-app, as
detailed in the README.
Optional input data - Spore counts
Input spore counts data (e.g. from qPCR, microscopy, ...) columns must be
ordered and formatted in the following way:
1) Date of daily spore counts in the %d.%m.%Y %H:%M local timezone format.
2) Spore counts.
Infection model
The main.py and infection_model.py Python scripts orchestrate a
computational framework for modeling infection dynamics based on
meteorological and biological parameters. Below, the main components of
the methodology are outlined:
Data Preprocessing and Initialization
The script requires input data formatted as a time-series DataFrame, model
parameters provided via a configuration file, and supporting metadata such
as time zones and column formats. Model parameters are validated and
logged, ensuring consistency across computational stages.
Determination of Oospore Maturation
The get_oospore_maturation_date function identifies the date of oospore
maturation using daily temperature data. If a predefined maturation date
is unavailable, the function computes it based on degree-day thresholds
and writes results to a log file. Missing data or unmet threshold
conditions halt the process.
Infection Event Construction
The function get_infection_events_dictionary compiles and organizes data
into a dictionary containing key infection event datetimes (e.g., oospore
germination, sporulation) and their associated parameters (e.g., sporangia
density, spore lifespan).
Primary Infection Prediction
The run_infection_model function coordinates the infection prediction
process, starting with primary infection stages:
Oospore Germination: Simulated based on relative humidity, temperature
thresholds, and environmental conditions.
Oospore Dispersion: Modeled as a rainfall-driven process with latency
considerations.
Oospore Infection: Dependent on leaf wetness, degree-hour accumulation,
and environmental conditions.
Secondary Infection and Incubation Dynamics
Subsequent infection stages include:
Incubation Period: Duration is computed based on mean temperatures.
Sporulation: Triggered by environmental factors such as humidity,
temperature, and darkness duration.
Sporangia Density: Simulated as a function of temperature and latency
parameters.
Spore Lifespan: Calculated using vapor pressure and lifespan constants.
Secondary Infections: Modeled based on spore availability, temperature
thresholds, and leaf wetness conditions.
Logging and Error Handling
The script employs robust error logging to identify issues such as missing
configuration parameters or unfulfilled biological conditions. Warnings
are issued if model requirements (e.g., maturation thresholds) are unmet.
Output
The final output is a structured pickle dictionary summarizing infection
event properties and datetimes. This dictionary serves as the primary
interface for downstream analyses or reporting.
Additional output files included in data/output/:
PDF and HTML graphs of the simulated infection events across the input
datetime range;
a logfile detailing the simulation data pre-processing, model parameters
and eventual workflow errors;
the post-processing weather variables input file;
a summary description of the successful primary and secondary infection
events.
The output files as well as the model parameters and input files for
running new simulations can be interactively explored and configured
through the streamlit web-app, activated with the command:
make app
documentation: https://github.com/agroscope-ch/plasmopy/blob/main/README.md
apiDocumentation: https://github.com/agroscope-ch/plasmopy/blob/main/MANUAL.md
features:
- Predict Plasmopara viticola life cycle infection stage datetimes based
on weather data.
- Plot Plasmopara viticola life cycle infection stages timeline.
- Print predicted Plasmopara viticola infection stage datetimes datasets
for further analysis.
- Modify and configure all Plasmopara viticola life cycle parameters and
climatic infection thresholds and algorithms.
- Add observed field spore counts data to the model and adapt the
infection risk computation consequently.
- Run all configuration and model simulations through the dedicated
interactive Python-Streamlit web-app. Readily deployable on web-servers.
screenshots:
- https://github.com/agroscope-ch/plasmopy/blob/main/images/plasmopy_screen1.jpg
- https://github.com/agroscope-ch/plasmopy/blob/main/images/plasmopy_screen3.jpg
legal:
license: AGPL-3.0-only
maintenance:
type: internal
contacts:
- name: Livio Ruzzante
email: livio.ruzzante@agroscope.admin.ch
affiliation: Agroscope
localisation:
localisationReady: true
availableLanguages:
- en