#!/usr/bin/env python

import argparse
import netCDF4
import numpy as np

#Script adds Gaussian random numbers to user selected fields in a netcdf file
#
#Example USAGE: ./randomize_fields.py /glade/scratch/bpetzke/WRF-Hydro/StageIV_Alaska/20210714/nws_precip_last6hours_ak_2021071400.nc observation 

def randomize_field(nc_file, field_names):
    print(f"Randomizing {nc_file} fields {field_names}")
    with netCDF4.Dataset(nc_file, 'a') as nc:
        for field_name in field_names:
            nc[field_name][:] = np.random.randn(*nc[field_name].shape)
    

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('nc_file',type=str,help='Input/Output .nc file')
    parser.add_argument('field_names',type=str,nargs='+',help='Field names to randomize')
    args = parser.parse_args()    
    randomize_field(args.nc_file,args.field_names)