{
  "cells": [
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "collapsed": false
      },
      "outputs": [],
      "source": [
        "%matplotlib inline"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "\n# StatAnalysis: Using Python Embedding\n\nmet_tool_wrapper/StatAnalysis/StatAnalysis_python_embedding.conf\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## Scientific Objective\n\nThis demonstrates how the Stat-Analysis tool can tie together results from other\nMET tools (including PointStat, GridStat, EnsembleStat, and WaveletStat)\nand provide summary statistical information. Matched pair records are passed into\nStat-Analysis using python embedding.\n\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## Datasets\n\n\n| **WRF ARW point_stat output STAT files:**\n|     ...met_test/new\n|         point_stat_120000L_20050807_120000V.stat\n\n| **Location:** All of the input data required for this use case can be found in the met_test sample data tarball. Click here to the METplus releases page and download sample data for the appropriate release: https://github.com/dtcenter/METplus/releases\n| The tarball should be unpacked into the directory that you will set the value of INPUT_BASE. See `Running METplus`_ section for more information.\n| **Data Source:** WRF\n|\n\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## METplus Components\n\nThis use case utilizes the METplus StatAnalysis wrapper to search for\nfiles that are valid at a given run time and generate a command to run\nthe MET tool stat_analysis.\n\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## METplus Workflow\n\nStatAnalysis is the only tool called in this example. It processes the following\nrun times:\n\n| **Valid:** 2005-08-07_00Z  \n| **Forecast lead:** 12 hour\n|\n\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## METplus Configuration\n\nMETplus first loads all of the configuration files found in parm/metplus_config,\nthen it loads any configuration files passed to METplus via the command line\nwith the -c option, i.e. -c parm/use_cases/met_tool_wrapper/StatAnalysis/StatAnalysis.conf\n\n.. highlight:: bash\n.. literalinclude:: ../../../../parm/use_cases/met_tool_wrapper/StatAnalysis/StatAnalysis_python_embedding.conf\n\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## MET Configuration\n\nMETplus sets environment variables based on user settings in the METplus configuration file. \nSee `How METplus controls MET config file settings<metplus-control-met>` for more details. \n\n**YOU SHOULD NOT SET ANY OF THESE ENVIRONMENT VARIABLES YOURSELF! THEY WILL BE OVERWRITTEN BY METPLUS WHEN IT CALLS THE MET TOOLS!**\n\nIf there is a setting in the MET configuration file that is currently not supported by METplus you'd like to control, please refer to:\n`Overriding Unsupported MET config file settings<met-config-overrides>`\n\n<div class=\"alert alert-info\"><h4>Note</h4><p>See the `StatAnalysis MET Configuration<stat-analysis-met-conf>` section of the User's Guide for more information on the environment variables used in the file below:</p></div>\n\n.. highlight:: bash\n.. literalinclude:: ../../../../parm/met_config/STATAnalysisConfig_wrapped\n\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## Python Embedding\n\nThis use case calls a Python script to read matched pair lines from an input source.\nThe Python script is stored in the MET repository: /path/to/MET/installation/share/met/python/read_ascii_mpr.py\n\n[read_ascii_mpr.py](https://github.com/dtcenter/MET/blob/develop/met/scripts/python/read_ascii_mpr.py)\n\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## Running METplus\n\nIt is recommended to run this use case by:\n\nPassing in StatAnalysis_python_embedding.conf then a user-specific system configuration file::\n\n  run_metplus.py -c /path/to/StatAnalysis_python_embedding.conf -c /path/to/user_system.conf\n\nThe following METplus configuration variables must be set correctly to run this example.:\n\n* **INPUT_BASE** - Path to directory where sample data tarballs are unpacked (See Datasets section to obtain tarballs).\n* **OUTPUT_BASE** - Path where METplus output will be written. This must be in a location where you have write permissions\n* **MET_INSTALL_DIR** - Path to location where MET is installed locally\n\nExample User Configuration File::\n\n  [dir]\n  INPUT_BASE = /path/to/sample/input/data\n  OUTPUT_BASE = /path/to/output/dir\n  MET_INSTALL_DIR = /path/to/met-X.Y \n\n**NOTE:** All of these items must be found under the [dir] section.\n\n\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## Expected Output\n\nA successful run will output the following both to the screen and to the logfile::\n\n  INFO: METplus has successfully finished running.\n\nRefer to the value set for **OUTPUT_BASE** to find where the output data was generated.\nOutput for this use case will be found in met_tool_wrapper/StatAnalysis_python_embedding  (relative to **OUTPUT_BASE**)\nand will contain the following file:\n\n* WRF_ADPSFC_valid20050807_fcstvalidhour120000Z_out_stat.stat\n\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## Keywords\n\n<div class=\"alert alert-info\"><h4>Note</h4><p>* StatAnalysisToolUseCase\n  * PythonEmbeddingFileUseCase\n\n  Navigate to the `quick-search` page to discover other similar use cases.</p></div>\n\n\n\nsphinx_gallery_thumbnail_path = '_static/met_tool_wrapper-StatAnalysis.png'\n\n\n"
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.7.9"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}