diff --git a/.github/jobs/Dockerfile.truth b/.github/jobs/Dockerfile.truth new file mode 100644 index 0000000000..6366360e13 --- /dev/null +++ b/.github/jobs/Dockerfile.truth @@ -0,0 +1,17 @@ +FROM centos:7 +MAINTAINER George McCabe + +ENV OUTPUT_DIR /data/output +RUN mkdir -p ${OUTPUT_DIR} + +ARG TRUTH_DIR + +COPY ${TRUTH_DIR} ${OUTPUT_DIR}/ + +ARG TRUTH_DIR + +# Define the volume mount point +VOLUME ${OUTPUT_DIR}/${TRUTH_DIR} + +USER root +CMD ["true"] \ No newline at end of file diff --git a/.github/jobs/bash_functions.sh b/.github/jobs/bash_functions.sh new file mode 100755 index 0000000000..5205753780 --- /dev/null +++ b/.github/jobs/bash_functions.sh @@ -0,0 +1,27 @@ +#! /bin/bash + +# utility function to run command get log the time it took to run +# if CMD_LOGFILE is set, send output to that file and unset var +function time_command { + local start_seconds=$SECONDS + echo "RUNNING: $*" + + local error + # pipe output to log file if set + if [ "x$CMD_LOGFILE" == "x" ]; then + "$@" + error=$? + else + echo "Logging to ${CMD_LOGFILE}" + "$@" &>> $CMD_LOGFILE + error=$? + unset CMD_LOGFILE + fi + + local duration=$(( SECONDS - start_seconds )) + echo "TIMING: Command took `printf '%02d' $(($duration / 60))`:`printf '%02d' $(($duration % 60))` (MM:SS): '$*'" + if [ ${error} -ne 0 ]; then + echo "ERROR: '$*' exited with status = ${error}" + fi + return $error +} diff --git a/.github/jobs/build_and_push_docker_image.sh b/.github/jobs/build_and_push_docker_image.sh deleted file mode 100755 index 766b67cc41..0000000000 --- a/.github/jobs/build_and_push_docker_image.sh +++ /dev/null @@ -1,40 +0,0 @@ -#! /bin/bash - -# utility function to run command get log the time it took to run -function time_command { - local start_seconds=$SECONDS - echo "RUNNING: $*" - "$@" - local error=$? - - local duration=$(( SECONDS - start_seconds )) - echo "TIMING: Command took `printf '%02d' $(($duration / 60))`:`printf '%02d' $(($duration % 60))` (MM:SS): '$*'" - if [ ${error} -ne 0 ]; then - echo "ERROR: '$*' exited with status = ${error}" - fi - return $error -} - -prefix=refs/heads/ -branch_name=${GITHUB_REF#"$prefix"} -DOCKERHUB_TAG=dtcenter/met:${branch_name} - -DOCKERFILE_DIR=${GITHUB_WORKSPACE}/scripts/docker - -echo "::group::Docker Build Command" -time_command docker build -t ${DOCKERHUB_TAG} \ - --build-arg SOURCE_BRANCH=$branch_name \ - $DOCKERFILE_DIR -echo "::endgroup::" - -# skip docker push if credentials are not set -if [ -z ${DOCKER_USERNAME+x} ] || [ -z ${DOCKER_PASSWORD+x} ]; then - echo "DockerHub credentials not set. Skipping docker push" - exit 0 -fi - -echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_USERNAME" --password-stdin - -echo "::group::Docker Push Command" -time_command docker push ${DOCKERHUB_TAG} -echo "::endgroup::" diff --git a/.github/jobs/build_docker_image.sh b/.github/jobs/build_docker_image.sh new file mode 100755 index 0000000000..5a9b2e8cf7 --- /dev/null +++ b/.github/jobs/build_docker_image.sh @@ -0,0 +1,14 @@ +#! /bin/bash + +source ${GITHUB_WORKSPACE}/.github/jobs/bash_functions.sh + +DOCKERHUB_TAG=${DOCKERHUB_REPO}:${SOURCE_BRANCH} + +DOCKERFILE_PATH=${GITHUB_WORKSPACE}/scripts/docker/Dockerfile.copy + +CMD_LOGFILE=${GITHUB_WORKSPACE}/docker_build.log + +time_command docker build -t ${DOCKERHUB_TAG} \ + --build-arg SOURCE_BRANCH \ + --build-arg MET_BASE_IMAGE \ + -f $DOCKERFILE_PATH ${GITHUB_WORKSPACE} diff --git a/.github/jobs/copy_diff_files.py b/.github/jobs/copy_diff_files.py new file mode 100755 index 0000000000..eed5b6a339 --- /dev/null +++ b/.github/jobs/copy_diff_files.py @@ -0,0 +1,80 @@ +#! /usr/bin/env python3 + +import os +import shutil + +OUTPUT_DIR = os.environ['MET_TEST_OUTPUT'] +TRUTH_DIR = os.environ['MET_TEST_TRUTH'] +DIFF_DIR = os.environ['MET_TEST_DIFF'] + +LOG_DIR = '/met/logs' + +def get_files_with_diffs(log_file): + files_to_copy = set() + + with open(log_file, 'r') as file_handle: + file_content = file_handle.read() + + missing_section, *test_sections = file_content.split( + '\n# # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\n' + ) + + # parse list of missing files + if 'ERROR:' in missing_section: + for missing_group in missing_section.split('ERROR:')[1:]: + dir_str, *rel_paths = missing_group.splitlines() + dir_str = dir_str.split()[1] + if OUTPUT_DIR in dir_str: + top_dir = dir_str.replace(OUTPUT_DIR, TRUTH_DIR) + elif TRUTH_DIR in dir_str: + top_dir = dir_str.replace(TRUTH_DIR, OUTPUT_DIR) + else: + print("ERROR: SOMETHING WENT WRONG PARSING COMP_DIR OUTPUT") + continue + for rel_path in rel_paths: + files_to_copy.add(os.path.join(top_dir, rel_path.strip())) + + # parse file paths out of sections that have errors + error_sections = [item for item in test_sections if 'ERROR:' in item] + for error_section in error_sections: + for line in error_section.splitlines(): + for item in line.split(): + if OUTPUT_DIR in item or TRUTH_DIR in item: + files_to_copy.add(item) + + return files_to_copy + +def copy_files_to_diff_dir(files_to_copy): + + print(f"Found {len(files_to_copy)} diff files") + + # add extension for output/truth and copy files to diff directory + for filename in files_to_copy: + output_path, extension = os.path.splitext(filename) + if OUTPUT_DIR in output_path: + output_path = f'{output_path}_OUTPUT{extension}' + output_path = output_path.replace(OUTPUT_DIR, DIFF_DIR) + elif TRUTH_DIR in output_path: + output_path = f'{output_path}_TRUTH{extension}' + output_path = output_path.replace(TRUTH_DIR, DIFF_DIR) + else: + continue + + # change bad char - this can be removed once test output is changed + output_path = output_path.replace(':', '_') + + print(f"Copy {filename} to {output_path}") + output_dir = os.path.dirname(output_path) + if not os.path.exists(output_dir): + os.makedirs(output_dir) + shutil.copyfile(filename, output_path) + +def main(): + log_file = os.path.join(LOG_DIR, 'comp_dir.log') + print(f"Parsing {log_file}") + all_files_to_copy = get_files_with_diffs(log_file) + + copy_files_to_diff_dir(all_files_to_copy) + +if __name__ == "__main__": + main() diff --git a/.github/jobs/create_docker_truth.sh b/.github/jobs/create_docker_truth.sh new file mode 100755 index 0000000000..298852f80a --- /dev/null +++ b/.github/jobs/create_docker_truth.sh @@ -0,0 +1,18 @@ +#! /bin/bash + +source ${GITHUB_WORKSPACE}/.github/jobs/bash_functions.sh + +image_name=dtcenter/met-data-output:${TRUTH_DATA_VERSION} + +time_command docker build -t ${image_name} \ + --build-arg TRUTH_DIR=met_test_truth \ + -f ${GITHUB_WORKSPACE}/.github/jobs/Dockerfile.truth \ + ${RUNNER_WORKSPACE} +if [ $? != 0 ]; then + echo "ERROR: Docker build failed" + exit 1 +fi + +echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_USERNAME" --password-stdin + +time_command docker push ${image_name} diff --git a/.github/jobs/get_branch_name.sh b/.github/jobs/get_branch_name.sh new file mode 100755 index 0000000000..ec42a94e38 --- /dev/null +++ b/.github/jobs/get_branch_name.sh @@ -0,0 +1,15 @@ +#! /bin/bash + +# If pull request, use GitHub head ref and add -PR to end +# Otherwise use GitHub ref + +if [ "${GITHUB_EVENT_NAME}" == "pull_request" ] ; then + branch_name=${GITHUB_HEAD_REF}-PR +else + branch_name=${GITHUB_REF} +fi + +branch_name=${branch_name#"refs/heads/"} + +echo ::set-output name=branch_name::$branch_name +echo branch_name: $branch_name diff --git a/.github/jobs/get_test_input_data.sh b/.github/jobs/get_test_input_data.sh new file mode 100755 index 0000000000..d11c651265 --- /dev/null +++ b/.github/jobs/get_test_input_data.sh @@ -0,0 +1,7 @@ +#! /bin/bash + +source ${GITHUB_WORKSPACE}/.github/jobs/bash_functions.sh + +DATA_VERSION=$1 + +time_command docker create --name met_input dtcenter/met-data-dev:${DATA_VERSION} diff --git a/.github/jobs/get_test_truth_data.sh b/.github/jobs/get_test_truth_data.sh new file mode 100755 index 0000000000..3b4055b4be --- /dev/null +++ b/.github/jobs/get_test_truth_data.sh @@ -0,0 +1,11 @@ +#! /bin/bash + +source ${GITHUB_WORKSPACE}/.github/jobs/bash_functions.sh + +DATA_VERSION=$1 + +time_command docker create --name met_truth dtcenter/met-data-output:${DATA_VERSION} +if [ $? != 0 ]; then + echo "Image tag ${DATA_VERSION} does not exist. Using develop..." + time_command docker create --name met_truth dtcenter/met-data-output:develop +fi diff --git a/.github/jobs/pull_docker_image.sh b/.github/jobs/pull_docker_image.sh new file mode 100755 index 0000000000..e97c6a1f07 --- /dev/null +++ b/.github/jobs/pull_docker_image.sh @@ -0,0 +1,7 @@ +#! /bin/bash + +source ${GITHUB_WORKSPACE}/.github/jobs/bash_functions.sh + +DOCKERHUB_TAG=$1 + +time_command docker pull ${DOCKERHUB_TAG} diff --git a/.github/jobs/push_docker_image.sh b/.github/jobs/push_docker_image.sh new file mode 100755 index 0000000000..83a8e4fc5f --- /dev/null +++ b/.github/jobs/push_docker_image.sh @@ -0,0 +1,15 @@ +#! /bin/bash + +source ${GITHUB_WORKSPACE}/.github/jobs/bash_functions.sh + +DOCKERHUB_TAG=${DOCKERHUB_REPO}:${SOURCE_BRANCH} + +# skip docker push if credentials are not set +if [ -z ${DOCKER_USERNAME+x} ] || [ -z ${DOCKER_PASSWORD+x} ]; then + echo "DockerHub credentials not set. Skipping docker push" + exit 0 +fi + +echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_USERNAME" --password-stdin + +time_command docker push ${DOCKERHUB_TAG} diff --git a/.github/jobs/run_diff_docker.sh b/.github/jobs/run_diff_docker.sh new file mode 100755 index 0000000000..b4095fb21e --- /dev/null +++ b/.github/jobs/run_diff_docker.sh @@ -0,0 +1,48 @@ +#! /bin/bash + +source ${GITHUB_WORKSPACE}/.github/jobs/bash_functions.sh + +DOCKERHUB_TAG=${DOCKERHUB_REPO}:${SOURCE_BRANCH} + +# Get truth output data +${GITHUB_WORKSPACE}/.github/jobs/get_test_truth_data.sh ${TRUTH_DATA_VERSION} + +# Set up directories to mount +LOCAL_OUTPUT_DIR=${RUNNER_WORKSPACE}/output +DOCKER_OUTPUT_DIR=/data/output/met_test_output + +LOCAL_DIFF_DIR=${RUNNER_WORKSPACE}/diff +DOCKER_DIFF_DIR=/data/output/met_test_diff + +LOCAL_LOG_DIR=${RUNNER_WORKSPACE}/logs +DOCKER_LOG_DIR=/met/logs + +# Create local directories to store output +mkdir -p ${LOCAL_LOG_DIR} +mkdir -p ${LOCAL_DIFF_DIR} + +# mount output and log dirs, mount GitHub files into MET_REPO_DIR +mount_args="-v ${LOCAL_OUTPUT_DIR}:${DOCKER_OUTPUT_DIR} -v ${LOCAL_DIFF_DIR}:${DOCKER_DIFF_DIR} -v ${LOCAL_LOG_DIR}:${DOCKER_LOG_DIR}" + +# Set up data volumes +volumes_from="--volumes-from met_truth" + +# run unit test script inside Docker, mount MET output and truth data +# set MET_REPO_DIR env var in Docker to mounted directory +cmd="\${MET_REPO_DIR}/.github/jobs/run_diff_tests.sh" +time_command docker run ${volumes_from} ${mount_args} ${DOCKERHUB_TAG} bash -c \"${cmd}\" +if [ $? != 0 ]; then + exit 1 +fi + +if [ "$(ls -A ${LOCAL_DIFF_DIR})" ]; then + echo "ERROR: Differences exist in the output" + + # only exit non-zero (job fails) if not updating truth data + # this makes difference output available when updating truth data + # so it is easier to see what changed with the update + if [ "${RUN_UPDATE_TRUTH}" != "true" ]; then + exit 1 + fi + +fi diff --git a/.github/jobs/run_diff_tests.sh b/.github/jobs/run_diff_tests.sh new file mode 100755 index 0000000000..fd84a6953f --- /dev/null +++ b/.github/jobs/run_diff_tests.sh @@ -0,0 +1,33 @@ +#! /bin/bash + +source ${MET_REPO_DIR}/.github/jobs/bash_functions.sh + +### +# Set environment variables needed to run unit tests +### + +source ${MET_REPO_DIR}/.github/jobs/test_env_vars.sh + +### +# Run comparison of MET unit test output +### + +echo "Running comparison on test output" +CMD_LOGFILE=/met/logs/comp_dir.log +time_command ${MET_TEST_BASE}/bin/comp_dir.sh ${MET_TEST_TRUTH} ${MET_TEST_OUTPUT} +if [ $? != 0 ]; then + echo "ERROR: Test output comparison failed" + cat /met/logs/comp_dir.log + exit 1 +fi + +echo "Running copy_diff_files.py" +CMD_LOGFILE=/met/logs/copy_diff_files.log +time_command ${MET_REPO_DIR}/.github/jobs/copy_diff_files.py +if [ $? != 0 ]; then + echo "ERROR: Copy diff files script failed" + cat /met/logs/copy_diff_files.log + exit 1 +fi + +echo "Success" diff --git a/.github/jobs/run_unit_docker.sh b/.github/jobs/run_unit_docker.sh new file mode 100755 index 0000000000..95f4b2c626 --- /dev/null +++ b/.github/jobs/run_unit_docker.sh @@ -0,0 +1,37 @@ +#! /bin/bash + +source ${GITHUB_WORKSPACE}/.github/jobs/bash_functions.sh + +DOCKERHUB_TAG=${DOCKERHUB_REPO}:${SOURCE_BRANCH} + +# Pull MET Image from DockerHub +${GITHUB_WORKSPACE}/.github/jobs/pull_docker_image.sh ${DOCKERHUB_TAG} + +# Get test input data if needed +volumes_from="" +if [ "${INPUT_DATA_VERSION}" != "none" ]; then + ${GITHUB_WORKSPACE}/.github/jobs/get_test_input_data.sh ${INPUT_DATA_VERSION} + volumes_from=${volumes_from}"--volumes-from met_input" +fi + +# Set up directories to mount +LOCAL_OUTPUT_DIR=${RUNNER_WORKSPACE}/output +DOCKER_OUTPUT_DIR=/data/output/met_test_output + +LOCAL_LOG_DIR=${RUNNER_WORKSPACE}/logs +DOCKER_LOG_DIR=/met/logs + +# Create local directories to store output +mkdir -p ${LOCAL_LOG_DIR} +mkdir -p ${LOCAL_OUTPUT_DIR} + +mount_args="-v ${LOCAL_OUTPUT_DIR}:${DOCKER_OUTPUT_DIR} -v ${LOCAL_LOG_DIR}:${DOCKER_LOG_DIR}" + +export TESTS_TO_RUN=$TESTS + +# run unit test script inside Docker, mount MET input and truth data +cmd="\${MET_REPO_DIR}/.github/jobs/run_unit_tests.sh" +time_command docker run -e TESTS_TO_RUN ${volumes_from} ${mount_args} ${DOCKERHUB_TAG} bash -c \"${cmd}\" +if [ $? != 0 ]; then + exit 1 +fi diff --git a/.github/jobs/run_unit_tests.sh b/.github/jobs/run_unit_tests.sh new file mode 100755 index 0000000000..e866b2cc61 --- /dev/null +++ b/.github/jobs/run_unit_tests.sh @@ -0,0 +1,26 @@ +#! /bin/bash + +source ${MET_REPO_DIR}/.github/jobs/bash_functions.sh + +### +# Set environment variables needed to run unit tests +### + +source ${MET_REPO_DIR}/.github/jobs/test_env_vars.sh + +### +# Run MET unit tests +### + +echo "Running MET unit tests..." +for testname in $TESTS_TO_RUN; do + CMD_LOGFILE=/met/logs/unit_${testname}.log + time_command ${MET_TEST_BASE}/perl/unit.pl ${MET_TEST_BASE}/xml/unit_${testname}.xml + if [ $? != 0 ]; then + echo "ERROR: Unit test ${testname} failed" + cat /met/logs/unit_${testname}.log + exit 1 + fi +done + +echo "Success" diff --git a/.github/jobs/set_job_controls.sh b/.github/jobs/set_job_controls.sh new file mode 100755 index 0000000000..6a4e4bdf82 --- /dev/null +++ b/.github/jobs/set_job_controls.sh @@ -0,0 +1,94 @@ +#! /bin/bash + +run_compile=true +run_push=false +run_unit_tests=false +run_diff=false +run_update_truth=false +met_base_image=minimum +input_data_version=develop +truth_data_version=develop + +if [ "${GITHUB_EVENT_NAME}" == "pull_request" ]; then + + # only run diff logic if pull request INTO + # branches not ending with -ref + if [ "${GITHUB_BASE_REF: -4}" != "-ref" ]; then + + run_diff=true + + fi + +elif [ "${GITHUB_EVENT_NAME}" == "push" ]; then + + branch_name=`cut -d "/" -f3 <<< "${GITHUB_REF}"` + + # if branch ends with -ref, update truth data from unit tests + if [ "${branch_name: -4}" == -ref ]; then + + run_update_truth=true + run_diff=true + truth_data_version=${branch_name: -4} + + else + + # if develop or main_vX.Y branch, run diff tests using branch's truth data + if [ "$branch_name" == "develop" ] || + [ "${branch_name:0:6}" == "main_v" ]; then + + run_diff=true + truth_data_version=${branch_name} + + fi + + # check commit messages for ci-skip or ci-run keywords + if grep -q "ci-skip-compile" <<< "$commit_msg"; then + + run_compile=false + + fi + + if grep -q "ci-run-unit" <<< "$commit_msg"; then + + run_diff=true + + fi + fi + +fi + +# if updating truth or running diff, run unit tests +if [ "$run_update_truth" == "true" ] || [ "$run_diff" == "true" ]; then + + run_unit_tests=true + +fi + +# if running unit tests, use unit_test MET base image and push image +if [ "$run_unit_tests" == "true" ]; then + + met_base_image=unit_test + run_push=true + +fi + +echo ::set-output name=run_compile::$run_compile +echo ::set-output name=run_push::$run_push +echo ::set-output name=run_unit_tests::$run_unit_tests +echo ::set-output name=run_diff::$run_diff +echo ::set-output name=run_update_truth::$run_update_truth +echo ::set-output name=met_base_image::$met_base_image +echo ::set-output name=input_data_version::$input_data_version +echo ::set-output name=truth_data_version::$truth_data_version + +echo run_compile: $run_compile +echo run_push: $run_push +echo run_unit_tests: $run_unit_tests +echo run_diff: $run_diff +echo run_update_truth: $run_update_truth +echo met_base_image: $met_base_image +echo input_data_version: $input_data_version +echo truth_data_version: $truth_data_version + +# get name of branch +.github/jobs/get_branch_name.sh diff --git a/.github/jobs/test_env_vars.sh b/.github/jobs/test_env_vars.sh new file mode 100755 index 0000000000..5eaaa44dd9 --- /dev/null +++ b/.github/jobs/test_env_vars.sh @@ -0,0 +1,13 @@ +export MET_BASE=/usr/local/share/met + +export MET_BUILD_BASE=${MET_REPO_DIR}/met +export MET_TEST_BASE=${MET_REPO_DIR}/test +export PERL5LIB=${MET_TEST_BASE}/lib + +export MET_TEST_INPUT=/data/input/MET_test_data/unit_test +export MET_TEST_OUTPUT=/data/output/met_test_output +export MET_TEST_TRUTH=/data/output/met_test_truth +export MET_TEST_DIFF=/data/output/met_test_diff + +export MET_TEST_RSCRIPT=/usr/bin/Rscript +export MET_TEST_MET_PYTHON_EXE=/usr/bin/python3 diff --git a/.github/workflows/build_docker_and_trigger_metplus.yml b/.github/workflows/build_docker_and_trigger_metplus.yml index 070fa071a6..153adcb060 100644 --- a/.github/workflows/build_docker_and_trigger_metplus.yml +++ b/.github/workflows/build_docker_and_trigger_metplus.yml @@ -8,16 +8,29 @@ on: - 'met/docs/**' jobs: + build_met_docker: name: Handle Docker Image runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - name: Build and Push Docker Image - run: .github/jobs/build_and_push_docker_image.sh + + - name: Get branch name + id: get_branch_name + run: echo ::set-output name=branch_name::${GITHUB_REF#"refs/heads/"} + + - name: Build Docker Image + run: .github/jobs/build_docker_image.sh + env: + SOURCE_BRANCH: ${{ steps.get_branch_name.outputs.branch_name }} + MET_BASE_IMAGE: minimum + + - name: Push Docker Image + run: .github/jobs/push_docker_image.sh env: DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + trigger_metplus: name: Trigger METplus testing workflow runs-on: ubuntu-latest diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml new file mode 100644 index 0000000000..c114c61028 --- /dev/null +++ b/.github/workflows/unit_tests.yml @@ -0,0 +1,377 @@ +name: Unit Tests + +# Compile MET and run unit tests +# for pull requests into develop branch + +on: + pull_request: + types: [opened, reopened, synchronize] + branches: + - develop + - 'main_v*' + push: + branches: + - 'feature_*' + - 'bugfix_*' + - 'develop' + - 'develop-ref' + - 'main_v*' + +env: + DOCKERHUB_REPO: dtcenter/met-dev + +jobs: + + job_control: + name: Determine which jobs to run + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set job controls + id: job_status + run: .github/jobs/set_job_controls.sh + env: + commit_msg: ${{ github.event.head_commit.message }} + + outputs: + run_compile: ${{ steps.job_status.outputs.run_compile }} + run_push: ${{ steps.job_status.outputs.run_push }} + run_unit_tests: ${{ steps.job_status.outputs.run_unit_tests }} + run_diff: ${{ steps.job_status.outputs.run_diff }} + run_update_truth: ${{ steps.job_status.outputs.run_update_truth }} + met_base_image: ${{ steps.job_status.outputs.met_base_image }} + branch_name: ${{ steps.job_status.outputs.branch_name }} + truth_data_version: ${{ steps.job_status.outputs.truth_data_version }} + input_data_version: ${{ steps.job_status.outputs.input_data_version }} + + compile: + name: Compile MET + runs-on: ubuntu-latest + needs: job_control + if: ${{ needs.job_control.outputs.run_compile == 'true' }} + steps: + - uses: actions/checkout@v2 + + - name: Create directories to store output + run: mkdir -p ${RUNNER_WORKSPACE}/logs + + - name: Compile MET in Docker + run: .github/jobs/build_docker_image.sh + env: + SOURCE_BRANCH: ${{ needs.job_control.outputs.branch_name }} + MET_BASE_IMAGE: ${{ needs.job_control.outputs.met_base_image }} + + - name: Copy Docker build log into logs directory + if: always() + run: cp ${GITHUB_WORKSPACE}/docker_build.log ${RUNNER_WORKSPACE}/logs/ + + - name: Push Docker Image + run: .github/jobs/push_docker_image.sh + if: ${{ needs.job_control.outputs.run_push == 'true' }} + env: + SOURCE_BRANCH: ${{ needs.job_control.outputs.branch_name }} + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + + - name: Upload logs as artifact + if: always() + uses: actions/upload-artifact@v2 + with: + name: logs + path: ${{ runner.workspace }}/logs + if-no-files-found: ignore + + unit_tests_1a: + name: MET Unit Tests 1a + runs-on: ubuntu-latest + needs: [job_control, compile] + if: ${{ needs.job_control.outputs.run_unit_tests == 'true' }} + strategy: + matrix: + tests: + - 'ascii2nc' + - 'pb2nc madis2nc pcp_combine' + fail-fast: false + steps: + - uses: actions/checkout@v2 + + - name: Run Unit Tests in Docker + run: .github/jobs/run_unit_docker.sh + env: + SOURCE_BRANCH: ${{ needs.job_control.outputs.branch_name }} + TESTS: ${{ matrix.tests }} + INPUT_DATA_VERSION: ${{ needs.job_control.outputs.input_data_version }} + + - name: Upload output as artifact + uses: actions/upload-artifact@v2 + with: + name: unit_tests_1a + path: ${{ runner.workspace }}/output + + - name: Upload logs as artifact + if: always() + uses: actions/upload-artifact@v2 + with: + name: logs + path: ${{ runner.workspace }}/logs + if-no-files-found: ignore + + unit_tests_1b: + name: MET Unit Tests 1b + runs-on: ubuntu-latest + needs: [job_control, compile] + if: ${{ needs.job_control.outputs.run_unit_tests == 'true' }} + strategy: + matrix: + tests: + - 'ascii2nc_indy pb2nc_indy tc_dland tc_pairs tc_stat plot_tc tc_rmw rmw_analysis tc_gen' + - 'met_test_scripts mode_graphics mtd regrid airnow gsi_tools netcdf modis series_analysis gen_ens_prod wwmca_regrid gen_vx_mask grid_weight interp_shape grid_diag grib_tables lidar2nc shift_data_plane trmm2nc aeronet wwmca_plot ioda2nc gaussian' + fail-fast: false + steps: + - uses: actions/checkout@v2 + + - name: Run Unit Tests in Docker + run: .github/jobs/run_unit_docker.sh + env: + SOURCE_BRANCH: ${{ needs.job_control.outputs.branch_name }} + TESTS: ${{ matrix.tests }} + INPUT_DATA_VERSION: ${{ needs.job_control.outputs.input_data_version }} + + - name: Upload output as artifact + uses: actions/upload-artifact@v2 + with: + name: unit_tests_1b + path: ${{ runner.workspace }}/output + + - name: Upload logs as artifact + if: always() + uses: actions/upload-artifact@v2 + with: + name: logs + path: ${{ runner.workspace }}/logs + if-no-files-found: ignore + + unit_tests_ref_config_leads: + name: MET Unit Tests ref_config leads + runs-on: ubuntu-latest + needs: [job_control, compile] + if: ${{ needs.job_control.outputs.run_unit_tests == 'true' }} + strategy: + matrix: + tests: + - 'ref_config_lead_00 ref_config_lead_12' + - 'ref_config_lead_24 ref_config_lead_48' + - 'ref_config_lead_36' + fail-fast: false + steps: + - uses: actions/checkout@v2 + + - name: Run Unit Tests in Docker + run: .github/jobs/run_unit_docker.sh + env: + SOURCE_BRANCH: ${{ needs.job_control.outputs.branch_name }} + TESTS: ${{ matrix.tests }} + INPUT_DATA_VERSION: ${{ needs.job_control.outputs.input_data_version }} + + - name: Upload output as artifact + uses: actions/upload-artifact@v2 + with: + name: unit_tests_ref_config_leads + path: ${{ runner.workspace }}/output + + - name: Upload logs as artifact + if: always() + uses: actions/upload-artifact@v2 + with: + name: logs + path: ${{ runner.workspace }}/logs + if-no-files-found: ignore + + unit_tests_ref_config: + name: MET Unit Tests ref_config + runs-on: ubuntu-latest + needs: [job_control, unit_tests_ref_config_leads] + if: ${{ needs.job_control.outputs.run_unit_tests == 'true' }} + strategy: + matrix: + tests: + - 'ref_config' + fail-fast: false + steps: + - uses: actions/checkout@v2 + + - name: Download ref_config_leads output from artifact + uses: actions/download-artifact@v2 + with: + name: unit_tests_ref_config_leads + path: ${{ runner.workspace }}/output + + - name: Run Unit Tests in Docker + run: .github/jobs/run_unit_docker.sh + env: + SOURCE_BRANCH: ${{ needs.job_control.outputs.branch_name }} + TESTS: ${{ matrix.tests }} + INPUT_DATA_VERSION: 'none' + + - name: Upload output as artifact + uses: actions/upload-artifact@v2 + with: + name: unit_tests_ref_config + path: ${{ runner.workspace }}/output + + - name: Upload logs as artifact + if: always() + uses: actions/upload-artifact@v2 + with: + name: logs + path: ${{ runner.workspace }}/logs + if-no-files-found: ignore + + unit_tests_2a: + name: MET Unit Tests 2a + runs-on: ubuntu-latest + needs: [job_control, unit_tests_1a] + if: ${{ needs.job_control.outputs.run_unit_tests == 'true' }} + strategy: + matrix: + tests: + - 'point_stat stat_analysis_ps' + - 'grid_stat stat_analysis_gs' + - 'wavelet_stat stat_analysis_ws' + - 'ensemble_stat stat_analysis_es' + fail-fast: false + steps: + - uses: actions/checkout@v2 + + - name: Download 1a output from artifact + uses: actions/download-artifact@v2 + with: + name: unit_tests_1a + path: ${{ runner.workspace }}/output + + - name: Run Unit Tests in Docker + run: .github/jobs/run_unit_docker.sh + env: + SOURCE_BRANCH: ${{ needs.job_control.outputs.branch_name }} + TESTS: ${{ matrix.tests }} + INPUT_DATA_VERSION: ${{ needs.job_control.outputs.input_data_version }} + + - name: Upload output as artifact + uses: actions/upload-artifact@v2 + with: + name: unit_tests_2a + path: ${{ runner.workspace }}/output + + - name: Upload logs as artifact + if: always() + uses: actions/upload-artifact@v2 + with: + name: logs + path: ${{ runner.workspace }}/logs + if-no-files-found: ignore + + unit_tests_2b: + name: MET Unit Tests 2b + runs-on: ubuntu-latest + needs: [job_control, unit_tests_1a] + if: ${{ needs.job_control.outputs.run_unit_tests == 'true' }} + strategy: + matrix: + tests: + - 'climatology_1.0deg' + - 'climatology_1.5deg' + - 'climatology_2.5deg' + - 'python point2grid plot_data_plane mode mode_analysis perc_thresh hira plot_point_obs quality_filter obs_summary duplicate_flag' + fail-fast: false + steps: + - uses: actions/checkout@v2 + + - name: Download 1a output from artifact + uses: actions/download-artifact@v2 + with: + name: unit_tests_1a + path: ${{ runner.workspace }}/output + + - name: Run Unit Tests in Docker + run: .github/jobs/run_unit_docker.sh + env: + SOURCE_BRANCH: ${{ needs.job_control.outputs.branch_name }} + TESTS: ${{ matrix.tests }} + INPUT_DATA_VERSION: ${{ needs.job_control.outputs.input_data_version }} + + - name: Upload output as artifact + uses: actions/upload-artifact@v2 + with: + name: unit_tests_2b + path: ${{ runner.workspace }}/output + + - name: Upload logs as artifact + if: always() + uses: actions/upload-artifact@v2 + with: + name: logs + path: ${{ runner.workspace }}/logs + if-no-files-found: ignore + + run_diffs: + name: Check for Differences + runs-on: ubuntu-latest + needs: [job_control, unit_tests_1b, unit_tests_2a, unit_tests_2b, unit_tests_ref_config] + if: ${{ needs.job_control.outputs.run_diff == 'true' }} + steps: + - name: Download data from previous jobs + uses: actions/download-artifact@v2 + + - name: Copy test output into single directory + run: | + mkdir ${RUNNER_WORKSPACE}/output + cp -r unit_tests_*/* ${RUNNER_WORKSPACE}/output/ + + - uses: actions/checkout@v2 + + - name: Run Diff Tests in Docker + run: .github/jobs/run_diff_docker.sh + env: + SOURCE_BRANCH: ${{ needs.job_control.outputs.branch_name }} + RUN_UPDATE_TRUTH: ${{ needs.job_control.outputs.run_update_truth }} + TRUTH_DATA_VERSION: ${{ needs.job_control.outputs.truth_data_version }} + + - name: Upload diff files as artifact + if: always() + uses: actions/upload-artifact@v2 + with: + name: diff + path: ${{ runner.workspace }}/diff + if-no-files-found: ignore + + - name: Upload logs as artifact + if: always() + uses: actions/upload-artifact@v2 + with: + name: logs + path: ${{ runner.workspace }}/logs + if-no-files-found: ignore + + update_truth: + name: Update Truth Data + runs-on: ubuntu-latest + needs: [job_control, unit_tests_1b, unit_tests_2a, unit_tests_2b, unit_tests_ref_config] + if: ${{ needs.job_control.outputs.run_update_truth == 'true' }} + steps: + - uses: actions/checkout@v2 + + - name: Download data from previous jobs + uses: actions/download-artifact@v2 + + - name: Copy test output into single directory + run: | + mkdir ${RUNNER_WORKSPACE}/met_test_truth + cp -r unit_tests_*/* ${RUNNER_WORKSPACE}/met_test_truth/ + + - name: Create Docker Data Volume + run: .github/jobs/create_docker_truth.sh + env: + TRUTH_DATA_VERSION: ${{ needs.job_control.outputs.truth_data_version }} + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} diff --git a/.gitignore b/.gitignore index f2060b9284..bbd74b866f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ met/docs/_build/ # tilda files generated by emacs *~ + +# log file created in Docker image +make_install.log diff --git a/met/scripts/python/read_met_point_obs.py b/met/scripts/python/read_met_point_obs.py index 15667541ec..60f2c62065 100755 --- a/met/scripts/python/read_met_point_obs.py +++ b/met/scripts/python/read_met_point_obs.py @@ -8,7 +8,7 @@ import os import sys -import time +from datetime import datetime import numpy as np import netCDF4 as nc @@ -93,8 +93,7 @@ def get_string_array(dataset, var_name): return nc_tools.get_ncbyte_array_to_str(nc_var) if nc_var else [] -perf_start_time = time.time() -perf_start_counter = time.perf_counter_ns() +start_time = datetime.now() point_obs_data = None if len(sys.argv) == 1: @@ -117,9 +116,6 @@ def get_string_array(dataset, var_name): if DO_PRINT_DATA: met_point_obs.print_point_data(met_point_data) -perf_end_time = time.time() -perf_end_counter = time.perf_counter_ns() -perf_duration = perf_end_time - perf_start_time -perf_duration_counter = (perf_end_counter - perf_start_counter) / 1000000000 +run_time = datetime.now() - start_time -print('Done python script {s} Took walltime: {t1} & perf: {t2} seconds'.format(s=sys.argv[0], t1=perf_duration, t2=perf_duration_counter)) +print('Done python script {s} took {t}'.format(s=sys.argv[0], t=run_time)) diff --git a/scripts/docker/Dockerfile b/scripts/docker/Dockerfile index 330e0bbadd..ddeb6b0a81 100644 --- a/scripts/docker/Dockerfile +++ b/scripts/docker/Dockerfile @@ -1,4 +1,6 @@ -FROM centos:7 +ARG MET_BASE_IMAGE=minimum + +FROM dtcenter/met-base:${MET_BASE_IMAGE} MAINTAINER John Halley Gotway # @@ -17,163 +19,21 @@ RUN if [ "x${SOURCE_BRANCH}" = "x" ]; then \ fi ENV MET_GIT_NAME ${SOURCE_BRANCH} +ENV MET_REPO_DIR /met/MET-${MET_GIT_NAME} ENV MET_GIT_URL https://github.com/dtcenter/MET ENV MET_DEVELOPMENT true -# -# Define the compilers. -# -ENV CC /usr/bin/gcc -ENV CXX /usr/bin/g++ -ENV FC /usr/bin/gfortran -ENV F77 /usr/bin/gfortran - -# -# Define package URL's. -# -ENV HDF4_URL http://www.hdfgroup.org/ftp/HDF/releases/HDF4.2r3/src/HDF4.2r3.tar.gz -ENV HDFEOS_URL https://dtcenter.ucar.edu/dfiles/code/METplus/MET/docker_data/HDF-EOS2.16v1.00.tar.Z - -ENV NETCDF4C_URL https://github.com/Unidata/netcdf-c/archive/v4.4.1.1.zip -ENV NETCDF4CXX_URL https://github.com/Unidata/netcdf-cxx4/archive/v4.3.0.tar.gz - -ENV BUFRLIB_URL https://dtcenter.ucar.edu/dfiles/code/METplus/MET/docker_data/BUFRLIB_v10-2-3.tar -ENV GSFONT_URL https://dtcenter.ucar.edu/dfiles/code/METplus/MET/docker_data/ghostscript-fonts-std-8.11.tar.gz - -# -# Install the required packages. -# -RUN yum -y update \ - && yum -y install file gcc gcc-gfortran gcc-c++ glibc.i686 libgcc.i686 \ - libpng-devel jasper jasper-devel zlib zlib-devel \ - cairo-devel freetype-devel epel-release \ - hostname m4 make tar tcsh ksh time wget which \ - flex flex-devel bison bison-devel unzip \ - && yum -y install git g2clib-devel hdf5-devel.x86_64 gsl-devel \ - && yum -y install gv ncview wgrib wgrib2 ImageMagick ps2pdf \ - && yum -y install python3 python3-devel python3-pip \ - && pip3 install --upgrade pip \ - && python3 -m pip install numpy xarray netCDF4 - # # Set the working directory. # WORKDIR /met -# -# Setup the environment for interactive bash/csh container shells. -# -RUN echo export MET_BASE=/usr/local/share/met >> /etc/bashrc \ - && echo setenv MET_BASE /usr/local/share/met >> /etc/csh.cshrc \ - && echo export MET_FONT_DIR=/usr/local/share/met/fonts >> /etc/bashrc \ - && echo setenv MET_FONT_DIR /usr/local/share/met/fonts >> /etc/csh.cshrc \ - && echo export RSCRIPTS_BASE=/usr/local/share/met/Rscripts >> /etc/bashrc \ - && echo setenv RSCRIPTS_BASE /usr/local/share/met/Rscripts >> /etc/csh.cshrc \ - && echo export LD_LIBRARY_PATH=/usr/local/lib >> /etc/bashrc \ - && echo setenv LD_LIBRARY_PATH /usr/local/lib >> /etc/csh.cshrc -ENV LD_LIBRARY_PATH /usr/local/lib - -# -# Download and install BUFRLIB. -# -RUN mkdir -p /met/logs \ - && mkdir -p /met/external_libs/BUFRLIB \ - && cd /met/external_libs/BUFRLIB \ - && echo "Downloading BUFRLIB from ${BUFRLIB_URL}" \ - && curl -SL ${BUFRLIB_URL} | tar xC /met/external_libs/BUFRLIB \ - && cat preproc.sh | sed 's/cpp /cpp -traditional-cpp /g' > preproc_patch.sh \ - && chmod +x preproc_patch.sh \ - && LOG_FILE=/met/logs/BUFRLIB_build.log \ - && echo "Compiling BUFRLIB and writing log file ${LOG_FILE}" \ - && ./preproc_patch.sh *.F > ${LOG_FILE} \ - && ${CC} -c -DUNDERSCORE *.c >> ${LOG_FILE} \ - && ${FC} -c -fno-second-underscore *.f >> ${LOG_FILE} \ - && ar crv libbufr.a *.o >> ${LOG_FILE} \ - && rm -f /usr/local/lib/libbufr.a \ - && cp *.a /usr/local/lib \ - && cd /met/external_libs \ - && rm -rf BUFRLIB - -# -# Download and install NetCDF4 (C and C++). -# -RUN mkdir -p /met/external_libs/netcdf \ - && cd /met/external_libs/netcdf \ - && echo "Downloading netcdf-c-4.4.1.1 from ${NETCDF4C_URL}" \ - && wget ${NETCDF4C_URL} \ - && unzip v4.4.1.1.zip \ - && cd netcdf-c-4.4.1.1 \ - && LOG_FILE=/met/logs/netcdf-c-4.4.1.1_configure.log \ - && echo "Configuring netcdf-c-4.4.1.1 and writing log file ${LOG_FILE}" \ - && ./configure > ${LOG_FILE} \ - && LOG_FILE=/met/logs/netcdf-c-4.4.1.1_make_install.log \ - && echo "Compiling netcdf-c-4.4.1.1 and writing log file ${LOG_FILE}" \ - && make install > ${LOG_FILE} \ - && echo "Downloading from ${NETCDF4CXX_URL}" \ - && cd /met/external_libs/netcdf \ - && wget ${NETCDF4CXX_URL} \ - && tar -xzf v4.3.0.tar.gz \ - && cd netcdf-cxx4-4.3.0 \ - && LOG_FILE=/met/logs/netcdf-cxx4-4.3.0_configure.log \ - && echo "Configuring netcdf-cxx4-4.3.0 and writing log file ${LOG_FILE}" \ - && ./configure > ${LOG_FILE} \ - && LOG_FILE=/met/logs/netcdf-cxx4-4.3.0_make_install.log \ - && echo "Compiling netcdf-cxx4-4.3.0 and writing log file ${LOG_FILE}" \ - && make install > ${LOG_FILE} \ - && cd /met/external_libs \ - && rm -rf netcdf - -# -# Download and install HDF4 and HDFEOS. -# -RUN echo "Downloading HDF4.2r3 from ${HDF4_URL}" \ - && curl -SL ${HDF4_URL} | tar zxC /met/external_libs \ - && cd /met/external_libs/HDF4.2r3 \ - && LOG_FILE=/met/logs/HDF4.2r3_configure.log \ - && echo "Configuring HDF4.2r3 and writing log file ${LOG_FILE}" \ - && ./configure --prefix=/usr/local/hdf --disable-netcdf > ${LOG_FILE} \ - && cat mfhdf/hdiff/Makefile | sed 's/LIBS = -ljpeg -lz/LIBS = -ljpeg -lz -lm/g' > Makefile_NEW \ - && mv -f Makefile_NEW mfhdf/hdiff/Makefile \ - && LOG_FILE=/met/logs/HDF4.2r3_make_install.log \ - && echo "Compiling HDF4.2r3 and writing log file ${LOG_FILE}" \ - && make install > ${LOG_FILE} \ - && echo "Downloading hdfeos from ${HDFEOS_URL}" \ - && curl -SL ${HDFEOS_URL} | tar zxC /met/external_libs \ - && cd /met/external_libs/hdfeos \ - && LOG_FILE=/met/logs/hdfeos_configure.log \ - && echo "Configuring hdfeos and writing log file ${LOG_FILE}" \ - && ./configure --prefix=/usr/local/hdfeos --with-hdf4=/usr/local/hdf CC=/usr/local/hdf/bin/h4cc > ${LOG_FILE} \ - && LOG_FILE=/met/logs/hdfeos_make_install.log \ - && echo "Compiling hdfeos and writing log file ${LOG_FILE}" \ - && make install > ${LOG_FILE} \ - && mkdir /usr/local/hdfeos/include \ - && cp include/*.h /usr/local/hdfeos/include/. \ - && cd /met/external_libs \ - && rm -rf HDF4.2r3 hdfeos - # # Download and install MET and GhostScript fonts. # Delete the MET source code for tagged releases matching "v"*. # RUN echo "Checking out MET ${MET_GIT_NAME} from ${MET_GIT_URL}" \ - && git clone ${MET_GIT_URL} /met/MET-${MET_GIT_NAME} \ - && cd /met/MET-${MET_GIT_NAME}/met \ + && git clone ${MET_GIT_URL} ${MET_REPO_DIR} \ + && cd ${MET_REPO_DIR}/met \ && git checkout ${MET_GIT_NAME} \ - && LOG_FILE=/met/logs/MET-${MET_GIT_NAME}_configure.log \ - && echo "Running bootstrap" \ - && ./bootstrap \ - && echo "Configuring MET ${MET_GIT_NAME} and writing log file ${LOG_FILE}" \ - && ./configure --enable-grib2 --enable-mode_graphics --enable-modis --enable-lidar2nc --enable-python \ - MET_HDF=/usr/local/hdf MET_HDFEOS=/usr/local/hdfeos \ - MET_FREETYPEINC=/usr/include/freetype2 MET_FREETYPELIB=/usr/lib \ - MET_CAIROINC=/usr/include/cairo MET_CAIROLIB=/usr/lib \ - MET_PYTHON_CC='-I/usr/include/python3.6m' MET_PYTHON_LD='-lpython3.6m' > ${LOG_FILE} \ - && LOG_FILE=/met/MET-${MET_GIT_NAME}/make_install.log \ - && echo "Compiling MET ${MET_GIT_NAME} and writing log file ${LOG_FILE}" \ - && make install > ${LOG_FILE} \ - && LOG_FILE=/met/logs/MET-${MET_GIT_NAME}_make_test.log \ - && echo "Testing MET ${MET_GIT_NAME} and writing log file ${LOG_FILE}" \ - && make test > ${LOG_FILE} 2>&1 \ - && if [[ $MET_GIT_NAME == "v"* ]]; then cd /met; rm -rf MET-*; fi \ - && echo "Downloading GhostScript fonts from ${GSFONT_URL}" \ - && curl -SL ${GSFONT_URL} | tar zxC /usr/local/share/met + && ../scripts/docker/build_met_docker.sh diff --git a/scripts/docker/Dockerfile.copy b/scripts/docker/Dockerfile.copy new file mode 100644 index 0000000000..18a71e4185 --- /dev/null +++ b/scripts/docker/Dockerfile.copy @@ -0,0 +1,46 @@ +ARG MET_BASE_IMAGE=minimum + +FROM dtcenter/met-base:${MET_BASE_IMAGE} +MAINTAINER John Halley Gotway + +# +# This Dockerfile checks out MET from GitHub and compiles the specified branch or tag from source. +# +ARG SOURCE_BRANCH + +# +# SOURCE_BRANCH is not defined when built via Docker Hub. +# +RUN if [ "x${SOURCE_BRANCH}" = "x" ]; then \ + echo "ERROR: SOURCE_BRANCH undefined! Rebuild with \"--build-arg SOURCE_BRANCH={branch name}\""; \ + exit 1; \ + else \ + echo "Build Argument SOURCE_BRANCH=${SOURCE_BRANCH}"; \ + fi + +ENV MET_GIT_NAME ${SOURCE_BRANCH} +ENV MET_REPO_DIR /met/MET-${MET_GIT_NAME} +ENV MET_GIT_URL https://github.com/dtcenter/MET +ENV MET_DEVELOPMENT true + +# +# Set the working directory. +# +WORKDIR /met + +# +# Download and install MET and GhostScript fonts. +# Delete the MET source code for tagged releases matching "v"*. +# +RUN echo "Copying MET into ${MET_REPO_DIR}" \ + && mkdir -p ${MET_REPO_DIR} + +COPY . ${MET_REPO_DIR} + +RUN if [ ! -e "${MET_REPO_DIR}/met/configure.ac" ]; then \ + echo "ERROR: docker build must be run from the MET directory"; \ + exit 1; \ + fi + +RUN cd ${MET_REPO_DIR}/met \ + && ../scripts/docker/build_met_docker.sh diff --git a/scripts/docker/Dockerfile.minimum b/scripts/docker/Dockerfile.minimum new file mode 100644 index 0000000000..028871196b --- /dev/null +++ b/scripts/docker/Dockerfile.minimum @@ -0,0 +1,138 @@ +FROM centos:7 +MAINTAINER John Halley Gotway + +# +# Define the compilers. +# +ENV CC /usr/bin/gcc +ENV CXX /usr/bin/g++ +ENV FC /usr/bin/gfortran +ENV F77 /usr/bin/gfortran + +# +# Define package URL's. +# +ENV HDF4_URL http://www.hdfgroup.org/ftp/HDF/releases/HDF4.2r3/src/HDF4.2r3.tar.gz +ENV HDFEOS_URL https://dtcenter.ucar.edu/dfiles/code/METplus/MET/docker_data/HDF-EOS2.16v1.00.tar.Z + +ENV NETCDF4C_URL https://github.com/Unidata/netcdf-c/archive/v4.4.1.1.zip +ENV NETCDF4CXX_URL https://github.com/Unidata/netcdf-cxx4/archive/v4.3.0.tar.gz + +ENV BUFRLIB_URL https://dtcenter.ucar.edu/dfiles/code/METplus/MET/docker_data/BUFRLIB_v10-2-3.tar +ENV GSFONT_URL https://dtcenter.ucar.edu/dfiles/code/METplus/MET/docker_data/ghostscript-fonts-std-8.11.tar.gz + +# +# Install the required packages. +# +RUN yum -y update \ + && yum -y install file gcc gcc-gfortran gcc-c++ glibc.i686 libgcc.i686 \ + libpng-devel jasper jasper-devel zlib zlib-devel \ + cairo-devel freetype-devel epel-release \ + hostname m4 make tar tcsh ksh time wget which \ + flex flex-devel bison bison-devel unzip \ + && yum -y install git g2clib-devel hdf5-devel.x86_64 gsl-devel \ + && yum -y install gv ncview wgrib wgrib2 ImageMagick ps2pdf \ + && yum -y install python3 python3-devel python3-pip \ + && pip3 install --upgrade pip \ + && python3 -m pip install numpy xarray netCDF4 + +# +# Set the working directory. +# +WORKDIR /met + +# +# Setup the environment for interactive bash/csh container shells. +# +RUN echo export MET_BASE=/usr/local/share/met >> /etc/bashrc \ + && echo setenv MET_BASE /usr/local/share/met >> /etc/csh.cshrc \ + && echo export MET_FONT_DIR=/usr/local/share/met/fonts >> /etc/bashrc \ + && echo setenv MET_FONT_DIR /usr/local/share/met/fonts >> /etc/csh.cshrc \ + && echo export RSCRIPTS_BASE=/usr/local/share/met/Rscripts >> /etc/bashrc \ + && echo setenv RSCRIPTS_BASE /usr/local/share/met/Rscripts >> /etc/csh.cshrc \ + && echo export LD_LIBRARY_PATH=/usr/local/lib >> /etc/bashrc \ + && echo setenv LD_LIBRARY_PATH /usr/local/lib >> /etc/csh.cshrc +ENV LD_LIBRARY_PATH /usr/local/lib +ENV MET_FONT_DIR /usr/local/share/met/fonts + +# +# Download and install BUFRLIB. +# +RUN mkdir -p /met/logs \ + && mkdir -p /met/external_libs/BUFRLIB \ + && cd /met/external_libs/BUFRLIB \ + && echo "Downloading BUFRLIB from ${BUFRLIB_URL}" \ + && curl -SL ${BUFRLIB_URL} | tar xC /met/external_libs/BUFRLIB \ + && cat preproc.sh | sed 's/cpp /cpp -traditional-cpp /g' > preproc_patch.sh \ + && chmod +x preproc_patch.sh \ + && LOG_FILE=/met/logs/BUFRLIB_build.log \ + && echo "Compiling BUFRLIB and writing log file ${LOG_FILE}" \ + && ./preproc_patch.sh *.F > ${LOG_FILE} \ + && ${CC} -c -DUNDERSCORE *.c >> ${LOG_FILE} \ + && ${FC} -c -fno-second-underscore *.f >> ${LOG_FILE} \ + && ar crv libbufr.a *.o >> ${LOG_FILE} \ + && rm -f /usr/local/lib/libbufr.a \ + && cp *.a /usr/local/lib \ + && cd /met/external_libs \ + && rm -rf BUFRLIB + +# +# Download and install NetCDF4 (C and C++). +# +RUN mkdir -p /met/external_libs/netcdf \ + && cd /met/external_libs/netcdf \ + && echo "Downloading netcdf-c-4.4.1.1 from ${NETCDF4C_URL}" \ + && wget ${NETCDF4C_URL} \ + && unzip v4.4.1.1.zip \ + && cd netcdf-c-4.4.1.1 \ + && LOG_FILE=/met/logs/netcdf-c-4.4.1.1_configure.log \ + && echo "Configuring netcdf-c-4.4.1.1 and writing log file ${LOG_FILE}" \ + && ./configure > ${LOG_FILE} \ + && LOG_FILE=/met/logs/netcdf-c-4.4.1.1_make_install.log \ + && echo "Compiling netcdf-c-4.4.1.1 and writing log file ${LOG_FILE}" \ + && make install > ${LOG_FILE} \ + && echo "Downloading from ${NETCDF4CXX_URL}" \ + && cd /met/external_libs/netcdf \ + && wget ${NETCDF4CXX_URL} \ + && tar -xzf v4.3.0.tar.gz \ + && cd netcdf-cxx4-4.3.0 \ + && LOG_FILE=/met/logs/netcdf-cxx4-4.3.0_configure.log \ + && echo "Configuring netcdf-cxx4-4.3.0 and writing log file ${LOG_FILE}" \ + && ./configure > ${LOG_FILE} \ + && LOG_FILE=/met/logs/netcdf-cxx4-4.3.0_make_install.log \ + && echo "Compiling netcdf-cxx4-4.3.0 and writing log file ${LOG_FILE}" \ + && make install > ${LOG_FILE} \ + && cd /met/external_libs \ + && rm -rf netcdf + +# +# Download and install HDF4 and HDFEOS. +# +RUN echo "Downloading HDF4.2r3 from ${HDF4_URL}" \ + && curl -SL ${HDF4_URL} | tar zxC /met/external_libs \ + && cd /met/external_libs/HDF4.2r3 \ + && LOG_FILE=/met/logs/HDF4.2r3_configure.log \ + && echo "Configuring HDF4.2r3 and writing log file ${LOG_FILE}" \ + && ./configure --prefix=/usr/local/hdf --disable-netcdf > ${LOG_FILE} \ + && cat mfhdf/hdiff/Makefile | sed 's/LIBS = -ljpeg -lz/LIBS = -ljpeg -lz -lm/g' > Makefile_NEW \ + && mv -f Makefile_NEW mfhdf/hdiff/Makefile \ + && LOG_FILE=/met/logs/HDF4.2r3_make_install.log \ + && echo "Compiling HDF4.2r3 and writing log file ${LOG_FILE}" \ + && make install > ${LOG_FILE} \ + && echo "Downloading hdfeos from ${HDFEOS_URL}" \ + && curl -SL ${HDFEOS_URL} | tar zxC /met/external_libs \ + && cd /met/external_libs/hdfeos \ + && LOG_FILE=/met/logs/hdfeos_configure.log \ + && echo "Configuring hdfeos and writing log file ${LOG_FILE}" \ + && ./configure --prefix=/usr/local/hdfeos --with-hdf4=/usr/local/hdf CC=/usr/local/hdf/bin/h4cc > ${LOG_FILE} \ + && LOG_FILE=/met/logs/hdfeos_make_install.log \ + && echo "Compiling hdfeos and writing log file ${LOG_FILE}" \ + && make install > ${LOG_FILE} \ + && mkdir /usr/local/hdfeos/include \ + && cp include/*.h /usr/local/hdfeos/include/. \ + && cd /met/external_libs \ + && rm -rf HDF4.2r3 hdfeos + +RUN echo "Downloading GhostScript fonts from ${GSFONT_URL} into /usr/local/share/met" \ + && mkdir -p /usr/local/share/met \ + && curl -SL ${GSFONT_URL} | tar zxC /usr/local/share/met diff --git a/scripts/docker/Dockerfile.test b/scripts/docker/Dockerfile.test new file mode 100644 index 0000000000..bc7963cb91 --- /dev/null +++ b/scripts/docker/Dockerfile.test @@ -0,0 +1,26 @@ +ARG MET_BASE_IMAGE=minimum + +FROM dtcenter/met-base:${MET_BASE_IMAGE} +MAINTAINER John Halley Gotway + +# +# Set the working directory. +# +WORKDIR /met + +# +# Download and install MET and GhostScript fonts. +# Delete the MET source code for tagged releases matching "v"*. +# +RUN echo "Installing tools needed for running MET unit tests..." \ + && echo "Installing Perl XML Parser..." \ + && yum makecache \ + && yum -y install perl-XML-Parser \ + && echo "Installing R..." \ + && yum -y install R \ + && echo "Installing R ncdf4 1.19..." \ + && wget https://cran.r-project.org/src/contrib/ncdf4_1.19.tar.gz \ + && R CMD INSTALL ncdf4_1.19.tar.gz \ + && echo "Installing NCO (for ncdiff)..." \ + && yum -y install nco \ + && echo "Finished installing unit test tools" diff --git a/scripts/docker/README.md b/scripts/docker/README.md new file mode 100644 index 0000000000..80c6acaa08 --- /dev/null +++ b/scripts/docker/README.md @@ -0,0 +1,40 @@ +# How to Use Dockerfiles + +Run all of the Docker commands from the top-level directory of the MET repository + +## Build image with minimum requirements needed to build MET + +```docker build -t dtcenter/met-base:minimum -f scripts/docker/Dockerfile.minimum . +docker push dtcenter/met-base:minimum``` + +## Build image with requirements to build MET and run MET unit tests + +```docker build -t dtcenter/met-base:unit_test -f scripts/docker/Dockerfile.test . +docker push dtcenter/met-base:unit_test``` + +## Build MET from clone + +```docker build -t dtcenter/met:${TAG_NAME} --build-arg SOURCE_BRANCH=${BRANCH_NAME} scripts/docker +docker push dtcenter/met:${TAG_NAME}``` + +where: +* TAG_NAME is the name of the DockerHub tag to create +* BRANCH_NAME is the MET branch to checkout + +## Build MET from local source code with minimum requirements + +```docker build -t dtcenter/met:${TAG_NAME} --build-arg SOURCE_BRANCH=${BRANCH_NAME} -f scripts/docker/Dockerfile.copy . +docker push dtcenter/met:${TAG_NAME}``` + +where: +* TAG_NAME is the name of the DockerHub tag to create +* BRANCH_NAME is the identifier to use for $MET_GIT_NAME inside image + +## Build MET from local source code with unit test requirements + +```docker build -t dtcenter/met:${TAG_NAME} --build-arg SOURCE_BRANCH=${BRANCH_NAME} --build-arg MET_BASE_IMAGE=unit_test -f scripts/docker/Dockerfile.copy . +docker push dtcenter/met:${TAG_NAME}``` + +where: +* TAG_NAME is the name of the DockerHub tag to create +* BRANCH_NAME is the identifier to use for $MET_GIT_NAME inside image diff --git a/scripts/docker/build_met_docker.sh b/scripts/docker/build_met_docker.sh new file mode 100755 index 0000000000..fae3682113 --- /dev/null +++ b/scripts/docker/build_met_docker.sh @@ -0,0 +1,37 @@ +#! /bin/bash + +echo "Running script to build MET in Docker" + +LOG_FILE=/met/logs/MET-${MET_GIT_NAME}_configure.log + +echo "Running bootstrap" +./bootstrap + +echo "Configuring MET ${MET_GIT_NAME} and writing log file ${LOG_FILE}" +./configure --enable-grib2 --enable-mode_graphics --enable-modis --enable-lidar2nc --enable-python \ + MET_HDF=/usr/local/hdf MET_HDFEOS=/usr/local/hdfeos \ + MET_FREETYPEINC=/usr/include/freetype2 MET_FREETYPELIB=/usr/lib \ + MET_CAIROINC=/usr/include/cairo MET_CAIROLIB=/usr/lib \ + MET_PYTHON_CC='-I/usr/include/python3.6m' MET_PYTHON_LD='-lpython3.6m' > ${LOG_FILE} +if [ $? != 0 ]; then + exit 1 +fi + +LOG_FILE=/met/MET-${MET_GIT_NAME}/make_install.log +echo "Compiling MET ${MET_GIT_NAME} and writing log file ${LOG_FILE}" +make install > ${LOG_FILE} +if [ $? != 0 ]; then + exit 1 +fi + +LOG_FILE=/met/logs/MET-${MET_GIT_NAME}_make_test.log +echo "Testing MET ${MET_GIT_NAME} and writing log file ${LOG_FILE}" +make test > ${LOG_FILE} 2>&1 +if [ $? != 0 ]; then + exit 1 +fi + + +if [[ $MET_GIT_NAME == "v"* ]]; then + cd /met; rm -rf MET-*; +fi diff --git a/test/bin/unit_test.sh b/test/bin/unit_test.sh index fd1c7149cb..0c95bba7ac 100755 --- a/test/bin/unit_test.sh +++ b/test/bin/unit_test.sh @@ -35,20 +35,25 @@ PERL_UNIT=${MET_TEST_BASE}/perl/unit.pl # Unit test XML UNIT_XML="unit_ascii2nc.xml \ + unit_ascii2nc_indy.xml \ unit_madis2nc.xml \ unit_trmm2nc.xml \ unit_pb2nc.xml \ + unit_pb2nc_indy.xml \ unit_gen_vx_mask.xml \ unit_gen_ens_prod.xml \ unit_pcp_combine.xml \ unit_wwmca_regrid.xml \ unit_point_stat.xml \ + unit_stat_analysis_ps.xml \ unit_duplicate_flag.xml \ unit_obs_summary.xml \ unit_grid_stat.xml \ + unit_stat_analysis_gs.xml \ unit_wavelet_stat.xml \ + unit_stat_analysis_ws.xml \ unit_ensemble_stat.xml \ - unit_stat_analysis.xml \ + unit_stat_analysis_es.xml \ unit_mode.xml \ unit_mode_analysis.xml \ unit_plot_point_obs.xml \ @@ -64,6 +69,11 @@ UNIT_XML="unit_ascii2nc.xml \ unit_tc_gen.xml \ unit_met_test_scripts.xml \ unit_modis.xml \ + unit_ref_config_lead_00.xml \ + unit_ref_config_lead_12.xml \ + unit_ref_config_lead_24.xml \ + unit_ref_config_lead_36.xml \ + unit_ref_config_lead_48.xml \ unit_ref_config.xml \ unit_mode_graphics.xml \ unit_regrid.xml \ @@ -71,7 +81,9 @@ UNIT_XML="unit_ascii2nc.xml \ unit_aeronet.xml \ unit_shift_data_plane.xml \ unit_mtd.xml \ - unit_climatology.xml \ + unit_climatology_1.0deg.xml \ + unit_climatology_1.5deg.xml \ + unit_climatology_2.5deg.xml \ unit_grib_tables.xml \ unit_grid_weight.xml \ unit_netcdf.xml \ diff --git a/test/xml/unit_ascii2nc.xml b/test/xml/unit_ascii2nc.xml index 11c46a3ea5..feef57c65d 100644 --- a/test/xml/unit_ascii2nc.xml +++ b/test/xml/unit_ascii2nc.xml @@ -13,6 +13,8 @@ + + &TEST_DIR; @@ -30,18 +32,6 @@ - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/trmm/TRMM_3B42.007.accumulated_precipitation.22:30Z07Aug2012-10:30Z08Aug2012.G3.output.mtxt \ - &OUTPUT_DIR;/ascii2nc/trmm_2008080812_12hr.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/trmm_2008080812_12hr.nc - - - &MET_BIN;/ascii2nc \ @@ -66,44 +56,6 @@ - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/ascii/qc_out_2012-09-07_00:00:00.GRM_P+FCST \ - &OUTPUT_DIR;/ascii2nc/qc_out_2012-09-07_00:00:00.GRM_P_FCST.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/qc_out_2012-09-07_00:00:00.GRM_P_FCST.nc - - - - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/ascii/OBS:2015080700_bad_record \ - &OUTPUT_DIR;/ascii2nc/OBS_2015080700_bad_record.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/OBS_2015080700_bad_record.nc - - - - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/ascii/surfrad_tbl12136.txt \ - &DATA_DIR_OBS;/ascii/surfrad_tbl12137.txt \ - &DATA_DIR_OBS;/ascii/surfrad_tbl12138.txt \ - &OUTPUT_DIR;/ascii2nc/surfrad_tbl12.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/surfrad_tbl12.nc - - - &MET_BIN;/ascii2nc \ @@ -118,92 +70,6 @@ - - &MET_BIN;/ascii2nc - - BEG_TS 000000 - END_TS 235959 - STEP_TS 300 - WIDTH_TS 300 - - \ - &DATA_DIR_OBS;/surfrad/tbl12001.dat \ - &DATA_DIR_OBS;/surfrad/tbl12002.dat \ - &DATA_DIR_OBS;/surfrad/tbl12003.dat \ - -config &CONFIG_DIR;/Ascii2NcConfig.surfrad \ - &OUTPUT_DIR;/ascii2nc/surfrad_summary1.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/surfrad_summary1.nc - - - - - &MET_BIN;/ascii2nc - - BEG_TS 03 - END_TS 20 - STEP_TS 300 - WIDTH_TS 600 - - \ - &DATA_DIR_OBS;/surfrad/tbl12001.dat \ - &DATA_DIR_OBS;/surfrad/tbl12002.dat \ - &DATA_DIR_OBS;/surfrad/tbl12003.dat \ - -config &CONFIG_DIR;/Ascii2NcConfig.surfrad \ - &OUTPUT_DIR;/ascii2nc/surfrad_summary2.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/surfrad_summary2.nc - - - - - &MET_BIN;/ascii2nc - - BEG_TS 17 - END_TS 03 - STEP_TS 420 - WIDTH_TS 420 - - \ - &DATA_DIR_OBS;/surfrad/tbl12001.dat \ - &DATA_DIR_OBS;/surfrad/tbl12002.dat \ - &DATA_DIR_OBS;/surfrad/tbl12003.dat \ - -config &CONFIG_DIR;/Ascii2NcConfig.surfrad \ - &OUTPUT_DIR;/ascii2nc/surfrad_summary3.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/surfrad_summary3.nc - - - - - - - &MET_BIN;/ascii2nc - - BEG_TS 17 - END_TS 03 - STEP_TS 420 - WIDTH_TS {beg=-420;end=0;} - - \ - &DATA_DIR_OBS;/surfrad/tbl12001.dat \ - &DATA_DIR_OBS;/surfrad/tbl12002.dat \ - &DATA_DIR_OBS;/surfrad/tbl12003.dat \ - -config &CONFIG_DIR;/Ascii2NcConfig.surfrad \ - &OUTPUT_DIR;/ascii2nc/surfrad_summary4.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/surfrad_summary4.nc - - - &MET_BIN;/ascii2nc \ @@ -223,187 +89,6 @@ - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.13.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.14.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.15.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.16.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.17.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.18.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.19.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.20.ascii \ - &OUTPUT_DIR;/ascii2nc/edr_hourly.20130827.mask_sid.nc \ - -mask_sid "MY_STATIONS:N526UA,N567UA,N571UA,N594UA" \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/edr_hourly.20130827.mask_sid.nc - - - - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.13.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.14.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.15.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.16.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.17.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.18.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.19.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.20.ascii \ - &OUTPUT_DIR;/ascii2nc/edr_hourly.20130827.mask_grid_data.nc \ - -mask_grid &TEST_DIR;/data/mnc/test_grid_valid.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/edr_hourly.20130827.mask_grid_data.nc - - - - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.13.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.14.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.15.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.16.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.17.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.18.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.19.ascii \ - &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.20.ascii \ - &OUTPUT_DIR;/ascii2nc/edr_hourly.20130827.mask_named_grid.nc \ - -mask_grid G212 -v 1 - - - &OUTPUT_DIR;/ascii2nc/edr_hourly.20130827.mask_named_grid.nc - - - - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/trmm/TRMM_3B42.007.accumulated_precipitation.10:30Z09Apr2012.G3.output.mtxt \ - &OUTPUT_DIR;/ascii2nc/trmm_2012040912_3hr_mask_grid_dtc165.nc \ - -mask_grid DTC165 \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/trmm_2012040912_3hr_mask_grid_dtc165.nc - - - - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/trmm/TRMM_3B42.007.accumulated_precipitation.10:30Z09Apr2012.G3.output.mtxt \ - &OUTPUT_DIR;/ascii2nc/trmm_2012040912_3hr_mask_poly_lmv.nc \ - -mask_poly &MET_BASE;/poly/LMV.poly \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/trmm_2012040912_3hr_mask_poly_lmv.nc - - - - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/wwsis/clear_pvwatts_315510615_2006_pv_30MW_one_min_v3pt4.csv \ - &OUTPUT_DIR;/ascii2nc/clear_pvwatts_315510615_2006_pv_30MW_one_min_v3pt4.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/clear_pvwatts_315510615_2006_pv_30MW_one_min_v3pt4.nc - - - - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/wwsis/clear_pvwatts_315510615_2006_pv_30MW_five_min_v3pt4.csv \ - &OUTPUT_DIR;/ascii2nc/clear_pvwatts_315510615_2006_pv_30MW_five_min_v3pt4.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/clear_pvwatts_315510615_2006_pv_30MW_five_min_v3pt4.nc - - - - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/wwsis/clear_pvwatts_315510615_2006_pv_30MW_ten_min_v3pt4.csv \ - &OUTPUT_DIR;/ascii2nc/clear_pvwatts_315510615_2006_pv_30MW_ten_min_v3pt4.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/clear_pvwatts_315510615_2006_pv_30MW_ten_min_v3pt4.nc - - - - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/wwsis/clear_pvwatts_315510615_2006_pv_30MW_sixty_min_v3pt4.csv \ - &OUTPUT_DIR;/ascii2nc/clear_pvwatts_315510615_2006_pv_30MW_sixty_min_v3pt4.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/clear_pvwatts_315510615_2006_pv_30MW_sixty_min_v3pt4.nc - - - - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/wwsis/HA_pvwatts_315510615_2006_30MW_sixty_min_v3pt4.csv \ - &OUTPUT_DIR;/ascii2nc/HA_pvwatts_315510615_2006_30MW_sixty_min_v3pt4.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/HA_pvwatts_315510615_2006_30MW_sixty_min_v3pt4.nc - - - - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/wwsis/pvwatts_315510615_2006_pv_30MW_one_min_v3pt4.csv \ - &OUTPUT_DIR;/ascii2nc/pvwatts_315510615_2006_pv_30MW_one_min_v3pt4.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/pvwatts_315510615_2006_pv_30MW_one_min_v3pt4.nc - - - - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/wwsis/pvwatts_315510615_2006_pv_30MW_sixty_min_v3pt4.csv \ - &OUTPUT_DIR;/ascii2nc/pvwatts_315510615_2006_pv_30MW_sixty_min_v3pt4.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/pvwatts_315510615_2006_pv_30MW_sixty_min_v3pt4.nc - - - - - &MET_BIN;/ascii2nc - \ - &DATA_DIR_OBS;/ascii/obs_test_name.txt \ - &OUTPUT_DIR;/ascii2nc/obs_test_name.nc \ - -v 1 - - - &OUTPUT_DIR;/ascii2nc/obs_test_name.nc - - - &MET_BIN;/ascii2nc \ diff --git a/test/xml/unit_ascii2nc_indy.xml b/test/xml/unit_ascii2nc_indy.xml new file mode 100644 index 0000000000..11ba012820 --- /dev/null +++ b/test/xml/unit_ascii2nc_indy.xml @@ -0,0 +1,340 @@ + + + + + + + + + + +]> + + + + + + + + &TEST_DIR; + true + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/trmm/TRMM_3B42.007.accumulated_precipitation.22:30Z07Aug2012-10:30Z08Aug2012.G3.output.mtxt \ + &OUTPUT_DIR;/ascii2nc_indy/trmm_2008080812_12hr.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/trmm_2008080812_12hr.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/ascii/qc_out_2012-09-07_00:00:00.GRM_P+FCST \ + &OUTPUT_DIR;/ascii2nc_indy/qc_out_2012-09-07_00_00_00.GRM_P_FCST.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/qc_out_2012-09-07_00_00_00.GRM_P_FCST.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/ascii/OBS:2015080700_bad_record \ + &OUTPUT_DIR;/ascii2nc_indy/OBS_2015080700_bad_record.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/OBS_2015080700_bad_record.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/ascii/surfrad_tbl12136.txt \ + &DATA_DIR_OBS;/ascii/surfrad_tbl12137.txt \ + &DATA_DIR_OBS;/ascii/surfrad_tbl12138.txt \ + &OUTPUT_DIR;/ascii2nc_indy/surfrad_tbl12.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/surfrad_tbl12.nc + + + + + &MET_BIN;/ascii2nc + + BEG_TS 000000 + END_TS 235959 + STEP_TS 300 + WIDTH_TS 300 + + \ + &DATA_DIR_OBS;/surfrad/tbl12001.dat \ + &DATA_DIR_OBS;/surfrad/tbl12002.dat \ + &DATA_DIR_OBS;/surfrad/tbl12003.dat \ + -config &CONFIG_DIR;/Ascii2NcConfig.surfrad \ + &OUTPUT_DIR;/ascii2nc_indy/surfrad_summary1.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/surfrad_summary1.nc + + + + + &MET_BIN;/ascii2nc + + BEG_TS 03 + END_TS 20 + STEP_TS 300 + WIDTH_TS 600 + + \ + &DATA_DIR_OBS;/surfrad/tbl12001.dat \ + &DATA_DIR_OBS;/surfrad/tbl12002.dat \ + &DATA_DIR_OBS;/surfrad/tbl12003.dat \ + -config &CONFIG_DIR;/Ascii2NcConfig.surfrad \ + &OUTPUT_DIR;/ascii2nc_indy/surfrad_summary2.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/surfrad_summary2.nc + + + + + &MET_BIN;/ascii2nc + + BEG_TS 17 + END_TS 03 + STEP_TS 420 + WIDTH_TS 420 + + \ + &DATA_DIR_OBS;/surfrad/tbl12001.dat \ + &DATA_DIR_OBS;/surfrad/tbl12002.dat \ + &DATA_DIR_OBS;/surfrad/tbl12003.dat \ + -config &CONFIG_DIR;/Ascii2NcConfig.surfrad \ + &OUTPUT_DIR;/ascii2nc_indy/surfrad_summary3.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/surfrad_summary3.nc + + + + + + + &MET_BIN;/ascii2nc + + BEG_TS 17 + END_TS 03 + STEP_TS 420 + WIDTH_TS {beg=-420;end=0;} + + \ + &DATA_DIR_OBS;/surfrad/tbl12001.dat \ + &DATA_DIR_OBS;/surfrad/tbl12002.dat \ + &DATA_DIR_OBS;/surfrad/tbl12003.dat \ + -config &CONFIG_DIR;/Ascii2NcConfig.surfrad \ + &OUTPUT_DIR;/ascii2nc_indy/surfrad_summary4.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/surfrad_summary4.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.13.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.14.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.15.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.16.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.17.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.18.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.19.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.20.ascii \ + &OUTPUT_DIR;/ascii2nc_indy/edr_hourly.20130827.mask_sid.nc \ + -mask_sid "MY_STATIONS:N526UA,N567UA,N571UA,N594UA" \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/edr_hourly.20130827.mask_sid.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.13.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.14.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.15.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.16.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.17.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.18.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.19.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.20.ascii \ + &OUTPUT_DIR;/ascii2nc_indy/edr_hourly.20130827.mask_grid_data.nc \ + -mask_grid &TEST_DIR;/data/mnc/test_grid_valid.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/edr_hourly.20130827.mask_grid_data.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.13.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.14.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.15.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.16.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.17.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.18.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.19.ascii \ + &DATA_DIR_OBS;/insitu_ascii/20130827/edr_hourly.20130827.20.ascii \ + &OUTPUT_DIR;/ascii2nc_indy/edr_hourly.20130827.mask_named_grid.nc \ + -mask_grid G212 -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/edr_hourly.20130827.mask_named_grid.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/trmm/TRMM_3B42.007.accumulated_precipitation.10:30Z09Apr2012.G3.output.mtxt \ + &OUTPUT_DIR;/ascii2nc_indy/trmm_2012040912_3hr_mask_grid_dtc165.nc \ + -mask_grid DTC165 \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/trmm_2012040912_3hr_mask_grid_dtc165.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/trmm/TRMM_3B42.007.accumulated_precipitation.10:30Z09Apr2012.G3.output.mtxt \ + &OUTPUT_DIR;/ascii2nc_indy/trmm_2012040912_3hr_mask_poly_lmv.nc \ + -mask_poly &MET_BASE;/poly/LMV.poly \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/trmm_2012040912_3hr_mask_poly_lmv.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/wwsis/clear_pvwatts_315510615_2006_pv_30MW_one_min_v3pt4.csv \ + &OUTPUT_DIR;/ascii2nc_indy/clear_pvwatts_315510615_2006_pv_30MW_one_min_v3pt4.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/clear_pvwatts_315510615_2006_pv_30MW_one_min_v3pt4.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/wwsis/clear_pvwatts_315510615_2006_pv_30MW_five_min_v3pt4.csv \ + &OUTPUT_DIR;/ascii2nc_indy/clear_pvwatts_315510615_2006_pv_30MW_five_min_v3pt4.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/clear_pvwatts_315510615_2006_pv_30MW_five_min_v3pt4.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/wwsis/clear_pvwatts_315510615_2006_pv_30MW_ten_min_v3pt4.csv \ + &OUTPUT_DIR;/ascii2nc_indy/clear_pvwatts_315510615_2006_pv_30MW_ten_min_v3pt4.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/clear_pvwatts_315510615_2006_pv_30MW_ten_min_v3pt4.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/wwsis/clear_pvwatts_315510615_2006_pv_30MW_sixty_min_v3pt4.csv \ + &OUTPUT_DIR;/ascii2nc_indy/clear_pvwatts_315510615_2006_pv_30MW_sixty_min_v3pt4.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/clear_pvwatts_315510615_2006_pv_30MW_sixty_min_v3pt4.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/wwsis/HA_pvwatts_315510615_2006_30MW_sixty_min_v3pt4.csv \ + &OUTPUT_DIR;/ascii2nc_indy/HA_pvwatts_315510615_2006_30MW_sixty_min_v3pt4.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/HA_pvwatts_315510615_2006_30MW_sixty_min_v3pt4.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/wwsis/pvwatts_315510615_2006_pv_30MW_one_min_v3pt4.csv \ + &OUTPUT_DIR;/ascii2nc_indy/pvwatts_315510615_2006_pv_30MW_one_min_v3pt4.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/pvwatts_315510615_2006_pv_30MW_one_min_v3pt4.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/wwsis/pvwatts_315510615_2006_pv_30MW_sixty_min_v3pt4.csv \ + &OUTPUT_DIR;/ascii2nc_indy/pvwatts_315510615_2006_pv_30MW_sixty_min_v3pt4.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/pvwatts_315510615_2006_pv_30MW_sixty_min_v3pt4.nc + + + + + &MET_BIN;/ascii2nc + \ + &DATA_DIR_OBS;/ascii/obs_test_name.txt \ + &OUTPUT_DIR;/ascii2nc_indy/obs_test_name.nc \ + -v 1 + + + &OUTPUT_DIR;/ascii2nc_indy/obs_test_name.nc + + + + diff --git a/test/xml/unit_climatology.xml b/test/xml/unit_climatology.xml deleted file mode 100644 index d50dc86ccf..0000000000 --- a/test/xml/unit_climatology.xml +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - -]> - - - - - - &TEST_DIR; - true - - - &MET_BIN;/point_stat - - OUTPUT_PREFIX GFS_CLIMO_2.5DEG - DAY_INTERVAL 31 - HOUR_INTERVAL 6 - CLIMO_MEAN_FILE_LIST - "&DATA_DIR_CLIMO;/NCEP_2.5deg/pgba_mean.19590315", - "&DATA_DIR_CLIMO;/NCEP_2.5deg/pgba_mean.19590415" - - - CLIMO_STDEV_FILE_LIST - "&DATA_DIR_CLIMO;/NCEP_2.5deg/pgba_stdv.19590315", - "&DATA_DIR_CLIMO;/NCEP_2.5deg/pgba_stdv.19590415" - - - - \ - &DATA_DIR_MODEL;/grib1/gfs/gfs_2012040900_F012.grib \ - &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.nc \ - &CONFIG_DIR;/PointStatConfig_climo \ - -outdir &OUTPUT_DIR;/climatology -v 4 - - - &OUTPUT_DIR;/climatology/point_stat_GFS_CLIMO_2.5DEG_120000L_20120409_120000V.stat - &OUTPUT_DIR;/climatology/point_stat_GFS_CLIMO_2.5DEG_120000L_20120409_120000V_cnt.txt - &OUTPUT_DIR;/climatology/point_stat_GFS_CLIMO_2.5DEG_120000L_20120409_120000V_sl1l2.txt - &OUTPUT_DIR;/climatology/point_stat_GFS_CLIMO_2.5DEG_120000L_20120409_120000V_sal1l2.txt - &OUTPUT_DIR;/climatology/point_stat_GFS_CLIMO_2.5DEG_120000L_20120409_120000V_mpr.txt - - - - - &MET_BIN;/point_stat - - OUTPUT_PREFIX GFS_CLIMO_1.0DEG - DAY_INTERVAL 1 - HOUR_INTERVAL 6 - CLIMO_MEAN_FILE_LIST - "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590409" - - - CLIMO_STDEV_FILE_LIST - "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590409" - - - - \ - &DATA_DIR_MODEL;/grib1/gfs/gfs_2012040900_F012.grib \ - &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.nc \ - &CONFIG_DIR;/PointStatConfig_climo \ - -outdir &OUTPUT_DIR;/climatology -v 4 - - - &OUTPUT_DIR;/climatology/point_stat_GFS_CLIMO_1.0DEG_120000L_20120409_120000V.stat - &OUTPUT_DIR;/climatology/point_stat_GFS_CLIMO_1.0DEG_120000L_20120409_120000V_cnt.txt - &OUTPUT_DIR;/climatology/point_stat_GFS_CLIMO_1.0DEG_120000L_20120409_120000V_sl1l2.txt - &OUTPUT_DIR;/climatology/point_stat_GFS_CLIMO_1.0DEG_120000L_20120409_120000V_sal1l2.txt - &OUTPUT_DIR;/climatology/point_stat_GFS_CLIMO_1.0DEG_120000L_20120409_120000V_mpr.txt - - - - - &MET_BIN;/point_stat - - OUTPUT_PREFIX GFS_CLIMO_PREV_MONTH - DAY_INTERVAL NA - HOUR_INTERVAL 6 - CLIMO_MEAN_FILE_LIST - "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590309" - - - CLIMO_STDEV_FILE_LIST - "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590309" - - - - \ - &DATA_DIR_MODEL;/grib1/gfs/gfs_2012040900_F012.grib \ - &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.nc \ - &CONFIG_DIR;/PointStatConfig_climo \ - -outdir &OUTPUT_DIR;/climatology -v 4 - - - &OUTPUT_DIR;/climatology/point_stat_GFS_CLIMO_PREV_MONTH_120000L_20120409_120000V.stat - &OUTPUT_DIR;/climatology/point_stat_GFS_CLIMO_PREV_MONTH_120000L_20120409_120000V_cnt.txt - &OUTPUT_DIR;/climatology/point_stat_GFS_CLIMO_PREV_MONTH_120000L_20120409_120000V_sl1l2.txt - &OUTPUT_DIR;/climatology/point_stat_GFS_CLIMO_PREV_MONTH_120000L_20120409_120000V_sal1l2.txt - &OUTPUT_DIR;/climatology/point_stat_GFS_CLIMO_PREV_MONTH_120000L_20120409_120000V_mpr.txt - - - - - &MET_BIN;/point_stat - - OUTPUT_PREFIX WMO_CLIMO_1.5DEG - CLIMO_DIR &DATA_DIR_CLIMO;/ERA_DAILY_1.5deg - - \ - &DATA_DIR_MODEL;/grib1/gfs/gfs_2012040900_F012.grib \ - &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.nc \ - &CONFIG_DIR;/PointStatConfig_climo_WMO \ - -outdir &OUTPUT_DIR;/climatology -v 4 - - - &OUTPUT_DIR;/climatology/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V.stat - &OUTPUT_DIR;/climatology/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_ctc.txt - &OUTPUT_DIR;/climatology/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_cnt.txt - &OUTPUT_DIR;/climatology/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_sl1l2.txt - &OUTPUT_DIR;/climatology/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_sal1l2.txt - &OUTPUT_DIR;/climatology/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_vl1l2.txt - &OUTPUT_DIR;/climatology/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_val1l2.txt - &OUTPUT_DIR;/climatology/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_pct.txt - &OUTPUT_DIR;/climatology/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_pstd.txt - &OUTPUT_DIR;/climatology/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_ecnt.txt - &OUTPUT_DIR;/climatology/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_rps.txt - &OUTPUT_DIR;/climatology/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_mpr.txt - &OUTPUT_DIR;/climatology/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_vcnt.txt - - - - - &MET_BIN;/stat_analysis - - OUTPUT_DIR &OUTPUT_DIR;/climatology - - \ - -lookin &OUTPUT_DIR;/climatology/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V.stat \ - -job aggregate_stat -line_type MPR -out_line_type CTC -fcst_lev P850 -interp_mthd NEAREST -by FCST_VAR -out_thresh '>CDP90' \ - -out_stat &OUTPUT_DIR;/climatology/stat_analysis_WMO_1.5DEG_MPR_to_CTC_out.stat - - - &OUTPUT_DIR;/climatology/stat_analysis_WMO_1.5DEG_MPR_to_CTC_out.stat - - - - - &MET_BIN;/stat_analysis - - OUTPUT_DIR &OUTPUT_DIR;/climatology - - \ - -lookin &OUTPUT_DIR;/climatology/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V.stat \ - -job filter -line_type MPR -column_thresh CLIMO_CDF 'lt0.1||gt0.9' \ - -dump_row &OUTPUT_DIR;/climatology/stat_analysis_WMO_1.5DEG_FILTER_CDF_dump.stat - - - &OUTPUT_DIR;/climatology/stat_analysis_WMO_1.5DEG_FILTER_CDF_dump.stat - - - - - &MET_BIN;/grid_stat - - OUTPUT_PREFIX WMO_CLIMO_1.5DEG - CLIMO_DIR &DATA_DIR_CLIMO;/ERA_DAILY_1.5deg - - \ - &DATA_DIR_MODEL;/grib2/gfs/gfs_2012040900_F024.grib2 \ - &DATA_DIR_MODEL;/grib2/gfsanl/gfsanl_4_20120410_0000_000.grb2 \ - &CONFIG_DIR;/GridStatConfig_climo_WMO \ - -outdir &OUTPUT_DIR;/climatology -v 2 - - - &OUTPUT_DIR;/climatology/grid_stat_WMO_CLIMO_1.5DEG_240000L_20120410_000000V.stat - &OUTPUT_DIR;/climatology/grid_stat_WMO_CLIMO_1.5DEG_240000L_20120410_000000V_pairs.nc - - - - - &MET_BIN;/point_stat - - OUTPUT_PREFIX PROB_GFS_CLIMO_1.0DEG - DAY_INTERVAL 1 - CLIMO_MEAN_FILE_LIST - "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590409" - - - CLIMO_STDEV_FILE_LIST - "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590409" - - - - \ - &DATA_DIR_MODEL;/grib2/sref_pr/sref_prob_2012040821_F015.grib2 \ - &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.nc \ - &CONFIG_DIR;/PointStatConfig_climo_prob \ - -outdir &OUTPUT_DIR;/climatology -v 4 - - - &OUTPUT_DIR;/climatology/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V.stat - &OUTPUT_DIR;/climatology/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_pct.txt - &OUTPUT_DIR;/climatology/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_pstd.txt - &OUTPUT_DIR;/climatology/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_pjc.txt - &OUTPUT_DIR;/climatology/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_prc.txt - &OUTPUT_DIR;/climatology/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_eclv.txt - &OUTPUT_DIR;/climatology/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_mpr.txt - - - - - &MET_BIN;/grid_stat - - OUTPUT_PREFIX PROB_GFS_CLIMO_1.0DEG - DAY_INTERVAL 1 - CLIMO_MEAN_FILE_LIST - "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590409" - - - CLIMO_STDEV_FILE_LIST - "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590409" - - - - \ - &DATA_DIR_MODEL;/grib2/sref_pr/sref_prob_2012040821_F015.grib2 \ - &DATA_DIR_MODEL;/grib2/gfsanl/gfsanl_4_20120409_1200_000.grb2 \ - &CONFIG_DIR;/GridStatConfig_climo_prob \ - -outdir &OUTPUT_DIR;/climatology -v 4 - - - &OUTPUT_DIR;/climatology/grid_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V.stat - &OUTPUT_DIR;/climatology/grid_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_pct.txt - &OUTPUT_DIR;/climatology/grid_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_pstd.txt - &OUTPUT_DIR;/climatology/grid_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_pjc.txt - &OUTPUT_DIR;/climatology/grid_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_prc.txt - &OUTPUT_DIR;/climatology/grid_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_eclv.txt - &OUTPUT_DIR;/climatology/grid_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_pairs.nc - - - - - &MET_BIN;/stat_analysis - - OUTPUT_DIR &OUTPUT_DIR;/climatology - - \ - -lookin &OUTPUT_DIR;/climatology/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V.stat \ - -config &CONFIG_DIR;/STATAnalysisConfig_climo \ - -v 4 - - - &OUTPUT_DIR;/climatology/stat_analysis_MPR_to_PSTD.stat - - - - - &MET_BIN;/series_analysis - - CLIMO_MEAN_FILE_LIST - "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590409", - "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590410", - "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590411" - - - CLIMO_STDEV_FILE_LIST - "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590409", - "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590410", - "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590411" - - - - \ - -fcst &DATA_DIR_MODEL;/grib2/gfs/gfs_2012040900_F012.grib2 \ - &DATA_DIR_MODEL;/grib2/gfs/gfs_2012040900_F024.grib2 \ - &DATA_DIR_MODEL;/grib2/gfs/gfs_2012040900_F036.grib2 \ - &DATA_DIR_MODEL;/grib2/gfs/gfs_2012040900_F048.grib2 \ - -obs &DATA_DIR_MODEL;/grib2/gfsanl/gfsanl_4_20120409_1200_000.grb2 \ - &DATA_DIR_MODEL;/grib2/gfsanl/gfsanl_4_20120410_0000_000.grb2 \ - &DATA_DIR_MODEL;/grib2/gfsanl/gfsanl_4_20120410_1200_000.grb2 \ - &DATA_DIR_MODEL;/grib2/gfsanl/gfsanl_4_20120411_0000_000.grb2 \ - -paired \ - -out &OUTPUT_DIR;/climatology/series_analysis_GFS_CLIMO_1.0DEG.nc \ - -config &CONFIG_DIR;/SeriesAnalysisConfig_climo \ - -v 2 - - - &OUTPUT_DIR;/climatology/series_analysis_GFS_CLIMO_1.0DEG.nc - - - - - echo "&DATA_DIR_MODEL;/grib1/arw-fer-gep1/arw-fer-gep1_2012040912_F024.grib \ - &DATA_DIR_MODEL;/grib1/arw-fer-gep5/arw-fer-gep5_2012040912_F024.grib \ - &DATA_DIR_MODEL;/grib1/arw-sch-gep2/arw-sch-gep2_2012040912_F024.grib \ - &DATA_DIR_MODEL;/grib1/arw-sch-gep6/arw-sch-gep6_2012040912_F024.grib \ - &DATA_DIR_MODEL;/grib1/arw-tom-gep3/arw-tom-gep3_2012040912_F024.grib \ - &DATA_DIR_MODEL;/grib1/arw-tom-gep7/arw-tom-gep7_2012040912_F024.grib" \ - > &OUTPUT_DIR;/climatology/ensemble_stat_input_file_list; \ - &MET_BIN;/ensemble_stat - - OUTPUT_PREFIX NCEP_1.0DEG - CLIMO_MEAN_FILE_LIST "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590410" - CLIMO_STDEV_FILE_LIST "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590410" - - \ - &OUTPUT_DIR;/climatology/ensemble_stat_input_file_list \ - &CONFIG_DIR;/EnsembleStatConfig_climo \ - -point_obs &OUTPUT_DIR;/pb2nc/ndas.20120410.t12z.prepbufr.tm00.nc \ - -grid_obs &DATA_DIR_OBS;/laps/laps_2012041012_F000.grib \ - -outdir &OUTPUT_DIR;/climatology - - - &OUTPUT_DIR;/climatology/ensemble_stat_NCEP_1.0DEG_20120410_120000V.stat - &OUTPUT_DIR;/climatology/ensemble_stat_NCEP_1.0DEG_20120410_120000V_ecnt.txt - &OUTPUT_DIR;/climatology/ensemble_stat_NCEP_1.0DEG_20120410_120000V_orank.txt - &OUTPUT_DIR;/climatology/ensemble_stat_NCEP_1.0DEG_20120410_120000V_ens.nc - &OUTPUT_DIR;/climatology/ensemble_stat_NCEP_1.0DEG_20120410_120000V_orank.nc - - - - - - - echo "&DATA_DIR_MODEL;/grib1/arw-fer-gep1/arw-fer-gep1_2012040912_F024.grib \ - &DATA_DIR_MODEL;/grib1/arw-fer-gep5/arw-fer-gep5_2012040912_F024.grib \ - &DATA_DIR_MODEL;/grib1/arw-sch-gep2/arw-sch-gep2_2012040912_F024.grib \ - &DATA_DIR_MODEL;/grib1/arw-sch-gep6/arw-sch-gep6_2012040912_F024.grib \ - &DATA_DIR_MODEL;/grib1/arw-tom-gep3/arw-tom-gep3_2012040912_F024.grib \ - &DATA_DIR_MODEL;/grib1/arw-tom-gep7/arw-tom-gep7_2012040912_F024.grib" \ - > &OUTPUT_DIR;/climatology/ensemble_stat_input_file_list; \ - &MET_BIN;/ensemble_stat - - OUTPUT_PREFIX ONE_CDF_BIN - CLIMO_MEAN_FILE_LIST "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590410" - - \ - &OUTPUT_DIR;/climatology/ensemble_stat_input_file_list \ - &CONFIG_DIR;/EnsembleStatConfig_one_cdf_bin \ - -point_obs &OUTPUT_DIR;/pb2nc/ndas.20120410.t12z.prepbufr.tm00.nc \ - -grid_obs &DATA_DIR_OBS;/laps/laps_2012041012_F000.grib \ - -outdir &OUTPUT_DIR;/climatology - - - &OUTPUT_DIR;/climatology/ensemble_stat_ONE_CDF_BIN_20120410_120000V.stat - &OUTPUT_DIR;/climatology/ensemble_stat_ONE_CDF_BIN_20120410_120000V_ecnt.txt - &OUTPUT_DIR;/climatology/ensemble_stat_ONE_CDF_BIN_20120410_120000V_ens.nc - - - - diff --git a/test/xml/unit_climatology_1.0deg.xml b/test/xml/unit_climatology_1.0deg.xml new file mode 100644 index 0000000000..8fad5f3be1 --- /dev/null +++ b/test/xml/unit_climatology_1.0deg.xml @@ -0,0 +1,252 @@ + + + + + + + + + + +]> + + + + + + &TEST_DIR; + true + + + &MET_BIN;/point_stat + + OUTPUT_PREFIX GFS_CLIMO_1.0DEG + DAY_INTERVAL 1 + HOUR_INTERVAL 6 + CLIMO_MEAN_FILE_LIST + "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590409" + + + CLIMO_STDEV_FILE_LIST + "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590409" + + + + \ + &DATA_DIR_MODEL;/grib1/gfs/gfs_2012040900_F012.grib \ + &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.nc \ + &CONFIG_DIR;/PointStatConfig_climo \ + -outdir &OUTPUT_DIR;/climatology_1.0deg -v 4 + + + &OUTPUT_DIR;/climatology_1.0deg/point_stat_GFS_CLIMO_1.0DEG_120000L_20120409_120000V.stat + &OUTPUT_DIR;/climatology_1.0deg/point_stat_GFS_CLIMO_1.0DEG_120000L_20120409_120000V_cnt.txt + &OUTPUT_DIR;/climatology_1.0deg/point_stat_GFS_CLIMO_1.0DEG_120000L_20120409_120000V_sl1l2.txt + &OUTPUT_DIR;/climatology_1.0deg/point_stat_GFS_CLIMO_1.0DEG_120000L_20120409_120000V_sal1l2.txt + &OUTPUT_DIR;/climatology_1.0deg/point_stat_GFS_CLIMO_1.0DEG_120000L_20120409_120000V_mpr.txt + + + + + &MET_BIN;/point_stat + + OUTPUT_PREFIX GFS_CLIMO_PREV_MONTH + DAY_INTERVAL NA + HOUR_INTERVAL 6 + CLIMO_MEAN_FILE_LIST + "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590309" + + + CLIMO_STDEV_FILE_LIST + "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590309" + + + + \ + &DATA_DIR_MODEL;/grib1/gfs/gfs_2012040900_F012.grib \ + &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.nc \ + &CONFIG_DIR;/PointStatConfig_climo \ + -outdir &OUTPUT_DIR;/climatology_1.0deg -v 4 + + + &OUTPUT_DIR;/climatology_1.0deg/point_stat_GFS_CLIMO_PREV_MONTH_120000L_20120409_120000V.stat + &OUTPUT_DIR;/climatology_1.0deg/point_stat_GFS_CLIMO_PREV_MONTH_120000L_20120409_120000V_cnt.txt + &OUTPUT_DIR;/climatology_1.0deg/point_stat_GFS_CLIMO_PREV_MONTH_120000L_20120409_120000V_sl1l2.txt + &OUTPUT_DIR;/climatology_1.0deg/point_stat_GFS_CLIMO_PREV_MONTH_120000L_20120409_120000V_sal1l2.txt + &OUTPUT_DIR;/climatology_1.0deg/point_stat_GFS_CLIMO_PREV_MONTH_120000L_20120409_120000V_mpr.txt + + + + + &MET_BIN;/point_stat + + OUTPUT_PREFIX PROB_GFS_CLIMO_1.0DEG + DAY_INTERVAL 1 + CLIMO_MEAN_FILE_LIST + "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590409" + + + CLIMO_STDEV_FILE_LIST + "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590409" + + + + \ + &DATA_DIR_MODEL;/grib2/sref_pr/sref_prob_2012040821_F015.grib2 \ + &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.nc \ + &CONFIG_DIR;/PointStatConfig_climo_prob \ + -outdir &OUTPUT_DIR;/climatology_1.0deg -v 4 + + + &OUTPUT_DIR;/climatology_1.0deg/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V.stat + &OUTPUT_DIR;/climatology_1.0deg/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_pct.txt + &OUTPUT_DIR;/climatology_1.0deg/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_pstd.txt + &OUTPUT_DIR;/climatology_1.0deg/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_pjc.txt + &OUTPUT_DIR;/climatology_1.0deg/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_prc.txt + &OUTPUT_DIR;/climatology_1.0deg/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_eclv.txt + &OUTPUT_DIR;/climatology_1.0deg/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_mpr.txt + + + + + &MET_BIN;/grid_stat + + OUTPUT_PREFIX PROB_GFS_CLIMO_1.0DEG + DAY_INTERVAL 1 + CLIMO_MEAN_FILE_LIST + "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590409" + + + CLIMO_STDEV_FILE_LIST + "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590409" + + + + \ + &DATA_DIR_MODEL;/grib2/sref_pr/sref_prob_2012040821_F015.grib2 \ + &DATA_DIR_MODEL;/grib2/gfsanl/gfsanl_4_20120409_1200_000.grb2 \ + &CONFIG_DIR;/GridStatConfig_climo_prob \ + -outdir &OUTPUT_DIR;/climatology_1.0deg -v 4 + + + &OUTPUT_DIR;/climatology_1.0deg/grid_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V.stat + &OUTPUT_DIR;/climatology_1.0deg/grid_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_pct.txt + &OUTPUT_DIR;/climatology_1.0deg/grid_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_pstd.txt + &OUTPUT_DIR;/climatology_1.0deg/grid_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_pjc.txt + &OUTPUT_DIR;/climatology_1.0deg/grid_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_prc.txt + &OUTPUT_DIR;/climatology_1.0deg/grid_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_eclv.txt + &OUTPUT_DIR;/climatology_1.0deg/grid_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V_pairs.nc + + + + + &MET_BIN;/stat_analysis + + OUTPUT_DIR &OUTPUT_DIR;/climatology_1.0deg + + \ + -lookin &OUTPUT_DIR;/climatology_1.0deg/point_stat_PROB_GFS_CLIMO_1.0DEG_150000L_20120409_120000V.stat \ + -config &CONFIG_DIR;/STATAnalysisConfig_climo \ + -v 4 + + + &OUTPUT_DIR;/climatology_1.0deg/stat_analysis_MPR_to_PSTD.stat + + + + + &MET_BIN;/series_analysis + + CLIMO_MEAN_FILE_LIST + "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590409", + "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590410", + "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590411" + + + CLIMO_STDEV_FILE_LIST + "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590409", + "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590410", + "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590411" + + + + \ + -fcst &DATA_DIR_MODEL;/grib2/gfs/gfs_2012040900_F012.grib2 \ + &DATA_DIR_MODEL;/grib2/gfs/gfs_2012040900_F024.grib2 \ + &DATA_DIR_MODEL;/grib2/gfs/gfs_2012040900_F036.grib2 \ + &DATA_DIR_MODEL;/grib2/gfs/gfs_2012040900_F048.grib2 \ + -obs &DATA_DIR_MODEL;/grib2/gfsanl/gfsanl_4_20120409_1200_000.grb2 \ + &DATA_DIR_MODEL;/grib2/gfsanl/gfsanl_4_20120410_0000_000.grb2 \ + &DATA_DIR_MODEL;/grib2/gfsanl/gfsanl_4_20120410_1200_000.grb2 \ + &DATA_DIR_MODEL;/grib2/gfsanl/gfsanl_4_20120411_0000_000.grb2 \ + -paired \ + -out &OUTPUT_DIR;/climatology_1.0deg/series_analysis_GFS_CLIMO_1.0DEG.nc \ + -config &CONFIG_DIR;/SeriesAnalysisConfig_climo \ + -v 2 + + + &OUTPUT_DIR;/climatology_1.0deg/series_analysis_GFS_CLIMO_1.0DEG.nc + + + + + echo "&DATA_DIR_MODEL;/grib1/arw-fer-gep1/arw-fer-gep1_2012040912_F024.grib \ + &DATA_DIR_MODEL;/grib1/arw-fer-gep5/arw-fer-gep5_2012040912_F024.grib \ + &DATA_DIR_MODEL;/grib1/arw-sch-gep2/arw-sch-gep2_2012040912_F024.grib \ + &DATA_DIR_MODEL;/grib1/arw-sch-gep6/arw-sch-gep6_2012040912_F024.grib \ + &DATA_DIR_MODEL;/grib1/arw-tom-gep3/arw-tom-gep3_2012040912_F024.grib \ + &DATA_DIR_MODEL;/grib1/arw-tom-gep7/arw-tom-gep7_2012040912_F024.grib" \ + > &OUTPUT_DIR;/climatology_1.0deg/ensemble_stat_input_file_list; \ + &MET_BIN;/ensemble_stat + + OUTPUT_PREFIX NCEP_1.0DEG + CLIMO_MEAN_FILE_LIST "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590410" + CLIMO_STDEV_FILE_LIST "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cstdv_1d.19590410" + + \ + &OUTPUT_DIR;/climatology_1.0deg/ensemble_stat_input_file_list \ + &CONFIG_DIR;/EnsembleStatConfig_climo \ + -point_obs &OUTPUT_DIR;/pb2nc/ndas.20120410.t12z.prepbufr.tm00.nc \ + -grid_obs &DATA_DIR_OBS;/laps/laps_2012041012_F000.grib \ + -outdir &OUTPUT_DIR;/climatology_1.0deg + + + &OUTPUT_DIR;/climatology_1.0deg/ensemble_stat_NCEP_1.0DEG_20120410_120000V.stat + &OUTPUT_DIR;/climatology_1.0deg/ensemble_stat_NCEP_1.0DEG_20120410_120000V_ecnt.txt + &OUTPUT_DIR;/climatology_1.0deg/ensemble_stat_NCEP_1.0DEG_20120410_120000V_orank.txt + &OUTPUT_DIR;/climatology_1.0deg/ensemble_stat_NCEP_1.0DEG_20120410_120000V_ens.nc + &OUTPUT_DIR;/climatology_1.0deg/ensemble_stat_NCEP_1.0DEG_20120410_120000V_orank.nc + + + + + + + echo "&DATA_DIR_MODEL;/grib1/arw-fer-gep1/arw-fer-gep1_2012040912_F024.grib \ + &DATA_DIR_MODEL;/grib1/arw-fer-gep5/arw-fer-gep5_2012040912_F024.grib \ + &DATA_DIR_MODEL;/grib1/arw-sch-gep2/arw-sch-gep2_2012040912_F024.grib \ + &DATA_DIR_MODEL;/grib1/arw-sch-gep6/arw-sch-gep6_2012040912_F024.grib \ + &DATA_DIR_MODEL;/grib1/arw-tom-gep3/arw-tom-gep3_2012040912_F024.grib \ + &DATA_DIR_MODEL;/grib1/arw-tom-gep7/arw-tom-gep7_2012040912_F024.grib" \ + > &OUTPUT_DIR;/climatology_1.0deg/ensemble_stat_input_file_list; \ + &MET_BIN;/ensemble_stat + + OUTPUT_PREFIX ONE_CDF_BIN + CLIMO_MEAN_FILE_LIST "&DATA_DIR_CLIMO;/NCEP_NCAR_40YR_1.0deg/cmean_1d.19590410" + + \ + &OUTPUT_DIR;/climatology_1.0deg/ensemble_stat_input_file_list \ + &CONFIG_DIR;/EnsembleStatConfig_one_cdf_bin \ + -point_obs &OUTPUT_DIR;/pb2nc/ndas.20120410.t12z.prepbufr.tm00.nc \ + -grid_obs &DATA_DIR_OBS;/laps/laps_2012041012_F000.grib \ + -outdir &OUTPUT_DIR;/climatology_1.0deg + + + &OUTPUT_DIR;/climatology_1.0deg/ensemble_stat_ONE_CDF_BIN_20120410_120000V.stat + &OUTPUT_DIR;/climatology_1.0deg/ensemble_stat_ONE_CDF_BIN_20120410_120000V_ecnt.txt + &OUTPUT_DIR;/climatology_1.0deg/ensemble_stat_ONE_CDF_BIN_20120410_120000V_ens.nc + + + + diff --git a/test/xml/unit_climatology_1.5deg.xml b/test/xml/unit_climatology_1.5deg.xml new file mode 100644 index 0000000000..52dd69897b --- /dev/null +++ b/test/xml/unit_climatology_1.5deg.xml @@ -0,0 +1,98 @@ + + + + + + + + + + +]> + + + + + + &TEST_DIR; + true + + + &MET_BIN;/point_stat + + OUTPUT_PREFIX WMO_CLIMO_1.5DEG + CLIMO_DIR &DATA_DIR_CLIMO;/ERA_DAILY_1.5deg + + \ + &DATA_DIR_MODEL;/grib1/gfs/gfs_2012040900_F012.grib \ + &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.nc \ + &CONFIG_DIR;/PointStatConfig_climo_WMO \ + -outdir &OUTPUT_DIR;/climatology_1.5deg -v 4 + + + &OUTPUT_DIR;/climatology_1.5deg/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V.stat + &OUTPUT_DIR;/climatology_1.5deg/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_ctc.txt + &OUTPUT_DIR;/climatology_1.5deg/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_cnt.txt + &OUTPUT_DIR;/climatology_1.5deg/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_sl1l2.txt + &OUTPUT_DIR;/climatology_1.5deg/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_sal1l2.txt + &OUTPUT_DIR;/climatology_1.5deg/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_vl1l2.txt + &OUTPUT_DIR;/climatology_1.5deg/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_val1l2.txt + &OUTPUT_DIR;/climatology_1.5deg/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_pct.txt + &OUTPUT_DIR;/climatology_1.5deg/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_pstd.txt + &OUTPUT_DIR;/climatology_1.5deg/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_ecnt.txt + &OUTPUT_DIR;/climatology_1.5deg/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_rps.txt + &OUTPUT_DIR;/climatology_1.5deg/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_mpr.txt + &OUTPUT_DIR;/climatology_1.5deg/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V_vcnt.txt + + + + + &MET_BIN;/stat_analysis + + OUTPUT_DIR &OUTPUT_DIR;/climatology_1.5deg + + \ + -lookin &OUTPUT_DIR;/climatology_1.5deg/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V.stat \ + -job aggregate_stat -line_type MPR -out_line_type CTC -fcst_lev P850 -interp_mthd NEAREST -by FCST_VAR -out_thresh '>CDP90' \ + -out_stat &OUTPUT_DIR;/climatology_1.5deg/stat_analysis_WMO_1.5DEG_MPR_to_CTC_out.stat + + + &OUTPUT_DIR;/climatology_1.5deg/stat_analysis_WMO_1.5DEG_MPR_to_CTC_out.stat + + + + + &MET_BIN;/stat_analysis + + OUTPUT_DIR &OUTPUT_DIR;/climatology_1.5deg + + \ + -lookin &OUTPUT_DIR;/climatology_1.5deg/point_stat_WMO_CLIMO_1.5DEG_120000L_20120409_120000V.stat \ + -job filter -line_type MPR -column_thresh CLIMO_CDF 'lt0.1||gt0.9' \ + -dump_row &OUTPUT_DIR;/climatology_1.5deg/stat_analysis_WMO_1.5DEG_FILTER_CDF_dump.stat + + + &OUTPUT_DIR;/climatology_1.5deg/stat_analysis_WMO_1.5DEG_FILTER_CDF_dump.stat + + + + + &MET_BIN;/grid_stat + + OUTPUT_PREFIX WMO_CLIMO_1.5DEG + CLIMO_DIR &DATA_DIR_CLIMO;/ERA_DAILY_1.5deg + + \ + &DATA_DIR_MODEL;/grib2/gfs/gfs_2012040900_F024.grib2 \ + &DATA_DIR_MODEL;/grib2/gfsanl/gfsanl_4_20120410_0000_000.grb2 \ + &CONFIG_DIR;/GridStatConfig_climo_WMO \ + -outdir &OUTPUT_DIR;/climatology_1.5deg -v 2 + + + &OUTPUT_DIR;/climatology_1.5deg/grid_stat_WMO_CLIMO_1.5DEG_240000L_20120410_000000V.stat + &OUTPUT_DIR;/climatology_1.5deg/grid_stat_WMO_CLIMO_1.5DEG_240000L_20120410_000000V_pairs.nc + + + + diff --git a/test/xml/unit_climatology_2.5deg.xml b/test/xml/unit_climatology_2.5deg.xml new file mode 100644 index 0000000000..7c8c0b300a --- /dev/null +++ b/test/xml/unit_climatology_2.5deg.xml @@ -0,0 +1,53 @@ + + + + + + + + + + +]> + + + + + + &TEST_DIR; + true + + + &MET_BIN;/point_stat + + OUTPUT_PREFIX GFS_CLIMO_2.5DEG + DAY_INTERVAL 31 + HOUR_INTERVAL 6 + CLIMO_MEAN_FILE_LIST + "&DATA_DIR_CLIMO;/NCEP_2.5deg/pgba_mean.19590315", + "&DATA_DIR_CLIMO;/NCEP_2.5deg/pgba_mean.19590415" + + + CLIMO_STDEV_FILE_LIST + "&DATA_DIR_CLIMO;/NCEP_2.5deg/pgba_stdv.19590315", + "&DATA_DIR_CLIMO;/NCEP_2.5deg/pgba_stdv.19590415" + + + + \ + &DATA_DIR_MODEL;/grib1/gfs/gfs_2012040900_F012.grib \ + &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.nc \ + &CONFIG_DIR;/PointStatConfig_climo \ + -outdir &OUTPUT_DIR;/climatology_2.5deg -v 4 + + + &OUTPUT_DIR;/climatology_2.5deg/point_stat_GFS_CLIMO_2.5DEG_120000L_20120409_120000V.stat + &OUTPUT_DIR;/climatology_2.5deg/point_stat_GFS_CLIMO_2.5DEG_120000L_20120409_120000V_cnt.txt + &OUTPUT_DIR;/climatology_2.5deg/point_stat_GFS_CLIMO_2.5DEG_120000L_20120409_120000V_sl1l2.txt + &OUTPUT_DIR;/climatology_2.5deg/point_stat_GFS_CLIMO_2.5DEG_120000L_20120409_120000V_sal1l2.txt + &OUTPUT_DIR;/climatology_2.5deg/point_stat_GFS_CLIMO_2.5DEG_120000L_20120409_120000V_mpr.txt + + + + diff --git a/test/xml/unit_pb2nc.xml b/test/xml/unit_pb2nc.xml index d6d79def22..fc31e0e61b 100644 --- a/test/xml/unit_pb2nc.xml +++ b/test/xml/unit_pb2nc.xml @@ -14,6 +14,8 @@ + + &TEST_DIR; @@ -75,139 +77,5 @@ &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.nc - - - &MET_BIN;/pb2nc - - STATION_ID "72265","72274","72364","72426" - MASK_GRID - MASK_POLY - QUALITY_MARK_THRESH 2 - - \ - &DATA_DIR_OBS;/prepbufr/ndas/nam.20120409.t12z.prepbufr.tm00.nr \ - &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.mask_sid.nc \ - &CONFIG_DIR;/PB2NCConfig \ - -v 1 - - - &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.mask_sid.nc - - - - - &MET_BIN;/pb2nc - - STATION_ID "&CONFIG_DIR;/SID_CO.txt" - MASK_GRID - MASK_POLY - QUALITY_MARK_THRESH 2 - - \ - &DATA_DIR_OBS;/prepbufr/ndas/nam.20120409.t12z.prepbufr.tm00.nr \ - &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.mask_sid_file.nc \ - &CONFIG_DIR;/PB2NCConfig \ - -v 1 - - - &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.mask_sid_file.nc - - - - - &MET_BIN;/pb2nc - - STATION_ID - MASK_GRID &MET_DATA;/sample_fcst/2005080700/wrfprs_ruc13_00.tm00_G212 - MASK_POLY - QUALITY_MARK_THRESH 2 - - \ - &DATA_DIR_OBS;/prepbufr/ndas/nam.20120409.t12z.prepbufr.tm00.nr \ - &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.mask_grid_data.nc \ - &CONFIG_DIR;/PB2NCConfig \ - -v 1 - - - &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.mask_grid_data.nc - - - - - &MET_BIN;/pb2nc - - STATION_ID - MASK_GRID - MASK_POLY - QUALITY_MARK_THRESH 2 - - \ - &DATA_DIR_OBS;/prepbufr/nam.20210311.t00z.prepbufr.tm00 \ - &OUTPUT_DIR;/pb2nc/nam.20210311.t00z.prepbufr.tm00.pbl.nc \ - &CONFIG_DIR;/PB2NCConfig_pbl \ - -v 1 - - - &OUTPUT_DIR;/pb2nc/nam.20210311.t00z.prepbufr.tm00.pbl.nc - - - - - &MET_BIN;/pb2nc - - STATION_ID "72364","72265","72274","72426","72489","14008" - MASK_GRID - MASK_POLY - QUALITY_MARK_THRESH 2 - - \ - &DATA_DIR_OBS;/prepbufr/ndas/nam.20120409.t12z.prepbufr.tm00.nr \ - &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.var_all.nc \ - &CONFIG_DIR;/PB2NCConfig_all \ - -v 1 - - - &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.var_all.nc - - - - - &MET_BIN;/pb2nc - - STATION_ID "SC-GSP","TX-HGX","KY-HPX" - MASK_GRID - MASK_POLY - QUALITY_MARK_THRESH 9 - - \ - &DATA_DIR_OBS;/bufr/nam_20170502.t00z.radwnd.tm02.bufr_d \ - &OUTPUT_DIR;/pb2nc/nam_20170502.t00z.radwnd.tm02.bufr_d.vlevel_500.nc \ - &CONFIG_DIR;/PB2NCConfig_vlevel -valid_end 20170501_22 \ - -v 1 - - - &OUTPUT_DIR;/pb2nc/nam_20170502.t00z.radwnd.tm02.bufr_d.vlevel_500.nc - - - - - &MET_BIN;/pb2nc - - STATION_ID - MASK_GRID - MASK_POLY MET_BASE/poly/CONUS.poly - QUALITY_MARK_THRESH 2 - - \ - &DATA_DIR_OBS;/prepbufr/ndas/nam.20120409.t12z.prepbufr.tm00.nr \ - &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.summary.nc \ - &CONFIG_DIR;/PB2NCConfig_summary \ - -v 1 - - - &OUTPUT_DIR;/pb2nc/ndas.20120409.t12z.prepbufr.tm00.summary.nc - - - diff --git a/test/xml/unit_pb2nc_indy.xml b/test/xml/unit_pb2nc_indy.xml new file mode 100644 index 0000000000..d0483d2c6a --- /dev/null +++ b/test/xml/unit_pb2nc_indy.xml @@ -0,0 +1,157 @@ + + + + + + + + + + + +]> + + + + + + + + &TEST_DIR; + true + + + &MET_BIN;/pb2nc + + STATION_ID "72265","72274","72364","72426" + MASK_GRID + MASK_POLY + QUALITY_MARK_THRESH 2 + + \ + &DATA_DIR_OBS;/prepbufr/ndas/nam.20120409.t12z.prepbufr.tm00.nr \ + &OUTPUT_DIR;/pb2nc_indy/ndas.20120409.t12z.prepbufr.tm00.mask_sid.nc \ + &CONFIG_DIR;/PB2NCConfig \ + -v 1 + + + &OUTPUT_DIR;/pb2nc_indy/ndas.20120409.t12z.prepbufr.tm00.mask_sid.nc + + + + + &MET_BIN;/pb2nc + + STATION_ID "&CONFIG_DIR;/SID_CO.txt" + MASK_GRID + MASK_POLY + QUALITY_MARK_THRESH 2 + + \ + &DATA_DIR_OBS;/prepbufr/ndas/nam.20120409.t12z.prepbufr.tm00.nr \ + &OUTPUT_DIR;/pb2nc_indy/ndas.20120409.t12z.prepbufr.tm00.mask_sid_file.nc \ + &CONFIG_DIR;/PB2NCConfig \ + -v 1 + + + &OUTPUT_DIR;/pb2nc_indy/ndas.20120409.t12z.prepbufr.tm00.mask_sid_file.nc + + + + + &MET_BIN;/pb2nc + + STATION_ID + MASK_GRID &MET_DATA;/sample_fcst/2005080700/wrfprs_ruc13_00.tm00_G212 + MASK_POLY + QUALITY_MARK_THRESH 2 + + \ + &DATA_DIR_OBS;/prepbufr/ndas/nam.20120409.t12z.prepbufr.tm00.nr \ + &OUTPUT_DIR;/pb2nc_indy/ndas.20120409.t12z.prepbufr.tm00.mask_grid_data.nc \ + &CONFIG_DIR;/PB2NCConfig \ + -v 1 + + + &OUTPUT_DIR;/pb2nc_indy/ndas.20120409.t12z.prepbufr.tm00.mask_grid_data.nc + + + + + &MET_BIN;/pb2nc + + STATION_ID + MASK_GRID + MASK_POLY + QUALITY_MARK_THRESH 2 + + \ + &DATA_DIR_OBS;/prepbufr/nam.20210311.t00z.prepbufr.tm00 \ + &OUTPUT_DIR;/pb2nc_indy/nam.20210311.t00z.prepbufr.tm00.pbl.nc \ + &CONFIG_DIR;/PB2NCConfig_pbl \ + -v 1 + + + &OUTPUT_DIR;/pb2nc_indy/nam.20210311.t00z.prepbufr.tm00.pbl.nc + + + + + &MET_BIN;/pb2nc + + STATION_ID "72364","72265","72274","72426","72489","14008" + MASK_GRID + MASK_POLY + QUALITY_MARK_THRESH 2 + + \ + &DATA_DIR_OBS;/prepbufr/ndas/nam.20120409.t12z.prepbufr.tm00.nr \ + &OUTPUT_DIR;/pb2nc_indy/ndas.20120409.t12z.prepbufr.tm00.var_all.nc \ + &CONFIG_DIR;/PB2NCConfig_all \ + -v 1 + + + &OUTPUT_DIR;/pb2nc_indy/ndas.20120409.t12z.prepbufr.tm00.var_all.nc + + + + + &MET_BIN;/pb2nc + + STATION_ID "SC-GSP","TX-HGX","KY-HPX" + MASK_GRID + MASK_POLY + QUALITY_MARK_THRESH 9 + + \ + &DATA_DIR_OBS;/bufr/nam_20170502.t00z.radwnd.tm02.bufr_d \ + &OUTPUT_DIR;/pb2nc_indy/nam_20170502.t00z.radwnd.tm02.bufr_d.vlevel_500.nc \ + &CONFIG_DIR;/PB2NCConfig_vlevel -valid_end 20170501_22 \ + -v 1 + + + &OUTPUT_DIR;/pb2nc_indy/nam_20170502.t00z.radwnd.tm02.bufr_d.vlevel_500.nc + + + + + &MET_BIN;/pb2nc + + STATION_ID + MASK_GRID + MASK_POLY MET_BASE/poly/CONUS.poly + QUALITY_MARK_THRESH 2 + + \ + &DATA_DIR_OBS;/prepbufr/ndas/nam.20120409.t12z.prepbufr.tm00.nr \ + &OUTPUT_DIR;/pb2nc_indy/ndas.20120409.t12z.prepbufr.tm00.summary.nc \ + &CONFIG_DIR;/PB2NCConfig_summary \ + -v 1 + + + &OUTPUT_DIR;/pb2nc_indy/ndas.20120409.t12z.prepbufr.tm00.summary.nc + + + + diff --git a/test/xml/unit_pcp_combine.xml b/test/xml/unit_pcp_combine.xml index 4a1c39b76b..b2de557363 100644 --- a/test/xml/unit_pcp_combine.xml +++ b/test/xml/unit_pcp_combine.xml @@ -187,10 +187,10 @@ -subtract \ &DATA_DIR_MODEL;/p_interp/wrfout_d01_2008-08-08_12:00:00_PLEV 'name="RAINNC";level="(0,*,*)";' \ &DATA_DIR_MODEL;/p_interp/wrfout_d01_2008-08-08_06:00:00_PLEV 'name="RAINNC";level="(0,*,*)";' \ - &OUTPUT_DIR;/pcp_combine/wrfout_d01_2008-08-08_12:00:00_PLEV_APCP06.nc + &OUTPUT_DIR;/pcp_combine/wrfout_d01_2008-08-08_12_00_00_PLEV_APCP06.nc - &OUTPUT_DIR;/pcp_combine/wrfout_d01_2008-08-08_12:00:00_PLEV_APCP06.nc + &OUTPUT_DIR;/pcp_combine/wrfout_d01_2008-08-08_12_00_00_PLEV_APCP06.nc diff --git a/test/xml/unit_plot_data_plane.xml b/test/xml/unit_plot_data_plane.xml index 25d47c1397..c118078829 100644 --- a/test/xml/unit_plot_data_plane.xml +++ b/test/xml/unit_plot_data_plane.xml @@ -135,13 +135,13 @@ &MET_BIN;/plot_data_plane \ &DATA_DIR_MODEL;/p_interp/wrfout_d01_2008-08-08_12:00:00_PLEV \ - &OUTPUT_DIR;/plot_data_plane/wrfout_d01_2008-08-08_12:00:00_PLEV_NC_PINTERP_PRES_SFC.ps \ + &OUTPUT_DIR;/plot_data_plane/wrfout_d01_2008-08-08_12_00_00_PLEV_NC_PINTERP_PRES_SFC.ps \ 'name = "PSFC"; level = "(0,*,*)";' \ -title "NC PINTERP Pressure at the Surface" \ -v 1 - &OUTPUT_DIR;/plot_data_plane/wrfout_d01_2008-08-08_12:00:00_PLEV_NC_PINTERP_PRES_SFC.ps + &OUTPUT_DIR;/plot_data_plane/wrfout_d01_2008-08-08_12_00_00_PLEV_NC_PINTERP_PRES_SFC.ps diff --git a/test/xml/unit_python.xml b/test/xml/unit_python.xml index 226d61869b..b2b1dad44b 100644 --- a/test/xml/unit_python.xml +++ b/test/xml/unit_python.xml @@ -15,7 +15,7 @@ ]> - + @@ -378,7 +378,8 @@ - &MET_BIN;/plot_data_plane + echo "MET_PYTHON_EXE=&MET_PYTHON_EXE;"; \ + &MET_BIN;/plot_data_plane MET_PYTHON_EXE &MET_PYTHON_EXE; PYTHON_GRID G212 @@ -398,7 +399,8 @@ - &MET_BIN;/ascii2nc + echo "MET_PYTHON_EXE=&MET_PYTHON_EXE;"; \ + &MET_BIN;/ascii2nc MET_PYTHON_EXE &MET_PYTHON_EXE; @@ -415,6 +417,7 @@ export PATH='&ANACONDA_BIN;:${PATH}'; \ + echo "MET_PYTHON_EXE=&MET_PYTHON_EXE;"; \ &MET_BIN;/plot_data_plane MET_PYTHON_EXE &MET_PYTHON_EXE; @@ -434,7 +437,8 @@ - &MET_BIN;/stat_analysis + echo "MET_PYTHON_EXE=&MET_PYTHON_EXE;"; \ + &MET_BIN;/stat_analysis MET_PYTHON_EXE &MET_PYTHON_EXE; diff --git a/test/xml/unit_ref_config.xml b/test/xml/unit_ref_config.xml index 5f9320ba5d..0cf9a8b8f3 100644 --- a/test/xml/unit_ref_config.xml +++ b/test/xml/unit_ref_config.xml @@ -11,930 +11,13 @@ ]> - + &TEST_DIR; true - - - - - - &MET_BIN;/gen_vx_mask - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 \ - &MET_BASE;/poly/CONUS.poly \ - &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc \ - -type poly -v 2 - - - &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - - - - - - - - --> - &MET_BIN;/pb2nc - - MASK_POLY &CONFIG_DIR;/ref_config/RefConfig.poly - - \ - &DATA_DIR_OBS;/ref_config/prepbufr/ndas/2011090212/ndas.t12z.prepbufr.tm12.nr \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PB2NCConfig \ - -valid_beg 20110901_223000\ - -valid_end 20110902_013000\ - -v 2 - - - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc - - - - --> - &MET_BIN;/pb2nc - - MASK_POLY &CONFIG_DIR;/ref_config/RefConfig.poly - - \ - &DATA_DIR_OBS;/ref_config/prepbufr/ndas/2011090300/ndas.t00z.prepbufr.tm12.nr \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc \ - &CONFIG_DIR;/ref_config/PB2NCConfig \ - -valid_beg 20110902_103000\ - -valid_end 20110902_133000\ - -v 2 - - - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc - - - - --> - &MET_BIN;/pb2nc - - MASK_POLY &CONFIG_DIR;/ref_config/RefConfig.poly - - \ - &DATA_DIR_OBS;/ref_config/prepbufr/ndas/2011090312/ndas.t12z.prepbufr.tm12.nr \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PB2NCConfig \ - -valid_beg 20110902_223000\ - -valid_end 20110903_013000\ - -v 2 - - - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc - - - - --> - &MET_BIN;/pb2nc - - MASK_POLY &CONFIG_DIR;/ref_config/RefConfig.poly - - \ - &DATA_DIR_OBS;/ref_config/prepbufr/ndas/2011090400/ndas.t00z.prepbufr.tm12.nr \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc \ - &CONFIG_DIR;/ref_config/PB2NCConfig \ - -valid_beg 20110903_103000\ - -valid_end 20110903_133000\ - -v 2 - - - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc - - - - --> - &MET_BIN;/pb2nc - - MASK_POLY &CONFIG_DIR;/ref_config/RefConfig.poly - - \ - &DATA_DIR_OBS;/ref_config/prepbufr/ndas/2011090412/ndas.t12z.prepbufr.tm12.nr \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PB2NCConfig \ - -valid_beg 20110903_223000\ - -valid_end 20110904_013000\ - -v 2 - - - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc - - - - - - - - - - &MET_BIN;/pcp_combine - \ - -sum \ - 00000000_000000 1 20110902_120000 3 \ - &OUTPUT_DIR;/ref_config/pcp_combine/ST2_03h/20110902/ST2ml2011090212.03h.nc \ - -pcpdir &DATA_DIR_OBS;/ref_config/pcp_combine/20110902 - - - &OUTPUT_DIR;/ref_config/pcp_combine/ST2_03h/20110902/ST2ml2011090212.03h.nc - - - - - &MET_BIN;/pcp_combine - \ - -sum \ - 00000000_000000 1 20110903_000000 3 \ - &OUTPUT_DIR;/ref_config/pcp_combine/ST2_03h/20110903/ST2ml2011090300.03h.nc \ - -pcpdir &DATA_DIR_OBS;/ref_config/pcp_combine/20110902 \ - -pcpdir &DATA_DIR_OBS;/ref_config/pcp_combine/20110903 - - - &OUTPUT_DIR;/ref_config/pcp_combine/ST2_03h/20110903/ST2ml2011090300.03h.nc - - - - - &MET_BIN;/pcp_combine - \ - -sum \ - 00000000_000000 1 20110903_120000 3 \ - &OUTPUT_DIR;/ref_config/pcp_combine/ST2_03h/20110903/ST2ml2011090312.03h.nc \ - -pcpdir &DATA_DIR_OBS;/ref_config/pcp_combine/20110903 - - - &OUTPUT_DIR;/ref_config/pcp_combine/ST2_03h/20110903/ST2ml2011090312.03h.nc - - - - - &MET_BIN;/pcp_combine - \ - -sum \ - 00000000_000000 1 20110904_000000 3 \ - &OUTPUT_DIR;/ref_config/pcp_combine/ST2_03h/20110904/ST2ml2011090400.03h.nc \ - -pcpdir &DATA_DIR_OBS;/ref_config/pcp_combine/20110903 \ - -pcpdir &DATA_DIR_OBS;/ref_config/pcp_combine/20110904 - - - &OUTPUT_DIR;/ref_config/pcp_combine/ST2_03h/20110904/ST2ml2011090400.03h.nc - - - - - &MET_BIN;/pcp_combine - \ - -add \ - &DATA_DIR_OBS;/ref_config/pcp_combine/2011090324/ST2ml2011090312.24h.grb \ - 24 \ - &OUTPUT_DIR;/ref_config/pcp_combine/ST2_24h/20110903/ST2ml2011090312.24h.nc - - - &OUTPUT_DIR;/ref_config/pcp_combine/ST2_24h/20110903/ST2ml2011090312.24h.nc - - - - - &MET_BIN;/pcp_combine - \ - -subtract \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 12 \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_009.tm00 9 \ - &OUTPUT_DIR;/ref_config/pcp_combine/wrf/wrfpcp03_012.nc - - - &OUTPUT_DIR;/ref_config/pcp_combine/wrf/wrfpcp03_012.nc - - - - - &MET_BIN;/pcp_combine - \ - -subtract \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_024.tm00 24 \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_021.tm00 21 \ - &OUTPUT_DIR;/ref_config/pcp_combine/wrf/wrfpcp03_024.nc - - - &OUTPUT_DIR;/ref_config/pcp_combine/wrf/wrfpcp03_024.nc - - - - - &MET_BIN;/pcp_combine - \ - -subtract \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_036.tm00 36 \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_033.tm00 33 \ - &OUTPUT_DIR;/ref_config/pcp_combine/wrf/wrfpcp03_036.nc - - - &OUTPUT_DIR;/ref_config/pcp_combine/wrf/wrfpcp03_036.nc - - - - - &MET_BIN;/pcp_combine - \ - -subtract \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_048.tm00 48 \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_045.tm00 45 \ - &OUTPUT_DIR;/ref_config/pcp_combine/wrf/wrfpcp03_048.nc - - - &OUTPUT_DIR;/ref_config/pcp_combine/wrf/wrfpcp03_048.nc - - - - - &MET_BIN;/pcp_combine - \ - -subtract \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_036.tm00 36 \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 12 \ - &OUTPUT_DIR;/ref_config/pcp_combine/wrf/wrfpcp24_036.nc - - - &OUTPUT_DIR;/ref_config/pcp_combine/wrf/wrfpcp24_036.nc - - - - - - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv2.7.1 - FCST_TIME 000 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_000.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F000_ADPUPA_000000L_20110902_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv2.7.1 - FCST_TIME 000 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_000.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F000_ONLYSF_000000L_20110902_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv2.7.1 - FCST_TIME 000 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_000.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F000_WINDS_000000L_20110902_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv2.7.1 - FCST_TIME 012 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_012.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F012_ADPUPA_120000L_20110902_120000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv2.7.1 - FCST_TIME 012 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_012.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F012_ONLYSF_120000L_20110902_120000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv2.7.1 - FCST_TIME 012 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_012.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F012_WINDS_120000L_20110902_120000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv2.7.1 - FCST_TIME 024 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_024.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F024_ADPUPA_240000L_20110903_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv2.7.1 - FCST_TIME 024 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_024.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F024_ONLYSF_240000L_20110903_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv2.7.1 - FCST_TIME 024 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_024.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F024_WINDS_240000L_20110903_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv2.7.1 - FCST_TIME 036 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_036.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F036_ADPUPA_360000L_20110903_120000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv2.7.1 - FCST_TIME 036 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_036.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F036_ONLYSF_360000L_20110903_120000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv2.7.1 - FCST_TIME 036 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_036.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F036_WINDS_360000L_20110903_120000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv2.7.1 - FCST_TIME 048 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_048.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F048_ADPUPA_480000L_20110904_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv2.7.1 - FCST_TIME 048 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_048.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F048_ONLYSF_480000L_20110904_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv2.7.1 - FCST_TIME 048 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_048.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F048_WINDS_480000L_20110904_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 000 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_000.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F000_ADPUPA_000000L_20110902_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 000 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_000.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F000_ONLYSF_000000L_20110902_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 000 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_000.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F000_WINDS_000000L_20110902_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 012 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F012_ADPUPA_120000L_20110902_120000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 012 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F012_ONLYSF_120000L_20110902_120000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 012 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F012_WINDS_120000L_20110902_120000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 024 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_024.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F024_ADPUPA_240000L_20110903_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 024 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_024.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F024_ONLYSF_240000L_20110903_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 024 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_024.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F024_WINDS_240000L_20110903_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 036 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_036.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F036_ADPUPA_360000L_20110903_120000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 036 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_036.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F036_ONLYSF_360000L_20110903_120000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 036 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_036.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F036_WINDS_360000L_20110903_120000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 048 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_048.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F048_ADPUPA_480000L_20110904_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 048 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_048.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F048_ONLYSF_480000L_20110904_000000V.stat - - - - - &MET_BIN;/point_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 048 - - \ - &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_048.tm00 \ - &OUTPUT_DIR;/ref_config/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc \ - &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ - -outdir &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3 \ - -v 2 - - - &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F048_WINDS_480000L_20110904_000000V.stat - - - - - - - - - &MET_BIN;/grid_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 12 - - \ - &OUTPUT_DIR;/ref_config/pcp_combine/wrf/wrfpcp03_012.nc \ - &OUTPUT_DIR;/ref_config/pcp_combine/ST2_03h/20110902/ST2ml2011090212.03h.nc \ - &CONFIG_DIR;/ref_config/GridStatConfig_03h \ - -outdir &OUTPUT_DIR;/ref_config/grid_stat -v 1 - - - &OUTPUT_DIR;/ref_config/grid_stat/grid_stat_AFWAv3.4_Noahv3.3_F12_03h_120000L_20110902_120000V.stat - - - - - &MET_BIN;/grid_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 24 - - \ - &OUTPUT_DIR;/ref_config/pcp_combine/wrf/wrfpcp03_024.nc \ - &OUTPUT_DIR;/ref_config/pcp_combine/ST2_03h/20110903/ST2ml2011090300.03h.nc \ - &CONFIG_DIR;/ref_config/GridStatConfig_03h \ - -outdir &OUTPUT_DIR;/ref_config/grid_stat -v 1 - - - &OUTPUT_DIR;/ref_config/grid_stat/grid_stat_AFWAv3.4_Noahv3.3_F24_03h_240000L_20110903_000000V.stat - - - - - &MET_BIN;/grid_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 36 - - \ - &OUTPUT_DIR;/ref_config/pcp_combine/wrf/wrfpcp03_036.nc \ - &OUTPUT_DIR;/ref_config/pcp_combine/ST2_03h/20110903/ST2ml2011090312.03h.nc \ - &CONFIG_DIR;/ref_config/GridStatConfig_03h \ - -outdir &OUTPUT_DIR;/ref_config/grid_stat -v 1 - - - &OUTPUT_DIR;/ref_config/grid_stat/grid_stat_AFWAv3.4_Noahv3.3_F36_03h_360000L_20110903_120000V.stat - - - - - &MET_BIN;/grid_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 48 - - \ - &OUTPUT_DIR;/ref_config/pcp_combine/wrf/wrfpcp03_048.nc \ - &OUTPUT_DIR;/ref_config/pcp_combine/ST2_03h/20110904/ST2ml2011090400.03h.nc \ - &CONFIG_DIR;/ref_config/GridStatConfig_03h \ - -outdir &OUTPUT_DIR;/ref_config/grid_stat -v 1 - - - &OUTPUT_DIR;/ref_config/grid_stat/grid_stat_AFWAv3.4_Noahv3.3_F48_03h_480000L_20110904_000000V.stat - - - - - &MET_BIN;/grid_stat - - MASK_POLY_FILE &OUTPUT_DIR;/ref_config/gen_vx_mask/CONUS.nc - MODEL AFWAv3.4_Noahv3.3 - FCST_TIME 36 - - \ - &OUTPUT_DIR;/ref_config/pcp_combine/wrf/wrfpcp24_036.nc \ - &OUTPUT_DIR;/ref_config/pcp_combine/ST2_24h/20110903/ST2ml2011090312.24h.nc \ - &CONFIG_DIR;/ref_config/GridStatConfig_24h \ - -outdir &OUTPUT_DIR;/ref_config/grid_stat -v 1 - - - &OUTPUT_DIR;/ref_config/grid_stat/grid_stat_AFWAv3.4_Noahv3.3_F36_24h_360000L_20110903_120000V.stat - - - @@ -942,8 +25,8 @@ &MET_BIN;/stat_analysis \ - -lookin &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/ \ - -lookin &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/ \ + -lookin &OUTPUT_DIR;/ref_config_lead_*/point_stat/AFWAv3.4_Noahv3.3 \ + -lookin &OUTPUT_DIR;/ref_config_lead_*/point_stat/AFWAv3.4_Noahv2.7.1 \ -job go_index -fcst_init_beg 2011090200 -fcst_init_end 2011090200 \ -model AFWAv3.4_Noahv3.3 -model AFWAv3.4_Noahv2.7.1 \ -vx_mask FULL -interp_mthd BILIN \ @@ -962,8 +45,8 @@ &MET_BIN;/stat_analysis \ - -lookin &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/ \ - -lookin &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/ \ + -lookin &OUTPUT_DIR;/ref_config_lead_*/point_stat/AFWAv3.4_Noahv3.3 \ + -lookin &OUTPUT_DIR;/ref_config_lead_*/point_stat/AFWAv3.4_Noahv2.7.1 \ -job go_index \ -by FCST_INIT_BEG,VX_MASK,OBTYPE -set_hdr DESC Noahv3.3_vs_v2.7.1 \ -model AFWAv3.4_Noahv3.3,AFWAv3.4_Noahv2.7.1 -ss_index_vld_thresh 0.5 \ @@ -981,8 +64,8 @@ &MET_BIN;/stat_analysis \ - -lookin &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv3.3/ \ - -lookin &OUTPUT_DIR;/ref_config/point_stat/AFWAv3.4_Noahv2.7.1/ \ + -lookin &OUTPUT_DIR;/ref_config_lead_*/point_stat/AFWAv3.4_Noahv3.3 \ + -lookin &OUTPUT_DIR;/ref_config_lead_*/point_stat/AFWAv3.4_Noahv2.7.1 \ -job ss_index -config &CONFIG_DIR;/STATAnalysisConfig_SFC_SS_Index \ -by FCST_INIT_BEG,VX_MASK,OBTYPE \ -out_stat &OUTPUT_DIR;/ref_config/stat_analysis/sfc_ss_index_by_option.stat diff --git a/test/xml/unit_ref_config_lead_00.xml b/test/xml/unit_ref_config_lead_00.xml new file mode 100644 index 0000000000..ac65be1546 --- /dev/null +++ b/test/xml/unit_ref_config_lead_00.xml @@ -0,0 +1,178 @@ + + + + + + + + + + +]> + + + + + + &TEST_DIR; + true + + + + + + + &MET_BIN;/gen_vx_mask + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 \ + &MET_BASE;/poly/CONUS.poly \ + &OUTPUT_DIR;/ref_config_lead_00/gen_vx_mask/CONUS.nc \ + -type poly -v 2 + + + &OUTPUT_DIR;/ref_config_lead_00/gen_vx_mask/CONUS.nc + + + + + + + + + &MET_BIN;/pb2nc + + MASK_POLY &CONFIG_DIR;/ref_config/RefConfig.poly + + \ + &DATA_DIR_OBS;/ref_config/prepbufr/ndas/2011090212/ndas.t12z.prepbufr.tm12.nr \ + &OUTPUT_DIR;/ref_config_lead_00/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PB2NCConfig \ + -valid_beg 20110901_223000\ + -valid_end 20110902_013000\ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_00/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc + + + + + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_00/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv2.7.1 + FCST_TIME 000 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_000.tm00 \ + &OUTPUT_DIR;/ref_config_lead_00/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ + -outdir &OUTPUT_DIR;/ref_config_lead_00/point_stat/AFWAv3.4_Noahv2.7.1 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_00/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F000_ADPUPA_000000L_20110902_000000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_00/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv2.7.1 + FCST_TIME 000 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_000.tm00 \ + &OUTPUT_DIR;/ref_config_lead_00/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ + -outdir &OUTPUT_DIR;/ref_config_lead_00/point_stat/AFWAv3.4_Noahv2.7.1 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_00/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F000_ONLYSF_000000L_20110902_000000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_00/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv2.7.1 + FCST_TIME 000 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_000.tm00 \ + &OUTPUT_DIR;/ref_config_lead_00/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ + -outdir &OUTPUT_DIR;/ref_config_lead_00/point_stat/AFWAv3.4_Noahv2.7.1 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_00/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F000_WINDS_000000L_20110902_000000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_00/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 000 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_000.tm00 \ + &OUTPUT_DIR;/ref_config_lead_00/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ + -outdir &OUTPUT_DIR;/ref_config_lead_00/point_stat/AFWAv3.4_Noahv3.3 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_00/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F000_ADPUPA_000000L_20110902_000000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_00/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 000 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_000.tm00 \ + &OUTPUT_DIR;/ref_config_lead_00/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ + -outdir &OUTPUT_DIR;/ref_config_lead_00/point_stat/AFWAv3.4_Noahv3.3 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_00/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F000_ONLYSF_000000L_20110902_000000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_00/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 000 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_000.tm00 \ + &OUTPUT_DIR;/ref_config_lead_00/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ + -outdir &OUTPUT_DIR;/ref_config_lead_00/point_stat/AFWAv3.4_Noahv3.3 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_00/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F000_WINDS_000000L_20110902_000000V.stat + + + + diff --git a/test/xml/unit_ref_config_lead_12.xml b/test/xml/unit_ref_config_lead_12.xml new file mode 100644 index 0000000000..989e548da5 --- /dev/null +++ b/test/xml/unit_ref_config_lead_12.xml @@ -0,0 +1,230 @@ + + + + + + + + + + +]> + + + + + + &TEST_DIR; + true + + + + + + + &MET_BIN;/gen_vx_mask + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 \ + &MET_BASE;/poly/CONUS.poly \ + &OUTPUT_DIR;/ref_config_lead_12/gen_vx_mask/CONUS.nc \ + -type poly -v 2 + + + &OUTPUT_DIR;/ref_config_lead_12/gen_vx_mask/CONUS.nc + + + + + + + + + &MET_BIN;/pb2nc + + MASK_POLY &CONFIG_DIR;/ref_config/RefConfig.poly + + \ + &DATA_DIR_OBS;/ref_config/prepbufr/ndas/2011090300/ndas.t00z.prepbufr.tm12.nr \ + &OUTPUT_DIR;/ref_config_lead_12/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc \ + &CONFIG_DIR;/ref_config/PB2NCConfig \ + -valid_beg 20110902_103000\ + -valid_end 20110902_133000\ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_12/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc + + + + + + + + + &MET_BIN;/pcp_combine + \ + -sum \ + 00000000_000000 1 20110902_120000 3 \ + &OUTPUT_DIR;/ref_config_lead_12/pcp_combine/ST2_03h/20110902/ST2ml2011090212.03h.nc \ + -pcpdir &DATA_DIR_OBS;/ref_config/pcp_combine/20110902 + + + &OUTPUT_DIR;/ref_config_lead_12/pcp_combine/ST2_03h/20110902/ST2ml2011090212.03h.nc + + + + + &MET_BIN;/pcp_combine + \ + -subtract \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 12 \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_009.tm00 9 \ + &OUTPUT_DIR;/ref_config_lead_12/pcp_combine/wrf/wrfpcp03_012.nc + + + &OUTPUT_DIR;/ref_config_lead_12/pcp_combine/wrf/wrfpcp03_012.nc + + + + + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_12/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv2.7.1 + FCST_TIME 012 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_012.tm00 \ + &OUTPUT_DIR;/ref_config_lead_12/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ + -outdir &OUTPUT_DIR;/ref_config_lead_12/point_stat/AFWAv3.4_Noahv2.7.1 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_12/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F012_ADPUPA_120000L_20110902_120000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_12/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv2.7.1 + FCST_TIME 012 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_012.tm00 \ + &OUTPUT_DIR;/ref_config_lead_12/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ + -outdir &OUTPUT_DIR;/ref_config_lead_12/point_stat/AFWAv3.4_Noahv2.7.1 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_12/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F012_ONLYSF_120000L_20110902_120000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_12/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv2.7.1 + FCST_TIME 012 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_012.tm00 \ + &OUTPUT_DIR;/ref_config_lead_12/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ + -outdir &OUTPUT_DIR;/ref_config_lead_12/point_stat/AFWAv3.4_Noahv2.7.1 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_12/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F012_WINDS_120000L_20110902_120000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_12/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 012 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 \ + &OUTPUT_DIR;/ref_config_lead_12/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ + -outdir &OUTPUT_DIR;/ref_config_lead_12/point_stat/AFWAv3.4_Noahv3.3 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_12/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F012_ADPUPA_120000L_20110902_120000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_12/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 012 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 \ + &OUTPUT_DIR;/ref_config_lead_12/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ + -outdir &OUTPUT_DIR;/ref_config_lead_12/point_stat/AFWAv3.4_Noahv3.3 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_12/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F012_ONLYSF_120000L_20110902_120000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_12/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 012 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 \ + &OUTPUT_DIR;/ref_config_lead_12/pb2nc/NDAS_03h/20110902/prepbufr.ndas.20110902.t12z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ + -outdir &OUTPUT_DIR;/ref_config_lead_12/point_stat/AFWAv3.4_Noahv3.3 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_12/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F012_WINDS_120000L_20110902_120000V.stat + + + + + + + + + &MET_BIN;/grid_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_12/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 12 + + \ + &OUTPUT_DIR;/ref_config_lead_12/pcp_combine/wrf/wrfpcp03_012.nc \ + &OUTPUT_DIR;/ref_config_lead_12/pcp_combine/ST2_03h/20110902/ST2ml2011090212.03h.nc \ + &CONFIG_DIR;/ref_config/GridStatConfig_03h \ + -outdir &OUTPUT_DIR;/ref_config_lead_12/grid_stat -v 1 + + + &OUTPUT_DIR;/ref_config_lead_12/grid_stat/grid_stat_AFWAv3.4_Noahv3.3_F12_03h_120000L_20110902_120000V.stat + + + + diff --git a/test/xml/unit_ref_config_lead_24.xml b/test/xml/unit_ref_config_lead_24.xml new file mode 100644 index 0000000000..78cff2ee56 --- /dev/null +++ b/test/xml/unit_ref_config_lead_24.xml @@ -0,0 +1,231 @@ + + + + + + + + + + +]> + + + + + + &TEST_DIR; + true + + + + + + + &MET_BIN;/gen_vx_mask + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 \ + &MET_BASE;/poly/CONUS.poly \ + &OUTPUT_DIR;/ref_config_lead_24/gen_vx_mask/CONUS.nc \ + -type poly -v 2 + + + &OUTPUT_DIR;/ref_config_lead_24/gen_vx_mask/CONUS.nc + + + + + + + + + &MET_BIN;/pb2nc + + MASK_POLY &CONFIG_DIR;/ref_config/RefConfig.poly + + \ + &DATA_DIR_OBS;/ref_config/prepbufr/ndas/2011090312/ndas.t12z.prepbufr.tm12.nr \ + &OUTPUT_DIR;/ref_config_lead_24/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PB2NCConfig \ + -valid_beg 20110902_223000\ + -valid_end 20110903_013000\ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_24/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc + + + + + + + + + &MET_BIN;/pcp_combine + \ + -sum \ + 00000000_000000 1 20110903_000000 3 \ + &OUTPUT_DIR;/ref_config_lead_24/pcp_combine/ST2_03h/20110903/ST2ml2011090300.03h.nc \ + -pcpdir &DATA_DIR_OBS;/ref_config/pcp_combine/20110902 \ + -pcpdir &DATA_DIR_OBS;/ref_config/pcp_combine/20110903 + + + &OUTPUT_DIR;/ref_config_lead_24/pcp_combine/ST2_03h/20110903/ST2ml2011090300.03h.nc + + + + + &MET_BIN;/pcp_combine + \ + -subtract \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_024.tm00 24 \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_021.tm00 21 \ + &OUTPUT_DIR;/ref_config_lead_24/pcp_combine/wrf/wrfpcp03_024.nc + + + &OUTPUT_DIR;/ref_config_lead_24/pcp_combine/wrf/wrfpcp03_024.nc + + + + + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_24/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv2.7.1 + FCST_TIME 024 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_024.tm00 \ + &OUTPUT_DIR;/ref_config_lead_24/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ + -outdir &OUTPUT_DIR;/ref_config_lead_24/point_stat/AFWAv3.4_Noahv2.7.1 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_24/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F024_ADPUPA_240000L_20110903_000000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_24/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv2.7.1 + FCST_TIME 024 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_024.tm00 \ + &OUTPUT_DIR;/ref_config_lead_24/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ + -outdir &OUTPUT_DIR;/ref_config_lead_24/point_stat/AFWAv3.4_Noahv2.7.1 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_24/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F024_ONLYSF_240000L_20110903_000000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_24/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv2.7.1 + FCST_TIME 024 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_024.tm00 \ + &OUTPUT_DIR;/ref_config_lead_24/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ + -outdir &OUTPUT_DIR;/ref_config_lead_24/point_stat/AFWAv3.4_Noahv2.7.1 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_24/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F024_WINDS_240000L_20110903_000000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_24/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 024 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_024.tm00 \ + &OUTPUT_DIR;/ref_config_lead_24/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ + -outdir &OUTPUT_DIR;/ref_config_lead_24/point_stat/AFWAv3.4_Noahv3.3 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_24/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F024_ADPUPA_240000L_20110903_000000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_24/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 024 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_024.tm00 \ + &OUTPUT_DIR;/ref_config_lead_24/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ + -outdir &OUTPUT_DIR;/ref_config_lead_24/point_stat/AFWAv3.4_Noahv3.3 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_24/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F024_ONLYSF_240000L_20110903_000000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_24/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 024 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_024.tm00 \ + &OUTPUT_DIR;/ref_config_lead_24/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ + -outdir &OUTPUT_DIR;/ref_config_lead_24/point_stat/AFWAv3.4_Noahv3.3 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_24/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F024_WINDS_240000L_20110903_000000V.stat + + + + + + + + + &MET_BIN;/grid_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_24/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 24 + + \ + &OUTPUT_DIR;/ref_config_lead_24/pcp_combine/wrf/wrfpcp03_024.nc \ + &OUTPUT_DIR;/ref_config_lead_24/pcp_combine/ST2_03h/20110903/ST2ml2011090300.03h.nc \ + &CONFIG_DIR;/ref_config/GridStatConfig_03h \ + -outdir &OUTPUT_DIR;/ref_config_lead_24/grid_stat -v 1 + + + &OUTPUT_DIR;/ref_config_lead_24/grid_stat/grid_stat_AFWAv3.4_Noahv3.3_F24_03h_240000L_20110903_000000V.stat + + + + diff --git a/test/xml/unit_ref_config_lead_36.xml b/test/xml/unit_ref_config_lead_36.xml new file mode 100644 index 0000000000..4832ba4ad1 --- /dev/null +++ b/test/xml/unit_ref_config_lead_36.xml @@ -0,0 +1,274 @@ + + + + + + + + + + +]> + + + + + + &TEST_DIR; + true + + + + + + + &MET_BIN;/gen_vx_mask + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 \ + &MET_BASE;/poly/CONUS.poly \ + &OUTPUT_DIR;/ref_config_lead_36/gen_vx_mask/CONUS.nc \ + -type poly -v 2 + + + &OUTPUT_DIR;/ref_config_lead_36/gen_vx_mask/CONUS.nc + + + + + + + + + &MET_BIN;/pb2nc + + MASK_POLY &CONFIG_DIR;/ref_config/RefConfig.poly + + \ + &DATA_DIR_OBS;/ref_config/prepbufr/ndas/2011090400/ndas.t00z.prepbufr.tm12.nr \ + &OUTPUT_DIR;/ref_config_lead_36/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc \ + &CONFIG_DIR;/ref_config/PB2NCConfig \ + -valid_beg 20110903_103000\ + -valid_end 20110903_133000\ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_36/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc + + + + + + + + + &MET_BIN;/pcp_combine + \ + -sum \ + 00000000_000000 1 20110903_120000 3 \ + &OUTPUT_DIR;/ref_config_lead_36/pcp_combine/ST2_03h/20110903/ST2ml2011090312.03h.nc \ + -pcpdir &DATA_DIR_OBS;/ref_config/pcp_combine/20110903 + + + &OUTPUT_DIR;/ref_config_lead_36/pcp_combine/ST2_03h/20110903/ST2ml2011090312.03h.nc + + + + + &MET_BIN;/pcp_combine + \ + -add \ + &DATA_DIR_OBS;/ref_config/pcp_combine/2011090324/ST2ml2011090312.24h.grb \ + 24 \ + &OUTPUT_DIR;/ref_config_lead_36/pcp_combine/ST2_24h/20110903/ST2ml2011090312.24h.nc + + + &OUTPUT_DIR;/ref_config_lead_36/pcp_combine/ST2_24h/20110903/ST2ml2011090312.24h.nc + + + + + &MET_BIN;/pcp_combine + \ + -subtract \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_036.tm00 36 \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_033.tm00 33 \ + &OUTPUT_DIR;/ref_config_lead_36/pcp_combine/wrf/wrfpcp03_036.nc + + + &OUTPUT_DIR;/ref_config_lead_36/pcp_combine/wrf/wrfpcp03_036.nc + + + + + &MET_BIN;/pcp_combine + \ + -subtract \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_036.tm00 36 \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 12 \ + &OUTPUT_DIR;/ref_config_lead_36/pcp_combine/wrf/wrfpcp24_036.nc + + + &OUTPUT_DIR;/ref_config_lead_36/pcp_combine/wrf/wrfpcp24_036.nc + + + + + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_36/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv2.7.1 + FCST_TIME 036 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_036.tm00 \ + &OUTPUT_DIR;/ref_config_lead_36/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ + -outdir &OUTPUT_DIR;/ref_config_lead_36/point_stat/AFWAv3.4_Noahv2.7.1 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_36/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F036_ADPUPA_360000L_20110903_120000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_36/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv2.7.1 + FCST_TIME 036 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_036.tm00 \ + &OUTPUT_DIR;/ref_config_lead_36/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ + -outdir &OUTPUT_DIR;/ref_config_lead_36/point_stat/AFWAv3.4_Noahv2.7.1 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_36/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F036_ONLYSF_360000L_20110903_120000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_36/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv2.7.1 + FCST_TIME 036 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_036.tm00 \ + &OUTPUT_DIR;/ref_config_lead_36/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ + -outdir &OUTPUT_DIR;/ref_config_lead_36/point_stat/AFWAv3.4_Noahv2.7.1 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_36/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F036_WINDS_360000L_20110903_120000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_36/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 036 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_036.tm00 \ + &OUTPUT_DIR;/ref_config_lead_36/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ + -outdir &OUTPUT_DIR;/ref_config_lead_36/point_stat/AFWAv3.4_Noahv3.3 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_36/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F036_ADPUPA_360000L_20110903_120000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_36/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 036 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_036.tm00 \ + &OUTPUT_DIR;/ref_config_lead_36/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ + -outdir &OUTPUT_DIR;/ref_config_lead_36/point_stat/AFWAv3.4_Noahv3.3 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_36/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F036_ONLYSF_360000L_20110903_120000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_36/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 036 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_036.tm00 \ + &OUTPUT_DIR;/ref_config_lead_36/pb2nc/NDAS_03h/20110903/prepbufr.ndas.20110903.t12z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ + -outdir &OUTPUT_DIR;/ref_config_lead_36/point_stat/AFWAv3.4_Noahv3.3 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_36/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F036_WINDS_360000L_20110903_120000V.stat + + + + + + + + + &MET_BIN;/grid_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_36/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 36 + + \ + &OUTPUT_DIR;/ref_config_lead_36/pcp_combine/wrf/wrfpcp03_036.nc \ + &OUTPUT_DIR;/ref_config_lead_36/pcp_combine/ST2_03h/20110903/ST2ml2011090312.03h.nc \ + &CONFIG_DIR;/ref_config/GridStatConfig_03h \ + -outdir &OUTPUT_DIR;/ref_config_lead_36/grid_stat -v 1 + + + &OUTPUT_DIR;/ref_config_lead_36/grid_stat/grid_stat_AFWAv3.4_Noahv3.3_F36_03h_360000L_20110903_120000V.stat + + + + + &MET_BIN;/grid_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_36/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 36 + + \ + &OUTPUT_DIR;/ref_config_lead_36/pcp_combine/wrf/wrfpcp24_036.nc \ + &OUTPUT_DIR;/ref_config_lead_36/pcp_combine/ST2_24h/20110903/ST2ml2011090312.24h.nc \ + &CONFIG_DIR;/ref_config/GridStatConfig_24h \ + -outdir &OUTPUT_DIR;/ref_config_lead_36/grid_stat -v 1 + + + &OUTPUT_DIR;/ref_config_lead_36/grid_stat/grid_stat_AFWAv3.4_Noahv3.3_F36_24h_360000L_20110903_120000V.stat + + + + diff --git a/test/xml/unit_ref_config_lead_48.xml b/test/xml/unit_ref_config_lead_48.xml new file mode 100644 index 0000000000..b096241afb --- /dev/null +++ b/test/xml/unit_ref_config_lead_48.xml @@ -0,0 +1,231 @@ + + + + + + + + + + +]> + + + + + + &TEST_DIR; + true + + + + + + + &MET_BIN;/gen_vx_mask + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_012.tm00 \ + &MET_BASE;/poly/CONUS.poly \ + &OUTPUT_DIR;/ref_config_lead_48/gen_vx_mask/CONUS.nc \ + -type poly -v 2 + + + &OUTPUT_DIR;/ref_config_lead_48/gen_vx_mask/CONUS.nc + + + + + + + + + &MET_BIN;/pb2nc + + MASK_POLY &CONFIG_DIR;/ref_config/RefConfig.poly + + \ + &DATA_DIR_OBS;/ref_config/prepbufr/ndas/2011090412/ndas.t12z.prepbufr.tm12.nr \ + &OUTPUT_DIR;/ref_config_lead_48/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PB2NCConfig \ + -valid_beg 20110903_223000\ + -valid_end 20110904_013000\ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_48/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc + + + + + + + + + &MET_BIN;/pcp_combine + \ + -sum \ + 00000000_000000 1 20110904_000000 3 \ + &OUTPUT_DIR;/ref_config_lead_48/pcp_combine/ST2_03h/20110904/ST2ml2011090400.03h.nc \ + -pcpdir &DATA_DIR_OBS;/ref_config/pcp_combine/20110903 \ + -pcpdir &DATA_DIR_OBS;/ref_config/pcp_combine/20110904 + + + &OUTPUT_DIR;/ref_config_lead_48/pcp_combine/ST2_03h/20110904/ST2ml2011090400.03h.nc + + + + + &MET_BIN;/pcp_combine + \ + -subtract \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_048.tm00 48 \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_045.tm00 45 \ + &OUTPUT_DIR;/ref_config_lead_48/pcp_combine/wrf/wrfpcp03_048.nc + + + &OUTPUT_DIR;/ref_config_lead_48/pcp_combine/wrf/wrfpcp03_048.nc + + + + + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_48/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv2.7.1 + FCST_TIME 048 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_048.tm00 \ + &OUTPUT_DIR;/ref_config_lead_48/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ + -outdir &OUTPUT_DIR;/ref_config_lead_48/point_stat/AFWAv3.4_Noahv2.7.1 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_48/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F048_ADPUPA_480000L_20110904_000000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_48/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv2.7.1 + FCST_TIME 048 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_048.tm00 \ + &OUTPUT_DIR;/ref_config_lead_48/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ + -outdir &OUTPUT_DIR;/ref_config_lead_48/point_stat/AFWAv3.4_Noahv2.7.1 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_48/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F048_ONLYSF_480000L_20110904_000000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_48/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv2.7.1 + FCST_TIME 048 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv2.7.1/postprd/wrfprs_048.tm00 \ + &OUTPUT_DIR;/ref_config_lead_48/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ + -outdir &OUTPUT_DIR;/ref_config_lead_48/point_stat/AFWAv3.4_Noahv2.7.1 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_48/point_stat/AFWAv3.4_Noahv2.7.1/point_stat_AFWAv3.4_Noahv2.7.1_F048_WINDS_480000L_20110904_000000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_48/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 048 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_048.tm00 \ + &OUTPUT_DIR;/ref_config_lead_48/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ADPUPA \ + -outdir &OUTPUT_DIR;/ref_config_lead_48/point_stat/AFWAv3.4_Noahv3.3 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_48/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F048_ADPUPA_480000L_20110904_000000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_48/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 048 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_048.tm00 \ + &OUTPUT_DIR;/ref_config_lead_48/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_ONLYSF \ + -outdir &OUTPUT_DIR;/ref_config_lead_48/point_stat/AFWAv3.4_Noahv3.3 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_48/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F048_ONLYSF_480000L_20110904_000000V.stat + + + + + &MET_BIN;/point_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_48/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 048 + + \ + &DATA_DIR_MODEL;/grib1/ref_config/2011090200/AFWAv3.4_Noahv3.3/postprd/wrfprs_048.tm00 \ + &OUTPUT_DIR;/ref_config_lead_48/pb2nc/NDAS_03h/20110904/prepbufr.ndas.20110904.t00z.tm12.nc \ + &CONFIG_DIR;/ref_config/PointStatConfig_WINDS \ + -outdir &OUTPUT_DIR;/ref_config_lead_48/point_stat/AFWAv3.4_Noahv3.3 \ + -v 2 + + + &OUTPUT_DIR;/ref_config_lead_48/point_stat/AFWAv3.4_Noahv3.3/point_stat_AFWAv3.4_Noahv3.3_F048_WINDS_480000L_20110904_000000V.stat + + + + + + + + + &MET_BIN;/grid_stat + + MASK_POLY_FILE &OUTPUT_DIR;/ref_config_lead_48/gen_vx_mask/CONUS.nc + MODEL AFWAv3.4_Noahv3.3 + FCST_TIME 48 + + \ + &OUTPUT_DIR;/ref_config_lead_48/pcp_combine/wrf/wrfpcp03_048.nc \ + &OUTPUT_DIR;/ref_config_lead_48/pcp_combine/ST2_03h/20110904/ST2ml2011090400.03h.nc \ + &CONFIG_DIR;/ref_config/GridStatConfig_03h \ + -outdir &OUTPUT_DIR;/ref_config_lead_48/grid_stat -v 1 + + + &OUTPUT_DIR;/ref_config_lead_48/grid_stat/grid_stat_AFWAv3.4_Noahv3.3_F48_03h_480000L_20110904_000000V.stat + + + + diff --git a/test/xml/unit_stat_analysis.xml b/test/xml/unit_stat_analysis.xml deleted file mode 100644 index 078b76e072..0000000000 --- a/test/xml/unit_stat_analysis.xml +++ /dev/null @@ -1,331 +0,0 @@ - - - - - - - - - -]> - - - - - - &TEST_DIR; - true - - - - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_CMD_LINE_20120410_120000V.stat \ - -job aggregate -line_type RHIST \ - -fcst_var TMP -vx_mask NWC -vx_mask GRB \ - -dump_row &OUTPUT_DIR;/stat_analysis/AGG_RHIST_dump.stat \ - -out_stat &OUTPUT_DIR;/stat_analysis/AGG_RHIST_out.stat \ - -out &OUTPUT_DIR;/stat_analysis/AGG_RHIST.out \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/AGG_RHIST_dump.stat - &OUTPUT_DIR;/stat_analysis/AGG_RHIST_out.stat - &OUTPUT_DIR;/stat_analysis/AGG_RHIST.out - - - - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_CMD_LINE_20120410_120000V.stat \ - -job aggregate -line_type PHIST \ - -fcst_var TMP -vx_mask NWC -vx_mask GRB \ - -dump_row &OUTPUT_DIR;/stat_analysis/AGG_PHIST_dump.stat \ - -out_stat &OUTPUT_DIR;/stat_analysis/AGG_PHIST_out.stat \ - -set_hdr VX_MASK NWC_AND_GRB \ - -out &OUTPUT_DIR;/stat_analysis/AGG_PHIST.out \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/AGG_PHIST_dump.stat - &OUTPUT_DIR;/stat_analysis/AGG_PHIST_out.stat - &OUTPUT_DIR;/stat_analysis/AGG_PHIST.out - - - - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_SKIP_CONST_20120410_120000V.stat \ - -job aggregate -line_type RELP -by FCST_VAR -vx_mask NWC,GRB \ - -dump_row &OUTPUT_DIR;/stat_analysis/AGG_RELP_dump.stat \ - -out_stat &OUTPUT_DIR;/stat_analysis/AGG_RELP_out.stat \ - -set_hdr VX_MASK NWC_AND_GRB \ - -out &OUTPUT_DIR;/stat_analysis/AGG_RELP.out \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/AGG_RELP_dump.stat - &OUTPUT_DIR;/stat_analysis/AGG_RELP_out.stat - &OUTPUT_DIR;/stat_analysis/AGG_RELP.out - - - - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_SKIP_CONST_20120410_120000V.stat \ - -job aggregate -line_type ECNT -by FCST_VAR -obs_thresh NA -vx_mask NWC,GRB \ - -dump_row &OUTPUT_DIR;/stat_analysis/AGG_ECNT_dump.stat \ - -out_stat &OUTPUT_DIR;/stat_analysis/AGG_ECNT_out.stat \ - -set_hdr VX_MASK NWC_AND_GRB \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/AGG_ECNT_dump.stat - &OUTPUT_DIR;/stat_analysis/AGG_ECNT_out.stat - - - - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_CMD_LINE_20120410_120000V.stat \ - -job aggregate_stat -line_type ORANK -out_line_type RHIST,PHIST \ - -fcst_var APCP_24 -vx_mask NWC -vx_mask GRB -out_bin_size 0.10 \ - -dump_row &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_RHIST_PHIST_dump.stat \ - -out_stat &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_RHIST_PHIST_out.stat \ - -out &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_RHIST_PHIST.out \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_RHIST_PHIST_dump.stat - &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_RHIST_PHIST_out.stat - &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_RHIST_PHIST.out - - - - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_SKIP_CONST_20120410_120000V.stat \ - -job aggregate_stat -line_type ORANK -out_line_type RELP \ - -fcst_var APCP_24 -vx_mask NWC,GRB \ - -dump_row &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_RELP_dump.stat \ - -out_stat &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_RELP_out.stat \ - -out &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_RELP.out \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_RELP_dump.stat - &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_RELP_out.stat - &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_RELP.out - - - - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_CMD_LINE_20120410_120000V.stat \ - -job aggregate_stat -line_type ORANK -out_line_type SSVAR \ - -fcst_var APCP_24 -vx_mask NWC -vx_mask GRB -out_bin_size 0.25 \ - -dump_row &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_SSVAR_dump.stat \ - -out_stat &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_SSVAR_out.stat \ - -out &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_SSVAR.out \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_SSVAR_dump.stat - &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_SSVAR_out.stat - &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_SSVAR.out - - - - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_OBSERR_20120410_120000V.stat \ - -job aggregate_stat -line_type ORANK -out_line_type ECNT \ - -fcst_var APCP_24 -by VX_MASK \ - -set_hdr DESC VX_MASK \ - -dump_row &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_ECNT_dump.stat \ - -out_stat &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_ECNT_out.stat \ - -out &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_ECNT.out \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_ECNT_dump.stat - &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_ECNT_out.stat - &OUTPUT_DIR;/stat_analysis/AGG_STAT_ORANK_ECNT.out - - - - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_CMD_LINE_20120410_120000V.stat \ - -job aggregate -line_type SSVAR \ - -fcst_var APCP_24 -obtype ANALYS -vx_mask NWC -vx_mask GRB \ - -dump_row &OUTPUT_DIR;/stat_analysis/AGG_SSVAR_dump.stat \ - -out_stat &OUTPUT_DIR;/stat_analysis/AGG_SSVAR_out.stat \ - -out &OUTPUT_DIR;/stat_analysis/AGG_SSVAR.out \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/AGG_SSVAR_dump.stat - &OUTPUT_DIR;/stat_analysis/AGG_SSVAR_out.stat - &OUTPUT_DIR;/stat_analysis/AGG_SSVAR.out - - - - - - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/wavelet_stat/wavelet_stat_GRIB1_NAM_STAGE4_120000L_20120409_120000V.stat \ - -job aggregate -line_type ISC \ - -fcst_var APCP_12 -fcst_thresh '>0.0' -vx_mask TILE1 -vx_mask TILE2 \ - -dump_row &OUTPUT_DIR;/stat_analysis/AGG_ISC_dump.stat \ - -out_stat &OUTPUT_DIR;/stat_analysis/AGG_ISC_out.stat \ - -out &OUTPUT_DIR;/stat_analysis/AGG_ISC.out \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/AGG_ISC_dump.stat - &OUTPUT_DIR;/stat_analysis/AGG_ISC_out.stat - &OUTPUT_DIR;/stat_analysis/AGG_ISC.out - - - - - - - - OUTPUT_DIR &OUTPUT_DIR;/stat_analysis - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/grid_stat/grid_stat_GRIB2_NAM_RTMA_120000L_20120409_120000V.stat \ - -config &CONFIG_DIR;/STATAnalysisConfig_grid_stat \ - -out &OUTPUT_DIR;/stat_analysis/CONFIG_GRID_STAT.out \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/CONFIG_GRID_STAT.out - &OUTPUT_DIR;/stat_analysis/CONFIG_GRID_STAT_filter.stat - &OUTPUT_DIR;/stat_analysis/CONFIG_GRID_STAT_agg_stat_sl1l2_dump.stat - &OUTPUT_DIR;/stat_analysis/CONFIG_GRID_STAT_agg_stat_sl1l2_out.stat - &OUTPUT_DIR;/stat_analysis/CONFIG_GRID_STAT_agg_ctc_dump.stat - &OUTPUT_DIR;/stat_analysis/CONFIG_GRID_STAT_agg_ctc_out.stat - &OUTPUT_DIR;/stat_analysis/CONFIG_GRID_STAT_agg_stat_ctc_to_eclv_dump.stat - &OUTPUT_DIR;/stat_analysis/CONFIG_GRID_STAT_agg_stat_ctc_to_eclv_out.stat - - - - - - - - CONFIG_DIR &CONFIG_DIR; - OUTPUT_DIR &OUTPUT_DIR;/stat_analysis - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/point_stat/point_stat_GRIB1_NAM_GDAS_120000L_20120409_120000V.stat \ - -config &CONFIG_DIR;/STATAnalysisConfig_point_stat \ - -out &OUTPUT_DIR;/stat_analysis/CONFIG_POINT_STAT.out \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/CONFIG_POINT_STAT.out - &OUTPUT_DIR;/stat_analysis/CONFIG_POINT_STAT_agg_stat_mpr_to_cnt_dump.stat - &OUTPUT_DIR;/stat_analysis/CONFIG_POINT_STAT_agg_stat_mpr_to_cnt_out.stat - &OUTPUT_DIR;/stat_analysis/CONFIG_POINT_STAT_agg_stat_mpr_to_cnt_by_vx_mask_out.stat - &OUTPUT_DIR;/stat_analysis/CONFIG_POINT_STAT_agg_ctc_by_fcst_thresh_out.stat - &OUTPUT_DIR;/stat_analysis/CONFIG_POINT_STAT_agg_stat_mpr_to_wdir_dump.stat - &OUTPUT_DIR;/stat_analysis/CONFIG_POINT_STAT_filter_mpr_sid.stat - &OUTPUT_DIR;/stat_analysis/CONFIG_POINT_STAT_filter_mpr_fcst_minus_obs.stat - - - - - - OUTPUT_DIR &OUTPUT_DIR;/stat_analysis - - &MET_BIN;/stat_analysis - \ - -lookin &DATA_DIR_MODEL;/time_series_met_6.0/*.stat \ - -config &CONFIG_DIR;/STATAnalysisConfig_ramps \ - -out &OUTPUT_DIR;/stat_analysis/RAMPS.out \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/RAMPS.out - &OUTPUT_DIR;/stat_analysis/RAMPS_100_100.stat - &OUTPUT_DIR;/stat_analysis/RAMPS_25_100.stat - &OUTPUT_DIR;/stat_analysis/RAMPS_25_100_30min.stat - - - - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/point_stat/point_stat_GRIB1_NAM_GDAS_120000L_20120409_120000V.stat \ - -job summary -line_type MPR -by FCST_VAR,FCST_LEV -column 'FCST,OBS,FCST-OBS,ABS(FCST-OBS)' \ - -boot_seed 1 -out &OUTPUT_DIR;/stat_analysis/POINT_STAT_SUMMARY.out \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/POINT_STAT_SUMMARY.out - - - - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/point_stat/point_stat_GRIB1_NAM_GDAS_120000L_20120409_120000V.stat \ - -job summary -line_type MPR -by FCST_VAR,FCST_LEV -column 'FCST,OBS' -column_union true \ - -boot_seed 1 -out &OUTPUT_DIR;/stat_analysis/POINT_STAT_SUMMARY_UNION.out \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/POINT_STAT_SUMMARY_UNION.out - - - - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/point_stat/point_stat_GRIB1_NAM_GDAS_120000L_20120409_120000V.stat \ - -job filter -line_type MPR -fcst_var TMP -fcst_lev Z2 -vx_mask DTC165 \ - -column_str OBS_SID KDLN,KDHT,KDEN,KDLS,KDMA,KDMN,KDVT,KDEW \ - -column_str_exc OBS_SID KDLN,KDHT \ - -dump_row &OUTPUT_DIR;/stat_analysis/POINT_STAT_FILTER_OBS_SID.stat \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/POINT_STAT_FILTER_OBS_SID.stat - - - - - - OUTPUT_DIR &OUTPUT_DIR;/stat_analysis - - &MET_BIN;/stat_analysis - \ - -lookin &OUTPUT_DIR;/point_stat/point_stat_GRIB2_NAM_NDAS_120000L_20120409_120000V.stat \ - -config &CONFIG_DIR;/STATAnalysisConfig_filter_times \ - -out &OUTPUT_DIR;/stat_analysis/POINT_STAT_FILTER_TIMES.out \ - -v 1 - - - &OUTPUT_DIR;/stat_analysis/POINT_STAT_FILTER_TIMES.out - - - - diff --git a/test/xml/unit_stat_analysis_es.xml b/test/xml/unit_stat_analysis_es.xml new file mode 100644 index 0000000000..a7b446c1c6 --- /dev/null +++ b/test/xml/unit_stat_analysis_es.xml @@ -0,0 +1,182 @@ + + + + + + + + + +]> + + + + + + &TEST_DIR; + true + + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_CMD_LINE_20120410_120000V.stat \ + -job aggregate -line_type RHIST \ + -fcst_var TMP -vx_mask NWC -vx_mask GRB \ + -dump_row &OUTPUT_DIR;/stat_analysis_es/AGG_RHIST_dump.stat \ + -out_stat &OUTPUT_DIR;/stat_analysis_es/AGG_RHIST_out.stat \ + -out &OUTPUT_DIR;/stat_analysis_es/AGG_RHIST.out \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_es/AGG_RHIST_dump.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_RHIST_out.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_RHIST.out + + + + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_CMD_LINE_20120410_120000V.stat \ + -job aggregate -line_type PHIST \ + -fcst_var TMP -vx_mask NWC -vx_mask GRB \ + -dump_row &OUTPUT_DIR;/stat_analysis_es/AGG_PHIST_dump.stat \ + -out_stat &OUTPUT_DIR;/stat_analysis_es/AGG_PHIST_out.stat \ + -set_hdr VX_MASK NWC_AND_GRB \ + -out &OUTPUT_DIR;/stat_analysis_es/AGG_PHIST.out \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_es/AGG_PHIST_dump.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_PHIST_out.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_PHIST.out + + + + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_SKIP_CONST_20120410_120000V.stat \ + -job aggregate -line_type RELP -by FCST_VAR -vx_mask NWC,GRB \ + -dump_row &OUTPUT_DIR;/stat_analysis_es/AGG_RELP_dump.stat \ + -out_stat &OUTPUT_DIR;/stat_analysis_es/AGG_RELP_out.stat \ + -set_hdr VX_MASK NWC_AND_GRB \ + -out &OUTPUT_DIR;/stat_analysis_es/AGG_RELP.out \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_es/AGG_RELP_dump.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_RELP_out.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_RELP.out + + + + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_SKIP_CONST_20120410_120000V.stat \ + -job aggregate -line_type ECNT -by FCST_VAR -obs_thresh NA -vx_mask NWC,GRB \ + -dump_row &OUTPUT_DIR;/stat_analysis_es/AGG_ECNT_dump.stat \ + -out_stat &OUTPUT_DIR;/stat_analysis_es/AGG_ECNT_out.stat \ + -set_hdr VX_MASK NWC_AND_GRB \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_es/AGG_ECNT_dump.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_ECNT_out.stat + + + + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_CMD_LINE_20120410_120000V.stat \ + -job aggregate_stat -line_type ORANK -out_line_type RHIST,PHIST \ + -fcst_var APCP_24 -vx_mask NWC -vx_mask GRB -out_bin_size 0.10 \ + -dump_row &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_RHIST_PHIST_dump.stat \ + -out_stat &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_RHIST_PHIST_out.stat \ + -out &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_RHIST_PHIST.out \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_RHIST_PHIST_dump.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_RHIST_PHIST_out.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_RHIST_PHIST.out + + + + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_SKIP_CONST_20120410_120000V.stat \ + -job aggregate_stat -line_type ORANK -out_line_type RELP \ + -fcst_var APCP_24 -vx_mask NWC,GRB \ + -dump_row &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_RELP_dump.stat \ + -out_stat &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_RELP_out.stat \ + -out &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_RELP.out \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_RELP_dump.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_RELP_out.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_RELP.out + + + + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_CMD_LINE_20120410_120000V.stat \ + -job aggregate_stat -line_type ORANK -out_line_type SSVAR \ + -fcst_var APCP_24 -vx_mask NWC -vx_mask GRB -out_bin_size 0.25 \ + -dump_row &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_SSVAR_dump.stat \ + -out_stat &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_SSVAR_out.stat \ + -out &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_SSVAR.out \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_SSVAR_dump.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_SSVAR_out.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_SSVAR.out + + + + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_OBSERR_20120410_120000V.stat \ + -job aggregate_stat -line_type ORANK -out_line_type ECNT \ + -fcst_var APCP_24 -by VX_MASK \ + -set_hdr DESC VX_MASK \ + -dump_row &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_ECNT_dump.stat \ + -out_stat &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_ECNT_out.stat \ + -out &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_ECNT.out \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_ECNT_dump.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_ECNT_out.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_STAT_ORANK_ECNT.out + + + + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/ensemble_stat/ensemble_stat_CMD_LINE_20120410_120000V.stat \ + -job aggregate -line_type SSVAR \ + -fcst_var APCP_24 -obtype ANALYS -vx_mask NWC -vx_mask GRB \ + -dump_row &OUTPUT_DIR;/stat_analysis_es/AGG_SSVAR_dump.stat \ + -out_stat &OUTPUT_DIR;/stat_analysis_es/AGG_SSVAR_out.stat \ + -out &OUTPUT_DIR;/stat_analysis_es/AGG_SSVAR.out \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_es/AGG_SSVAR_dump.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_SSVAR_out.stat + &OUTPUT_DIR;/stat_analysis_es/AGG_SSVAR.out + + + + diff --git a/test/xml/unit_stat_analysis_gs.xml b/test/xml/unit_stat_analysis_gs.xml new file mode 100644 index 0000000000..6309f57aef --- /dev/null +++ b/test/xml/unit_stat_analysis_gs.xml @@ -0,0 +1,45 @@ + + + + + + + + + +]> + + + + + + &TEST_DIR; + true + + + + + + OUTPUT_DIR &OUTPUT_DIR;/stat_analysis_gs + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/grid_stat/grid_stat_GRIB2_NAM_RTMA_120000L_20120409_120000V.stat \ + -config &CONFIG_DIR;/STATAnalysisConfig_grid_stat \ + -out &OUTPUT_DIR;/stat_analysis_gs/CONFIG_GRID_STAT.out \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_gs/CONFIG_GRID_STAT.out + &OUTPUT_DIR;/stat_analysis_gs/CONFIG_GRID_STAT_filter.stat + &OUTPUT_DIR;/stat_analysis_gs/CONFIG_GRID_STAT_agg_stat_sl1l2_dump.stat + &OUTPUT_DIR;/stat_analysis_gs/CONFIG_GRID_STAT_agg_stat_sl1l2_out.stat + &OUTPUT_DIR;/stat_analysis_gs/CONFIG_GRID_STAT_agg_ctc_dump.stat + &OUTPUT_DIR;/stat_analysis_gs/CONFIG_GRID_STAT_agg_ctc_out.stat + &OUTPUT_DIR;/stat_analysis_gs/CONFIG_GRID_STAT_agg_stat_ctc_to_eclv_dump.stat + &OUTPUT_DIR;/stat_analysis_gs/CONFIG_GRID_STAT_agg_stat_ctc_to_eclv_out.stat + + + + diff --git a/test/xml/unit_stat_analysis_ps.xml b/test/xml/unit_stat_analysis_ps.xml new file mode 100644 index 0000000000..d32fe963f7 --- /dev/null +++ b/test/xml/unit_stat_analysis_ps.xml @@ -0,0 +1,120 @@ + + + + + + + + + +]> + + + + + + &TEST_DIR; + true + + + + CONFIG_DIR &CONFIG_DIR; + OUTPUT_DIR &OUTPUT_DIR;/stat_analysis_ps + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/point_stat/point_stat_GRIB1_NAM_GDAS_120000L_20120409_120000V.stat \ + -config &CONFIG_DIR;/STATAnalysisConfig_point_stat \ + -out &OUTPUT_DIR;/stat_analysis_ps/CONFIG_POINT_STAT.out \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_ps/CONFIG_POINT_STAT.out + &OUTPUT_DIR;/stat_analysis_ps/CONFIG_POINT_STAT_agg_stat_mpr_to_cnt_dump.stat + &OUTPUT_DIR;/stat_analysis_ps/CONFIG_POINT_STAT_agg_stat_mpr_to_cnt_out.stat + &OUTPUT_DIR;/stat_analysis_ps/CONFIG_POINT_STAT_agg_stat_mpr_to_cnt_by_vx_mask_out.stat + &OUTPUT_DIR;/stat_analysis_ps/CONFIG_POINT_STAT_agg_ctc_by_fcst_thresh_out.stat + &OUTPUT_DIR;/stat_analysis_ps/CONFIG_POINT_STAT_agg_stat_mpr_to_wdir_dump.stat + &OUTPUT_DIR;/stat_analysis_ps/CONFIG_POINT_STAT_filter_mpr_sid.stat + &OUTPUT_DIR;/stat_analysis_ps/CONFIG_POINT_STAT_filter_mpr_fcst_minus_obs.stat + + + + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/point_stat/point_stat_GRIB1_NAM_GDAS_120000L_20120409_120000V.stat \ + -job summary -line_type MPR -by FCST_VAR,FCST_LEV -column 'FCST,OBS,FCST-OBS,ABS(FCST-OBS)' \ + -boot_seed 1 -out &OUTPUT_DIR;/stat_analysis_ps/POINT_STAT_SUMMARY.out \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_ps/POINT_STAT_SUMMARY.out + + + + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/point_stat/point_stat_GRIB1_NAM_GDAS_120000L_20120409_120000V.stat \ + -job summary -line_type MPR -by FCST_VAR,FCST_LEV -column 'FCST,OBS' -column_union true \ + -boot_seed 1 -out &OUTPUT_DIR;/stat_analysis_ps/POINT_STAT_SUMMARY_UNION.out \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_ps/POINT_STAT_SUMMARY_UNION.out + + + + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/point_stat/point_stat_GRIB1_NAM_GDAS_120000L_20120409_120000V.stat \ + -job filter -line_type MPR -fcst_var TMP -fcst_lev Z2 -vx_mask DTC165 \ + -column_str OBS_SID KDLN,KDHT,KDEN,KDLS,KDMA,KDMN,KDVT,KDEW \ + -column_str_exc OBS_SID KDLN,KDHT \ + -dump_row &OUTPUT_DIR;/stat_analysis_ps/POINT_STAT_FILTER_OBS_SID.stat \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_ps/POINT_STAT_FILTER_OBS_SID.stat + + + + + + OUTPUT_DIR &OUTPUT_DIR;/stat_analysis_ps + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/point_stat/point_stat_GRIB2_NAM_NDAS_120000L_20120409_120000V.stat \ + -config &CONFIG_DIR;/STATAnalysisConfig_filter_times \ + -out &OUTPUT_DIR;/stat_analysis_ps/POINT_STAT_FILTER_TIMES.out \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_ps/POINT_STAT_FILTER_TIMES.out + + + + + + OUTPUT_DIR &OUTPUT_DIR;/stat_analysis_ps + + &MET_BIN;/stat_analysis + \ + -lookin &DATA_DIR_MODEL;/time_series_met_6.0/*.stat \ + -config &CONFIG_DIR;/STATAnalysisConfig_ramps \ + -out &OUTPUT_DIR;/stat_analysis_ps/RAMPS.out \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_ps/RAMPS.out + &OUTPUT_DIR;/stat_analysis_ps/RAMPS_100_100.stat + &OUTPUT_DIR;/stat_analysis_ps/RAMPS_25_100.stat + &OUTPUT_DIR;/stat_analysis_ps/RAMPS_25_100_30min.stat + + + + diff --git a/test/xml/unit_stat_analysis_ws.xml b/test/xml/unit_stat_analysis_ws.xml new file mode 100644 index 0000000000..4bb01eda9e --- /dev/null +++ b/test/xml/unit_stat_analysis_ws.xml @@ -0,0 +1,38 @@ + + + + + + + + + +]> + + + + + + &TEST_DIR; + true + + + &MET_BIN;/stat_analysis + \ + -lookin &OUTPUT_DIR;/wavelet_stat/wavelet_stat_GRIB1_NAM_STAGE4_120000L_20120409_120000V.stat \ + -job aggregate -line_type ISC \ + -fcst_var APCP_12 -fcst_thresh '>0.0' -vx_mask TILE1 -vx_mask TILE2 \ + -dump_row &OUTPUT_DIR;/stat_analysis_ws/AGG_ISC_dump.stat \ + -out_stat &OUTPUT_DIR;/stat_analysis_ws/AGG_ISC_out.stat \ + -out &OUTPUT_DIR;/stat_analysis_ws/AGG_ISC.out \ + -v 1 + + + &OUTPUT_DIR;/stat_analysis_ws/AGG_ISC_dump.stat + &OUTPUT_DIR;/stat_analysis_ws/AGG_ISC_out.stat + &OUTPUT_DIR;/stat_analysis_ws/AGG_ISC.out + + + +