Mercurial > repos > ecology > xarray_select
comparison xarray_select.xml @ 0:a71593187a08 draft
"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit f1455c158011dc4aab0fd469cf794be6f4142992"
| author | ecology |
|---|---|
| date | Fri, 22 May 2020 09:18:08 +0000 |
| parents | |
| children | 054c9023586a |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:a71593187a08 |
|---|---|
| 1 <tool id="xarray_select" name="NetCDF xarray Selection" version="0.15.1"> | |
| 2 <description>extracts variable values with custom conditions on dimensions</description> | |
| 3 <requirements> | |
| 4 <requirement type="package" version="3">python</requirement> | |
| 5 <requirement type="package" version="1.5.3">netcdf4</requirement> | |
| 6 <requirement type="package" version="0.15.1">xarray</requirement> | |
| 7 <requirement type="package" version="0.7.0">geopandas</requirement> | |
| 8 <requirement type="package" version="1.7.0">shapely</requirement> | |
| 9 </requirements> | |
| 10 <command detect_errors="exit_code"><![CDATA[ | |
| 11 mkdir output_dir && | |
| 12 python '$__tool_directory__/xarray_tool.py' '$input' --select '$var' | |
| 13 --verbose | |
| 14 --filter | |
| 15 #for $i,$uc in enumerate($user_choice) | |
| 16 #if $uc.condi_between.comparator=="bi" | |
| 17 '${uc.dim}#${uc.condi_between.comparator}#${uc.condi_between.t1}#${uc.condi_between.t2}' | |
| 18 #else | |
| 19 '${uc.dim}#${uc.condi_between.comparator}#${uc.condi_between.value}' | |
| 20 #end if | |
| 21 #end for | |
| 22 | |
| 23 #if $time.condi_datetime.datetime=="yes" | |
| 24 --time | |
| 25 #if $time.condi_datetime.condi_between.comparator=="sl" | |
| 26 '${time.condi_datetime.dim}#${time.condi_datetime.condi_between.comparator}#${time.condi_datetime.condi_between.t1}#${time.condi_datetime.condi_between.t2}' | |
| 27 #else | |
| 28 '${time.condi_datetime.dim}#${time.condi_datetime.condi_between.comparator}#${time.condi_datetime.condi_between.t1}' | |
| 29 #end if | |
| 30 #end if | |
| 31 | |
| 32 #if $condi_source_coord.coord_source=="coord_from_file" | |
| 33 --coords '$coord_tabular' | |
| 34 --latname '$condi_source_coord.lat_dim' --lonname '$condi_source_coord.lon_dim' | |
| 35 --outputdir output_dir | |
| 36 #else | |
| 37 --outfile 'final.tabular' | |
| 38 #if $condi_source_coord.condi_coord.coord=='single' | |
| 39 --latname $condi_source_coord.condi_coord.lat_dim | |
| 40 --latvalN $condi_source_coord.condi_coord.lat_val | |
| 41 --lonname $condi_source_coord.condi_coord.lon_dim | |
| 42 --lonvalE $condi_source_coord.condi_coord.lon_val | |
| 43 #elif $condi_source_coord.condi_coord.coord=='subregion' | |
| 44 --latname $condi_source_coord.condi_coord.lat_dim | |
| 45 --latvalN $condi_source_coord.condi_coord.lat_valN | |
| 46 --latvalS $condi_source_coord.condi_coord.lat_valS | |
| 47 --lonname $condi_source_coord.condi_coord.lon_dim | |
| 48 --lonvalE $condi_source_coord.condi_coord.lon_valE | |
| 49 --lonvalW $condi_source_coord.condi_coord.lon_valW | |
| 50 #end if | |
| 51 #end if | |
| 52 ]]></command> | |
| 53 <inputs> | |
| 54 <param type="data" name="input" label="Input netcdf file" format="netcdf"/> | |
| 55 <param type="data" label="Tabular of variables" name="var_tab" format="tabular" help="Select the tabular file which summarize the available variables and dimensions."/> | |
| 56 | |
| 57 <param name="var" type="select" label="Choose the variable to extract"> | |
| 58 <options from_dataset="var_tab"> | |
| 59 <column name="name" index="0"/> | |
| 60 <column name="value" index="0"/> | |
| 61 </options> | |
| 62 </param> | |
| 63 | |
| 64 <conditional name="condi_source_coord"> | |
| 65 <param name="coord_source" type="select" label="Source of coordinates"> | |
| 66 <option value="coord_from_stdin">Manually enter coordinates</option> | |
| 67 <option value="coord_from_file">Use coordinates from input file</option> | |
| 68 </param> | |
| 69 | |
| 70 <when value="coord_from_file"> | |
| 71 <param type="data" label="Tabular of coord" name="coord_tabular" format="tabular" help="Format : Latitude Longitude"/> | |
| 72 <param name="lat_dim" type="select" label="Name of latitude coordinate" > | |
| 73 <options from_dataset="var_tab"> | |
| 74 <column name="value" index="0"/> | |
| 75 </options> | |
| 76 </param> | |
| 77 <param name="lon_dim" type="select" label="Name of longitude coordinate" > | |
| 78 <options from_dataset="var_tab"> | |
| 79 <column name="value" index="0"/> | |
| 80 </options> | |
| 81 </param> | |
| 82 </when> | |
| 83 | |
| 84 <when value="coord_from_stdin"> | |
| 85 <conditional name="condi_coord"> | |
| 86 <param name="coord" type="select" label="Geographical area" help="Use this option to get valid values at your custom coordinates."> | |
| 87 <option value="global">Whole available region</option> | |
| 88 <option value="single">Single location</option> | |
| 89 <option value="subregion">Sub-region extraction</option> | |
| 90 </param> | |
| 91 <when value="single"> | |
| 92 <param name="lat_dim" type="select" label="Name of latitude coordinate" > | |
| 93 <options from_dataset="var_tab"> | |
| 94 <column name="value" index="0"/> | |
| 95 </options> | |
| 96 </param> | |
| 97 <param name="lat_val" type="float" value="0" label="Latitude"/> | |
| 98 <param name="lon_dim" type="select" label="Name of longitude coordinate" > | |
| 99 <options from_dataset="var_tab"> | |
| 100 <column name="value" index="0"/> | |
| 101 </options> | |
| 102 </param> | |
| 103 <param name="lon_val" type="float" value="0" label="Longitude"/> | |
| 104 </when> | |
| 105 <when value="subregion"> | |
| 106 <param name="lat_dim" type="select" label="Name of latitude coordinate" > | |
| 107 <options from_dataset="var_tab"> | |
| 108 <column name="value" index="0"/> | |
| 109 </options> | |
| 110 </param> | |
| 111 <param name="lat_valN" type="float" value="0" label="Latitude North"/> | |
| 112 <param name="lat_valS" type="float" value="0" label="Latitude South"/> | |
| 113 <param name="lon_dim" type="select" label="Name of longitude coordinate" > | |
| 114 <options from_dataset="var_tab"> | |
| 115 <column name="value" index="0"/> | |
| 116 </options> | |
| 117 </param> | |
| 118 <param name="lon_valE" type="float" value="0" label="Longitude East"/> | |
| 119 <param name="lon_valW" type="float" value="0" label="Longitude West"/> | |
| 120 </when> | |
| 121 <when value="global"></when> | |
| 122 </conditional> | |
| 123 </when> | |
| 124 | |
| 125 </conditional> | |
| 126 | |
| 127 <section name="time" title="Select Time series" expanded="false"> | |
| 128 <conditional name="condi_datetime"> | |
| 129 <param name="datetime" type="select" label="Datetime selection" help="Use this option to extract timeseries from your dataset"> | |
| 130 <option value="no">No</option> | |
| 131 <option value="yes">Yes</option> | |
| 132 </param> | |
| 133 <when value="no"></when> | |
| 134 <when value="yes"> | |
| 135 <param name="dim" type="select" label="Select datetime dimension" help="Use this option only if your dataset contains a date/time dimension"> | |
| 136 <options from_dataset="var_tab"> | |
| 137 <column name="value" index="0"/> | |
| 138 </options> | |
| 139 </param> | |
| 140 <conditional name="condi_between"> | |
| 141 <param name="comparator" type="select" label="date/Time selection"> | |
| 142 <option value="is">is</option> | |
| 143 <option value="sl">slice</option> | |
| 144 <option value="ne">nearest</option> | |
| 145 <option value="to">to</option> | |
| 146 <option value="from">from</option> | |
| 147 </param> | |
| 148 <when value="sl"> | |
| 149 <param name="t1" type="text" value="" label="Start date/time"/> | |
| 150 <param name="t2" type="text" value="" label="End date/time"/> | |
| 151 </when> | |
| 152 <when value="is"> | |
| 153 <param name="t1" type="text" value="" label="date/time"/> | |
| 154 </when> | |
| 155 <when value="ne"> | |
| 156 <param name="t1" type="text" value="" label="date/time"/> | |
| 157 </when> | |
| 158 <when value="to"> | |
| 159 <param name="t1" type="text" value="" label="date/time"/> | |
| 160 </when> | |
| 161 <when value="from"> | |
| 162 <param name="t1" type="text" value="" label="date/time"/> | |
| 163 </when> | |
| 164 </conditional> | |
| 165 </when> | |
| 166 </conditional> | |
| 167 </section> | |
| 168 <repeat name="user_choice" title="additional filter" help="Use this option to filter on the selected dataset"> | |
| 169 <param name="dim" type="select" label="Dimensions"> | |
| 170 <options from_dataset="var_tab"> | |
| 171 <column name="value" index="0"/> | |
| 172 </options> | |
| 173 </param> | |
| 174 <conditional name="condi_between"> | |
| 175 <param name="comparator" type="select" label="Comparator"> | |
| 176 <option value="e">Equal</option> | |
| 177 <option value="ge">Greater or equal</option> | |
| 178 <option value="le">Less or equal</option> | |
| 179 <option value="bi">Between-include [threshold1,threshold2]</option> | |
| 180 </param> | |
| 181 <when value="bi"> | |
| 182 <param name="t1" type="text" value="0" label="Inferior threshold"/> | |
| 183 <param name="t2" type="text" value="0" label="Superior threshold"/> | |
| 184 </when> | |
| 185 <when value="e"> | |
| 186 <param name="value" type="text" value="0" label="Value"/> | |
| 187 </when> | |
| 188 <when value="ge"> | |
| 189 <param name="value" type="text" value="0" label="Value"/> | |
| 190 </when> | |
| 191 <when value="le"> | |
| 192 <param name="value" type="text" value="0" label="Value"/> | |
| 193 </when> | |
| 194 </conditional> | |
| 195 </repeat> | |
| 196 </inputs> | |
| 197 <outputs> | |
| 198 <collection type="list" name="output"> | |
| 199 <discover_datasets pattern="__designation_and_ext__" visible="false" format="tabular" directory="output_dir"/> | |
| 200 <filter>condi_source_coord['coord_source'] == 'coord_from_file'</filter> | |
| 201 </collection> | |
| 202 <data name="simpleoutput" from_work_dir="final.tabular" format="tabular"> | |
| 203 <filter>condi_source_coord['coord_source'] == 'coord_from_stdin'</filter> | |
| 204 </data> | |
| 205 </outputs> | |
| 206 <tests> | |
| 207 <test> | |
| 208 <param name="input" value="dataset-ibi-reanalysis-bio-005-003-monthly-regulargrid_1510914389133.nc"/> | |
| 209 <param name="var" value="phy"/> | |
| 210 <param name="var_tab" value="var_tab_dataset-ibi"/> | |
| 211 <conditional name="condi_source_coord"> | |
| 212 <param name="coord_source" value="coord_from_stdin"/> | |
| 213 <conditional name="condi_coord"> | |
| 214 <param name="coord" value="single"/> | |
| 215 <param name="lat_dim" value="latitude"/> | |
| 216 <param name="lat_val" value="44.0"/> | |
| 217 <param name="lon_dim" value="longitude"/> | |
| 218 <param name="lon_val" value="-2.0"/> | |
| 219 </conditional> | |
| 220 </conditional> | |
| 221 <output name="simpleoutput" value="Test1.tabular"> | |
| 222 <assert_contents> | |
| 223 <has_text_matching expression="0\t2002-12-15\t0.5"/> | |
| 224 <has_text_matching expression="144\t2014-12-15\t0.5"/> | |
| 225 </assert_contents> | |
| 226 </output> | |
| 227 </test> | |
| 228 <test> | |
| 229 <param name="input" value="dataset-ibi-reanalysis-bio-005-003-monthly-regulargrid_1510914389133.nc"/> | |
| 230 <param name="var_tab" value="var_tab_dataset-ibi"/> | |
| 231 <param name="var" value="nh4"/> | |
| 232 | |
| 233 <conditional name="condi_source_coord"> | |
| 234 <param name="coord_source" value="coord_from_stdin"/> | |
| 235 <conditional name="condi_coord"> | |
| 236 <param name="coord" value="global"/> | |
| 237 </conditional> | |
| 238 </conditional> | |
| 239 <section name="time"> | |
| 240 <conditional name="condi_datetime"> | |
| 241 <param name="datetime" value="yes"/> | |
| 242 <conditional name="condi_between"> | |
| 243 <param name="comparator" value="sl"/> | |
| 244 <param name="t1" value="2003-12-15" /> | |
| 245 <param name="t2" value="2004-12-15" /> | |
| 246 </conditional> | |
| 247 </conditional> | |
| 248 </section> | |
| 249 <repeat name="user_choice"> | |
| 250 <param name="dim" value="nh4"/> | |
| 251 <conditional name="condi_between"> | |
| 252 <param name="comparator" value="ge"/> | |
| 253 <param name="value" value="50."/> | |
| 254 </conditional> | |
| 255 </repeat> | |
| 256 <output name="simpleoutput" value="Test2.tabular"> | |
| 257 <assert_contents> | |
| 258 <has_text_matching expression="0\t2003-12-15\t0.5"/> | |
| 259 <has_text_matching expression="23\t2004-12-15\t0.5"/> | |
| 260 </assert_contents> | |
| 261 </output> | |
| 262 </test> | |
| 263 </tests> | |
| 264 | |
| 265 <help><![CDATA[ | |
| 266 **What it does** | |
| 267 | |
| 268 This tool extracts variable values with custom conditions on dimensions. | |
| 269 | |
| 270 It can use manualy given coordinates or automaticaly take them from a tabular file to filter informations. | |
| 271 | |
| 272 If no values are availables at a coordinate X, the tool will search the closest coordinate with a non NA value. | |
| 273 | |
| 274 Filter can be set on every dimension. Available filtering operations are : =, >, <, >=, <=, [interval], ]interval[. | |
| 275 | |
| 276 | |
| 277 | |
| 278 **Input** | |
| 279 | |
| 280 A netcdf file (.nc). | |
| 281 | |
| 282 Variable tabular file from 'Netcdf Metadate Info'. | |
| 283 | |
| 284 Tabular file with coordinates and the following structure : 'lat' 'lon'. | |
| 285 | |
| 286 | |
| 287 **Outputs** | |
| 288 | |
| 289 A single output with values for the wanted variable if there is only one coordinate. | |
| 290 | |
| 291 A data collection where one file is created for every coordinate, if multiple coordinates from tabular file. | |
| 292 | |
| 293 | |
| 294 ------------------------------------------------- | |
| 295 | |
| 296 The xarray select tool can be used after the xarray Info. | |
| 297 ]]></help> | |
| 298 </tool> |
