{"id":19407429,"url":"https://github.com/observingclouds/eurec4a_snd","last_synced_at":"2025-08-18T13:09:12.342Z","repository":{"id":54652312,"uuid":"213821146","full_name":"observingClouds/eurec4a_snd","owner":"observingClouds","description":"Collaborative sounding software during EUREC4A/ATOMIC","archived":false,"fork":false,"pushed_at":"2024-08-19T16:04:06.000Z","size":2065,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-23T10:51:57.376Z","etag":null,"topics":["bufr","eurec4a","mwx","radiosonde","sounding"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/observingClouds.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-10-09T04:31:03.000Z","updated_at":"2024-09-04T12:47:54.000Z","dependencies_parsed_at":"2025-04-24T09:44:22.430Z","dependency_job_id":null,"html_url":"https://github.com/observingClouds/eurec4a_snd","commit_stats":null,"previous_names":[],"tags_count":62,"template":false,"template_full_name":null,"purl":"pkg:github/observingClouds/eurec4a_snd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/observingClouds%2Feurec4a_snd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/observingClouds%2Feurec4a_snd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/observingClouds%2Feurec4a_snd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/observingClouds%2Feurec4a_snd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/observingClouds","download_url":"https://codeload.github.com/observingClouds/eurec4a_snd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/observingClouds%2Feurec4a_snd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270997152,"owners_count":24681992,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bufr","eurec4a","mwx","radiosonde","sounding"],"created_at":"2024-11-10T11:47:14.909Z","updated_at":"2025-08-18T13:09:12.308Z","avatar_url":"https://github.com/observingClouds.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# eurec4a_snd\r\n\r\n[![Software](https://img.shields.io/badge/Software-10.5281%2Fzenodo.4391098-blue)](https://zenodo.org/badge/latestdoi/213821146) [![Data](https://img.shields.io/badge/Data-10.25326%2F137-green)](https://doi.org/10.25326/137)\r\n\r\nDuring the EUREC4A/ATOMIC campaign many radiosondes were launched from different platforms and partners. This collection of scripts has been used to convert, visualize and interpolate the data in a common way.\r\n\r\nThis repository has been created before the start of the campaign and evolved further in the postprocessing phase. It therefore contains scripts to\r\n- convert and visualize BUFR and Vaisala MW41 rawdata (`.mwx`)\r\n- interpolate sounding data\r\n- correct and quality control soundings\r\n\r\nA generalized version of this repository has evolved at https://github.com/observingClouds/pysonde.\r\n\r\nWhile most of the scripts can be applied to every sounding that exists in the BUFR or mwx format, some of the postprocessing scripts are specific to the EUREC4A campaign and can only serve as a guidance for other studies.\r\n\r\n## What's new\r\nChanges to the software and produced data can be found [here](docs/whats-new.rst)\r\n\r\n## Installation\r\n\r\nThe package can be installed with `conda` ([Miniconda](https://docs.conda.io/en/latest/miniconda.html) or [Anaconda](https://www.anaconda.com/distribution/)):\r\n\r\nThe best option is to create a new environment to not run into dependency problems with pre-installed package:\r\n\r\n```bash\r\nconda create --name field_campaign\r\n```\r\n\r\nActivate the new environment with\r\n\r\n```bash\r\nconda activate field_campaign\r\n```\r\nor\r\n```bash\r\nsource activate field_campaign\r\n```\r\n\r\nThe actual package can than be installed with\r\n```bash\r\nconda install -c observingclouds -c conda-forge eurec4a_snd\r\n```\r\n\r\n## First execution\r\nTo convert BUFR files, simply run `sounding_converter -i your_sounding.bfr` after the installation. During the first execution you will be asked to give meta-information which will be included in the output files.\r\n\r\nThese include e.g. `contact_person` and `platform` name which are probably helpful after the exchange of these files with other scientists.\r\n\r\nIt is also possible to copy the `config/meta_information_template.ini` to one's favorite folder and change the files content accordingly. If the file is not renamed `meta_information.ini` and is in the home directory, the option `-c` has to be used during the call of `sounding_converter` otherwise it will not recognize the configuration.\r\n\r\n(macOS or linux)\r\n```python\r\nsounding_converter -i your_sounding.bfr -c /your/path/to/meta_information.ini\r\n```\r\n\r\n(windows)\r\n```python\r\nsounding_converter.exe -i your_sounding.bfr -c /your/path/to/meta_information.ini\r\n```\r\n\r\n## Update\r\n\r\nPlease check for updates at the beginning of the campaign by running\r\n```bash\r\nconda install -c observingclouds -c conda-forge eurec4a_snd\r\n```\r\n\r\n## Change meta-information\r\nThe meta-information which is used in the netCDF files and in order to create a reasonable filename, can always be changed by either\r\n\r\n- remove the file `meta_information.ini` in `$HOME` and run `sounding_converter` again, as if it would be your first execution\r\n- edit the file `~/meta_information.ini` directly\r\n\r\n## Visualization\r\n### Panoply\r\nThe converted dat files are netCDF files which conform to the CF-Conventions as far as possible and make use of the `discrete sampling geometry`. The sounding data can therefore easily be drawn as trajectories without extra efforts. One example is the software [Panoply](https://www.giss.nasa.gov/tools/panoply/)\r\n\r\n![Trajectory visualization with panoply](docs/panoply_visualization_traj.png?raw=true \"Trajectory visualization with panoply\")\r\n\r\n### Simple Plotting\r\nThe package also includes a few plotting routines that can be called with e.g.\r\n\r\n(macOS or linux)\r\n```bash\r\nsounding_visualize -i converted/file/sounding.nc\r\n```\r\n\r\n(windows)\r\n```bash\r\nsounding_visualize.exe -i converted/file/sounding.nc\r\n```\r\n\r\n### SkewT Plotting\r\nA skewT diagram can be created with\r\n\r\n(macOS or linux)\r\n```bash\r\nsounding_skewT -i converted/file/sounding.nc\r\n```\r\n\r\n(windows)\r\n```bash\r\nsounding_skewT.exe -i converted/file/sounding.nc\r\n```\r\nFurther examples on how to create a skewT diagram can be found in `eurec4a_snd/examples/visualizing`. Have a look at [Skew-T examples](eurec4a_snd/examples/visualizing/README.md)\r\n\r\n## Example\r\n\r\nExamples of the input `.bfr` files and the converted `.nc` file can be found in `examples/data`.\r\n\r\n## Interpolation\r\nTo concatenate the soundings and for an easier analysis, the converted soundings (output of `sounding_converter`) can be interpolated on a common altitude grid by\r\n```bash\r\nsounding_interpolate -i /path/to/converted/soundings*.nc\r\n```\r\n\r\n## Trouble shooting\r\n\r\n\u003cdetails\u003e\r\n  \u003csummary\u003eImportError: DLL load failed: The specific module could not be found\u003c/summary\u003e\r\n  \u003cbr\u003e\r\n  Windows users might get the above error message when trying to visualize the soundings. The error is caused in pillow. Unfortunately there is not a very good solution yet, but the following might work for you:\r\n  \u003cpre\u003econda remove --force pillow\u003cbr\u003epip install pillow\u003c/pre\u003e\r\n  \u003cbr\u003e\r\n\u003c/details\u003e\r\n \r\n\u003cdetails\u003e\r\n  \u003csummary\u003eCommands `sounding_convert` and `sounding_visualize` cannot be found!\u003c/summary\u003e\r\n  \u003cbr\u003e\r\n  It seems something went wrong with the installation via `conda`. Although it is recommended to install this package via anaconda because it comes with the benefit that all dependencies should be resolved, you can also download this git repository and run within the `eurec4a_snd` folder:\r\n  \u003cpre\u003epython L1_rs41.py -i your_sounding.bfr\u003c/pre\u003e\r\nor for quicklooks\r\n  \u003cpre\u003epython make_quicklooks_rs41.py -n converted/file/sounding.nc\u003c/pre\u003e\r\n  \u003cbr\u003e\r\n\u003c/details\u003e\r\n\r\n\u003cdetails\u003e\r\n  \u003csummary\u003eSlow internet connection: Download failed\u003c/summary\u003e\r\n  \u003cbr\u003e\r\n  In case of a slow internet connection, the command `conda install some_package` might fail due to connection timeout. In this case it might be a good option to download the failing package manually.\r\n\r\n  In this case the `eurec4a_snd` package for OSX is downloaded and installed manually:\r\n  \u003cpre\u003ewget -c https://anaconda.org/observingClouds/eurec4a_snd/v2.0.0/download/osx-64/eurec4a_snd-v2.0.0-py37_0.tar.bz2\u003c/pre\u003e\r\nThe path needs to be adapted depending on the operating system and the version that should be downloaded. You may actually see the path you need to download in the error message of `conda install eurec4a_snd`.\r\n\r\nThe installation follows simply with\r\n  \u003cpre\u003econda install -c observingClouds eurec4a_snd-v2.0.0-py37_0.tar.bz2\u003c/pre\u003e\r\n\u003c/details\u003e\r\n\r\n\u003cdetails\u003e\r\n  \u003csummary\u003eECCODES_DEFINITION_PATH defined incorrectly\u003c/summary\u003e\r\n  \u003cbr\u003e\r\n  In case there appears an error, that the variable ECCODES_DEFINITION_PATH is not defined or not correctly set, the easiest solution is to insert the following two lines at the beginning of the script L1_bufr.py.\r\n  \u003cpre\u003eimport os\u003c/pre\u003e\r\n  \u003cpre\u003eos.environ[\"ECCODES_DEFINITION_PATH\"] = r\"C:\\Users\\...\\envs\\field_campaign\\Library\\share\\eccodes\\definitions\"\u003c/pre\u003e\r\n  The path needs to be adapted to your environment of course.\r\n\u003c/details\u003e\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobservingclouds%2Feurec4a_snd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fobservingclouds%2Feurec4a_snd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobservingclouds%2Feurec4a_snd/lists"}