rc-qlc 0.3.24__cp311-cp311-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 (113) hide show
  1. qlc/__init__.py +8 -0
  2. qlc/cli/__init__.py +21 -0
  3. qlc/cli/installer.py +16 -0
  4. qlc/cli/qlc_main.py +185 -0
  5. qlc/cli/qlc_py_main.py +74 -0
  6. qlc/config/json/qlc_config.json +41 -0
  7. qlc/config/json/qlc_config_example_1a_all-obs.json +237 -0
  8. qlc/config/json/qlc_config_example_1b_all-mod.json +353 -0
  9. qlc/config/json/qlc_config_example_1c_all-coll.json +266 -0
  10. qlc/config/json/qlc_config_example_2a_all-obs.json +237 -0
  11. qlc/config/json/qlc_config_example_2b_all-mod.json +353 -0
  12. qlc/config/json/qlc_config_example_2c_all-coll.json +265 -0
  13. qlc/config/json/qlc_config_example_3a-us_obs.json +82 -0
  14. qlc/config/json/qlc_config_example_3b-us_mod.json +122 -0
  15. qlc/config/json/qlc_config_example_3c-us_coll.json +46 -0
  16. qlc/config/json/qlc_config_example_4a_eu-obs.json +41 -0
  17. qlc/config/json/qlc_config_example_4b_eu-mod.json +122 -0
  18. qlc/config/json/qlc_config_example_4c_eu-coll.json +45 -0
  19. qlc/config/nml/mars_A1_sfc.nml +19 -0
  20. qlc/config/nml/mars_A2_sfc.nml +19 -0
  21. qlc/config/nml/mars_A3_sfc.nml +19 -0
  22. qlc/config/nml/mars_B1_pl.nml +19 -0
  23. qlc/config/nml/mars_B2_pl.nml +19 -0
  24. qlc/config/nml/mars_C1_pl.nml +19 -0
  25. qlc/config/nml/mars_C2_pl.nml +19 -0
  26. qlc/config/nml/mars_C3_ml.nml +19 -0
  27. qlc/config/nml/mars_D.nml +19 -0
  28. qlc/config/nml/mars_E.nml +19 -0
  29. qlc/config/nml/mars_F.nml +19 -0
  30. qlc/config/nml/mars_G.nml +19 -0
  31. qlc/config/qlc_cams.conf +26 -0
  32. qlc/config/qlc_test.conf +26 -0
  33. qlc/config/qlc_tex.conf +107 -0
  34. qlc/doc/CONTRIBUTING.md +105 -0
  35. qlc/doc/README.md +116 -0
  36. qlc/doc/USAGE.md +58 -0
  37. qlc/examples/cams_case_1/config/json/qlc_config.json +41 -0
  38. qlc/examples/cams_case_1/config/nml/mars_A3_sfc.nml +19 -0
  39. qlc/examples/cams_case_1/config/nml/mars_B1_pl.nml +19 -0
  40. qlc/examples/cams_case_1/config/nml/mars_C1_pl.nml +19 -0
  41. qlc/examples/cams_case_1/config/qlc_cams.conf +122 -0
  42. qlc/examples/cams_case_1/mod/b2ro/2018/b2ro_20181215-20181231_A3_sfc.grb +0 -0
  43. qlc/examples/cams_case_1/mod/iqi9/2018/iqi9_20181215-20181231_A3_sfc.grb +0 -0
  44. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181201.nc +0 -0
  45. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181202.nc +0 -0
  46. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181203.nc +0 -0
  47. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181204.nc +0 -0
  48. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181205.nc +0 -0
  49. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181206.nc +0 -0
  50. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181207.nc +0 -0
  51. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181208.nc +0 -0
  52. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181209.nc +0 -0
  53. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181210.nc +0 -0
  54. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181211.nc +0 -0
  55. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181212.nc +0 -0
  56. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181213.nc +0 -0
  57. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181214.nc +0 -0
  58. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181215.nc +0 -0
  59. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181216.nc +0 -0
  60. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181217.nc +0 -0
  61. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181218.nc +0 -0
  62. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181219.nc +0 -0
  63. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181220.nc +0 -0
  64. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181221.nc +0 -0
  65. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181222.nc +0 -0
  66. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181223.nc +0 -0
  67. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181224.nc +0 -0
  68. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181225.nc +0 -0
  69. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181226.nc +0 -0
  70. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181227.nc +0 -0
  71. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181228.nc +0 -0
  72. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181229.nc +0 -0
  73. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181230.nc +0 -0
  74. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181231.nc +0 -0
  75. qlc/examples/cams_case_1/obs/ebas_station-locations.csv +50 -0
  76. qlc/install.py +285 -0
  77. qlc/py/__main__.cpython-311-darwin.so +0 -0
  78. qlc/py/averaging.cpython-311-darwin.so +0 -0
  79. qlc/py/bias_plots.cpython-311-darwin.so +0 -0
  80. qlc/py/control.cpython-311-darwin.so +0 -0
  81. qlc/py/io.cpython-311-darwin.so +0 -0
  82. qlc/py/loadmod.cpython-311-darwin.so +0 -0
  83. qlc/py/loadobs.cpython-311-darwin.so +0 -0
  84. qlc/py/logging_utils.cpython-311-darwin.so +0 -0
  85. qlc/py/map_plots.cpython-311-darwin.so +0 -0
  86. qlc/py/matched.cpython-311-darwin.so +0 -0
  87. qlc/py/plot_config.cpython-311-darwin.so +0 -0
  88. qlc/py/plotting.cpython-311-darwin.so +0 -0
  89. qlc/py/plugin_loader.cpython-311-darwin.so +0 -0
  90. qlc/py/processing.cpython-311-darwin.so +0 -0
  91. qlc/py/scatter_plots.cpython-311-darwin.so +0 -0
  92. qlc/py/stations.cpython-311-darwin.so +0 -0
  93. qlc/py/statistics.cpython-311-darwin.so +0 -0
  94. qlc/py/style.cpython-311-darwin.so +0 -0
  95. qlc/py/timeseries_plots.cpython-311-darwin.so +0 -0
  96. qlc/py/utils.cpython-311-darwin.so +0 -0
  97. qlc/py/version.cpython-311-darwin.so +0 -0
  98. qlc/sh/qlc_A1.sh +127 -0
  99. qlc/sh/qlc_B1a.sh +123 -0
  100. qlc/sh/qlc_B2.sh +258 -0
  101. qlc/sh/qlc_C5.sh +825 -0
  102. qlc/sh/qlc_D1.sh +130 -0
  103. qlc/sh/qlc_Z1.sh +165 -0
  104. qlc/sh/qlc_common_functions.sh +157 -0
  105. qlc/sh/qlc_main.sh +127 -0
  106. qlc/sh/qlc_start.sh +23 -0
  107. qlc/sh/qlc_start_batch.sh +46 -0
  108. rc_qlc-0.3.24.dist-info/METADATA +142 -0
  109. rc_qlc-0.3.24.dist-info/RECORD +113 -0
  110. rc_qlc-0.3.24.dist-info/WHEEL +5 -0
  111. rc_qlc-0.3.24.dist-info/entry_points.txt +6 -0
  112. rc_qlc-0.3.24.dist-info/licenses/LICENSE +21 -0
  113. rc_qlc-0.3.24.dist-info/top_level.txt +1 -0
