view xarray_mapplot.xml @ 0:d7479b6dfbe8 draft

"planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/data_manipulation/xarray/ commit 57b6d23e3734d883e71081c78e77964d61be82ba"
author ecology
date Sun, 06 Jun 2021 08:51:12 +0000
parents
children dc05bf0af58f
line wrap: on
line source

<tool id="xarray_mapplot" name="NetCDF xarray map plotting" profile="20.05" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@">
    <description>Visualize netCDF variables on a geographical map</description>
    <macros>
        <import>macros.xml</import>
    </macros>
    <expand macro="edam_ontology"/>
    <requirements>
        <requirement type="package" version="3">python</requirement>
        <requirement type="package" version="1.5.6">netcdf4</requirement>
        <requirement type="package" version="@TOOL_VERSION@">xarray</requirement>
        <requirement type="package" version="0.19.0">cartopy</requirement>
        <requirement type="package" version="3.4.2">matplotlib</requirement>
        <requirement type="package" version="1.2">cmcrameri</requirement>
    </requirements>
    <command detect_errors="exit_code"><![CDATA[
    mkdir output_dir &&
    mkdir -p `pwd`/mlp_tmpdir &&
    MPLCONFIGDIR=`pwd`/mlp_tmpdir &&
    echo "Galaxy xarray version @TOOL_VERSION@" > $version &&
    python '$__tool_directory__/xarray_mapplot.py' '$input' '$var'
    #if $condi_datetime.datetime=="yes"
         --time="$condi_datetime.time_values"
    #end if
         --latitude='$lat_dim'
         --longitude='$lon_dim'
    #if $colorbar_label
         --label='$colorbar_label'
    #end if
    #if $title
         --title=$title
    #end if
    #if $cmap
         --cmap='$cmap'
    #end if
    #if $proj
         --proj='$proj'
    #end if
    #if $land
         --land='$land'
    #end if
    #if $ocean
         --ocean='$ocean'
    #end if
    #if $coastline
         --coastline='$coastline'
    #end if
    #if $borders
         --borders='$borders'
    #end if
    #if $threshold
         --threshold='$threshold'
    #end if
    #if $range
         --range='$range'
    #end if
    #if $xlim
         --xlim='$xlim'
    #end if
    #if $ylim
         --ylim='$ylim'
    #end if
    #if $shift
         --shift
    #end if
         --output plot.png
         --verbose &&
    mv *.png output_dir
    ]]></command>
    <inputs>
        <param type="data" name="input" label="Input netcdf file" format="netcdf"/>
        <param type="data" label="Tabular of variables" name="var_tab" format="tabular" help="Select the tabular file which summarize the available variables and dimensions."/>
        <param name="var" type="select" label="Choose the variable to plot">
            <options from_dataset="var_tab">
                <column name="name" index="0"/>
                <column name="value" index="0"/>
            </options>
        </param>
        <param name="lat_dim" type="select" label="Name of latitude coordinate" >
            <options from_dataset="var_tab">
                <column name="value" index="0"/>
            </options>
        </param>
        <param name="lon_dim" type="select" label="Name of longitude coordinate" >
            <options from_dataset="var_tab">
                <column name="value" index="0"/>
            </options>
        </param>
        <conditional name="condi_datetime">
            <param name="datetime" type="select" label="Datetime selection" help="Use this option when your dataset contains multiple times/dates">
                <option value="no">No</option>
                <option value="yes">Yes</option>
            </param>
            <when value="no"></when>
            <when value="yes">
                <param type="data" label="Tabular of time values" name="time_tab" format="tabular" help="File containing time values."/>
                <param name="time_values" type="select" multiple="true" label="Choose the times to plot">
                    <options from_dataset="time_tab">
                        <column name="name" index="1"/>
                        <column name="value" index="0"/>
                    </options>
                </param>
            </when>
       </conditional>
        <param name="xlim" type="text" optional="true" label="longitudes values 'lonW,lonE' for limited geographical area (optional and only available with some projections)" />
        <param name="ylim" type="text" value=""  optional="true" label="latitudes values 'latS,latN' for limited geographical area (optional and only available with some projections)" />
        <param name="shift" type="select"  optional="true" display="radio" label="Shift longitudes [0,360] --> [-180,180]"> 
             <option value="" selected="true">No</option>
             <option value="Yes">Yes</option>
        </param>
        <param name="range" type="text" optional="true" label="Range of values for plotting e.g. minimum value abd maximum value (minval,maxval) (optional)" />
        <param name="threshold" type="float"  optional="true" label="Do not plot values below this threshold (optional)" />
        <expand macro="customize_appearance_plots" />
        <param name="proj" type="text" optional="true" label='Specify the projection (proj4) on which we draw e.g. {"proj":"PlateCarree"} with double quote (optional)'>
            <sanitizer>
                <valid initial="string.ascii_letters,string.digits,string.punctuation,string.whitespace">
                    <add value="{" />
                    <add value="}" />
                </valid>
            </sanitizer>
        </param>

    </inputs>
    <outputs>
        <data name="version" format="tabular" label="Tool version"/>
        <collection type="list" name="output_dir" label="Map plots">
            <discover_datasets pattern="__name_and_ext__" directory="output_dir"/>
        </collection>
    </outputs>
    <tests>
        <test>
             <param name="input" value="dataset-ibi-reanalysis-bio-005-003-monthly-regulargrid_1510914389133.nc"/>
             <param name="var" value="nh4"/>
             <param name="var_tab" value="var_tab_dataset-ibi"/>
             <param name="lat_dim" value="latitude"/>
             <param name="lon_dim" value="longitude"/>
             <conditional name="condi_datetime">
                 <param name="datetime" value="yes"/>
                 <param name="time_tab" value="time.tabular"/>
                 <param name="time_values" value="50"/>
             </conditional>
             <param name="cmap" value="cm.devon_r"/>   
             <param name="proj" value='{"proj":"PlateCarree"}'/>    
             <param name="land" value="0.1"/>                         
             <param name="ocean" value="0.1"/>                         
             <param name="coastline" value="0.2"/>                         
             <param name="borders" value="0.5"/>                         
             <output_collection name="output_dir" type="list" count="1">
                 <element name="plot_time50" ftype='png' file="dataset-ibi-reanalysis-bio-005-003-monthly-regulargrid_1510914389133_time50.png"/>
             </output_collection>
             <output name="version" ftype='tabular' file="version.tabular"/>
        </test>
        <test>
             <param name="input" value="dataset-ibi-reanalysis-bio-005-003-monthly-regulargrid_1510914389133.nc"/>
             <param name="var" value="chl"/>
             <param name="var_tab" value="var_tab_dataset-ibi"/>
             <param name="lat_dim" value="latitude"/>
             <param name="lon_dim" value="longitude"/>
             <conditional name="condi_datetime">
                 <param name="datetime" value="yes"/>
                 <param name="time_tab" value="time.tabular"/>
                 <param name="time_values" value="0,1"/>
             </conditional>
             <param name="cmap" value="Greens"/>   
             <param name="proj" value='{"proj":"PlateCarree"}'/>    
             <param name="land" value="0.1"/>                         
             <param name="ocean" value="0.1"/>                         
             <param name="coastline" value="0.2"/>                         
             <param name="borders" value="0.5"/>                         
             <output_collection name="output_dir" type="list" count="2">
                 <element name="plot_time0" ftype="png" file="dataset-ibi-reanalysis-bio-005-003-monthly-regulargrid_1510914389133_time0.png"/>
                 <element name="plot_time1" ftype="png" file="dataset-ibi-reanalysis-bio-005-003-monthly-regulargrid_1510914389133_time1.png"/>
             </output_collection>
             <output name="version" ftype="tabular" file="version.tabular"/>
        </test>
    </tests>
    <help><![CDATA[
**What it does**

This tool plots a variable on a geographical map. It must be a 2D variable (latitude, longitude) and eventually with 
and additional time dimension (specific time to plot should then be selected).

The appearance of plots can be customized with options as well at the projection. 
The projection needs to be given as a PROJ dictionary such as:
- {"proj":"EquidistantConic", "central_longitude": 20.0, "central_latitude": 70.0 }
- {"proj":"AlbersEqualArea", "central_longitude": 20.0, "central_latitude": 70.0 }
- {"proj":"EuroPP"}

The output is a collection of plots (png format); one per selected times.

-------------------------------------------------

The xarray select tool can be used after the xarray Info and xarray coord.
    ]]></help>
    <expand macro="citations"/>
</tool>