Changeset 1434 for trunk


Ignore:
Timestamp:
04/04/18 12:51:05 (6 years ago)
Author:
sdipsl
Message:
  • add a function to handle very specific exception that affect LIM3 and dr2xml generated files.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libIGCM/libIGCM_post/xios_parser.py

    r1425 r1434  
    207207            traceback.print_exc(file=sys.stdout) 
    208208            return 
    209   
     209 
     210def modifyDR2XML(args): 
     211    """Recursively find tree element with file tag and change the path prefix of the name attribute.""" 
     212 
     213    # Loop over file_def files 
     214    for inputFile in args.file: 
     215        write=False 
     216        # Read the file_def_xml 
     217        if args.verbosity >= 1: print '\nReading dr2xml_def_xml=',inputFile 
     218        try: 
     219            tree = ET.parse(inputFile) 
     220        except: 
     221            print "Parse error. Please fix so that it can be parsed." 
     222            traceback.print_exc(file=sys.stdout) 
     223            return 
     224        root=tree.getroot() 
     225        if args.verbosity >= 3: print root.tag, root.attrib, '\n' 
     226 
     227        # Change file name prefix to point where we want 
     228        for elem in tree.iter(tag='field'): 
     229            if elem.attrib.get('id') == 'CMIP6_siconc_Scaltypesi': 
     230                write=True 
     231                elem.set('freq_op', '2ts') 
     232                elem.set('freq_offset', '0ts') 
     233                if args.verbosity >= 2: print elem.tag, elem.attrib 
     234 
     235        if write: 
     236            # Write out the results 
     237            if args.verbosity >= 1: print '\nWriting dr2xml_def_xml=','modified.' + inputFile 
     238            try: 
     239                tree.write ('modified.' + inputFile) 
     240            except: 
     241                print "Write error. Please fix so that it can be parsed." 
     242                traceback.print_exc(file=sys.stdout) 
     243                return 
     244 
    210245if __name__ == '__main__': 
    211246 
     
    243278        parser_check.add_argument('--file', nargs='+', required=True, help='XIOS xml dr2xml_file type') 
    244279        parser_check.set_defaults(func=modifyPath) 
     280 
     281        # create the parser for the "modifyDR2XML" command 
     282        parser_check = subparsers.add_parser('modifyDR2XML', help='Fine tune dr2xml files for CMIP6 production') 
     283        parser_check.add_argument('--file', nargs='+', required=True, help='XIOS xml dr2xml_file type') 
     284        parser_check.set_defaults(func=modifyDR2XML) 
    245285         
    246286        # create the parser for the "showtime" command 
Note: See TracChangeset for help on using the changeset viewer.