source: lmdz_wrf/trunk/tools/create_list.py @ 2318

Last change on this file since 2318 was 261, checked in by lfita, 10 years ago

Python to create a [nam] [lon] [lat] list ASCII file from a given more complete

ASCII file

File size: 2.8 KB
Line 
1# -*- coding: iso-8859-15 -*-
2# L. Fita, LMD. Feburary 2015. Python script to generate a new ASCII file from a
3#    nother with [char] separated values
4## e.g. # create_list.py -a ';' -c 1,7,6 -f MeteoFrancesfc/0_Documentation/POSTES
5## e.g. # create_list.py -a ',' -c 1,2,3 -f AEMETsfc/0_Documentation/AWS_AEMET-stations.csv
6import numpy as np
7import os
8import re
9from optparse import OptionParser
10
11main = 'create_list.py'
12errormsg = 'ERROR -- error -- ERROR -- error'
13warnmsg = 'WARNING -- warning -- WARNING -- warning'
14
15def remove_NONascii(string):
16    """ Function to remove that characters which are not in the standard 127 ASCII
17      string= string to transform
18    >>> remove_NONascii('Lluís')
19    Lluis
20    """
21    fname = 'remove_NONascii'
22
23    newstring = string
24
25    RTFchar= ['á', 'é', 'í', 'ó', 'ú', 'à', 'Ú', 'ì', 'ò', 'ù', 'â', 'ê', 'î', 'ÃŽ',  \
26      'û', 'À', 'ë', 'ï', 'ö', 'ÃŒ', 'ç', 'ñ','Ê', 'œ', 'Á', 'É', 'Í', 'Ó', 'Ú', 'À', \
27      'È', 'Ì', 'Ò', 'Ù', 'Â', 'Ê', 'Î', 'Ô', 'Û', 'Ä', 'Ë', 'Ï', 'Ö', 'Ü', 'Ç', 'Ñ',\
28      'Æ', 'Œ', '\n', '\t']
29    ASCchar= ['a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o',  \
30      'u', 'a', 'e', 'i', 'o', 'u', 'c', 'n','ae', 'oe', 'A', 'E', 'I', 'O', 'U', 'A', \
31      'E', 'I', 'O', 'U', 'A', 'E', 'I', 'O', 'U', 'A', 'E', 'I', 'O', 'U', 'C', 'N',\
32      'AE', 'OE', '', ' ']
33
34    Nchars = len(RTFchar)
35    for ichar in range(Nchars):
36        foundchar = string.find(RTFchar[ichar])
37        if foundchar != 0:
38            newstring = newstring.replace(RTFchar[ichar], ASCchar[ichar])
39
40    return newstring
41
42####### ###### ##### #### ### ## #
43
44parser = OptionParser()
45parser.add_option("-a", "--chracter", dest="cchar", 
46  help="chracter of new value", metavar="VALUE")
47parser.add_option("-c", "--columns", dest="cols", 
48  help="',' list of cols to use (1 based, sorted)", metavar="VALUES")
49parser.add_option("-f", "--file", dest="stfile", help="stations file", 
50  metavar="FILE")
51(opts, args) = parser.parse_args()
52
53########    #######
54## MAIN
55    #######
56
57ofile = 'newlist.dat'
58
59if not os.path.isfile(opts.stfile):
60    print errormsg
61    print '   ' + main + ": stations file '" + opts.stfile + "' does not exist !!"
62    quit(-1)
63
64desiredcols = opts.cols.split(',')
65
66print 'desiredcols:',desiredcols
67
68oasciif = open(opts.stfile, 'r')
69onewf = open(ofile, 'w')
70
71for line in oasciif:
72    vals = line.replace('\n','').replace(chr(13),'')
73    values = vals.split(opts.cchar)
74
75    newline = '' 
76    for icol in range(len(desiredcols)):
77        newline = newline + " " + remove_NONascii(values[int(desiredcols[icol])-1]).replace('"','')
78
79#    print vals
80#    print values
81#    print newline
82
83    onewf.write(newline + '\n')
84
85oasciif.close()
86onewf.close()
87
88print main + ": sucessfull written of '" + ofile + "' !!"
Note: See TracBrowser for help on using the repository browser.