Module data_request_api.command_line.get_variables_metadata
Extract metadata of CMOR variables and write them to a json file.
Functions
def main()
-
Expand source code
def main(): args = parse_args() # Load data request content use_dreq_version = args.dreq_version dc.retrieve(use_dreq_version) content = dc.load(use_dreq_version) # Get metadata for variables all_var_info = dq.get_variables_metadata( content, use_dreq_version, compound_names=args.compound_names, cmor_tables=args.cmor_tables, cmor_variables=args.cmor_variables, ) # Write output file(s) for filepath in args.outfile: dq.write_variables_metadata( all_var_info, use_dreq_version, filepath, api_version=api_version, content_path=dc._dreq_content_loaded['json_path'] )
def parse_args()
-
Expand source code
def parse_args(): ''' Parse command-line arguments ''' parser = argparse.ArgumentParser( description='Get CMOR variables metadata and write to json.' ) parser.add_argument('dreq_version', choices=dc.get_versions(), help='data request version') def _var_metadata_check(arg): if arg.endswith('.json') or arg.endswith('.csv'): return arg else: raise ValueError() parser.register('type', 'json_or_csv_file', _var_metadata_check) required_named_args = parser.add_argument_group('required named arguments') required_named_args.add_argument('-o', '--outfile', nargs='+', type='json_or_csv_file', required=True, help='output files containing variable metadata of requested variables, files with ".json" or ".csv" will be produced') parser.add_argument('-cn', '--compound_names', nargs='+', type=str, help='include only variables with the specified Compound Names (examples: "Amon.tas", "Omon.sos")') parser.add_argument('-t', '--cmor_tables', nargs='+', type=str, help='include only the specified CMOR tables (aka MIP tables, examples: "Amon", "Omon")') parser.add_argument('-v', '--cmor_variables', nargs='+', type=str, help='include only the specified CMOR variables (out_name, examples: "tas", "siconc")') return parser.parse_args()
Parse command-line arguments