@@ -0,0 +1,142 @@
1
+ Metadata-Version: 2.4
2
+ Name: rc-qlc
3
+ Version: 0.3.24
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): Model–Observation Comparison Suite for Use with CAMS
28
+
29
+ `qlc` is a single command-line tool for model–observation comparisons with automated figures and summaries,
30
+ designed to support climate and air quality monitoring and specifically adapted for use with CAMS (Copernicus Atmospheric Monitoring Service) datasets.
31
+
32
+ | Package | Status |
33
+ |---------|--------|
34
+ | [rc-qlc on PyPI](https://pypi.org/project/rc-qlc/) | ![PyPI](https://img.shields.io/pypi/v/rc-qlc?color=blue) |
35
+
36
+ ---
37
+
38
+ ## Features
39
+
40
+ - Side-by-side evaluation of observational and modelled data
41
+ - Fully scriptable and automated post-processing chain
42
+ - Modular structure using shell + Python + Cython
43
+ - Generates publication-ready figures and LaTeX integration
44
+ - Supports NetCDF and CSV time series formats
45
+ - Pre-configured CAMS observational interface via JSON
46
+
47
+ ---
48
+
49
+ ## User Installation
50
+
51
+ Use one of the following install modes:
52
+
53
+ ```bash
54
+ # Option 1: CAMS (default data links + config)
55
+ pip install rc-qlc && qlc-install --cams
56
+
57
+ # Option 2: Local test mode with embedded examples
58
+ pip install rc-qlc && qlc-install --test
59
+
60
+ # Option 3: Custom interactive mode
61
+ pip install rc-qlc && qlc-install --interactive="./path/to/qlc_user.conf"
62
+ ```
63
+
64
+ ---
65
+
66
+ ## Example Use Cases
67
+
68
+ ### Run the full shell pipeline (retrieval, processing, plotting):
69
+ ```bash
70
+ qlc
71
+ ```
72
+
73
+ ### Run just the observation/model comparison in Python:
74
+ ```bash
75
+ qlc-py
76
+ ```
77
+
78
+ ### Submit via batch system (e.g., SLURM or LSF):
79
+ ```bash
80
+ sqlc
81
+ ```
82
+
83
+ ## Developer Setup
84
+
85
+ To work on the `qlc` source code, clone the repository and install it in "editable" mode. This will install all dependencies and link the `qlc` command to your source tree.
86
+
87
+ ```bash
88
+ # 1. Clone the repository
89
+ git clone https://github.com/researchConcepts/qlc.git
90
+ cd qlc
91
+
92
+ # 2. (Recommended) Create and activate a virtual environment
93
+ python3 -m venv .venv
94
+ source .venv/bin/activate
95
+
96
+ # 3. Install in editable mode
97
+ pip install -e .
98
+ ```
99
+
100
+ ---
101
+
102
+ ## Configuration Structure
103
+
104
+ The installer script creates the following structure in your home directory:
105
+ ```
106
+ $HOME/qlc_v<version>/
107
+ ├── test/ # Root directory for the 'test' installation mode
108
+ │ ├── bin/ # Symlinks to shell scripts
109
+ │ ├── doc/ # Symlinks to documentation
110
+ │ ├── config/ # Active config files (e.g., qlc.conf)
111
+ │ ├── examples/ # Test input and output files
112
+ │ ├── obs/, mod/, ... # Runtime directories
113
+ │ └── VERSION.json # Tracks install mode and version
114
+ └── cams/ # Root for 'cams' mode, etc.
115
+ ```
116
+ A symlink `$HOME/qlc` is also created to point to the active installation. You can edit `$HOME/qlc/config/qlc.conf` to modify runtime behavior.
117
+
118
+ ---
119
+
120
+ ## Documentation
121
+
122
+ - All core logic is contained in the `qlc` package.
123
+ - Shell scripts for driving the pipeline are in `qlc/sh/`.
124
+ - The core Python/Cython logic is in `qlc/py/*.py` and is compiled to binary modules for performance.
125
+
126
+ ---
127
+
128
+ ## Developer Notes
129
+
130
+ - Python source files (`.py`) are compiled to binary modules (`.so`) using Cython at install time.
131
+ - The package version is managed in `pyproject.toml`.
132
+ - The `qlc-install` script sets up the runtime environment by creating directories and symlinks.
133
+
134
+ ---
135
+
136
+ ## License
137
+
138
+ © ResearchConcepts io GmbH
139
+ Contact: [contact@researchconcepts.io](mailto:contact@researchconcepts.io)
140
+ MIT-compatible, source-restricted under private release until publication.
141
+
142
+ ---
@@ -0,0 +1,113 @@
1
+ rc_qlc-0.3.24.dist-info/RECORD,,
2
+ rc_qlc-0.3.24.dist-info/WHEEL,sha256=qxQkdhERtGxJzqnVOBnucx1aUmU2n3HmuzYdln_LyOw,109
3
+ rc_qlc-0.3.24.dist-info/entry_points.txt,sha256=haCqahVrnFhVkfBt0HoOuVpKGV1KJOKpC1v75lOBl_s,191
4
+ rc_qlc-0.3.24.dist-info/top_level.txt,sha256=Czv4KZhpli6RXvgvtCB1g87eRNEM2R-8iHplel1Qp5Q,4
5
+ rc_qlc-0.3.24.dist-info/METADATA,sha256=BGsnqbpFJtHnSYNGJRLfkchn2Dt5lR4sdI3Q6qkC5BI,4190
6
+ rc_qlc-0.3.24.dist-info/licenses/LICENSE,sha256=1pYHFCPjSx9_0weOUVJ-SpSin1dm6nSMzeO8Jj_qKuo,1081
7
+ qlc/__init__.py,sha256=cmqybybgtiIwlVJIUfWOtP65yM1WzykLc1QRgdLANtI,208
8
+ qlc/install.py,sha256=PpgLMiAbyBuIXt1sGCr8jZuWTKBtllsDi0QpB88K060,10985
9
+ qlc/py/style.cpython-311-darwin.so,sha256=M24jMuEyul11RysyiFUI1anO36SLiqJ85ttwaVVlHb0,300184
10
+ qlc/py/bias_plots.cpython-311-darwin.so,sha256=tDEtTuOHySHEyCLwoQpAnREPCOekRM1kdvrkJxsF1t4,107008
11
+ qlc/py/control.cpython-311-darwin.so,sha256=ePQ-uRRnyNxIppJ-3idHICIZlOEN3MJxUZLkpcSt7ho,233584
12
+ qlc/py/__main__.cpython-311-darwin.so,sha256=nxBCxTU7lUtJAs8kp5d486j20jV0XeEkQm0p0jzw5Vc,80544
13
+ qlc/py/loadobs.cpython-311-darwin.so,sha256=qck2ZONqrZ07JIXr1531vTzHQQNaQxs3AoReW25ZJYE,180928
14
+ qlc/py/processing.cpython-311-darwin.so,sha256=2yUJOJkKOvu_2ZmQs9y06gq3JHvdt0gQ5lNZ6iCPR1c,123616
15
+ qlc/py/stations.cpython-311-darwin.so,sha256=HOqIWE2_WhC4jxbdZAV1ZA5JVY-R4109xg1QTka1BbI,624480
16
+ qlc/py/averaging.cpython-311-darwin.so,sha256=m5GEkB-hOu2iuxEL6u3k5C7NLoPYciVJ7hOJsf4rYt4,83008
17
+ qlc/py/version.cpython-311-darwin.so,sha256=ZOK32Jen2NLVgbJf0nDhwVBaWig3SPpsvuhwTF64_og,54256
18
+ qlc/py/logging_utils.cpython-311-darwin.so,sha256=WSlw44e25o9OaY1Pyl_rUfaVbnvs5cExOkqNHDKhvyM,82848
19
+ qlc/py/utils.cpython-311-darwin.so,sha256=CGBZFWWbtbg2NpaV-BmziWbtzbTwOKmENNK4mf6GKTs,523432
20
+ qlc/py/matched.cpython-311-darwin.so,sha256=zV915GzNzPVtTitQWKEq1K0N_NR1ZkxDz9ZVuzXrIuM,101088
21
+ qlc/py/plugin_loader.cpython-311-darwin.so,sha256=ZTJtDeQ0A1JGGx6b33oPGXtzY_e7W2JfNdLGu1si5gA,83440
22
+ qlc/py/statistics.cpython-311-darwin.so,sha256=N-4a3pxsHZc47iAIOEa7YRrzbE6YDqbf6yVFLG5Rk2E,252032
23
+ qlc/py/map_plots.cpython-311-darwin.so,sha256=PxSXtc4sG9bewxuzBQ6IzMKrDas1QFTwzMOHlOSE2eQ,205904
24
+ qlc/py/plot_config.cpython-311-darwin.so,sha256=SK7Nh61wQv6gXLS55_C971pnfujzR-3Z_UxBZRlZ4AY,79872
25
+ qlc/py/loadmod.cpython-311-darwin.so,sha256=dDaOlFfS0s-XQbNCIeVu_U9E1kvvFnrpEH76mMsmNJA,198240
26
+ qlc/py/plotting.cpython-311-darwin.so,sha256=w22iLNIQnF-ITSfYpsZ4mPWflpbpMfpH2dJysxHPqKY,179488
27
+ qlc/py/timeseries_plots.cpython-311-darwin.so,sha256=CHsM4hWATgimH4EfWirtFdVsxDEItna7MfIyP5v03Po,621336
28
+ qlc/py/io.cpython-311-darwin.so,sha256=AkSZrpga_siB0RQ-joVfAum55waMRKpnxR9Y56J_0ik,143800
29
+ qlc/py/scatter_plots.cpython-311-darwin.so,sha256=0_fxD_8BAuBIrDszDQgPRycROTylL50F4UrfJBCHFDA,106208
30
+ qlc/config/qlc_tex.conf,sha256=O76Y4d1HkVmV7e75sKjlThGOIvTHoH4Tb4O7yC1NH0Q,5144
31
+ qlc/config/qlc_cams.conf,sha256=c7dePIqdN26750KGsm031HnAlXLb8EKFcRevyz8eFnw,1170
32
+ qlc/config/qlc_test.conf,sha256=9SQ2F0Bj1VXHT-e5RDdbTgKtWaz_wqBxYJDW3KMNrfg,1176
33
+ qlc/config/nml/mars_A2_sfc.nml,sha256=83Gkdr8vmlzif41EClWdjiJopZHDk9p-80-_l3fkeDE,638
34
+ qlc/config/nml/mars_B1_pl.nml,sha256=ii3fcR_LJTY9aODeTpqEhtofJPe85gqHQeWt3_Tgq2A,669
35
+ qlc/config/nml/mars_C1_pl.nml,sha256=gAkIFG3wOwz7jUpzNmiVoePnmDDTEWuPZk0Ov1egYp8,657
36
+ qlc/config/nml/mars_A3_sfc.nml,sha256=CFVxn_0frDrgY4HeINnaulGUasNY2hMZVLRPiVuRN_M,543
37
+ qlc/config/nml/mars_A1_sfc.nml,sha256=E5kG6rqVy4qvdvwpJ_sXfKzP2zwTq6wBAZcxuhUDZyQ,613
38
+ qlc/config/nml/mars_D.nml,sha256=DYtFEnAF1Nb7jwg3Gjf1SQIEtZbG_yvcV7W0ZMtoygI,565
39
+ qlc/config/nml/mars_C2_pl.nml,sha256=z3m0V33HjNS1kKZ_gtmbAnqDqWrAqUJzJwYGO6XfJC0,689
40
+ qlc/config/nml/mars_E.nml,sha256=F6qlw9WpKa6s2kXJCa90_JtajvHCihpTu24liMiLhHc,580
41
+ qlc/config/nml/mars_C3_ml.nml,sha256=IEdmbPOmJu_DSv8p5r6k--hj2xZFoYibCG8ogwxVXaI,654
42
+ qlc/config/nml/mars_G.nml,sha256=XK2kEVO02jX0MlopUUALBpMti4X_zJRrH3wBZURFd9w,535
43
+ qlc/config/nml/mars_F.nml,sha256=rIShFyYxx0ZIL_Kmd9yAtF0fGrh-hEbKmfGMhg56b9g,535
44
+ qlc/config/nml/mars_B2_pl.nml,sha256=_G2JFmvm6G6CvEZkb0zG8UKBqiiF1OwEgAkpNuFJapE,704
45
+ qlc/config/json/qlc_config_example_3a-us_obs.json,sha256=JtlLYpKN2ToVU_duUqbG6L8NZuRD2ehv8S94P-TC_So,2559
46
+ qlc/config/json/qlc_config_example_1b_all-mod.json,sha256=pmsuYHM2dYEcaoNVZqBzLUIsxdkWH6fzIVJnpu7B8kU,10887
47
+ qlc/config/json/qlc_config_example_2b_all-mod.json,sha256=-gQTvmquAoRh71nKJJYF4EsUQRFtKTkdPD9-PxZXdio,10887
48
+ qlc/config/json/qlc_config_example_2c_all-coll.json,sha256=wro2TX_jtrlgKPQb5ZIDWT5PtG-CJWESklna4d25RUU,8483
49
+ qlc/config/json/qlc_config_example_3b-us_mod.json,sha256=aWeBfpSX4ztdQL8MamG8bJ6znE0ftw_9lMv5NpsWWks,3729
50
+ qlc/config/json/qlc_config_example_1c_all-coll.json,sha256=nuo-2EZF3N9DGgfTguUURcNvYLNgrBgXEFVfjV52yjg,8488
51
+ qlc/config/json/qlc_config_example_1a_all-obs.json,sha256=YedsRXqi2ZezT5M5SGtVUzLGABHXMYjMJvJrmqYHs4E,7554
52
+ qlc/config/json/qlc_config_example_3c-us_coll.json,sha256=3lXZSxOUIRqiD5m6cQmMctJx9dn_JoyuGUUxXEqrVYQ,1449
53
+ qlc/config/json/qlc_config_example_4c_eu-coll.json,sha256=PnjdaP_KoUEpaMdybA8atmOfoACFPvF_cH83w8cQbVA,1423
54
+ qlc/config/json/qlc_config_example_2a_all-obs.json,sha256=t9yqtMFKendTF9c2DyA2udxWBcECBbe6b_26vmJAAQA,7596
55
+ qlc/config/json/qlc_config_example_4b_eu-mod.json,sha256=D2gLRwUjKZ97zlZdq8PNHcu9rSV8MjRMQ2IWZ4tHQmU,3717
56
+ qlc/config/json/qlc_config_example_4a_eu-obs.json,sha256=zSkChYknqQhJV-dWoDqPtY-2tCJHtIybJ60DOlCNDHs,1288
57
+ qlc/config/json/qlc_config.json,sha256=vOxUiBSVwg8pFuPnIaPz3M80aMata23HtldnB46bsTo,1327
58
+ qlc/cli/qlc_main.py,sha256=fZ4CgPDzc3LC865JL6tBeP7dHzanqSR6QIg33h9qFtI,7663
59
+ qlc/cli/__init__.py,sha256=JIJ_XEqrtN0kvnkBupk1ShKqAfjnpk1vg0L-EIF3uGY,771
60
+ qlc/cli/installer.py,sha256=ur6Ay7qKHt-8i7_TplEdlEpE23Qh0GAO15kVOAuphEQ,550
61
+ qlc/cli/qlc_py_main.py,sha256=6soHJyNTfu1DT9LtzSBsFmHntBRMzTKS6Y6BZ8fctX4,2503
62
+ qlc/sh/qlc_B1a.sh,sha256=fifFOWRbV1M4lJeoUwKpaejmYOToXQtZISoN5q0m3Dc,3741
63
+ qlc/sh/qlc_D1.sh,sha256=GU0xtF1ys5yB6gZi3T06DF7OagRMYyCs2reB3bTojBw,3639
64
+ qlc/sh/qlc_A1.sh,sha256=ALll_tcuOwK-TWuQg897jGvYr0DLG-RKbIG_A58PgJE,4563
65
+ qlc/sh/qlc_common_functions.sh,sha256=_Y0U7nF1mHxQsbrUS_YQR1l6G9HDK4mt_gRiEuSucbg,5698
66
+ qlc/sh/qlc_C5.sh,sha256=zC-wcm4MWpVflhJO1sLdki3PfclOMljh3ZAmScoSVvg,36427
67
+ qlc/sh/qlc_start_batch.sh,sha256=vwtoXV8sAF1OCzs2KfylOCy8_M2cFmV0HgdfxwJLLkA,2032
68
+ qlc/sh/qlc_main.sh,sha256=yyNs5r_xO0LmDba2GwcCyiLoSvn-g77aXwAVbmi_UV4,4253
69
+ qlc/sh/qlc_start.sh,sha256=FL37u3s29xTBN24dotWqXxGcY41rAhmEB1XLcG01uwE,1290
70
+ qlc/sh/qlc_Z1.sh,sha256=R9ulrb5tDjOuOAKd6a8FsDiCvIL1B8hcrCD25EM2T9o,5461
71
+ qlc/sh/qlc_B2.sh,sha256=xlNIJhQ1f_JSvysDIeWX1ZpflTCLfdgNzd05ufFJA0Q,10993
72
+ qlc/examples/cams_case_1/config/qlc_cams.conf,sha256=tmhy0u4EP0-Plh6ByNrnKwJqmBr1lzg4EHUms3qeRBk,5719
73
+ qlc/examples/cams_case_1/config/nml/mars_B1_pl.nml,sha256=ii3fcR_LJTY9aODeTpqEhtofJPe85gqHQeWt3_Tgq2A,669
74
+ qlc/examples/cams_case_1/config/nml/mars_C1_pl.nml,sha256=gAkIFG3wOwz7jUpzNmiVoePnmDDTEWuPZk0Ov1egYp8,657
75
+ qlc/examples/cams_case_1/config/nml/mars_A3_sfc.nml,sha256=CFVxn_0frDrgY4HeINnaulGUasNY2hMZVLRPiVuRN_M,543
76
+ qlc/examples/cams_case_1/config/json/qlc_config.json,sha256=vOxUiBSVwg8pFuPnIaPz3M80aMata23HtldnB46bsTo,1327
77
+ qlc/examples/cams_case_1/obs/ebas_station-locations.csv,sha256=v4LIThJ4gDmgJyDsXozwUm3k8lUvPhYKhrXjxp-YI3g,1743
78
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181220.nc,sha256=44wohtBt2B3OyS94588_nMomdDAgWmorWe0tNNt-lKs,145331
79
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181214.nc,sha256=etpmhAaUHVOABoOa9QDOF1hVvOhpytKXQhp6LFzyzco,145358
80
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181204.nc,sha256=sK092bbJTA5SKVMtbQZxiLu2foErxRws06soyavemVU,145171
81
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181230.nc,sha256=H2EsyIFva38W8K8APOo3nbYOv_5xb0kUcGSNXQGp7RQ,145680
82
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181210.nc,sha256=YSarGOGHuv0bBBTHogTiT3ia3Ba0WJZgSgC6V5Sgx28,145052
83
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181224.nc,sha256=Ao6XGhwlCJOCk2B2dvdq8W5wk3LxspzsbMSH3gEKF70,145547
84
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181211.nc,sha256=rj7-gnA7bSM45iz68Fjbvzt9jlCKRq_eW8J3PujWfYs,145445
85
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181225.nc,sha256=NX_-ApK44vVUl1MlL34Kp1_saqe4f1hHWjXHYMe3lrE,148101
86
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181201.nc,sha256=p0mRXcTHVkCmBZhzYl-LG-2pkd20U84ubiXWOsdWlpo,147934
87
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181221.nc,sha256=2aUMTPqiZm9h-9y26jOb3cWmeMNugK7V-8e5ItAWNu0,147848
88
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181215.nc,sha256=u93WDDRwrKMuKG2dfXqqz-7ZglSgvNrgSfZYRaSJO8A,145335
89
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181205.nc,sha256=eekGhiONUCCvijstVtBOa8RnjTpRa1iaA5AUY-d4WCY,147730
90
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181231.nc,sha256=aTAAzE3uXeeUIfVwn2Y_yDBM2oUe3HnFMyA7blD_8io,145563
91
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181212.nc,sha256=YfHgucNBIhppHx2ZvuZDS51LLUZ0cjaMAv0HmPyZABg,145270
92
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181226.nc,sha256=QaXOShPz7dp-GpLXwOGIPD52fvDMJz_ZwCfjFFTPzuc,137630
93
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181202.nc,sha256=b2GnqKha9ApadqT1PsfzOdGLyeTX2iRFZWHAe4m_6hw,147754
94
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181222.nc,sha256=70D7mC9tmaXLRCl_7LWIAJrmJL-lfxf8-SCFLgVNrXU,145581
95
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181216.nc,sha256=XITSvxE_H-mAbl8mTChGlmfjdUChLcbmIfGwJ3Lpnrs,145312
96
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181206.nc,sha256=bmrFOUT7I1vPSZxbrhnZ7ABMf72jw0iyCg6wgzgdhm8,145280
97
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181223.nc,sha256=Z3d0_SuxBr3g8-8Apk79Rkgo8ZqIv5eVSGOl9sIqPWo,145434
98
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181217.nc,sha256=imrxXStn8JHDE3cq9mm6ApUedx9s7-vrsRUVmrMS7Ds,147776
99
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181207.nc,sha256=mJ-BmPag7fdMA3U8B7nDceT4jsYrdwCWzmAVa93vy50,145312
100
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181213.nc,sha256=Qtf0i0y2dKqrWOWunALxuM604bJYt1_GsCJ-yD3wJcA,147719
101
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181227.nc,sha256=VIIwMqy8-3Oh_DUxL6TrAW3TQkE_PuuQy-UL4kPY01I,140117
102
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181203.nc,sha256=z1WS6bCfhAQHXNZzL90fGX1FsHW4AA4Es7DjeCVPPkg,145381
103
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181218.nc,sha256=BSWuq-opl7pWnfkp5fi6bL0xMRPdqupIeWANrea7Whc,137423
104
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181208.nc,sha256=og4cK4x-vE-qAAROyw6yHjVJKZeFsAtQhfOyKwhat0c,145388
105
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181228.nc,sha256=lRFdN3EMNT-_1i7OqJ0ASFTEbvdVVon-YkexmIz3Buk,145655
106
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181229.nc,sha256=TtdledzM8v9fKWMy07j0m2tXZcFVR2LOJCFhka9Ancg,148217
107
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181219.nc,sha256=oHRQoHzIPuqLHCSbUSB2-7jf0POFHkajB7NmD7JhElU,139924
108
+ qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181209.nc,sha256=LrPL3ivckNa5ea-E4njIIoY7syTou25PkuZTyK5mZi8,142958
109
+ qlc/examples/cams_case_1/mod/iqi9/2018/iqi9_20181215-20181231_A3_sfc.grb,sha256=WaQI398klK1LmGMqJTT8ghuNY1tGYJFdA3QP1RV6x4M,10341960
110
+ qlc/examples/cams_case_1/mod/b2ro/2018/b2ro_20181215-20181231_A3_sfc.grb,sha256=G3z7XhuYn0r6Rs7pcIHHrYrShBuNXXhLO6YXmfYGr_g,10341600
111
+ qlc/doc/USAGE.md,sha256=hUMiv3xj5qn2P8HiOz34A9uyE-P1_mQp1-tIBiU9_Nk,1145
112
+ qlc/doc/README.md,sha256=3CfnL7_xzHoH3RmHS4g1D_R6qZVMLgDBk7mEYXZORas,3478
113
+ qlc/doc/CONTRIBUTING.md,sha256=IXYwAIdAfiQUQOVJcP0RTVpWL9Q-dW2ljG6hs4WkHTY,2607
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp311-cp311-macosx_11_0_arm64
5
+
@@ -0,0 +1,6 @@
1
+ [console_scripts]
2
+ qlc = qlc.cli:run_shell_driver
3
+ qlc-install = qlc.cli.installer:main
4
+ qlc-py = qlc.cli.qlc_py_main:main
5
+ qlc-python = qlc.cli:run_python_driver
6
+ sqlc = qlc.cli:run_batch_driver
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 ResearchConcepts io GmbH
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ qlc