conditional-analysis-dns/concatenate_cmean.py
2021-03-11 04:52:36 +09:00

49 lines
1.2 KiB
Python

#!/usr/bin/env python
# coding: utf-8
import sys
import os
import argparse
import numpy as np
import dnstool
program_description = '''\
concatenate all results (1~nx) from binning.
'''
# Commandline argument parser
parser = argparse.ArgumentParser(description=program_description)
parser.add_argument("-c", "--case", help="target case name", required=True)
parser.add_argument("-v", "--variable", help="conditional mean variable name", required=True)
args = parser.parse_args()
params = vars(args)
# Parameters
cases = dnstool.case_library()
casename = params["case"]
case = cases[casename]
nx, ny, nz = case.shape
vname = params["variable"]
output_name = "cmean_{}_given_c".format(vname)
batch_cmean = [np.load('./cmean_{}_given_c_{:03d}.npz'.format(vname, i)) for i in range(nx)]
cstar = np.asarray([d['cstar'] for d in batch_cmean])
cmean = np.asarray([d['cmean'] for d in batch_cmean])
bin_edges = np.asarray([d["bins"] for d in batch_cmean])
bin_counts = np.asarray([d["count"] for d in batch_cmean])
# Save result
arr_dict = {}
arr_dict["cstar"] = cstar
arr_dict["cmean"] = cmean
arr_dict["bins"] = bin_edges
arr_dict["count"] = bin_counts
np.savez(output_name, **arr_dict)