Skip to content

Commit 2d304c6

Browse files
Merge branch 'master' of https://github.com/BSC-ES/providentia
2 parents 2163f31 + bec803d commit 2d304c6

40 files changed

+2917
-1992
lines changed

.github/workflows/pytest.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ jobs:
2222
run: conda env update --file environment.yaml
2323
- name: Test with pytest
2424
run: |
25-
conda run -n providentia-env coverage run -m pytest tests
26-
conda run -n providentia-env coverage report -i -m
25+
conda run -n providentia-env_v3.0.0 coverage run -m pytest tests
26+
conda run -n providentia-env_v3.0.0 coverage report -i -m
2727
- name: Generate coverage badge
28-
run: conda run -n providentia-env coverage-badge > coverage.svg
28+
run: conda run -n providentia-env_v3.0.0 coverage-badge > coverage.svg
2929
- name: Update coverage badge
3030
run: |
3131
git config --global user.name "github-actions[bot]"

.gitlab-ci.yml

Lines changed: 0 additions & 13 deletions
This file was deleted.

configurations/actris_vre_cams.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ report_filename = PROVIDENTIA_Report
1313
report_title = Report
1414
temporal_colocation = True
1515
observations_data_label = Nitrogen Dioxide Mass Concentration
16+
forecast = daily
1617
interpolated = false

configurations/test_elina.conf

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
[All]
2+
network = eea/eionet
3+
species = pm10
4+
resolution = hourly
5+
start_date = 20240701
6+
end_date = 20250701
7+
experiments = a00c_cirrus2_pm-regional-000,a9dc2-regional-000 (Oper,OperDa)
8+
calibration_factor = a00c_cirrus2_pm-regional-000(*2),a9dc2-regional-000(*1)
9+
temporal_colocation = True
10+
spatial_colocation = True
11+
statistic_mode = Spatial|Temporal
12+
timeseries_statistic_aggregation=Mean
13+
report_type = debug
14+
report_summary = True
15+
harmonise_summary = False
16+
report_stations = False
17+
report_title = Providentia BDRC vs OperDa Report Eionet report
18+
report_filename = BDRC_vs_OperDA_eionet_filtered15_stations_dcal_a00c_150925
19+
20+
[[Selected_stations]]
21+
station_reference = keep: ES2024A,ES2044A,ES1767A,ES1768A,ES1920A,ES2002A,ES1955A,PT02004,PT02018,PT02022,PT02019,PT03102,PT03099,PT04002,PT05008,ES1878A,ES1781A,ES1593A,ES1751A,ES1750A,ES1370A,ES1549A,ES1996A,ES1921A,ES1885A,ES1825A,ES1831A,ES1604A,ES1827A,ES0296A,ES1518A,ES1093A,ES1517A,ES1828A,ES0694A,ES1275A,FR08714,FR08016,FR02043,FR03071,FR03069,FR03070,FR24009,FR24036,FR24023,FR41002,FR41001,IT1277A,IT1796A,IT2167A,SI0038A,RH0115,RH0108,MT00007 ||
22+
map_extent = -25, 45, 20, 50
23+
24+
[[Canaria]]
25+
station_reference = keep: ES2024A,ES2044A,ES1767A,ES1768A,ES1920A,ES2002A,ES1955A ||
26+
map_extent = -20, -10, 25, 32
27+
28+
[[West Mediterrenean]]
29+
station_reference = keep: PT02004,PT02018,PT02022,PT02019,PT03102,PT03099,PT04002,PT05008,ES1878A,ES1781A,ES1593A,ES1751A,ES1750A,ES1370A,ES1549A,ES1996A,ES1921A,ES1885A ||
30+
map_extent = -20, 20, 35, 50
31+
32+
[[Balears]]
33+
station_reference = keep: ES1825A,ES1831A,ES1604A,ES1827A,ES0296A,ES1518A,ES1093A,ES1517A,ES1828A ||
34+
map_extent = -5, 8, 38, 42
35+
36+
[[Central Mediterrenean]]
37+
station_reference = keep: ES0694A,ES1275A,FR08714,FR08016,FR02043,FR03071,FR03069,FR03070,FR24009,FR24036,FR24023,FR41002,FR41001,IT1277A ||
38+
map_extent = -5, 20, 20, 45
39+
40+
[[Eastern Mediterranean]]
41+
station_reference = keep: IT1796A,IT2167A,SI0038A,RH0115,RH0108,MT00007 ||
42+
map_extent = 0, 25, 30, 50
43+
44+
[[Extra Mediterranean]]
45+
station_reference = keep: GR0120A,BG0056A,BG0071A,BG0075A,CY0002R ||
46+
map_extent = 10, 45, 25, 50

