Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test #3

Open
wants to merge 139 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
139 commits
Select commit Hold shift + click to select a range
d4ffc36
adding routines for reading ground and air profile data
hendrikwout Nov 8, 2017
73aa61b
make change to the main code to be able to read air profiles
hendrikwout Nov 8, 2017
f9c88f9
improve structure by providing a class4gl.py wrapper around model.py
hendrikwout Nov 10, 2017
a1ce7c0
this is the beta version of class4gl
hendrikwout Aug 20, 2018
7b1c7bd
Create README.md
hendrikwout Aug 20, 2018
23387b5
Create setup_global.py
hendrikwout Aug 20, 2018
cdebdf0
initial commit
hendrikwout Aug 21, 2018
54b4cc3
restructure
hendrikwout Aug 21, 2018
919a737
Delete class4gl.py
hendrikwout Aug 21, 2018
7fb0c48
restructure again
hendrikwout Aug 21, 2018
c3cd328
Merge branch 'master' of https://github.com/hendrikwout/class4gl
hendrikwout Aug 21, 2018
d1b6446
test
hendrikwout Aug 21, 2018
adfa5b6
almost initial version
hendrikwout Aug 21, 2018
e530f49
almost initial version
hendrikwout Aug 21, 2018
945a651
get the simultions.py working for first test release
hendrikwout Aug 22, 2018
14043c5
add temporary file
hendrikwout Aug 22, 2018
74c2098
add use of system temporary directory
hendrikwout Aug 22, 2018
a83e6be
test
hendrikwout Aug 22, 2018
afdf5aa
make interface work
hendrikwout Aug 22, 2018
8ad4f24
gitignore
hendrikwout Aug 22, 2018
fa082ef
cleanups
hendrikwout Aug 22, 2018
44874f7
get rid of skilearn dependency
hendrikwout Aug 22, 2018
7e58042
test
hendrikwout Aug 22, 2018
cf5ebcd
Merge branch 'master' of github.com:hendrikwout/class4gl
hendrikwout Aug 22, 2018
ed9bf77
add eval report
hendrikwout Aug 22, 2018
2a3cb5f
Merge branch 'master' of github.com:hendrikwout/class4gl
hendrikwout Aug 22, 2018
2f7e875
evaluation
hendrikwout Aug 22, 2018
1acc5ab
Merge branch 'master' of github.com:hendrikwout/class4gl
hendrikwout Aug 22, 2018
d9594ed
tkagg
hendrikwout Aug 22, 2018
89d85f5
Merge branch 'master' of github.com:hendrikwout/class4gl
hendrikwout Aug 22, 2018
568a3ab
tkagg
hendrikwout Aug 22, 2018
d6f72e6
tkagg
hendrikwout Aug 22, 2018
2a59395
Merge branch 'master' of github.com:hendrikwout/class4gl
hendrikwout Aug 22, 2018
25f852a
evaluation
hendrikwout Aug 22, 2018
9ab98ca
evaluation
hendrikwout Aug 22, 2018
c00e92a
Merge branch 'master' of github.com:hendrikwout/class4gl
hendrikwout Aug 22, 2018
86a6dc9
wilting point experiment
hendrikwout Aug 22, 2018
96ea743
Merge branch 'master' of github.com:hendrikwout/class4gl
hendrikwout Aug 22, 2018
eb0f601
fix loading class4gl libraries
hendrikwout Aug 23, 2018
859e77a
Merge branch 'master' of github.com:hendrikwout/class4gl
hendrikwout Aug 23, 2018
fd3c2ec
fix loading class4gl libraries
hendrikwout Aug 23, 2018
f7534c8
Merge branch 'master' of github.com:hendrikwout/class4gl
hendrikwout Aug 23, 2018
aa571f8
batch qsub array jobs + clean ups + revision of arguments
hendrikwout Aug 28, 2018
190a572
remove old file
hendrikwout Aug 28, 2018
804edc1
align simulations_wilt.py with simulations.py
hendrikwout Aug 28, 2018
faf3b4d
small updates
hendrikwout Aug 28, 2018
124d46e
small updates
hendrikwout Aug 28, 2018
c9aaa50
small updates
hendrikwout Aug 28, 2018
de6c9cb
small updates
hendrikwout Aug 28, 2018
032acc1
make it also work for the standard simulation (for the tutorial)
hendrikwout Aug 28, 2018
40c1982
make tempdir
hendrikwout Aug 28, 2018
f3b2826
temp dir interface_fucntions.py wrong
hendrikwout Aug 28, 2018
effb426
temp dir interface_fucntions.py wrong
hendrikwout Aug 28, 2018
d947a25
temp dir interface_fucntions.py wrong
hendrikwout Aug 28, 2018
286eb0e
temp dir interface_fucntions.py wrong
hendrikwout Aug 28, 2018
121462c
temp dir interface_fucntions.py wrong
hendrikwout Aug 28, 2018
d42486f
temp dir interface_fucntions.py wrong
hendrikwout Aug 28, 2018
e7c973a
fixing ruby
hendrikwout Aug 28, 2018
0e6bae7
add cleanup_experiments feature
hendrikwout Aug 28, 2018
b1edc0d
fix to avoid boolean cleanup_experiments passed through pbs job
hendrikwout Aug 29, 2018
2f26d34
fix to avoid boolean cleanup_experiments passed through pbs job
hendrikwout Aug 29, 2018
e443be1
add evaluation interfaces
hendrikwout Aug 30, 2018
41b6f19
evaluation interfaces
hendrikwout Aug 30, 2018
60ae5ec
modified: .gitignore
hendrikwout Aug 30, 2018
3e7b724
modified: class4gl/interface/interface.py
hendrikwout Aug 30, 2018
b4b76cc
xies in figures
hendrikwout Aug 30, 2018
b4202d8
figure fixes
hendrikwout Aug 30, 2018
f74ec72
figure fixes
hendrikwout Aug 30, 2018
91d362d
figure fixes
hendrikwout Aug 30, 2018
b24bc77
figure fixes
hendrikwout Aug 30, 2018
70e9d66
modified: .gitignore
hendrikwout Aug 30, 2018
9546604
figure fixes
hendrikwout Aug 30, 2018
51fbba9
nicely-organized boxplots
hendrikwout Sep 1, 2018
ded0a79
nicely-organized boxplots
hendrikwout Sep 1, 2018
cfc535d
batch_update.py and update_yaml.py for updating datasets, new interf…
hendrikwout Sep 4, 2018
dbf3f27
correction in advection terms
hendrikwout Sep 4, 2018
659ca0f
era-interim input
hendrikwout Sep 7, 2018
1aebcb6
fix permission problbem when getting station list
hendrikwout Sep 8, 2018
1053191
make setup_global work
hendrikwout Sep 12, 2018
82b3c8d
use all era-interim data
hendrikwout Sep 15, 2018
efa6280
use all era-interim data
hendrikwout Sep 15, 2018
a1b42c3
use all era-interim data
hendrikwout Sep 15, 2018
f02f420
Fix Ps input; implement warning message in case of invalid input
hendrikwout Sep 18, 2018
b82d002
Fix Ps input; implement warning message in case of invalid input
hendrikwout Sep 18, 2018
ff9253c
fix searching for first file of a station.
hendrikwout Sep 18, 2018
b131813
fix searching for first file of a station.
hendrikwout Sep 18, 2018
861e7f8
make simulations.py less strict, so that writing out data does not fail.
hendrikwout Sep 19, 2018
cfd1914
Fix errors in case there are more than 10 chunk files.
hendrikwout Sep 19, 2018
6fbe86b
Allways sort chunk files in the right way.
hendrikwout Sep 19, 2018
1f72035
Allways sort chunk files in the right way.
hendrikwout Sep 19, 2018
dbbe06c
matplotlib was loaded in a wrong way
hendrikwout Sep 20, 2018
64e1c8b
matplotlib was loaded in a wrong way
hendrikwout Sep 20, 2018
3a3259f
fix in interface_multi so that correct chunk is loaded in case of nex…
hendrikwout Sep 21, 2018
4a41cd5
fix station lat lon in setup_era.py.
hendrikwout Sep 24, 2018
cddbd89
fix station lat lon in setup_era.py.
hendrikwout Sep 24, 2018
b00c3ac
remove stop statement.
hendrikwout Sep 24, 2018
5dd62f0
fix simulations.py and implelemt vizualization of 3d fields in interf…
hendrikwout Sep 26, 2018
8571738
add switch for calculating tropospheric variables
hendrikwout Oct 2, 2018
5e1c6b0
put warning messages instead of info messages when input is missing
hendrikwout Oct 3, 2018
3b63953
fix era profile input in case of missing (advection) values
hendrikwout Oct 3, 2018
182d94e
fix wind speed in blh calculation
hendrikwout Oct 3, 2018
92192ad
check input source in get_era.py
hendrikwout Oct 3, 2018
36b0d2e
full update
hendrikwout Oct 3, 2018
345e333
lots of updates, including load performance increase with unified pkl…
hendrikwout Oct 24, 2018
4e2728f
new procedure update_input.py and update_output.py
hendrikwout Oct 26, 2018
facdd81
new procedure update_input.py and update_output.py
hendrikwout Oct 29, 2018
eb902e6
new procedure update_input.py and update_output.py
hendrikwout Oct 29, 2018
18c2a79
new procedure update_input.py and update_output.py
hendrikwout Oct 29, 2018
eb6769c
new procedure update_input.py and update_output.py
hendrikwout Oct 29, 2018
9ebd8c6
full update
hendrikwout Nov 6, 2018
bce2493
full update
hendrikwout Nov 6, 2018
563d34e
full update
hendrikwout Nov 6, 2018
25ae1c6
full update
hendrikwout Nov 6, 2018
df69079
make batch pbs work with arbitrary modules
hendrikwout Nov 13, 2018
de6af0f
update
hendrikwout Nov 20, 2018
1839a2a
fix load modules batch_setup_era.py
hendrikwout Nov 21, 2018
e0b41c3
make batch pbs work with arbitrary modules
hendrikwout Nov 22, 2018
b9f2e3c
add MANIFEST.in to include everything in pypi distribution
hendrikwout Jan 12, 2019
3090b8c
readme; changes for release v1.0: multi-processor runs without qsub; …
hendrikwout Jan 24, 2019
1ddbc87
make readme
hendrikwout Jan 24, 2019
a07c2a3
make readme
hendrikwout Jan 24, 2019
1ba4ab4
make readme
hendrikwout Jan 24, 2019
ffe0ed4
make readme
hendrikwout Jan 24, 2019
39bf91d
make readme
hendrikwout Jan 24, 2019
66f2556
image
hendrikwout Jan 24, 2019
ddc9229
image
hendrikwout Jan 24, 2019
7c72dfa
fix next record
hendrikwout Jan 29, 2019
d5dd32a
fix next record etc.
hendrikwout Jan 29, 2019
d1aede5
fix interface
hendrikwout Feb 1, 2019
98a36a8
fix prev record.
hendrikwout Feb 2, 2019
1273fb5
fixes in the advection rates and profile estimates for igra and goamazon
hendrikwout Feb 19, 2019
f57ed7e
multiple updates
hendrikwout Mar 4, 2019
4b48c0c
multiple updates
hendrikwout Mar 4, 2019
98b1a22
multiple updates
hendrikwout May 29, 2019
e07b40c
assign next version
hendrikwout May 29, 2019
05fecf5
Compatibility fixes
Feb 12, 2021
43e374b
features (manual input parameters)
Feb 22, 2021
c50c60a
features (manual input parameters)
Feb 22, 2021
324f767
write out error messages on job failure in sumulations.py
hendrikwout Jun 26, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
110 changes: 110 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
*.o,
*.pyc
*.class
class4gl/__pycache__/*
*.log
.*
build/*
dist/*
trash/*
*/__pychache__/
*.py[cod]
*$py.class
.Python
develop-eggs/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST


# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/



!/.gitignore
55 changes: 55 additions & 0 deletions MANIFEST
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# file GENERATED by distutils, do NOT edit
setup.cfg
setup.py
class4gl/__init__.py
class4gl/class4gl.py
class4gl/data_global.py
class4gl/data_soundings.py
class4gl/era_advection.py
class4gl/interface_functions.py
class4gl/interface_multi.py
class4gl/model.py
class4gl/interface/interface.py
class4gl/interface/interface_cloudiness.py
class4gl/interface/interface_koeppen.py
class4gl/interface/interface_new_koeppen.py
class4gl/interface/interface_show_profiles.py
class4gl/interface/interface_stations.py
class4gl/interface/taylorDiagram.py
class4gl/interface/test_histogram.py
class4gl/interface/world_histogram.py
class4gl/processing/batch_update_output.py
class4gl/processing/update_output.py
class4gl/ribtol/__init__.py
class4gl/ribtol/ribtol_hw.py
class4gl/ribtol/setup.py
class4gl/setup/batch_setup_era.py
class4gl/setup/batch_setup_global_old.py
class4gl/setup/batch_setup_igra.py
class4gl/setup/batch_update.py
class4gl/setup/batch_update_input.py
class4gl/setup/setup_bllast.py
class4gl/setup/setup_bllast_noon.py
class4gl/setup/setup_era.py
class4gl/setup/setup_global_afternoon.py
class4gl/setup/setup_goamazon.py
class4gl/setup/setup_goamazon_noon.py
class4gl/setup/setup_humppa.py
class4gl/setup/setup_humppa_noon.py
class4gl/setup/setup_igra.py
class4gl/setup/setup_igra_20181217.py
class4gl/setup/setup_igra_pkl.py
class4gl/setup/update_input.py
class4gl/setup/update_setup.py
class4gl/setup/trash/setup_global_old.py
class4gl/simulations/batch_simulations.py
class4gl/simulations/copy_update.py
class4gl/simulations/runmodel.py
class4gl/simulations/simulations.py
class4gl/simulations/simulations_iter.py
class4gl/simulations/simulations_iter_bowen.py
class4gl/simulations/simulations_iter_test.py
class4gl/simulations/simulations_smchange2.py
class4gl/simulations/simulations_veg.py
class4gl/simulations/simulations_wwilt_wfc.py
class4gl/simulations/trash/run_test.py
9 changes: 9 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
recursive-include class4gl *.py
recursive-include class4gl *.png
recursive-include class4gl *.pbs
recursive-exclude class4gl *.pyc
# include simulations/*
# include setup/*
# include processing/*


