Mercurial > repos > ecology > xarray_coords_info
annotate xarray_netcdf2netcdf.py @ 0:fea8a53f8099 draft
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
author | ecology |
---|---|
date | Sun, 06 Jun 2021 08:50:43 +0000 |
parents | |
children | 3e73f657a998 |
rev | line source |
---|---|
0
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
1 #!/usr/bin/env python3 |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
2 # |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
3 # Apply operations on selected variables |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
4 # - scale |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
5 # one can also select the range of time (for timeseries) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
6 # to apply these operations over the range only |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
7 # when a range of time is selected and when scaling, one |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
8 # can choose to save the entire timeseries or |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
9 # the selected range only. |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
10 # when scaling, one can add additional filters on dimensions |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
11 # (typically used to filter over latitudes and longitudes) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
12 |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
13 |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
14 import argparse |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
15 import warnings |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
16 |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
17 import xarray as xr # noqa: E402 |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
18 |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
19 |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
20 class netCDF2netCDF (): |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
21 def __init__(self, infile, varname, scale="", |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
22 output="output.netcdf", |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
23 write_all=False, |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
24 filter_list="", |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
25 verbose=False): |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
26 self.infile = infile |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
27 self.verbose = verbose |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
28 self.varname = varname |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
29 self.write_all = write_all |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
30 self.filter = filter_list |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
31 self.selection = {} |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
32 if scale == "" or scale is None: |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
33 self.scale = 1 |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
34 else: |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
35 self.scale = float(scale) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
36 if output is None: |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
37 self.output = "output.netcdf" |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
38 else: |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
39 self.output = output |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
40 # initialization |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
41 self.dset = None |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
42 self.subset = None |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
43 if self.verbose: |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
44 print("infile: ", self.infile) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
45 print("varname: ", self.varname) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
46 print("filter_list: ", self.filter) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
47 print("scale: ", self.scale) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
48 print("write_all: ", self.write_all) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
49 print("output: ", self.output) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
50 |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
51 def dimension_selection(self, single_filter): |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
52 split_filter = single_filter.split('#') |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
53 dimension_varname = split_filter[0] |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
54 op = split_filter[1] |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
55 ll = int(split_filter[2]) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
56 if (op == 'sl'): |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
57 rl = int(split_filter[3]) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
58 self.selection[dimension_varname] = slice(ll, rl) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
59 elif (op == 'to'): |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
60 self.selection[dimension_varname] = slice(None, ll) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
61 elif (op == 'from'): |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
62 self.selection[dimension_varname] = slice(ll, None) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
63 elif (op == 'is'): |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
64 self.selection[dimension_varname] = ll |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
65 |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
66 def filter_selection(self): |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
67 for single_filter in self.filter: |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
68 self.dimension_selection(single_filter) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
69 if self.write_all: |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
70 self.ds[self.varname] = \ |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
71 self.ds[self.varname].isel(self.selection)*self.scale |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
72 else: |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
73 self.dset = \ |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
74 self.ds[self.varname].isel(self.selection)*self.scale |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
75 |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
76 def compute(self): |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
77 if self.dset is None: |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
78 self.ds = xr.open_dataset(self.infile) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
79 if self.filter: |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
80 self.filter_selection() |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
81 if self.verbose: |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
82 print(self.selection) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
83 elif self.write_all is not None: |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
84 self.dset = self.ds[self.varname] |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
85 |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
86 def save(self): |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
87 if self.write_all: |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
88 self.ds.to_netcdf(self.output) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
89 else: |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
90 self.dset.to_netcdf(self.output) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
91 |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
92 |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
93 if __name__ == '__main__': |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
94 warnings.filterwarnings("ignore") |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
95 parser = argparse.ArgumentParser() |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
96 parser.add_argument( |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
97 'input', |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
98 help='input filename in netCDF format' |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
99 ) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
100 parser.add_argument( |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
101 'varname', |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
102 help='Specify which variable to plot (case sensitive)' |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
103 ) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
104 parser.add_argument( |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
105 '--filter', |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
106 nargs="*", |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
107 help='Filter list variable#operator#value_s#value_e' |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
108 ) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
109 parser.add_argument( |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
110 '--output', |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
111 help='Output filename to store the resulting netCDF file' |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
112 ) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
113 parser.add_argument( |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
114 '--scale', |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
115 help='scale factor to apply to selection (float)' |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
116 ) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
117 parser.add_argument( |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
118 "--write_all", |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
119 help="write all data to netCDF", |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
120 action="store_true") |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
121 parser.add_argument( |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
122 "-v", "--verbose", |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
123 help="switch on verbose mode", |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
124 action="store_true") |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
125 args = parser.parse_args() |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
126 |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
127 dset = netCDF2netCDF(infile=args.input, varname=args.varname, |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
128 scale=args.scale, output=args.output, |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
129 filter_list=args.filter, |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
130 write_all=args.write_all, |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
131 verbose=args.verbose) |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
132 dset.compute() |
fea8a53f8099
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
ecology
parents:
diff
changeset
|
133 dset.save() |