configurations/test_forecast.conf

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ end_date = 20230201
77
experiments = a59g-regional-000
88
temporal_colocation = True
99
spatial_colocation = True
10-
statistic_mode = Temporal|Spatial
10+
statistic_mode = Spatial|Temporal
1111
forecast = daily
1212
#forecast = combined
1313
#forecast = day
14-
report_type = operational
14+
report_type = operational
15+
interpolated = True
1.24 KB
Binary file not shown.
152 Bytes
Binary file not shown.
2.02 KB
Binary file not shown.

docs/build/html/Interpolation.html

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@
5353
<li class="toctree-l3"><a class="reference internal" href="#starting-an-interpolation">Starting an Interpolation</a></li>
5454
<li class="toctree-l3"><a class="reference internal" href="#checking-output">Checking output</a></li>
5555
<li class="toctree-l3"><a class="reference internal" href="#define-experiments">Define experiments</a></li>
56-
<li class="toctree-l3"><a class="reference internal" href="#additional-considerations">Additional Considerations</a></li>
56+
<li class="toctree-l3"><a class="reference internal" href="#additional-considerations">Additional considerations</a></li>
57+
<li class="toctree-l3"><a class="reference internal" href="#different-resolutions-between-model-and-observations">Different resolutions between model and observations</a></li>
5758
</ul>
5859
</li>
5960
<li class="toctree-l2"><a class="reference internal" href="Dashboard.html">Dashboard</a></li>
@@ -161,11 +162,15 @@ <h2>Checking output<a class="headerlink" href="#checking-output" title="Link to
161162
<p>If you are using a machine that allows both types of paths, it is recommended to list your <code class="docutils literal notranslate"><span class="pre">gpfs</span></code> paths first. This is because when reading data from the <code class="docutils literal notranslate"><span class="pre">esarchive</span></code>, a major limitation on the read time is the transfer speed between the 2 machines, reading directly from the <code class="docutils literal notranslate"><span class="pre">gpfs</span></code> directory circumvents this therefore.</p>
162163
</section>
163164
<section id="additional-considerations">
164-
<h2>Additional Considerations<a class="headerlink" href="#additional-considerations" title="Link to this heading"></a></h2>
165+
<h2>Additional considerations<a class="headerlink" href="#additional-considerations" title="Link to this heading"></a></h2>
165166
<p>When checking if an experiment is stored in a location with the corresponding domain, resolution, and species, consider that the species might not always be listed under the same name.</p>
166167
<p>The file <code class="docutils literal notranslate"><span class="pre">internal/mapping_species.yaml</span></code> contains a dictionary mapping original species names to their alternative names.</p>
167168
<p>Note that the mapping species file is only used when the species name from the configuration file is not found in the expected location, meaning Povidentia first looks for the species written in the configuration file. If it is not found, it then searches for the corresponding mapped species in <code class="docutils literal notranslate"><span class="pre">mapping_species.yaml</span></code>.</p>
168169
</section>
170+
<section id="different-resolutions-between-model-and-observations">
171+
<h2>Different resolutions between model and observations<a class="headerlink" href="#different-resolutions-between-model-and-observations" title="Link to this heading"></a></h2>
172+
<p>When the resolutions are different the model data downsamples to the observations resolution. For instance, if we have 3 hourly model data and daily observations, the model data will be resampled to daily. For this to happen, we need to set the resolution in our configuration file as the obervations frequency.</p>
173+
</section>
169174
</section>
170175

