annotate climate_stripes.py @ 2:7f84fb995f4e draft default tip

planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit e4c144851549600ffde5bcf875304d5edd98e2b1
author climate
date Sat, 09 Jul 2022 09:01:30 +0000
parents 645e533f8269
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
1 #!/usr/bin/env python3
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
2 #
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
3 #
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
4 # usage: climate_stripes.py [-h] [--cmap CMAP]
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
5 # [--output OUTPUT]
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
6 # [--xname XNAME]
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
7 # [--format_plot FORMAT_PLOT]
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
8 # [--format_date FORMAT_DATE]
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
9 # [--title TITLE]
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
10 # [--nxsplit NXSPLIT]
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
11 # input varname
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
12 #
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
13 # positional arguments:
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
14 # input input filename with timeseries (tabular format)
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
15 # varname column name to use for plotting (case sensitive)
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
16 #
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
17 # optional arguments:
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
18 # -h, --help show this help message and exit
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
19 # --cmap CMAP Specify which colormap to use for plotting
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
20 # --output OUTPUT output filename to store resulting image (png format)
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
21 # --xname XNAME column name to use for x-axis
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
22 # --format_plot FORMAT_PLOT
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
23 # format for plotting dates on the x-axis
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
24 # --format_date FORMAT_DATE
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
25 # format for input date/time column
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
26 # --title TITLE plot title
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
27 # --nxsplit NXSPLIT number of ticks on the x-axis
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
28 #
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
29
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
30 import argparse
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
31 import warnings
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
32
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
33 import matplotlib as mpl
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
34 mpl.use('Agg')
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
35
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
36 import matplotlib.pyplot as plt # noqa: I202,E402
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
37
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
38 import numpy as np # noqa: I202,E402
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
39
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
40 import pandas as pd # noqa: I202,E402
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
41
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
42
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
43 class Stripes ():
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
44 def __init__(self, input, valname, cmap, output, xname="",
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
45 date_format='%Y%m',
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
46 plot_format='%Y',
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
47 nxsplit=10,
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
48 title=""):
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
49 self.input = input
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
50 self.valname = valname
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
51 self.xname = xname
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
52 if not nxsplit:
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
53 self.nxsplit = 10
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
54 else:
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
55 self.nxsplit = nxsplit
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
56 if not cmap:
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
57 self.cmap = 'RdBu_r'
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
58 else:
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
59 self.cmap = cmap
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
60 if not output:
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
61 self.output = "stripes.png"
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
62 else:
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
63 self.output = output
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
64 self.title = title
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
65 if not date_format:
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
66 self.format = '%Y%m'
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
67 else:
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
68 self.format = date_format.replace('X', '%')
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
69 if not plot_format:
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
70 self.plot_format = self.format
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
71 else:
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
72 self.plot_format = plot_format.replace('X', '%')
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
73
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
74 def read_data(self):
2
7f84fb995f4e planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit e4c144851549600ffde5bcf875304d5edd98e2b1
climate
parents: 1
diff changeset
75 if self.xname is not None:
7f84fb995f4e planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit e4c144851549600ffde5bcf875304d5edd98e2b1
climate
parents: 1
diff changeset
76 self.data = pd.read_csv(self.input, sep='\t', index_col=self.xname, infer_datetime_format=True)
7f84fb995f4e planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit e4c144851549600ffde5bcf875304d5edd98e2b1
climate
parents: 1
diff changeset
77 else:
7f84fb995f4e planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit e4c144851549600ffde5bcf875304d5edd98e2b1
climate
parents: 1
diff changeset
78 self.data = pd.read_csv(self.input, sep='\t')
0
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
79
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
80 def create_stripes(self):
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
81 data = np.zeros((2, self.data[self.valname].shape[0]), dtype='float')
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
82 data[:] = np.NaN
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
83 data[0, :] = self.data[self.valname]
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
84 data[1, :] = self.data[self.valname]
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
85 fig = plt.figure(figsize=(10, 2))
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
86 ax = plt.subplot(111)
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
87 plt.pcolor(data, cmap=self.cmap,
1
645e533f8269 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit 78edbd356193b8a8701ff7a28b7979c7047c0c5b"
climate
parents: 0
diff changeset
88 vmin=self.data[self.valname].quantile(q=0.01),
645e533f8269 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit 78edbd356193b8a8701ff7a28b7979c7047c0c5b"
climate
parents: 0
diff changeset
89 vmax=self.data[self.valname].quantile(q=0.99))
0
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
90 if self.title:
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
91 plt.title(self.title)
2
7f84fb995f4e planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit e4c144851549600ffde5bcf875304d5edd98e2b1
climate
parents: 1
diff changeset
92 if self.xname is not None:
0
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
93 nrange = self.data.index.values
2
7f84fb995f4e planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit e4c144851549600ffde5bcf875304d5edd98e2b1
climate
parents: 1
diff changeset
94 date_list = pd.to_datetime(nrange[::int(self.nxsplit)], format=self.format)
0
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
95 date_list = [i.strftime(self.plot_format) for i in date_list]
2
7f84fb995f4e planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit e4c144851549600ffde5bcf875304d5edd98e2b1
climate
parents: 1
diff changeset
96 ax.set_xticks(np.arange(0, len(nrange), int(self.nxsplit)), date_list)
0
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
97 ax.xaxis.set_tick_params(rotation=45)
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
98 else:
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
99 ax.set_xticks([])
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
100 ax.set_yticks([])
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
101 fig.tight_layout()
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
102 fig.savefig(self.output)
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
103
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
104
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
105 if __name__ == '__main__':
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
106 warnings.filterwarnings("ignore")
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
107 parser = argparse.ArgumentParser()
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
108 parser.add_argument(
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
109 'input',
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
110 help='input filename with geographical coordinates (netCDF format)'
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
111 )
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
112 parser.add_argument(
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
113 'varname',
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
114 help='column name to use for plotting (case sensitive)'
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
115 )
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
116 parser.add_argument(
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
117 '--cmap',
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
118 help='Specify which colormap to use for plotting'
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
119 )
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
120 parser.add_argument(
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
121 '--output',
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
122 help='output filename to store resulting image (png format)'
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
123 )
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
124 parser.add_argument(
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
125 '--xname',
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
126 help='column name to use for x-axis'
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
127 )
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
128 parser.add_argument(
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
129 '--format_plot',
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
130 help='format for plotting dates on the x-axis'
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
131 )
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
132 parser.add_argument(
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
133 '--format_date',
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
134 help='format for input date/time column (default is Month d, yyyy)'
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
135 )
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
136 parser.add_argument(
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
137 '--title',
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
138 help='plot title'
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
139 )
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
140 parser.add_argument(
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
141 '--nxsplit',
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
142 help='number of ticks on the x-axis'
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
143 )
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
144 args = parser.parse_args()
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
145 stripes = Stripes(args.input, args.varname, args.cmap, args.output,
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
146 xname=args.xname, date_format=args.format_date,
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
147 plot_format=args.format_plot, title=args.title,
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
148 nxsplit=args.nxsplit)
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
149 stripes.read_data()
2ea0576cb062 "planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit aa08ea46712c1cfbaac2e6fcd07c93097751cad3"
climate
parents:
diff changeset
150 stripes.create_stripes()