47 changes: 47 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
[![CLASS4GL Logo](https://class4gl.eu/wp-content/uploads/2019/01/cropped-class4gl_small-1.png)](https://class4gl.eu)

_CLASS4GL_ (Chemistry Land-surface Atmosphere Soil Slab model for Global Studies) is a fast and easy interface to investigate the dynamics of the atmospheric boundary layer from weather balloons worldwide. General info and tutorials for using CLASS4GL are available at https://class4gl.eu, and video clips about the atmospheric boundary layer physics can be found on the [website of the original CLASS model](classmodel.github.io/).

# Features
- _Mine_ appropriate observations from global radio soundings, satellite data, reanalysis and climate models
- _Automise_ mass parallel simulations of the atmospheric boundary layer and global sensitivity experiments
- _Foster_ a better understanding of land-atmosphere interactions and the drivers of extreme weather globally
- _Share_ your data, experiments, and code developments with the research community

# Method

### Description

The framework CLASS4GL is designed to facilitate the investigation of the atmospheric boundary layer evolution in response to different land and atmospheric conditions observed around the world. The core of the platform is the model CLASS that is used to simulate the evolution of the atmospheric boundary layer. Instruction video about the boundary layer processes and how they are considered in the CLASS model can be found as on the [CLASS model website](https://classmodel.github.io/). Observational data from balloons, satellites and reanalysis, are used to constrain and initialize the model. CLASS4GL uses 2 million global balloon soundings from the integrated global radio sounding archive and satellite data from the last 40 years.

### Components

- A global data module that employs balloon soundings, satellite imagery and reanalysis data
- An interface to easily perform multiple simulations of the atmospheric boundary layer in parallel, and multiple batches of global sensitivity experiments
- Tools for Pre-and post-processing the data pool of input data and experiments.
- A GUI data explorer

The tool is under continuous development, and it can downloaded and installed as described in the tutorials on class4gl.eu/#getstarted.

In case you experience a problem or a bug, please don’t hesitate to contact us class4gl.eu/#contact. You an also open an issue on the github page (https://github.com/hendrikwout/class4gl/issues) . Any feedback will be highly appreciated.

### Data sources

CLASS4GL employs the balloon soundings from the Integrated Global Radiosonde Archive (IGRA) to initialize and validate the CLASS model. The sounding data is supplemented with ancillary data to further constrain the model. Therefore, a default set of gridded global datasets from satellite imagery, reanalysis and and surveys have been used that span a period of 1981–2015. An complete overview of the datasets can be found in the table. However, the default set can be replaced by alternative datasets as long as they are provided in netCDF format.

[Schematic overview of CLASS4GL](https://class4gl.eu//wp-content/uploads/2019/01/image4-1024x794.png)

A CLASS4GL data package is available that can be directly used to perform and validate ABL model simulations and sensitivity experiments. The locations of the balloon soundings are performed for different climate regions as shown on the map.

[150 stations from IGRA of the reference dataset to perform and validate the ABL model simulations with CLASS4GL (see Sect. 2.2 of the CLASS4GL manuscript). The different climate classes are indicated with the colors according to the Köppen-Geiger climate classification. The markers indicate the locations of the atmospheric profiles from three observation campaigns (ie., HUMPPA, BLLAST and GOAMAZON)](https://class4gl.eu/wp-content/uploads/2019/01/image-1-480x300.png)]

[Data library of CLASS4GL](https://class4gl.eu/wp-content/uploads/2019/01/image-5-768x492.png)

### Reference
H. Wouters, I. Y. Petrova, C. C. van Heerwaarden, J. Vilà-Guerau de Arellano, A. J. Teuling, J. A. Santanello, V. Meulenberg, D. G. Miralles. A novel framework to investigate atmospheric boundary layer dynamics from balloon soundings worldwide: CLASS4GL v1.0. In preparation.


# Get started:
see https://class4gl.eu/#getstarted


Binary file added class4gl/Equirectangular_projection_SW.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions class4gl/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# from . import model,class4gl,interface_multi,data_air,data_global
from ribtol import *
from setup import *
from simulations import *
from processing import *

__version__ = '0.1.0'

__author__ = 'Hendrik Wouters <[email protected]>'

__all__ = []
Loading