171176

docs/build/html/Tips-and-tricks-for-developers.html

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
<li class="toctree-l2"><a class="reference internal" href="#check-that-all-reports-are-created">Check that all reports are created</a></li>
6161
<li class="toctree-l2"><a class="reference internal" href="#run-providentia-inside-docker-container">Run Providentia inside Docker container</a></li>
6262
<li class="toctree-l2"><a class="reference internal" href="#generate-the-docs">Generate the docs</a></li>
63-
<li class="toctree-l2"><a class="reference internal" href="#create-providentia-env-v2-4-0-in-mn5">Create providentia-env_v2.4.0 in MN5</a></li>
63+
<li class="toctree-l2"><a class="reference internal" href="#create-providentia-env-v3-0-0-in-mn5">Create providentia-env_v3.0.0 in MN5</a></li>
6464
<li class="toctree-l2"><a class="reference internal" href="#create-local-environment">Create local environment</a></li>
6565
<li class="toctree-l2"><a class="reference internal" href="#memory-profiling-code">Memory Profiling Code</a><ul>
6666
<li class="toctree-l3"><a class="reference internal" href="#setup">Setup</a></li>
@@ -106,7 +106,7 @@ <h1>Tips and tricks for developers<a class="headerlink" href="#tips-and-tricks-f
106106
<li><p><a class="reference internal" href="#check-that-all-reports-are-created">Check that all reports are created</a></p></li>
107107
<li><p><a class="reference internal" href="#run-providentia-inside-docker-container">Run Providentia inside Docker container</a></p></li>
108108
<li><p><a class="reference internal" href="#generate-the-docs">Generate the docs</a></p></li>
109-
<li><p><a class="reference internal" href="#create-providentia-env-v2-4-0-in-mn5">Create providentia-env_v2.4.0 in MN5</a></p></li>
109+
<li><p><a class="reference internal" href="#create-providentia-env-v3-0-0-in-mn5">Create providentia-env_v3.0.0 in MN5</a></p></li>
110110
<li><p><a class="reference internal" href="#create-local-environment">Create local environment</a></p></li>
111111
<li><p><a class="reference internal" href="#memory-profiling-code">Memory Profiling Code</a></p></li>
112112
</ul>
@@ -269,7 +269,7 @@ <h2>Migration<a class="headerlink" href="#migration" title="Link to this heading
269269
<section id="run-tests">
270270
<h2>Run tests<a class="headerlink" href="#run-tests" title="Link to this heading"></a></h2>
271271
<p>To run all the pipeline tests in your local machine, just run:</p>
272-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">conda</span> <span class="n">activate</span> <span class="n">providentia</span><span class="o">-</span><span class="n">env</span>
272+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">conda</span> <span class="n">activate</span> <span class="n">providentia</span><span class="o">-</span><span class="n">env_v3</span><span class="mf">.0.0</span>
273273
<span class="n">pytest</span> <span class="n">tests</span>
274274
</pre></div>
275275
</div>
@@ -358,15 +358,17 @@ <h2>Run Providentia inside Docker container<a class="headerlink" href="#run-prov
358358
<section id="generate-the-docs">
359359
<h2>Generate the docs<a class="headerlink" href="#generate-the-docs" title="Link to this heading"></a></h2>
360360
<p>First edit the .md files under docs/source, then navigate to docs and simply run:</p>
361-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">make</span> <span class="n">clean</span>
361+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">docs</span>
362+
<span class="n">conda</span> <span class="n">activate</span> <span class="n">providentia</span><span class="o">-</span><span class="n">env_v3</span><span class="mf">.0.0</span>
363+
<span class="n">make</span> <span class="n">clean</span>
362364
<span class="n">make</span> <span class="n">html</span>
363365
</pre></div>
364366
</div>
365367
</section>
366-
<section id="create-providentia-env-v2-4-0-in-mn5">
367-
<h2>Create providentia-env_v2.4.0 in MN5<a class="headerlink" href="#create-providentia-env-v2-4-0-in-mn5" title="Link to this heading"></a></h2>
368-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">conda</span> <span class="n">create</span> <span class="o">-</span><span class="n">p</span> <span class="o">/</span><span class="n">gpfs</span><span class="o">/</span><span class="n">projects</span><span class="o">/</span><span class="n">bsc32</span><span class="o">/</span><span class="n">repository</span><span class="o">/</span><span class="n">apps</span><span class="o">/</span><span class="n">conda_envs</span><span class="o">/</span><span class="n">providentia</span><span class="o">-</span><span class="n">env_v2</span><span class="mf">.4.0</span> <span class="o">-</span><span class="n">y</span> <span class="n">python</span><span class="o">=</span><span class="mf">3.11.5</span> <span class="o">-</span><span class="n">c</span> <span class="n">conda</span><span class="o">-</span><span class="n">forge</span> <span class="o">--</span><span class="n">override</span><span class="o">-</span><span class="n">channels</span>
369-
<span class="n">conda</span> <span class="n">activate</span> <span class="o">/</span><span class="n">gpfs</span><span class="o">/</span><span class="n">projects</span><span class="o">/</span><span class="n">bsc32</span><span class="o">/</span><span class="n">repository</span><span class="o">/</span><span class="n">apps</span><span class="o">/</span><span class="n">conda_envs</span><span class="o">/</span><span class="n">providentia</span><span class="o">-</span><span class="n">env_v2</span><span class="mf">.4.0</span>
368+
<section id="create-providentia-env-v3-0-0-in-mn5">
369+
<h2>Create providentia-env_v3.0.0 in MN5<a class="headerlink" href="#create-providentia-env-v3-0-0-in-mn5" title="Link to this heading"></a></h2>
370+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">conda</span> <span class="n">create</span> <span class="o">-</span><span class="n">p</span> <span class="o">/</span><span class="n">gpfs</span><span class="o">/</span><span class="n">projects</span><span class="o">/</span><span class="n">bsc32</span><span class="o">/</span><span class="n">repository</span><span class="o">/</span><span class="n">apps</span><span class="o">/</span><span class="n">conda_envs</span><span class="o">/</span><span class="n">providentia</span><span class="o">-</span><span class="n">env_v3</span><span class="mf">.0.0</span> <span class="o">-</span><span class="n">y</span> <span class="n">python</span><span class="o">=</span><span class="mf">3.11.5</span> <span class="o">-</span><span class="n">c</span> <span class="n">conda</span><span class="o">-</span><span class="n">forge</span> <span class="o">--</span><span class="n">override</span><span class="o">-</span><span class="n">channels</span>
371+
<span class="n">conda</span> <span class="n">activate</span> <span class="o">/</span><span class="n">gpfs</span><span class="o">/</span><span class="n">projects</span><span class="o">/</span><span class="n">bsc32</span><span class="o">/</span><span class="n">repository</span><span class="o">/</span><span class="n">apps</span><span class="o">/</span><span class="n">conda_envs</span><span class="o">/</span><span class="n">providentia</span><span class="o">-</span><span class="n">env_v3</span><span class="mf">.0.0</span>
370372
<span class="n">conda</span> <span class="n">install</span> <span class="o">-</span><span class="n">c</span> <span class="n">conda</span><span class="o">-</span><span class="n">forge</span> <span class="n">cartopy</span> <span class="o">--</span><span class="n">override</span><span class="o">-</span><span class="n">channels</span>
371373
<span class="n">conda</span> <span class="n">install</span> <span class="o">-</span><span class="n">c</span> <span class="n">conda</span><span class="o">-</span><span class="n">forge</span> <span class="n">jupyterlab</span> <span class="o">--</span><span class="n">override</span><span class="o">-</span><span class="n">channels</span>
372374
<span class="n">conda</span> <span class="n">install</span> <span class="o">-</span><span class="n">c</span> <span class="n">conda</span><span class="o">-</span><span class="n">forge</span> <span class="n">ghostscript</span> <span class="o">--</span><span class="n">override</span><span class="o">-</span><span class="n">channels</span>
@@ -377,16 +379,16 @@ <h2>Create providentia-env_v2.4.0 in MN5<a class="headerlink" href="#create-prov
377379
<section id="create-local-environment">
378380
<h2>Create local environment<a class="headerlink" href="#create-local-environment" title="Link to this heading"></a></h2>
379381
<p>In order to test modules with pip, you need to create an environment. Once activated, you can start installing modules using either <code class="docutils literal notranslate"><span class="pre">pip</span></code> or <code class="docutils literal notranslate"><span class="pre">conda</span></code>, as in this example:</p>
380-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">conda</span> <span class="n">create</span> <span class="o">-</span><span class="n">n</span> <span class="n">providentia</span><span class="o">-</span><span class="n">env</span> <span class="n">python</span><span class="o">=</span><span class="mf">3.11.5</span> <span class="o">-</span><span class="n">c</span> <span class="n">conda</span><span class="o">-</span><span class="n">forge</span> <span class="o">--</span><span class="n">override</span><span class="o">-</span><span class="n">channels</span>
381-
<span class="n">conda</span> <span class="n">activate</span> <span class="n">providentia</span><span class="o">-</span><span class="n">env</span>
382+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">conda</span> <span class="n">create</span> <span class="o">-</span><span class="n">n</span> <span class="n">providentia</span><span class="o">-</span><span class="n">env_v3</span><span class="mf">.0.0</span> <span class="n">python</span><span class="o">=</span><span class="mf">3.11.5</span> <span class="o">-</span><span class="n">c</span> <span class="n">conda</span><span class="o">-</span><span class="n">forge</span> <span class="o">--</span><span class="n">override</span><span class="o">-</span><span class="n">channels</span>
383+
<span class="n">conda</span> <span class="n">activate</span> <span class="n">providentia</span><span class="o">-</span><span class="n">env_v3</span><span class="mf">.0.0</span>
382384
<span class="n">conda</span> <span class="n">install</span> <span class="o">-</span><span class="n">c</span> <span class="n">conda</span><span class="o">-</span><span class="n">forge</span> <span class="n">cartopy</span> <span class="o">--</span><span class="n">override</span><span class="o">-</span><span class="n">channels</span>
383385
<span class="n">conda</span> <span class="n">install</span> <span class="o">-</span><span class="n">c</span> <span class="n">conda</span><span class="o">-</span><span class="n">forge</span> <span class="n">jupyterlab</span> <span class="o">--</span><span class="n">override</span><span class="o">-</span><span class="n">channels</span>
384386
<span class="n">conda</span> <span class="n">install</span> <span class="o">-</span><span class="n">c</span> <span class="n">conda</span><span class="o">-</span><span class="n">forge</span> <span class="n">ghostscript</span> <span class="o">--</span><span class="n">override</span><span class="o">-</span><span class="n">channels</span>
385387
<span class="n">conda</span> <span class="n">install</span> <span class="o">-</span><span class="n">c</span> <span class="n">conda</span><span class="o">-</span><span class="n">forge</span> <span class="n">dask</span> <span class="o">--</span><span class="n">override</span><span class="o">-</span><span class="n">channels</span>
386388
<span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">r</span> <span class="n">requirements</span><span class="o">.</span><span class="n">txt</span>
387389
</pre></div>
388390
</div>
389-
<p>Here we create an environment called <code class="docutils literal notranslate"><span class="pre">providentia-env</span></code> with the Python version 3.11.5, and we install the latest version of Cartopy (with conda, with pip it gives problems), and the Python packages from <code class="docutils literal notranslate"><span class="pre">requirements.txt</span></code> using pip.</p>
391+
<p>Here we create an environment called <code class="docutils literal notranslate"><span class="pre">providentia-env_v3.00</span></code> with the Python version 3.11.5, and we install the latest version of Cartopy (with conda, with pip it gives problems), and the Python packages from <code class="docutils literal notranslate"><span class="pre">requirements.txt</span></code> using pip.</p>
390392
<p>pip install memray</p>
391393
<p>memray run -o result.bin python your_script.py
392394
memray flamegraph result.bin # Creates a flamegraph

0 commit comments

Comments
 (0)