rc-qlc 0.3.20__cp310-cp310-macosx_11_0_arm64.whl → 0.3.25__cp310-cp310-macosx_11_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. qlc/cli/__init__.py +100 -9
  2. qlc/cli/installer.py +23 -5
  3. qlc/cli/qlc_main.py +54 -32
  4. qlc/cli/qlc_py_main.py +43 -38
  5. qlc/config/json/qlc_config.json +94 -10
  6. qlc/config/nml/mars_A1_sfc.nml +4 -5
  7. qlc/config/nml/mars_A3_sfc.nml +0 -1
  8. qlc/config/nml/mars_B1_pl.nml +2 -2
  9. qlc/{examples/cams_case_1/config/nml/mars_A3_sfc.nml → config/nml/mars_B1_sfc.nml} +7 -8
  10. qlc/config/nml/mars_C1_pl.nml +1 -1
  11. qlc/{examples/cams_case_1/config/nml/mars_C1_pl.nml → config/nml/mars_C1_sfc.nml} +7 -8
  12. qlc/config/nml/mars_C2_pl.nml +1 -1
  13. qlc/{examples/cams_case_1/config/qlc_cams.conf → config/qlc.conf} +80 -18
  14. qlc/doc/CONTRIBUTING.md +8 -8
  15. qlc/doc/README.md +101 -65
  16. qlc/doc/USAGE.md +68 -29
  17. qlc/examples/cams_case_1/mod/b2rn/2018/b2rn_20181201-20181221_B1_pl.grb +0 -0
  18. qlc/examples/cams_case_1/mod/b2rn/2018/b2rn_20181201-20181221_C1_sfc.grb +0 -0
  19. qlc/examples/cams_case_1/mod/b2ro/2018/b2ro_20181201-20181221_B1_pl.grb +0 -0
  20. qlc/examples/cams_case_1/mod/b2ro/2018/b2ro_20181201-20181221_C1_sfc.grb +0 -0
  21. qlc/install.py +260 -101
  22. qlc/py/__main__.cpython-310-darwin.so +0 -0
  23. qlc/py/averaging.cpython-310-darwin.so +0 -0
  24. qlc/py/bias_plots.cpython-310-darwin.so +0 -0
  25. qlc/py/control.cpython-310-darwin.so +0 -0
  26. qlc/py/io.cpython-310-darwin.so +0 -0
  27. qlc/py/loadmod.cpython-310-darwin.so +0 -0
  28. qlc/py/loadobs.cpython-310-darwin.so +0 -0
  29. qlc/py/logging_utils.cpython-310-darwin.so +0 -0
  30. qlc/py/map_plots.cpython-310-darwin.so +0 -0
  31. qlc/py/matched.cpython-310-darwin.so +0 -0
  32. qlc/py/plot_config.cpython-310-darwin.so +0 -0
  33. qlc/py/plotting.cpython-310-darwin.so +0 -0
  34. qlc/py/plugin_loader.cpython-310-darwin.so +0 -0
  35. qlc/py/processing.cpython-310-darwin.so +0 -0
  36. qlc/py/scatter_plots.cpython-310-darwin.so +0 -0
  37. qlc/py/stations.cpython-310-darwin.so +0 -0
  38. qlc/py/statistics.cpython-310-darwin.so +0 -0
  39. qlc/py/style.cpython-310-darwin.so +0 -0
  40. qlc/py/timeseries_plots.cpython-310-darwin.so +0 -0
  41. qlc/py/utils.cpython-310-darwin.so +0 -0
  42. qlc/py/version.cpython-310-darwin.so +0 -0
  43. qlc/sh/qlc_A1.sh +29 -11
  44. qlc/sh/qlc_B1a.sh +1 -18
  45. qlc/sh/qlc_B2.sh +8 -1
  46. qlc/sh/qlc_C5.sh +19 -30
  47. qlc/sh/qlc_D1.sh +291 -51
  48. qlc/sh/qlc_Z1.sh +6 -6
  49. qlc/sh/qlc_batch.sh +61 -0
  50. qlc/sh/qlc_common_functions.sh +17 -29
  51. qlc/sh/qlc_main.sh +32 -26
  52. qlc/sh/tex_template/beamercolorthemeCAMS2_35.sty +51 -0
  53. qlc/sh/tex_template/beamerfontthemeCAMS2_35.sty +166 -0
  54. qlc/sh/tex_template/beamerthemeCAMS2_35.sty +25 -0
  55. qlc/sh/tex_template/subcaption.sty +170 -0
  56. qlc/sh/tex_template/template.tex +109 -0
  57. rc_qlc-0.3.25.dist-info/METADATA +178 -0
  58. rc_qlc-0.3.25.dist-info/RECORD +102 -0
  59. qlc/config/json/qlc_config_example_1a_all-obs.json +0 -237
  60. qlc/config/json/qlc_config_example_1b_all-mod.json +0 -353
  61. qlc/config/json/qlc_config_example_1c_all-coll.json +0 -266
  62. qlc/config/json/qlc_config_example_2a_all-obs.json +0 -237
  63. qlc/config/json/qlc_config_example_2b_all-mod.json +0 -353
  64. qlc/config/json/qlc_config_example_2c_all-coll.json +0 -265
  65. qlc/config/json/qlc_config_example_3a-us_obs.json +0 -82
  66. qlc/config/json/qlc_config_example_3b-us_mod.json +0 -122
  67. qlc/config/json/qlc_config_example_3c-us_coll.json +0 -46
  68. qlc/config/json/qlc_config_example_4a_eu-obs.json +0 -41
  69. qlc/config/json/qlc_config_example_4b_eu-mod.json +0 -122
  70. qlc/config/json/qlc_config_example_4c_eu-coll.json +0 -45
  71. qlc/config/qlc_cams.conf +0 -26
  72. qlc/config/qlc_test.conf +0 -26
  73. qlc/config/qlc_tex.conf +0 -107
  74. qlc/examples/cams_case_1/config/json/qlc_config.json +0 -41
  75. qlc/examples/cams_case_1/config/nml/mars_B1_pl.nml +0 -19
  76. qlc/examples/cams_case_1/mod/b2ro/2018/b2ro_20181215-20181231_A3_sfc.grb +0 -0
  77. qlc/examples/cams_case_1/mod/iqi9/2018/iqi9_20181215-20181231_A3_sfc.grb +0 -0
  78. qlc/sh/qlc_start.sh +0 -23
  79. qlc/sh/qlc_start_batch.sh +0 -46
  80. rc_qlc-0.3.20.dist-info/METADATA +0 -142
  81. rc_qlc-0.3.20.dist-info/RECORD +0 -113
  82. {rc_qlc-0.3.20.dist-info → rc_qlc-0.3.25.dist-info}/WHEEL +0 -0
  83. {rc_qlc-0.3.20.dist-info → rc_qlc-0.3.25.dist-info}/entry_points.txt +0 -0
  84. {rc_qlc-0.3.20.dist-info → rc_qlc-0.3.25.dist-info}/licenses/LICENSE +0 -0
  85. {rc_qlc-0.3.20.dist-info → rc_qlc-0.3.25.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,178 @@
1
+ Metadata-Version: 2.4
2
+ Name: rc-qlc
3
+ Version: 0.3.25
4
+ Summary: Quick Look Content (QLC): Model–Observation Comparison Suite for Use with CAMS
5
+ Home-page: https://pypi.org/project/qlc/
6
+ Author-email: ResearchConcepts io GmbH <contact@researchconcepts.io>
7
+ License: MIT
8
+ Requires-Python: >=3.10
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: numpy
12
+ Requires-Dist: pandas
13
+ Requires-Dist: matplotlib
14
+ Requires-Dist: xarray
15
+ Requires-Dist: netCDF4
16
+ Requires-Dist: scipy
17
+ Requires-Dist: cartopy
18
+ Requires-Dist: tqdm
19
+ Provides-Extra: build
20
+ Requires-Dist: tomli; extra == "build"
21
+ Provides-Extra: test
22
+ Requires-Dist: pytest; extra == "test"
23
+ Provides-Extra: cams
24
+ Dynamic: home-page
25
+ Dynamic: license-file
26
+
27
+ # Quick Look Content (QLC): An Automated Model–Observation Comparison Suite
28
+
29
+ **Quick Look Content (QLC)** is a powerful, command-line driven suite for model–observation comparisons, designed to automate the evaluation of climate and air quality model data. It is optimized for use with CAMS (Cop Copernicus Atmospheric Monitoring Service) datasets but is flexible enough for general use cases.
30
+
31
+ The suite streamlines the entire post-processing workflow, from data retrieval and collocation to statistical analysis and the generation of publication-quality figures and reports.
32
+
33
+ | Package | Status |
34
+ |---------|--------|
35
+ | [rc-qlc on PyPI](https://pypi.org/project/rc-qlc/) | ![PyPI](https://img.shields.io/pypi/v/rc-qlc?color=blue) |
36
+
37
+ ---
38
+
39
+ ## What's New in v0.3.25
40
+
41
+ This version introduces a completely new, high-performance Python processing engine and a more robust installation system.
42
+ - **New Python Engine (`qlc-py`)**: The core data processing and plotting is now handled by a powerful Python-based tool, compiled with Cython for maximum performance. This replaces much of the previous shell-script-based logic.
43
+ - **Standalone `qlc-py` Tool**: In addition to being used by the main `qlc` pipeline, `qlc-py` can be run as a standalone tool for rapid, iterative analysis using a simple JSON configuration.
44
+ - **New `cams` Installation Mode**: A dedicated installation mode for operational CAMS environments that automatically links to standard data directories.
45
+ - **Simplified and Robust Installation**: The installer now uses a consistent directory structure based in `$HOME/qlc`, with a smart two-stage symlink system to manage data-heavy directories for different modes (`test` vs. `cams`).
46
+ - **Dynamic Variable Discovery**: The shell pipeline now automatically discovers which variables to process based on the available NetCDF files, simplifying configuration.
47
+ - **Flexible Model Level Handling**: The Python engine can intelligently select the correct vertical model level for each variable or use a user-defined default.
48
+
49
+ ---
50
+
51
+ ## Core Features
52
+
53
+ - **Automated End-to-End Workflow**: A single `qlc` command can drive the entire pipeline: MARS data retrieval, data processing, statistical analysis, plotting, and final PDF report generation.
54
+ - **High-Performance Engine**: The core data processing logic is written in Python and compiled with Cython into native binary modules, ensuring high performance for large datasets.
55
+ - **Publication-Ready Outputs**: Automatically generates a suite of plots (time series, bias, statistics, maps) and integrates them into a final, professionally formatted PDF presentation using a LaTeX backend.
56
+ - **Flexible Installation Modes**: The `qlc-install` script supports multiple, co-existing modes:
57
+ - `--mode test`: A standalone mode with bundled example data, perfect for new users. All data is stored locally in `$HOME/qlc_v<version>/test/`.
58
+ - `--mode cams`: An operational mode that links to standard CAMS data directories and uses environment variables like `$SCRATCH` and `$PERM` for data storage in shared HPC environments.
59
+ - **Simplified Configuration**: The entire suite is controlled by a single, well-documented configuration file (`$HOME/qlc/config/qlc.conf`) where you can set paths, experiment labels, and plotting options.
60
+
61
+ ---
62
+
63
+ ## Quickstart
64
+
65
+ **1. Install the Package**
66
+ ```bash
67
+ pip install rc-qlc
68
+ ```
69
+
70
+ **2. Set Up the Test Environment**
71
+ This creates a local runtime environment in `$HOME/qlc_v<version>/test` and links `$HOME/qlc` to it. It includes all necessary configurations and example data.
72
+ ```bash
73
+ qlc-install --mode test
74
+ ```
75
+
76
+ **3. Run the Full Pipeline**
77
+ Navigate to the working directory and run the `qlc` command. This will process the example data (comparing experiments `b2ro` and `b2rn`) and generate a full PDF report in `$HOME/qlc/Presentations`.
78
+ ```bash
79
+ cd $(readlink -f $HOME/qlc)
80
+ qlc b2ro b2rn 2018-12-01 2018-12-21
81
+ ```
82
+
83
+ ---
84
+
85
+ ## Installation and Configuration
86
+
87
+ ### Standard Installation
88
+
89
+ QLC is installed from PyPI. After the `pip install`, you **must** run `qlc-install` to set up the necessary local directory structure.
90
+
91
+ ```bash
92
+ # For a standalone test environment with example data
93
+ pip install rc-qlc && qlc-install --mode test
94
+
95
+ # For an operational CAMS environment
96
+ pip install rc-qlc && qlc-install --mode cams
97
+ ```
98
+
99
+ ### Installation in Restricted Environments (HPC/ATOS)
100
+
101
+ In environments where you do not have root permissions, `pip` will install packages into your local user directory. You may need to take a couple of extra steps.
102
+
103
+ **1. Update your PATH (Recommended)**
104
+ The executable scripts (`qlc`, `qlc-py`, etc.) will be placed in `$HOME/.local/bin`. Add this to your shell's `PATH` to run them directly.
105
+ ```bash
106
+ # Example for bash shell
107
+ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
108
+ source ~/.bashrc
109
+ ```
110
+
111
+ **2. Load the Correct Python Module**
112
+ Ensure you are using a compatible Python version.
113
+ ```bash
114
+ module load python3/3.10.10-01
115
+ ```
116
+
117
+ **3. Install and Run**
118
+ Now you can install as normal.
119
+ ```bash
120
+ pip install rc-qlc && qlc-install --mode test
121
+ ```
122
+ If you chose not to update your `PATH`, you must call the installer script by its full path:
123
+ ```bash
124
+ pip install rc-qlc && $HOME/.local/bin/qlc-install --mode test
125
+ ```
126
+
127
+ ### Where Files Are Installed
128
+ - **Python Package Source**: `$HOME/.local/lib/python3.10/site-packages/qlc/`
129
+ - **Executable Scripts**: `$HOME/.local/bin/`
130
+ - **QLC Runtime Environment**: `$HOME/qlc_v<version>/<mode>`
131
+ - **Stable Symlink**: `$HOME/qlc` (points to the latest installed runtime environment)
132
+
133
+
134
+ ### Configuration Structure
135
+
136
+ The primary configuration file is located at `$HOME/qlc/config/qlc.conf`. The installation process uses a two-stage symlink system to manage data directories, allowing the config file to remain simple and portable.
137
+
138
+ For example, in `test` mode:
139
+ - `$HOME/qlc/Results` (the path in your config) -> is a symlink to
140
+ - `$HOME/qlc_v<version>/test/Results` -> which is a symlink to
141
+ - `$HOME/qlc_v<version>/test/data/Results` -> which is a real directory.
142
+
143
+ In `cams` mode, the final target is a symlink to a shared directory (e.g., `$SCRATCH/Results`), but the path in your config file remains the same.
144
+
145
+ ---
146
+
147
+ ## Developer Setup
148
+
149
+ To work on the `qlc` source code, clone the repository and install it in "editable" mode.
150
+
151
+ ```bash
152
+ # 1. Clone the repository
153
+ git clone https://github.com/researchConcepts/qlc.git
154
+ cd qlc
155
+
156
+ # 2. (Recommended) Create and activate a virtual environment
157
+ python3 -m venv .venv
158
+ source .venv/bin/activate
159
+
160
+ # 3. Install in editable mode (this compiles the Cython modules)
161
+ pip install -e .
162
+
163
+ # 4. Set up the test environment for development
164
+ qlc-install --mode test
165
+ ```
166
+
167
+ For advanced development, you can also use `--mode interactive`, which requires you to provide a path to a custom configuration file using the `--config` flag. This is useful for testing with non-standard setups.
168
+ ```bash
169
+ qlc-install --mode interactive --config /path/to/your/custom_qlc.conf
170
+ ```
171
+
172
+ ---
173
+
174
+ ## License
175
+
176
+ © ResearchConcepts io GmbH
177
+ Contact: [contact@researchconcepts.io](mailto:contact@researchconcepts.io)
178
+ MIT-compatible, source-restricted under private release until publication.
@@ -0,0 +1,102 @@
1
+ rc_qlc-0.3.25.dist-info/RECORD,,
2
+ rc_qlc-0.3.25.dist-info/WHEEL,sha256=wyHf6UDzyHyUK-aDYscyyyExpYI7SeEZ9xjyEiU4cnw,109
3
+ rc_qlc-0.3.25.dist-info/entry_points.txt,sha256=haCqahVrnFhVkfBt0HoOuVpKGV1KJOKpC1v75lOBl_s,191
4
+ rc_qlc-0.3.25.dist-info/top_level.txt,sha256=Czv4KZhpli6RXvgvtCB1g87eRNEM2R-8iHplel1Qp5Q,4
5
+ rc_qlc-0.3.25.dist-info/METADATA,sha256=ezfLDWmuGTDlJaOBv-Q0E9vc7h0pFRkJFd42Oketl7c,7849
6
+ rc_qlc-0.3.25.dist-info/licenses/LICENSE,sha256=1pYHFCPjSx9_0weOUVJ-SpSin1dm6nSMzeO8Jj_qKuo,1081
7
+ qlc/__init__.py,sha256=cmqybybgtiIwlVJIUfWOtP65yM1WzykLc1QRgdLANtI,208
8
+ qlc/install.py,sha256=AgA7OAsRqk5LRq9yuQ4TyZhz_IT0jk-Ecbut2OSOiJw,18534
9
+ qlc/py/bias_plots.cpython-310-darwin.so,sha256=qvcuLXH6d_ISNFWHYGDYNNncK7eutGcDeyhM-rz_HFg,107360
10
+ qlc/py/control.cpython-310-darwin.so,sha256=m-1conRdKxPb1fCHQQkFVKWaLzAhRnHgwoxvKoNRet4,249888
11
+ qlc/py/__main__.cpython-310-darwin.so,sha256=-b9arBWfaVXdWcd6Nwv8eIRM7DdKIaWQV9w5nDYr0gg,80400
12
+ qlc/py/processing.cpython-310-darwin.so,sha256=487dIadZSVwXPMzjLWQ_g83akWhXpMhRIExf1pvJmX0,123056
13
+ qlc/py/loadobs.cpython-310-darwin.so,sha256=UsYmjGJsupVBpApUZmEGf-ZEv9o_kqVwZgt-REu5hws,181104
14
+ qlc/py/stations.cpython-310-darwin.so,sha256=77-ps1mp0mIzvsTTOn0Um5zTnkUOTUlWSk86YqzIrUc,691264
15
+ qlc/py/averaging.cpython-310-darwin.so,sha256=ssl1QRwDqymHdOO2RE2-0kN50e5xaG7hDYIhptb9eeo,83024
16
+ qlc/py/style.cpython-310-darwin.so,sha256=6VnATDSRK_HaGBDRTGQk5WD7s6ndNfiEeUnVDq6FszY,299496
17
+ qlc/py/plot_config.cpython-310-darwin.so,sha256=CllZVabr6OBw2lDn9cP4wT304FzqDAP07V13-Jsv-io,79712
18
+ qlc/py/plotting.cpython-310-darwin.so,sha256=AUGNO4XY2UmlW73P6rB9S_5Za8hm32QMygvnFBHgMY8,178864
19
+ qlc/py/loadmod.cpython-310-darwin.so,sha256=vWWsGhoYlLtEcIEteRZZ9KMuFIAxjqVmThPU8E8JO2U,198512
20
+ qlc/py/timeseries_plots.cpython-310-darwin.so,sha256=iGhKCTtMRGoTeSxtsSXtA862O3NEZ0hAvIw8clCGcKw,620616
21
+ qlc/py/io.cpython-310-darwin.so,sha256=BPfYmBIBI6epfnj_7MI5vKspNlctMM6UBvkBUF9dUpI,144024
22
+ qlc/py/scatter_plots.cpython-310-darwin.so,sha256=Ty4zyAhOBvulCzdVAWOVMOju8oa4GbauL4C0CO20RHo,106080
23
+ qlc/py/version.cpython-310-darwin.so,sha256=EpluiGrxV7ePwjXtkqivq8eGN9MPVOvwwNV_TxFgews,54272
24
+ qlc/py/utils.cpython-310-darwin.so,sha256=cx2sTpgPOZAodH7q1rt-3NBc_CQJACmntCBD2s5q3hw,540632
25
+ qlc/py/logging_utils.cpython-310-darwin.so,sha256=KCJgpLzpotOpA7zVh62coDKgSO3uWBPoKxLJ35b9diU,123328
26
+ qlc/py/matched.cpython-310-darwin.so,sha256=L64Xf9O7olvQYaoq3nhwh9IYg221peTn1egnSWYRhnI,100800
27
+ qlc/py/map_plots.cpython-310-darwin.so,sha256=AtW2ydGG3zXaVK0sMgpAfn6XaF_QliaBCg-xPe4pLv8,205152
28
+ qlc/py/plugin_loader.cpython-310-darwin.so,sha256=YdDsw4xJFNVRsCTpblqn7wVfKoiCagOQJjBqlBhezd0,83088
29
+ qlc/py/statistics.cpython-310-darwin.so,sha256=cRPIt_JJZSu_7f1GSl2tspPXnrAvY4rbGD1nLzKOqEc,251536
30
+ qlc/config/qlc.conf,sha256=NjQ-GwuXiT2sAsKtUPTkano1h_0xe1XSr4OTr-jFlkg,8542
31
+ qlc/config/nml/mars_A2_sfc.nml,sha256=83Gkdr8vmlzif41EClWdjiJopZHDk9p-80-_l3fkeDE,638
32
+ qlc/config/nml/mars_B1_pl.nml,sha256=j-WUUNqFh3a1m3uh4UVtd23kP1E9vuYDvfZN1BfYVxE,641
33
+ qlc/config/nml/mars_C1_pl.nml,sha256=UFBgtRoqPS0squ0_6BJhtUUCNi3Sla5gfMyUJJMV_1o,660
34
+ qlc/config/nml/mars_A3_sfc.nml,sha256=2UjOxgBbkt8lvNtEn9zAFr-WpTvkYkVyyQqazgMAGnU,525
35
+ qlc/config/nml/mars_A1_sfc.nml,sha256=1AG00Yr_GVVaqdNCmMCbtKU5GFy84mgr6H4d7XTSVBg,513
36
+ qlc/config/nml/mars_D.nml,sha256=DYtFEnAF1Nb7jwg3Gjf1SQIEtZbG_yvcV7W0ZMtoygI,565
37
+ qlc/config/nml/mars_C2_pl.nml,sha256=qnOkd5fEIhxkK3xIrWHHvSiocuFI56P2AYXDecjRqUM,692
38
+ qlc/config/nml/mars_E.nml,sha256=F6qlw9WpKa6s2kXJCa90_JtajvHCihpTu24liMiLhHc,580
39
+ qlc/config/nml/mars_C3_ml.nml,sha256=IEdmbPOmJu_DSv8p5r6k--hj2xZFoYibCG8ogwxVXaI,654
40
+ qlc/config/nml/mars_G.nml,sha256=XK2kEVO02jX0MlopUUALBpMti4X_zJRrH3wBZURFd9w,535
41
+ qlc/config/nml/mars_F.nml,sha256=rIShFyYxx0ZIL_Kmd9yAtF0fGrh-hEbKmfGMhg56b9g,535
42
+ qlc/config/nml/mars_B2_pl.nml,sha256=_G2JFmvm6G6CvEZkb0zG8UKBqiiF1OwEgAkpNuFJapE,704
43
+ qlc/config/nml/mars_B1_sfc.nml,sha256=Hylmmo6zB5ut_BVfTxCrnzOITBR92fdS14WOHMpnwgI,510
44
+ qlc/config/nml/mars_C1_sfc.nml,sha256=E1lYo3GeAKWbbkBv9ijpaAarZpkC05k61Vx-v2Wy9YA,515
45
+ qlc/config/json/qlc_config.json,sha256=oyn6tFjKt4Bs4zebFtg_dEEsnMAxh9aNi04bLOSYIuU,3949
46
+ qlc/cli/qlc_main.py,sha256=C2eZf40B47dkus4juPTxzfX2Vk3h9G4eh7lwDh9ahcY,8622
47
+ qlc/cli/__init__.py,sha256=5BRttT9IRcyoQx_dD9S0g-wBfz1ufakpLUGEGYZV808,4219
48
+ qlc/cli/installer.py,sha256=xe1Dzwmd_suc_-d63k50v5c9WNOljtVx7cZ9ofVJGd8,1335
49
+ qlc/cli/qlc_py_main.py,sha256=9L8P0mPiw35I37Drdqajydyb8IojMQkPAbOenwunTkI,2720
50
+ qlc/sh/qlc_B1a.sh,sha256=iwqgH84xoDNQtWRPq4048oBwhIIjKoV7oqv6sa-exIg,3110
51
+ qlc/sh/qlc_D1.sh,sha256=7lEBVJP3EeI2s8F0QPnRn3a_CImcBCSmghhPWEsvx6M,13583
52
+ qlc/sh/qlc_A1.sh,sha256=v8IzABCMBRxYb0cwVAh90mkYeGsBLPOItpKeFwTBl_E,5331
53
+ qlc/sh/qlc_common_functions.sh,sha256=ozBEOfnsjy7j-FTyvdyBWf5xpewNQ6SVzA9uwWVIvGs,5355
54
+ qlc/sh/qlc_C5.sh,sha256=YunNdShkFNaRjqro0HALc1WmFmnKUioX-aIEXBWD_vI,36136
55
+ qlc/sh/qlc_main.sh,sha256=yjeLRilD9JNxrXiR8LL1a-64hMafcK2S8l2P6P00frw,4885
56
+ qlc/sh/qlc_Z1.sh,sha256=GzWhyGU5nWIGU-adTMEaXzAnYaDpy6pVE46j_Vt5htA,5473
57
+ qlc/sh/qlc_B2.sh,sha256=6K76ItijPZzpHkwR4dy-pyb_ivI433gxRZtg8LDTE-s,11173
58
+ qlc/sh/qlc_batch.sh,sha256=i_dyEPmelvlhb_J00AmkWBu5EoTNXSAgwptd5xkNrrg,2415
59
+ qlc/sh/tex_template/beamercolorthemeCAMS2_35.sty,sha256=1wN5BAXnBQfxbz-PnWDTD2RXvU42wB5cOQp_qDD67Mo,2420
60
+ qlc/sh/tex_template/subcaption.sty,sha256=qfztB7wGra-v-P7BsqkgPb6iaUt1LJ29N7YpeeJUG0Q,5937
61
+ qlc/sh/tex_template/template.tex,sha256=Xx77W9tDp68zoTShmpg0LBHp1Qc8FfKOmbU8ifXUP5w,4660
62
+ qlc/sh/tex_template/beamerfontthemeCAMS2_35.sty,sha256=YukRQEb1f3oUGRIEH5-7uEg_xx7KCx3zx94gmMb1PvM,5399
63
+ qlc/sh/tex_template/beamerthemeCAMS2_35.sty,sha256=chpwYJfR_1gZDk6mHMtgKjum1Tfq5PIoGBUprWRqMB0,551
64
+ qlc/examples/cams_case_1/obs/ebas_station-locations.csv,sha256=v4LIThJ4gDmgJyDsXozwUm3k8lUvPhYKhrXjxp-YI3g,1743
65
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181220.nc,sha256=44wohtBt2B3OyS94588_nMomdDAgWmorWe0tNNt-lKs,145331
66
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181214.nc,sha256=etpmhAaUHVOABoOa9QDOF1hVvOhpytKXQhp6LFzyzco,145358
67
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181204.nc,sha256=sK092bbJTA5SKVMtbQZxiLu2foErxRws06soyavemVU,145171
68
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181230.nc,sha256=H2EsyIFva38W8K8APOo3nbYOv_5xb0kUcGSNXQGp7RQ,145680
69
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181210.nc,sha256=YSarGOGHuv0bBBTHogTiT3ia3Ba0WJZgSgC6V5Sgx28,145052
70
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181224.nc,sha256=Ao6XGhwlCJOCk2B2dvdq8W5wk3LxspzsbMSH3gEKF70,145547
71
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181211.nc,sha256=rj7-gnA7bSM45iz68Fjbvzt9jlCKRq_eW8J3PujWfYs,145445
72
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181225.nc,sha256=NX_-ApK44vVUl1MlL34Kp1_saqe4f1hHWjXHYMe3lrE,148101
73
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181201.nc,sha256=p0mRXcTHVkCmBZhzYl-LG-2pkd20U84ubiXWOsdWlpo,147934
74
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181221.nc,sha256=2aUMTPqiZm9h-9y26jOb3cWmeMNugK7V-8e5ItAWNu0,147848
75
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181215.nc,sha256=u93WDDRwrKMuKG2dfXqqz-7ZglSgvNrgSfZYRaSJO8A,145335
76
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181205.nc,sha256=eekGhiONUCCvijstVtBOa8RnjTpRa1iaA5AUY-d4WCY,147730
77
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181231.nc,sha256=aTAAzE3uXeeUIfVwn2Y_yDBM2oUe3HnFMyA7blD_8io,145563
78
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181212.nc,sha256=YfHgucNBIhppHx2ZvuZDS51LLUZ0cjaMAv0HmPyZABg,145270
79
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181226.nc,sha256=QaXOShPz7dp-GpLXwOGIPD52fvDMJz_ZwCfjFFTPzuc,137630
80
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181202.nc,sha256=b2GnqKha9ApadqT1PsfzOdGLyeTX2iRFZWHAe4m_6hw,147754
81
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181222.nc,sha256=70D7mC9tmaXLRCl_7LWIAJrmJL-lfxf8-SCFLgVNrXU,145581
82
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181216.nc,sha256=XITSvxE_H-mAbl8mTChGlmfjdUChLcbmIfGwJ3Lpnrs,145312
83
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181206.nc,sha256=bmrFOUT7I1vPSZxbrhnZ7ABMf72jw0iyCg6wgzgdhm8,145280
84
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181223.nc,sha256=Z3d0_SuxBr3g8-8Apk79Rkgo8ZqIv5eVSGOl9sIqPWo,145434
85
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181217.nc,sha256=imrxXStn8JHDE3cq9mm6ApUedx9s7-vrsRUVmrMS7Ds,147776
86
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181207.nc,sha256=mJ-BmPag7fdMA3U8B7nDceT4jsYrdwCWzmAVa93vy50,145312
87
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181213.nc,sha256=Qtf0i0y2dKqrWOWunALxuM604bJYt1_GsCJ-yD3wJcA,147719
88
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181227.nc,sha256=VIIwMqy8-3Oh_DUxL6TrAW3TQkE_PuuQy-UL4kPY01I,140117
89
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181203.nc,sha256=z1WS6bCfhAQHXNZzL90fGX1FsHW4AA4Es7DjeCVPPkg,145381
90
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181218.nc,sha256=BSWuq-opl7pWnfkp5fi6bL0xMRPdqupIeWANrea7Whc,137423
91
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181208.nc,sha256=og4cK4x-vE-qAAROyw6yHjVJKZeFsAtQhfOyKwhat0c,145388
92
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181228.nc,sha256=lRFdN3EMNT-_1i7OqJ0ASFTEbvdVVon-YkexmIz3Buk,145655
93
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181229.nc,sha256=TtdledzM8v9fKWMy07j0m2tXZcFVR2LOJCFhka9Ancg,148217
94
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181219.nc,sha256=oHRQoHzIPuqLHCSbUSB2-7jf0POFHkajB7NmD7JhElU,139924
95
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181209.nc,sha256=LrPL3ivckNa5ea-E4njIIoY7syTou25PkuZTyK5mZi8,142958
96
+ qlc/examples/cams_case_1/mod/b2rn/2018/b2rn_20181201-20181221_C1_sfc.grb,sha256=dFfCy3awEGV8_UuOxML22YVrTVQOEPoOIManyuLV64U,2979499
97
+ qlc/examples/cams_case_1/mod/b2rn/2018/b2rn_20181201-20181221_B1_pl.grb,sha256=amWL5pi5OpxmkcejAleW22n57EK0nVeU_kl671bdASU,41073480
98
+ qlc/examples/cams_case_1/mod/b2ro/2018/b2ro_20181201-20181221_B1_pl.grb,sha256=WKK2bZf3i9VDj0K1uoZaToXxVZJXPxXEGm52rrLGVSg,41073480
99
+ qlc/examples/cams_case_1/mod/b2ro/2018/b2ro_20181201-20181221_C1_sfc.grb,sha256=FlWm-BFu9PTmAx--3AbUhs99tuWkNO6yEdFjn5UXRGA,1570901
100
+ qlc/doc/USAGE.md,sha256=SC0HCvLLkzJoI_N4owMLiXR5HsXrqP5uXZbnRljVqpk,4232
101
+ qlc/doc/README.md,sha256=noR6LFWXkHBdeBVfi3CIJksSb_jsRW-IxgujcZorPDo,7136
102
+ qlc/doc/CONTRIBUTING.md,sha256=IXYwAIdAfiQUQOVJcP0RTVpWL9Q-dW2ljG6hs4WkHTY,2607
@@ -1,237 +0,0 @@
1
- [
2
- {
3
- "name": "CAMS2_35",
4
- "logdir": "./log",
5
- "workdir": "./run",
6
- "output_base_name": "$HOME/qlc/output/GMD",
7
- "station_file": "$HOME/qlc/obs/data/castnet_station-locations.csv",
8
- "obs_path": "$HOME/qlc/obs",
9
- "obs_dataset_type": "AMoN",
10
- "start_date": "2018-01-01",
11
- "end_date": "2018-12-31",
12
- "variable": "NH3",
13
- "station_radius_deg": 10.0,
14
- "plot_type": "",
15
- "plot_region": "US",
16
- "time_average": "weekly, monthly",
17
- "station_plot_group_size": 5,
18
- "show_stations": false,
19
- "show_min_max": true,
20
- "log_y_axis": false,
21
- "fix_y_axis": true,
22
- "show_station_map": true,
23
- "load_station_timeseries_obs": true,
24
- "show_station_timeseries_obs": true,
25
- "show_station_timeseries_mod": false,
26
- "show_station_timeseries_com": false,
27
- "save_plot_format": "pdf",
28
- "save_data_format": "nc",
29
- "multiprocessing": true,
30
- "n_threads": "20",
31
- "debug": false,
32
-
33
- "global_attributes": {
34
- "title": "Air pollutants over US, NH3",
35
- "summary": "AMoN bi-weekly observations for selected US stations.",
36
- "author": "Swen Metzger, sm@researchconcepts.io",
37
- "history": "Processed for CAMS2_35bis (dev 1.2)",
38
- "Conventions": "CF-1.8"
39
- }
40
- },
41
- {
42
- "name": "CAMS2_35",
43
- "logdir": "./log",
44
- "workdir": "./run",
45
- "output_base_name": "$HOME/qlc/output/GMD",
46
- "station_file": "$HOME/qlc/obs/data/castnet_station-locations.csv",
47
- "obs_path": "$HOME/qlc/obs/data/ver0d",
48
- "obs_dataset_type": "airnow",
49
- "start_date": "2018-01-01",
50
- "end_date": "2018-12-31",
51
- "variable": "SO2",
52
- "station_radius_deg": 10.0,
53
- "plot_type": "",
54
- "plot_region": "US",
55
- "time_average": "weekly, monthly",
56
- "station_plot_group_size": 5,
57
- "show_stations": false,
58
- "show_min_max": true,
59
- "log_y_axis": false,
60
- "fix_y_axis": true,
61
- "show_station_map": true,
62
- "load_station_timeseries_obs": true,
63
- "show_station_timeseries_obs": true,
64
- "show_station_timeseries_mod": false,
65
- "show_station_timeseries_com": false,
66
- "save_plot_format": "pdf",
67
- "save_data_format": "nc",
68
- "multiprocessing": true,
69
- "n_threads": "20",
70
- "debug": false,
71
-
72
- "global_attributes": {
73
- "title": "Air pollutants over US, SO2",
74
- "summary": "Airnow bi-weekly observations for selected US stations.",
75
- "author": "Swen Metzger, sm@researchconcepts.io",
76
- "history": "Processed for CAMS2_35bis (dev 1.2)",
77
- "Conventions": "CF-1.8"
78
- }
79
- },
80
- {
81
- "name": "CAMS2_35",
82
- "logdir": "./log",
83
- "workdir": "./run",
84
- "output_base_name": "$HOME/qlc/output/GMD",
85
- "station_file": "$HOME/qlc/obs/data/Asia_station_list.csv",
86
- "obs_path": "$HOME/qlc/obs/data/ver0d",
87
- "obs_dataset_type": "china_aq",
88
- "start_date": "2018-01-01",
89
- "end_date": "2018-12-31",
90
- "variable": "SO2",
91
- "station_radius_deg": 20.0,
92
- "plot_type": "",
93
- "plot_region": "Asia",
94
- "time_average": "weekly, monthly",
95
- "station_plot_group_size": 5,
96
- "show_stations": false,
97
- "show_min_max": true,
98
- "log_y_axis": false,
99
- "fix_y_axis": true,
100
- "show_station_map": true,
101
- "load_station_timeseries_obs": true,
102
- "show_station_timeseries_obs": true,
103
- "show_station_timeseries_mod": false,
104
- "show_station_timeseries_com": false,
105
- "save_plot_format": "pdf",
106
- "save_data_format": "nc",
107
- "multiprocessing": true,
108
- "n_threads": "20",
109
- "debug": false,
110
- "debug_extended": false,
111
-
112
- "global_attributes": {
113
- "title": "Air pollutants over Asia, SO2",
114
- "summary": "China AQ monthly observations for selected Asia stations.",
115
- "author": "Swen Metzger, sm@researchconcepts.io",
116
- "history": "Processed for CAMS2_35bis (dev 1.2)",
117
- "Conventions": "CF-1.8"
118
- }
119
- },
120
- {
121
- "name": "CAMS2_35",
122
- "logdir": "./log",
123
- "workdir": "./run",
124
- "output_base_name": "$HOME/qlc/output/GMD",
125
- "station_file": "$HOME/qlc/obs/data/ebas_station-locations.csv",
126
- "obs_path": "$HOME/qlc/obs/data/ver0d",
127
- "obs_dataset_type": "ebas_daily",
128
- "start_date": "2018-01-01",
129
- "end_date": "2018-12-31",
130
- "variable": "SO2,SO4,HNO3,NO3,NH3,NH4",
131
- "station_radius_deg": 10.0,
132
- "plot_type": "",
133
- "plot_region": "EU",
134
- "time_average": "weekly, monthly",
135
- "station_plot_group_size": 5,
136
- "show_stations": false,
137
- "show_min_max": true,
138
- "log_y_axis": false,
139
- "fix_y_axis": true,
140
- "show_station_map": true,
141
- "load_station_timeseries_obs": true,
142
- "show_station_timeseries_obs": true,
143
- "show_station_timeseries_mod": false,
144
- "show_station_timeseries_com": false,
145
- "save_plot_format": "pdf",
146
- "save_data_format": "nc",
147
- "multiprocessing": true,
148
- "n_threads": "20",
149
- "debug": false,
150
-
151
- "global_attributes": {
152
- "title": "Air pollutants over Europe, SO2,SO4,HNO3,NO3,NH3,NH4",
153
- "summary": "Ebas daily observations for selected EU stations.",
154
- "author": "Swen Metzger, sm@researchconcepts.io",
155
- "history": "Processed for CAMS (dev 1.2)",
156
- "Conventions": "CF-1.8"
157
- }
158
- },
159
- {
160
- "name": "CAMS2_35",
161
- "logdir": "./log",
162
- "workdir": "./run",
163
- "output_base_name": "$HOME/qlc/output/GMD",
164
- "station_file": "$HOME/qlc/obs/data/castnet_station-locations.csv",
165
- "obs_path": "$HOME/qlc/obs",
166
- "obs_dataset_type": "castnet",
167
- "start_date": "2018-01-01",
168
- "end_date": "2018-12-31",
169
- "variable": "SO2,SO4,HNO3,NO3,NH4,NH3",
170
- "station_radius_deg": 10.0,
171
- "plot_type": "",
172
- "plot_region": "US",
173
- "time_average": "weekly, monthly",
174
- "station_plot_group_size": 5,
175
- "show_stations": false,
176
- "show_min_max": true,
177
- "log_y_axis": false,
178
- "fix_y_axis": true,
179
- "show_station_map": true,
180
- "load_station_timeseries_obs": true,
181
- "show_station_timeseries_obs": true,
182
- "show_station_timeseries_mod": false,
183
- "show_station_timeseries_com": false,
184
- "save_plot_format": "pdf",
185
- "save_data_format": "nc",
186
- "multiprocessing": true,
187
- "n_threads": "20",
188
- "debug": false,
189
-
190
- "global_attributes": {
191
- "title": "Air pollutants over US, SO2,SO4,HNO3,NO3,NH4,NH3",
192
- "summary": "CASTNET weekly observations for selected US stations.",
193
- "author": "Swen Metzger, sm@researchconcepts.io",
194
- "history": "Processed for CAMS2_35bis (dev 1.2)",
195
- "Conventions": "CF-1.8"
196
- }
197
- },
198
- {
199
- "name": "CAMS2_35",
200
- "logdir": "./log",
201
- "workdir": "./run",
202
- "output_base_name": "$HOME/qlc/output/GMD",
203
- "station_file": "$HOME/qlc/obs/data/Asia_station_list.csv",
204
- "obs_path": "$HOME/qlc/obs",
205
- "obs_dataset_type": "NNDMN",
206
- "start_date": "2018-01-01",
207
- "end_date": "2018-12-31",
208
- "variable": "HNO3,NO3,NH4,NH3",
209
- "station_radius_deg": 50.0,
210
- "plot_type": "",
211
- "plot_region": "Asia",
212
- "time_average": "weekly, monthly",
213
- "station_plot_group_size": 5,
214
- "show_stations": false,
215
- "show_min_max": true,
216
- "log_y_axis": false,
217
- "fix_y_axis": true,
218
- "show_station_map": true,
219
- "load_station_timeseries_obs": true,
220
- "show_station_timeseries_obs": true,
221
- "show_station_timeseries_mod": false,
222
- "show_station_timeseries_com": false,
223
- "save_plot_format": "pdf",
224
- "save_data_format": "nc",
225
- "multiprocessing": true,
226
- "n_threads": "20",
227
- "debug": false,
228
-
229
- "global_attributes": {
230
- "title": "Air pollutants over Asia, HNO3,NO3,NH4,NH3",
231
- "summary": "NNDMN monthly observations for selected Asia stations.",
232
- "author": "Swen Metzger, sm@researchconcepts.io",
233
- "history": "Processed for CAMS2_35bis (dev 1.2)",
234
- "Conventions": "CF-1.8"
235
- }
236
- }
237
- ]