annotate xarray_select.py @ 0:810820a0d45c draft default tip

planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
author ecology
date Sun, 31 Jul 2022 21:23:21 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
1 # xarray tool for:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
2 # - getting metadata information
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
3 # - select data and save results in csv file for further post-processing
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
4
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
5 import argparse
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
6 import os
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
7 import warnings
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
8
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
9 import geopandas as gdp
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
10
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
11 import pandas as pd
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
12
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
13 from shapely.geometry import Point
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
14 from shapely.ops import nearest_points
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
15
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
16 import xarray as xr
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
17
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
18
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
19 class XarraySelect ():
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
20 def __init__(self, infile, select="", outfile="", outputdir="",
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
21 latname="", latvalN="", latvalS="", lonname="",
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
22 lonvalE="", lonvalW="", filter_list="", coords="",
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
23 time="", verbose=False, no_missing=False,
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
24 tolerance=None):
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
25 self.infile = infile
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
26 self.select = select
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
27 self.outfile = outfile
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
28 self.outputdir = outputdir
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
29 self.latname = latname
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
30 if tolerance != "" and tolerance is not None:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
31 self.tolerance = float(tolerance)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
32 else:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
33 self.tolerance = -1
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
34 if latvalN != "" and latvalN is not None:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
35 self.latvalN = float(latvalN)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
36 else:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
37 self.latvalN = ""
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
38 if latvalS != "" and latvalS is not None:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
39 self.latvalS = float(latvalS)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
40 else:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
41 self.latvalS = ""
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
42 self.lonname = lonname
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
43 if lonvalE != "" and lonvalE is not None:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
44 self.lonvalE = float(lonvalE)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
45 else:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
46 self.lonvalE = ""
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
47 if lonvalW != "" and lonvalW is not None:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
48 self.lonvalW = float(lonvalW)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
49 else:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
50 self.lonvalW = ""
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
51 self.filter = filter_list
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
52 self.time = time
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
53 self.coords = coords
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
54 self.verbose = verbose
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
55 self.no_missing = no_missing
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
56 # initialization
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
57 self.dset = None
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
58 self.gset = None
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
59 if self.verbose:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
60 print("infile: ", self.infile)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
61 print("outfile: ", self.outfile)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
62 print("select: ", self.select)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
63 print("outfile: ", self.outfile)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
64 print("outputdir: ", self.outputdir)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
65 print("latname: ", self.latname)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
66 print("latvalN: ", self.latvalN)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
67 print("latvalS: ", self.latvalS)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
68 print("lonname: ", self.lonname)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
69 print("lonvalE: ", self.lonvalE)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
70 print("lonvalW: ", self.lonvalW)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
71 print("filter: ", self.filter)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
72 print("time: ", self.time)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
73 print("coords: ", self.coords)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
74
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
75 def rowfilter(self, single_filter):
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
76 split_filter = single_filter.split('#')
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
77 filter_varname = split_filter[0]
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
78 op = split_filter[1]
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
79 ll = float(split_filter[2])
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
80 if (op == 'bi'):
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
81 rl = float(split_filter[3])
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
82 if filter_varname == self.select:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
83 # filter on values of the selected variable
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
84 if op == 'bi':
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
85 self.dset = self.dset.where(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
86 (self.dset <= rl) & (self.dset >= ll)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
87 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
88 elif op == 'le':
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
89 self.dset = self.dset.where(self.dset <= ll)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
90 elif op == 'ge':
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
91 self.dset = self.dset.where(self.dset >= ll)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
92 elif op == 'e':
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
93 self.dset = self.dset.where(self.dset == ll)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
94 else: # filter on other dimensions of the selected variable
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
95 if op == 'bi':
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
96 self.dset = self.dset.sel({filter_varname: slice(ll, rl)})
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
97 elif op == 'le':
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
98 self.dset = self.dset.sel({filter_varname: slice(None, ll)})
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
99 elif op == 'ge':
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
100 self.dset = self.dset.sel({filter_varname: slice(ll, None)})
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
101 elif op == 'e':
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
102 self.dset = self.dset.sel({filter_varname: ll},
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
103 method='nearest')
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
104
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
105 def selection(self):
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
106 if self.dset is None:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
107 self.ds = xr.open_dataset(self.infile)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
108 self.dset = self.ds[self.select] # select variable
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
109 if self.time:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
110 self.datetime_selection()
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
111 if self.filter:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
112 self.filter_selection()
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
113
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
114 self.area_selection()
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
115 if self.gset.count() > 1:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
116 # convert to dataframe if several rows and cols
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
117 self.gset = self.gset.to_dataframe().dropna(how='all'). \
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
118 reset_index()
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
119 self.gset.to_csv(self.outfile, header=True, sep='\t')
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
120 else:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
121 data = {
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
122 self.latname: [self.gset[self.latname].values],
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
123 self.lonname: [self.gset[self.lonname].values],
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
124 self.select: [self.gset.values]
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
125 }
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
126
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
127 df = pd.DataFrame(data, columns=[self.latname, self.lonname,
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
128 self.select])
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
129 df.to_csv(self.outfile, header=True, sep='\t')
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
130
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
131 def datetime_selection(self):
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
132 split_filter = self.time.split('#')
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
133 time_varname = split_filter[0]
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
134 op = split_filter[1]
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
135 ll = split_filter[2]
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
136 if (op == 'sl'):
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
137 rl = split_filter[3]
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
138 self.dset = self.dset.sel({time_varname: slice(ll, rl)})
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
139 elif (op == 'to'):
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
140 self.dset = self.dset.sel({time_varname: slice(None, ll)})
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
141 elif (op == 'from'):
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
142 self.dset = self.dset.sel({time_varname: slice(ll, None)})
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
143 elif (op == 'is'):
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
144 self.dset = self.dset.sel({time_varname: ll}, method='nearest')
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
145
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
146 def filter_selection(self):
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
147 for single_filter in self.filter:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
148 self.rowfilter(single_filter)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
149
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
150 def area_selection(self):
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
151
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
152 if self.latvalS != "" and self.lonvalW != "":
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
153 # Select geographical area
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
154 self.gset = self.dset.sel({self.latname:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
155 slice(self.latvalS, self.latvalN),
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
156 self.lonname:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
157 slice(self.lonvalW, self.lonvalE)})
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
158 elif self.latvalN != "" and self.lonvalE != "":
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
159 # select nearest location
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
160 if self.no_missing:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
161 self.nearest_latvalN = self.latvalN
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
162 self.nearest_lonvalE = self.lonvalE
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
163 else:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
164 # find nearest location without NaN values
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
165 self.nearest_location()
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
166 if self.tolerance > 0:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
167 self.gset = self.dset.sel({self.latname: self.nearest_latvalN,
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
168 self.lonname: self.nearest_lonvalE},
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
169 method='nearest',
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
170 tolerance=self.tolerance)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
171 else:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
172 self.gset = self.dset.sel({self.latname: self.nearest_latvalN,
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
173 self.lonname: self.nearest_lonvalE},
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
174 method='nearest')
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
175 else:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
176 self.gset = self.dset
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
177
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
178 def nearest_location(self):
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
179 # Build a geopandas dataframe with all first elements in each dimension
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
180 # so we assume null values correspond to a mask that is the same for
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
181 # all dimensions in the dataset.
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
182 dsel_frame = self.dset
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
183 for dim in self.dset.dims:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
184 if dim != self.latname and dim != self.lonname:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
185 dsel_frame = dsel_frame.isel({dim: 0})
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
186 # transform to pandas dataframe
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
187 dff = dsel_frame.to_dataframe().dropna().reset_index()
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
188 # transform to geopandas to collocate
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
189 gdf = gdp.GeoDataFrame(dff,
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
190 geometry=gdp.points_from_xy(dff[self.lonname],
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
191 dff[self.latname]))
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
192 # Find nearest location where values are not null
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
193 point = Point(self.lonvalE, self.latvalN)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
194 multipoint = gdf.geometry.unary_union
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
195 queried_geom, nearest_geom = nearest_points(point, multipoint)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
196 self.nearest_latvalN = nearest_geom.y
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
197 self.nearest_lonvalE = nearest_geom.x
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
198
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
199 def selection_from_coords(self):
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
200 fcoords = pd.read_csv(self.coords, sep='\t')
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
201 for row in fcoords.itertuples():
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
202 self.latvalN = row[0]
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
203 self.lonvalE = row[1]
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
204 self.outfile = (os.path.join(self.outputdir,
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
205 self.select + '_' +
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
206 str(row.Index) + '.tabular'))
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
207 self.selection()
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
208
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
209
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
210 if __name__ == '__main__':
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
211 warnings.filterwarnings("ignore")
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
212 parser = argparse.ArgumentParser()
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
213
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
214 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
215 'infile',
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
216 help='netCDF input filename'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
217 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
218 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
219 '--select',
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
220 help='Variable name to select'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
221 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
222 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
223 '--latname',
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
224 help='Latitude name'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
225 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
226 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
227 '--latvalN',
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
228 help='North latitude value'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
229 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
230 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
231 '--latvalS',
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
232 help='South latitude value'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
233 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
234 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
235 '--lonname',
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
236 help='Longitude name'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
237 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
238 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
239 '--lonvalE',
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
240 help='East longitude value'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
241 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
242 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
243 '--lonvalW',
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
244 help='West longitude value'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
245 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
246 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
247 '--tolerance',
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
248 help='Maximum distance between original and selected value for '
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
249 ' inexact matches e.g. abs(index[indexer] - target) <= tolerance'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
250 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
251 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
252 '--coords',
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
253 help='Input file containing Latitude and Longitude'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
254 'for geographical selection'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
255 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
256 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
257 '--filter',
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
258 nargs="*",
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
259 help='Filter list variable#operator#value_s#value_e'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
260 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
261 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
262 '--time',
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
263 help='select timeseries variable#operator#value_s[#value_e]'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
264 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
265 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
266 '--outfile',
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
267 help='csv outfile for storing results of the selection'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
268 '(valid only when --select)'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
269 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
270 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
271 '--outputdir',
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
272 help='folder name for storing results with multiple selections'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
273 '(valid only when --select)'
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
274 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
275 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
276 "-v", "--verbose",
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
277 help="switch on verbose mode",
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
278 action="store_true"
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
279 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
280 parser.add_argument(
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
281 "--no_missing",
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
282 help="""Do not take into account possible null/missing values
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
283 (only valid for single location)""",
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
284 action="store_true"
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
285 )
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
286 args = parser.parse_args()
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
287
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
288 p = XarraySelect(args.infile, args.select, args.outfile, args.outputdir,
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
289 args.latname, args.latvalN, args.latvalS, args.lonname,
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
290 args.lonvalE, args.lonvalW, args.filter,
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
291 args.coords, args.time, args.verbose,
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
292 args.no_missing, args.tolerance)
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
293 if args.select:
810820a0d45c planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit fd8ad4d97db7b1fd3876ff63e14280474e06fdf7
ecology
parents:
diff changeset
294 p.selection()