49 lines
1.2 KiB
Python
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)
|