@@ -30,6 +30,8 @@ batch script rather than in your shell.
3030| :ref: `teca_temporal_reduction ` | Computes reductions (min, max, average, |
3131| | summation) over the time dimension |
3232+----------------------------------------+--------------------------------------------------+
33+ | :ref: `teca_detect_stitch_nodes ` | TC detection using TempestExtremes |
34+ +----------------------------------------+--------------------------------------------------+
3335| :ref: `teca_tc_detect ` | TC detection using GFDL algorithm |
3436+----------------------------------------+--------------------------------------------------+
3537| :ref: `teca_tc_trajectory ` | Computes TC tracks from a set of candidates |
@@ -57,6 +59,8 @@ batch script rather than in your shell.
5759| :ref: `teca_cf_restripe ` | Convert the internal layout of a dataset on disk |
5860| | with optional subsetting and/or regridding. |
5961+----------------------------------------+--------------------------------------------------+
62+ | :ref: `teca_lapse_rate ` | Calculates the mean lapse rate |
63+ +----------------------------------------+--------------------------------------------------+
6064
6165Applying the Command Line Applications at Scale
6266-----------------------------------------------
@@ -1557,6 +1561,310 @@ Command Line Arguments
15571561 displays both basic and advanced documentation together
15581562
15591563
1564+ .. _teca_detect_stitch_nodes :
1565+
1566+ teca_detect_stitch_nodes
1567+ ------------------------------
1568+ The cyclone detecton algorithm is based on two TempestExtremes codes :cite: `tempestextremes `:
1569+ DetectNodes and StitchNodes.
1570+
1571+ Inputs
1572+ ~~~~~~
1573+ A Cartesian mesh stored in a collection of NetCDF CF2 files. The detector requires on
1574+ the following fields.
1575+
1576+ 1. Sea level pressure
1577+ 2. Surface wind x-component
1578+ 3. Surface wind y-component
1579+ 4. Geopotential height (300 and 500 mB)
1580+ 5. Surface geopotential height
1581+
1582+ Outputs
1583+ ~~~~~~~
1584+ 1. Cyclone candidate table
1585+ 2. Cyclone track table
1586+
1587+ Command Line Arguments
1588+ ~~~~~~~~~~~~~~~~~~~~~~
1589+
1590+ --input_file INPUT_FILE
1591+ a teca_multi_cf_reader configuration file identifying the set of NetCDF CF2 files to process.
1592+ When present data is read using the teca_multi_cf_reader. Use one of either `--input_file ` or
1593+ `--input_regex `.
1594+
1595+ --input_regex INPUT_REGEX
1596+ a teca_cf_reader regex identifying the set of NetCDF CF2 files to process. When present data is
1597+ read using the teca_cf_reader. Use one of either `--input_file ` or `--input_regex `.
1598+
1599+ --candidate_file CANDIDATE_FILE
1600+ file path to write the storm candidates to. The extension determines the file format. May be one of
1601+ `.nc `, `.csv `, or `.bin `. (default: candidates.csv)
1602+
1603+ --track_file TRACK_FILE
1604+ file path to write the storm tracks to. The extension determines the file format. May be one of
1605+ `.nc `, `.csv `, or `.bin `. (default: tracks.csv)
1606+
1607+ --x_axis_variable X_AXIS_VARIABLE
1608+ name of x coordinate variable (default: lon)
1609+
1610+ --y_axis_variable Y_AXIS_VARIABLE
1611+ name of y coordinate variable (default: lat)
1612+
1613+ --z_axis_variable Z_AXIS_VARIABLE
1614+ name of z coordinate variable (default: level)
1615+
1616+ --sea_level_pressure SEA_LEVEL_PRESSURE
1617+ name of variable with sea level pressure
1618+
1619+ --surface_wind_u SURFACE_WIND_U
1620+ name of variable with surface wind x-component
1621+
1622+ --surface_wind_v SURFACE_WIND_Y
1623+ name of variable with surface wind y-component
1624+
1625+ --geopotential_at_surface GEOPOTENTIAL_AT_SURFACE
1626+ name of variable with geopotential at the surface
1627+
1628+ --geopotential GEOPOTENTIAL
1629+ name of variable with geopotential height
1630+ for thickness calc (300 and 500 mB)
1631+
1632+ --300mb_height 300_HEIGHT
1633+ name of variable with 300mb height for thickness calc
1634+
1635+ --500mb_height 500_HEIGHT
1636+ name of variable with 500mb height for thickness calc
1637+
1638+ --in_connect CONNECTIVITY_FILE
1639+ a connectivity file that describes the unstructured grid.
1640+ Not supported yet.
1641+
1642+ --diag_connect true/false
1643+ When the data is on a structured grid, consider grid cells
1644+ to be connected in the diagonal (across the vertex).
1645+ (default: false)
1646+
1647+ --regional true/false
1648+ Used to indicate that a given latitude-longitude grid
1649+ should not be periodic in the longitudinal direction.
1650+ (default: true)
1651+
1652+ --out_header true/false
1653+ If present, output a header at the beginning of the output file
1654+ indicating the columns of the file.
1655+ (default: true)
1656+
1657+ --search_by_min VARIABLE_NAME
1658+ The input variable to use for initially selecting candidate points (defined as local minima).
1659+ At least one (and at most one) of --search_by_min or --search_by_max must be specified.
1660+
1661+ --search_by_max VARIABLE_NAME
1662+ The input variable to use for initially selecting candidate points (defined as local maxima).
1663+ At least one (and at most one) of --search_by_min or --search_by_max must be specified.
1664+
1665+ --search_by_threshold SEARCH_BY_THRESHOLD
1666+ Threshold for search operation in the form "<op><value>"
1667+ These arguments are as follows.
1668+ op is the operator that must be satisfied for threshold (options include >,>=,<,<=,=,!=).
1669+ value is the value on the right-hand-side of the comparison.
1670+
1671+ --min_lon MIN_LON
1672+ The minimum longitude for candidate points. (default: 0.0)
1673+
1674+ --max_lon MAX_LON
1675+ The maximum longitude for candidate points.
1676+ As longitude is a periodic dimension,
1677+ when --regional is not specified --min_lon may be larger than --max_lon.
1678+ If --max_lon and --min_lon are equal then these arguments are ignored.
1679+ (default: 0.0)
1680+
1681+ --min_lat MIN_LAT
1682+ The minimum latitude for candidate points. (default: 0.0)
1683+
1684+ --max_lat MAX_LAT
1685+ The maximum latitude for candidate points.
1686+ If --max_lat and --min_lat are equal then these arguments are ignored.
1687+ (default: 0.0)
1688+
1689+ --min_abs_lat MIN_ABS_LAT
1690+ The minimum absolute value of the latitude for candidate points.
1691+ This argument has no effect if set to zero.
1692+ (default: 0.0)
1693+
1694+ --merge_dist MERGE_DIST
1695+ Minimum allowable distance between two candidates in degrees.
1696+ Candidate points with a distance (in degrees great-circle-distance)
1697+ shorter than the specified value are merged.
1698+ Among two candidates within the merge distance,
1699+ only the candidate with the lowest value of the --search_by_min field
1700+ or highest value of the --search_by_max field are retained.
1701+ (default: 6.0)
1702+
1703+ --closed_contour_cmd CLOSED_CONTOUR_CMD
1704+ Eliminate candidates if they do not have a closed contour.
1705+ The closed contour is determined by breadth first search:
1706+ if any paths exist from the candidate point
1707+ (or nearby minima/maxima if minmaxdist is specified)
1708+ that reach the specified distance before achieving the specified delta
1709+ then we say no closed contour is present.
1710+ Closed contour commands are separated by a semicolon ("<cmd1>;<cmd2>;...").
1711+ Each closed contour command takes the form "var,delta,dist,minmaxdist".
1712+ These arguments are as follows.
1713+ var is the name of the variable used for the contour search.
1714+ dist is the great-circle distance (in degrees) from the pivot
1715+ within which the closed_contour criteria must be satisfied.
1716+ delta is the amount by which the field must change from the pivot value.
1717+ If positive (negative) the field must increase (decrease) by this value along the contour.
1718+ minmaxdist is the great-circle distance away from the candidate
1719+ to search for the minima/maxima. If delta is positive (negative),
1720+ the pivot is a local minimum (maximum).
1721+ (default: SEA_LEVEL_PRESSURE,200.0,5.5,0;thickness,-6.0,6.5,1.0)
1722+
1723+ --no_closed_contour_cmd NO_CLOSED_CONTOUR_CMD
1724+ As --closed_contour_cmd,
1725+ except it eliminates candidates if a closed contour is present.
1726+
1727+ --candidate_threshold_cmd CANDIDATE_THRESHOLD_CMD
1728+ Threshold commands for candidates.
1729+ Eliminate candidates that do not satisfy a threshold criteria
1730+ (there must exist a point within a given distance of the candidate
1731+ that satisfies a given equality or inequality).
1732+ Search is performed by breadth-first search over the grid.
1733+ Threshold commands are separated by a semicolon ("<cmd1>;<cmd2>;...").
1734+ Each threshold command takes the form "var,op,value,dist".
1735+ These arguments are as follows.
1736+ var is the name of the variable used for the thresholding.
1737+ op is the operator that must be satisfied for threshold (options include >,>=,<,<=,=,!=).
1738+ value is the value on the right-hand-side of the comparison.
1739+ dist is the great-circle distance away from the candidate
1740+ to search for a point that satisfies the threshold.
1741+
1742+ --output_cmd OUTPUT_CMD
1743+ Include additional columns in the candidates output file.
1744+ Each output command takes the form "var,op,dist".
1745+ These arguments are as follows.
1746+ var is the name of the variable used for output.
1747+ op is the operator that is applied over all points
1748+ within the specified distance of the candidate (options include max, min, avg, maxdist, mindist).
1749+ dist is the great-circle distance away from the candidate wherein the operator is applied.
1750+ (default: SEA_LEVEL_PRESSURE,min,0;surface_wind_speed,max,2;GEOPOTENTIAL_AT_SURFACE,min,0)
1751+
1752+ --in_fmt IN_FMT
1753+ A comma-separated list of names of the auxiliary columns within the candidates output file.
1754+ (namely, the list must not include the time columns).
1755+ (default: i,j,lat,lon,SEA_LEVEL_PRESSURE,surface_wind_speed,GEOPOTENTIAL_AT_SURFACE)
1756+
1757+ --range RANGE
1758+ The maximum distance between candidates along a path (in great-circle degrees).
1759+ (default: 8.0)
1760+
1761+ --min_time MIN_TIME
1762+ The minimum length of a path either in terms of number of discrete times or as a duration, e.g. "24h".
1763+ Note that the duration of a path is computed as the difference between the final time and initial time,
1764+ so a "24h" duration correspond to 5 time steps in 6-hourly data (i.e. 0h,6,12,18,24UTC).
1765+ (default: 10)
1766+
1767+ --min_endpoint_distance MIN_ENDPOINT_DIST
1768+ The minimum great-circle distance between the first candidate on a path and the last candidate (in degrees).
1769+ (default: 0.0)
1770+
1771+ --min_path_distance MIN_PATH_DISTANCE
1772+ The minimum accumulated great-circle distance between nodes in a path (in degrees).
1773+ (default: 0.0)
1774+
1775+ --min_path_length MIN_PATH_LENGTH
1776+ Minimum path length (default: 0.0)
1777+
1778+ --max_gap MAX_GAP
1779+ The number of allowed missing points between spatially proximal candidate nodes
1780+ while still considering them part of the same path.
1781+ (default: 3)
1782+
1783+ --track_threshold_cmd TRACK_THRESHOLD_CMD
1784+ Filter paths based on the number of times where a particular threshold is satisfied.
1785+ Threshold commands are separated by a semicolon ("<cmd1>;<cmd2>;...").
1786+ Each threshold command takes the form "col,op,value,count".
1787+ These arguments are as follows.
1788+ col is the name of the column to use for thresholding, as specified in --in_fmt.
1789+ op is the operator that must be satisfied for threshold (options include >,>=,<,<=,=,!=,|>=,|<=).
1790+ value is the value on the right-hand-side of the comparison.
1791+ count is either the minimum number of time slices where the threshold must be satisfied
1792+ or the instruction "all", "first", or "last".
1793+ Here "all" is used to indicate the threshold must be satisfied at all points along the path,
1794+ "first" is used to indicate the threshold must be satisfied only at the first point along the path, and
1795+ "last" is used to indicate the threshold must be satisfied only at the last point along the path.
1796+ (default: surface_wind_speed,>=,10.0,10;lat,<=,50.0,10;lat,>=,-50.0,10;GEOPOTENTIAL_AT_SURFACE,<=,15.0,10)
1797+
1798+ --prioritize VARIABLE_NAME
1799+ Variable to use when prioritizing path
1800+
1801+ --allow_repeated_times true/false
1802+ Allow repeated times (default: false)
1803+
1804+ --cal_type CAL_TYPE
1805+ Calendar type (default: standard)
1806+
1807+ --first_step FIRST_STEP
1808+ first time step to process (default: 0)
1809+
1810+ --last_step LAST_STEP
1811+ last time step to process (default: -1)
1812+
1813+ --n_threads NUMBER_OF_THREADS
1814+ Sets the thread pool size on each MPI rank. When the default value of -1 is used TECA will
1815+ coordinate the thread pools across ranks such each thread is bound to a unique physical core.
1816+ (default: -1)
1817+
1818+ --help
1819+ displays documentation for application specific command line options
1820+
1821+ --advanced_help
1822+ displays documentation for algorithm specific command line options
1823+
1824+ --full_help
1825+ displays both basic and advanced documentation together
1826+
1827+ --verbose VERBOSE
1828+ Enable verbose output (default: 0)
1829+
1830+ Examples
1831+ ~~~~~~~~
1832+
1833+ ERA5 data
1834+ ^^^^^^^^^
1835+
1836+ .. code-block :: bash
1837+
1838+ #! /bin/bash
1839+ # SBATCH -C cpu
1840+ # SBATCH -q debug
1841+ # SBATCH -A m1517
1842+ # SBATCH -N 1
1843+ # SBATCH -n 64
1844+ # SBATCH -t 00:30:00
1845+ # SBATCH -J teca_detect_stitch.out
1846+ # SBATCH --output=%x-%j.out
1847+
1848+ # load the TECA module
1849+ module use /global/common/software/m1517/teca/perlmutter_cpu/develop/modulefiles
1850+ module load teca
1851+
1852+ srun -n 64 teca_detect_stitch_nodes \
1853+ --input_file era5_2017.mcf \
1854+ --sea_level_pressure MSL \
1855+ --surface_wind_u VAR_10U \
1856+ --surface_wind_v VAR_10V \
1857+ --geopotential Z \
1858+ --geopotential_at_surface ZS \
1859+ --x_axis_variable longitude \
1860+ --y_axis_variable latitude \
1861+ --max_lat 90 \
1862+ --min_lat -90 \
1863+ --max_lon 359.75 \
1864+ --min_lon 0 \
1865+ --search_by_min MSL
1866+
1867+
15601868 .. _teca_tc_detect :
15611869
15621870teca_tc_detect
@@ -1595,7 +1903,7 @@ the following fields.
15951903
15961904Outputs
15971905~~~~~~~
1598- 1. Cyclone andidate table
1906+ 1. Cyclone candidate table
159919072. Cyclone track table
16001908
16011909Command Line Arguments
0 commit comments