{"id":19459554,"url":"https://github.com/elcarrillo/plumeviz","last_synced_at":"2026-04-19T03:08:47.484Z","repository":{"id":245650103,"uuid":"818824604","full_name":"elcarrillo/PlumeViz","owner":"elcarrillo","description":"PlumeViz features a Plumeria Python wrapper, a tool designed to streamline the batch processing and analysis of 1D volcanic plume simulations using Plumeria (modern fortran version) software.","archived":false,"fork":false,"pushed_at":"2024-12-31T03:12:24.000Z","size":19759,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-24T01:35:31.346Z","etag":null,"topics":["computational-science","plume-model","plume-modeling","python3","volcanology"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elcarrillo.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":"2024-06-23T01:28:05.000Z","updated_at":"2024-12-31T02:58:12.000Z","dependencies_parsed_at":"2024-11-10T17:34:51.131Z","dependency_job_id":"04b63fa5-fc17-4ef9-b4a2-68db52cc21ec","html_url":"https://github.com/elcarrillo/PlumeViz","commit_stats":null,"previous_names":["elcarrillo/plumeviz"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/elcarrillo/PlumeViz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elcarrillo%2FPlumeViz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elcarrillo%2FPlumeViz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elcarrillo%2FPlumeViz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elcarrillo%2FPlumeViz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elcarrillo","download_url":"https://codeload.github.com/elcarrillo/PlumeViz/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elcarrillo%2FPlumeViz/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31992835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"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":["computational-science","plume-model","plume-modeling","python3","volcanology"],"created_at":"2024-11-10T17:33:02.248Z","updated_at":"2026-04-19T03:08:47.465Z","avatar_url":"https://github.com/elcarrillo.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PlumeViz\n## [![DOI](https://zenodo.org/badge/818824604.svg)](https://zenodo.org/doi/10.5281/zenodo.13685923)\n\n\n## Overview\nPlumeViz features a Plumeria Python wrapper, a tool designed to streamline the batch processing and analysis of 1D volcanic plume simulations using Plumeria software. This wrapper automates the generation of input files, execution of simulations, and post-processing of results, making it easier to manage large sets of simulation runs and analyze their outputs efficiently.\n\n\n**Auxiliary Modules.** \u003cbr/\u003e\nThis repository also includes auxiliary scripts for conducting single and bulk runs of Plumeria. These scripts use specific vent diameter values mapped to secondary values, such as maintaining a constant mass flux while varying external water content. Additionally, the scripts can calculate and visualize thermal energy at the vent, demonstrate how density changes by adding external water, and visualize ambient temperature and humidity using sample NOAA data.\n\n\n\n**Why Plumes Matter**\u003cbr/\u003e\nThe 2022 Hunga eruption at the Hunga Tonga-Hunga Ha'apai volcano was a significant volcanic event, generating a massive stratospheric plume visible from space. Understanding the dynamics of such plumes is essential for predicting the dispersion of volcanic ash and gases, which have critical implications for aviation safety and climate. Applying a 1D model to this type of eruption provides a starting point for comprehending the complexities of wet volcanic plumes.\n\n\n\u003cfigure\u003e\n    \u003cfigcaption\u003e2022 Hunga Eruption Plume\u003c/figcaption\u003e\n    \u003cimg src=\"tonga_plume.gif\" alt=\"plume\" width=\"300\"/\u003e\n    \u003cfigcaption\u003e\u003csmall\u003eGIF source: \u003ca href=\"https://www.jma.go.jp/jma/kishou/info/coment.html\"\u003eJapan Meteorological Agency\u003c/a\u003e\u003c/small\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n \u003cbr/\u003e\u003cbr/\u003e\n\n\n\n## Features\n\n- **Batch Processing**: Automate the generation and execution of multiple Plumeria simulations.\n- **Data Analysis**: Extract and analyze key parameters from the simulation outputs.\n- **Plotting Utilities**: Generate various plots to visualize the simulation results.\n- **Flexible Configuration**: Easily adjust simulation parameters and directories.\n\n## Installation\n\n1. **Clone the Repository**:\n    ```bash\n    git clone https://github.com/elcarrillo/PlumeViz.git\n    cd PlumeViz\n    ```\n2. **Create Virtual Environment**\n    - It is **recommended** that you install in a virtual environment so as not to interfere with dependencies in other projects/workflow.\n        ```bash\n        python -m venv env\n        ```\n        #### On Windows\n        ```bash\n        .\\env\\Scripts\\activate\n        ```\n        #### On macOS/Linux\n        ```bash\n        source env/bin/activate\n        ```\n3. **Install Dependencies**:\n    ```bash\n    pip install -r requirements.txt\n    ```\n    - The colormaps library is optional but provides scientific color mapping if desired.\n4. **Set Up Plumeria**:\n    - Ensure that the Plumeria software is installed and accessible on your system.\n    - Update the `plumeria_loc` variable in the scripts to point to the correct location of the Plumeria executable.\n    \n## Directory Structure and Contents\n```\nPlumeViz/\n├── README.md                                    # Project documentation\n├── requirements.txt                             # List of dependencies\n├── README.txt                                   # Additional project documentation\n├── How to download and install Plumeria.docx    # Installation guide for Plumeria\n├── LICENSE                                      # software license\n├── data/                                        # Directory containing wrapper scripts\n│   ├── input/\n│   └── output/\n├── plumeviz/                                    # Directory containing wrapper scripts\n│   ├── plumeria_wrappers/\n│   │   ├── batch_extract_plumeria_output_MAIN.py\n│   │   ├── batch_plumeria_input_bulk_MAIN.py\n│   │   ├── batch_extract_plumeria_output_AUX.py\n│   │   ├── batch_plumeria_input_bulk_AUX.py\n│   │   ├── batch_vent_functions.py\n│   │   ├── plumeria_single_run.py\n│   │   └── input_parameters.py\n│   └── plotting/                                # Directory containing main plotting scripts\n│       ├── batch_plot_GRID.py\n│       ├── batch_plume_plots.py\n│       └── batch_dz_plots_all.py\n├── ri_module/                                   # Directory containing Richardson number calculations/scripts\n│   ├── notebooks/\n│   ├── _init_.py\n│   ├── constants.py\n│   ├── data_processing.py\n│   ├── plotting.py\n│   └── main.py\n├── sample_plots/                                # Directory containing sample plots\n│   ├── sample.png\n│   └── sample2.png\n└── aux_plots/                                   # Directory containing aux plotting modules\n    ├── data/\n    ├── atmospheric_plots.py\n    ├── density_plots.py\n    └── initial_thermal_energy.py\n```\n\n## Usage\n\n### Configuration\n\nBefore running the wrapper, you need to configure the parameters for your simulations. The main configuration is done in the `main` function of the script:\n\n- **Mass Fraction of Added Water**: `mass_frac_add_water_list`\n- **Magma Temperature List**: `magma_temp_list`\n- **Vent Velocity List**: `vent_vel_list`\n- **Humidity List**: `humid_list`\n- **Vent Diameter**: `min_vent_diameter`, `max_vent_diameter`, `interval_size`\n- **Gas Fraction**: `gas_frac`\n- **Sounding Data File**: `line11`\n- **Directory Locations**: `dir_loc`, `out_loc`\n- **CSV Path**: `csv_path`\n\n### Running the Script\n\n1. **Generate Input Files**:\n    Modify and run the script `batch_plumeria_input_bulk_MAIN.py` script to generate the Plumeria simulations' input files.\n\n2. **Run Simulations**:\n    Execute the Plumeria simulations using the generated input files. This can be done manually or automated using a batch processing script.\n\n3. **Process Outputs**:\n    Use the `batch_extract_plumeria_output_MAIN.py` or similar scripts to process the simulation outputs and extract relevant data.\n\n4. **Analyze and Plot Results**:\n    Utilize the provided plotting scripts in **\\main plots** directory to visualize the results of your simulations.\n    \n### Example\n\nHere is a basic example of how to configure (using `input_parameters.py`) and run the wrapper:\n\n```python\ndef main():\n    # Configuration parameters\n    mass_frac_add_water_list = [float(a / 100) for a in range(0, 21)]\n    magma_temp_list = [900]\n    vent_vel_list = [100]\n    humid_list = [0]\n\n    min_vent_diameter = 1\n    max_vent_diameter = 44000\n    interval_size = 6\n\n    vent_diameter_list = binary_log_input(min_vent_diameter, max_vent_diameter, interval_size)\n\n    gas_frac = 0.90\n    line11 = 'NOAA_sounding_file.txt'\n\n    dir_loc = 'plumeria_input_dir'\n    out_loc = 'plumeria_output_dir'\n    csv_path = 'plumeria_data.csv' ## extracted data will be saved here\n\n    plumeria_loc = '/Users/carrile/plume_fort_v2.3.1/plumeria'\n\n    os.makedirs(dir_loc, exist_ok=True)\n    os.makedirs(out_loc, exist_ok=True)\n\nif __name__ == \"__main__\":\n    main()\n```\n\n###### sample figures:\n\n![single run](sample%20plots/sample.png)\n![bulk run](sample%20plots/sample2.png)\n\n## Contributing\n\nIf you would like to contribute to the development of this wrapper, please follow these steps:\n\n1. Fork the repository.\n2. Create a new branch (`git checkout -b feature-branch`).\n3. Commit your changes (`git commit -am 'Add new feature'`).\n4. Push to the branch (`git push origin feature-branch`).\n5. Create a new Pull Request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgements\n\n- Special thanks to the developer of the Plumeria software, Larry Mastin.\n- Contributions from discussions with Liam Kelly, Kristen Fauria (the PI of the original research that prompted the need for this Python script), and Tushar Mittal.\n\n\n## Plumeria Software Information\n\n- Please see the references below for more details about the Plumeria software.\n    - Mastin, L. G. (2007), A user-friendly one-dimensional model for wet volcanic plumes, Geochem. Geophys. Geosyst., 8, Q03014, doi:10.1029/2006GC001455.\n    - Mastin, L. G. (2014), Testing the accuracy of a 1-D volcanic plume model in estimating mass eruption rate, J. Geophys. Res. Atmos., 119, 2474–2495, doi:10.1002/2013JD020604.\n    - Mastin, L.G., (2024), plumeria_wd software.  U.S. Geological Survey software program.  https://doi.org/10.5066/P1HVRKVN\n \n## Contact\n\nFor questions or support, please contact Edgar Carrillo at [edgarc.ec@gmail.com].\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felcarrillo%2Fplumeviz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felcarrillo%2Fplumeviz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felcarrillo%2Fplumeviz/lists"}