example_scripts/convert_lilas.py

changeset 52
fdf4373db30e
parent 42
62da57352e86
parent 48
673843d7f9d8
child 92
6d26002aaeed
equal deleted inserted replaced
51:d91b87f26354 52:fdf4373db30e
1 """ Sample script to convert licel files to SCC netcdf format.
2
3 The script assumes the following things:
4
5 1. You have already installed the atmospheric_lidar module (e.g. using pip).
6 2. You have create a class in a file "lilas" describing your system (described the readme file).
7 If you want to use it for a different system you need to change the script to use your own class
8
9 Run the script using: python convert_lilas.py <your options>
10
11 Examples
12 --------
13 # This will read all files starting with "l" from "my_dir".
14 # It will guess the measurement ID based on the date of the files, and will assume measurement number 00.
15 # For example, the new measurment id could be 20120101mb00
16 python convert_lilas.py my_dir l*.
17
18 # This will use the measurement id you defined.
19 python convert_lilas.py my_dir l*. -m 20120204mb32 # It will create the file 20120204mb32.nc
20
21 Help string
22 -----------
23 # To get this, run: python convert_lilas.py -h
24 usage: convert_lilas.py [-h] [-m MEASUREMENT_ID] [-n MEASUREMENT_NUMBER]
25 [directory] [searchstring]
26
27 positional arguments:
28 directory Directory with licel files.
29 searchstring Processing system id.
30
31 optional arguments:
32 -h, --help show this help message and exit
33 -m MEASUREMENT_ID, --measurement_id MEASUREMENT_ID
34 The new measurement id
35 -n MEASUREMENT_NUMBER, --measurement_number MEASUREMENT_NUMBER
36 The measurement number for the date, if no id is
37 provided
38
39 """
40
41 import glob
42 import os
43 import argparse
44
45 from atmospheric_lidar import lilas
46
47
48 if __name__ == "__main__":
49
50 # Define the command line arguments.
51 parser = argparse.ArgumentParser()
52 parser.add_argument("directory", nargs='?', help="Directory with licel files.", default='.')
53 parser.add_argument("searchstring", nargs='?', help="Processing system id.", default="*.*")
54 parser.add_argument("-m", "--measurement_id", help="The new measurement id", default=None)
55 parser.add_argument("-n", "--measurement_number", help="The measurement number for the date, if no id is provided", default="00")
56 args = parser.parse_args()
57
58
59 # Get a list of files to convert
60 search_str = os.path.join(args.directory, args.searchstring)
61 files = glob.glob(search_str)
62
63 if files:
64 # Read the files
65 print "Reading {0} files from {1}".format(len(files), args.directory)
66 measurement = lilas.LilasLidarMeasurement(files)
67
68 #Save the netcdf
69 print "Saving netcdf."
70 measurement.set_measurement_id(args.measurement_id, args.measurement_number)
71 measurement.save_as_netcdf()
72 print "Created file ", measurement.scc_filename
73 else:
74 print "No files found when searching for ", search_str

mercurial