Bister and Emanuel (2002)#
This application computes the tropical cyclone (TC) potential intensity (PI) in accordance with that described by Bister and Emanuel (2002) using the Python package offered by Gifford (2021).
Configuration#
The following table provides and describes the configurable variables for the application. Note that if a Default Value is missing, the respective variable is mandatory.
Variable |
Description |
Default |
|---|---|---|
|
The maximum sea-level pressure value (hPa); this is used to filter any extreme values computed vi the TC PI application. |
2000 |
|
The netCDF-formatted file path to contain the variables
specified in |
|
|
The file path for the YAML-formatted file containing the list of output variables. |
|
|
Write the variables specified in |
|
|
The maximum elevation (meters) for which the respective TC PI computed value is assumed valid; this acts to filter extreme values induced by topography. |
10 |
The contents of an example TC PI YAML-formatted configuration file follows.
app_module: tcdiags.be2002_pi
app_class: BE2002
schema: !ENV ${UFS_TCDIAGS}/parm/schema/tcdiags.be2002_pi.yaml
zmax: 0
mslp_max: 2000
write_output: true
output_file: ./tcdiags.be2002_pi.nc
output_varlist: !INC /home/ufs_tcdiags/parm/io/tcdiags.be2002_pi.yaml
Note that the application assumes that the environment variable
UFS_TCDIAGS has been defined and points to the top-level directory
of the ufs_tcdiags repository clone. Further, the
output_varlist points to a YAML-formatted file containing the
variables to be written to output_file if write_output is
True. The default file for the application appears as follows.
mxrt:
name: mixing ratio
units: kg/kg
description: Analysis mixing ratio profiles.
pmin:
name: minimum sea-level potential intensity
units: pascal
description: Tropical cyclone minimum sea-level pressure potential intensity.
pout:
name: outflow pressure level
units: pascal
description: The outflow isobaric elevation for tropical cyclones of maximum
potential intensity.
pres:
name: pressure level
units: pascal
description: Analysis pressure profiles.
pslp:
name: sea-level pressure
units: pascal
description: Analysis pressure reduced to sea-level.
temp:
name: temperature
units: kelvin
description: Analysis temperature profiles.
tout:
name: outflow temperature
units: kelvin
description: The outflow temperature for tropical cyclones of maximum potential intensity.
vmax:
name: maximum surface wind speed potential intensity
units: meter_per_second
description: Tropical cyclone maximum surface wind speed potential intensity.
zsfc:
name: orography height
units: meter
description: Analysis orography height.
In the above example, the netCDF variable name is that defined by the
respective YAML-key (e.g., mxrt). The name, units, and
description keys are the attributes for the respective variable to
be written to the netCDF-formatted file path. An example snippet from
the netCDF-formatted file follows.
user@host:$ ncdump -h ./tcdiags.be2002_pi.nc
dimensions:
lev = 127 ;
lat = 192 ;
lon = 384 ;
variables:
double lev(lev) ;
lev:_FillValue = NaN ;
double lat(lat) ;
lat:_FillValue = NaN ;
double lon(lon) ;
lon:_FillValue = NaN ;
float mxrt(lev, lat, lon) ;
mxrt:_FillValue = NaNf ;
mxrt:description = "Analysis mixing ratio profiles." ;
mxrt:name = "mixing ratio" ;
mxrt:units = "kg/kg" ;
double pmin(lat, lon) ;
pmin:_FillValue = NaN ;
pmin:description = "Tropical cyclone minimum sea-level pressure potential intensity." ;
pmin:name = "minimum sea-level potential intensity" ;
pmin:units = "pascal" ;
double pout(lat, lon) ;
pout:_FillValue = NaN ;
pout:description = "The outflow isobaric elevation for tropical cyclones of maximum potential intensity." ;
pout:name = "outflow pressure level" ;
pout:units = "pascal" ;
Running the Application#
The TC PI application can be executed using a variety of methods. Each is described below.
Terminal#
The TC PI application may be executed within an supporting environment as follows.
user@host:$ export PYTHONPATH="/path/to/ufs_tcdiags/ush":"${PYTHONPATH}"
user@host:$ cd /path/to/ufs_tcdiags/scripts
user@host:$ ./compute_tcdiags.py --help
Usage: compute_tcdiags.py [-h] [-tcmsi] [-tcpi] [-tcstrflw] yaml
Tropical cyclone diagnostics computation(s) application interface.
Positional Arguments:
yaml YAML-formatted tropical cyclone diagnostics configuration file.
Optional Arguments:
-h, --help show this help message and exit
-tcmsi YAML-formatted file containing the TC multi-scale intensity application configuration.
-tcpi YAML-formatted file containing the TC potential intensity application configuration.
-tcstrflw YAML-formatted file containing the TC steering application configuration.
user@host:$ ./compute_tcdiags.py /path/to/ufs_tcdiags/parm/tcdiags.demo.yaml -tcpi
Jupyter Notebook#
The TC PI application can also be executed from within a Jupyter notebook as follows.
user@host:$ export PYTHONPATH="/path/to/ufs_tcdiags/jupyter":"/path/to/ufs_tcdiags/ush":"${PYTHONPATH}"
user@host:$ cd /path/to/ufs_tcdiags/jupyter/notebooks
user@host:$ /path/to/jupyter notebook tcdiags.be2002_pi.ipynb
This action behaves as the terminal instance for the application (above) but is executed from within the respective Jupyter notebook.
Docker Container#
The TC PI application may be executed within a supporting Docker container as follows.
user@host:$ /path/to/docker run -v /path/to/ufs_tcdiags:/home/ufs_tcdiags -it ghcr.io/henrywinterbottom-noaa/ubuntu20.04.ufs_tcdiags:latest
user@host:$ export PYTHONPATH="/home/ufs_tcdiags/ush":"${PYTHONPATH}"
user@host:$ cd /home/ufs_tcdiags/scripts
user@host:$ ./compute_tcdiags.py --help
Usage: compute_tcdiags.py [-h] [-tcmsi] [-tcpi] [-tcstrflw] yaml
Tropical cyclone diagnostics computation(s) application interface.
Positional Arguments:
yaml YAML-formatted tropical cyclone diagnostics configuration file.
Optional Arguments:
-h, --help show this help message and exit
-tcmsi YAML-formatted file containing the TC multi-scale intensity application configuration.
-tcpi YAML-formatted file containing the TC potential intensity application configuration.
-tcstrflw YAML-formatted file containing the TC steering application configuration.
user@host:$ ./compute_tcdiags.py /home/ufs_tcdiags/parm/tcdiags.demo.yaml -tcpi
Jupyter Notebook Within a Docker Container#
Similar to the Jupyter notebook and Docker container examples above, the Jupyter notebook can also be launched from within the Docker container. This can be accomplished as follows.
user@host:$ /path/to/docker run -v /path/to/ufs_tcdiags:/home/ufs_tcdiags -p 8888:8888 -it ghcr.io/henrywinterbottom-noaa/ubuntu20.04.ufs_tcdiags:latest
user@host:$ export PYTHONPATH="/home/ufs_tcdiags/ush":"/home/ufs_tcdiags/jupyter":"${PYTHONPATH}"
user@host:$ cd /path/to/ufs_tcdiags/jupyter/notebooks
user@host:$ /path/to/jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root tcdiags.be2002_pi.ipynb
The above action will provide the user a local HTML path and an associated token as follows.
To access the server, open this file in a browser:
file:///root/.local/share/jupyter/runtime/jpserver-21362-open.html
Or copy and paste one of these URLs:
http://5186640b39b0:8889/tree?token=abcdefghijklmnopqrstuvwxwy0123456789ABCDEFGHIJKL
http://127.0.0.1:8889/tree?token=abcdefghijklmnopqrstuvwxwy0123456789ABCDEFGHIJKL
Copy the paste the token attribute that begins with
http://127.0.0.1:8889 into a web browser address bar and execute
the respective Jupyter notebook as described above.
Example Results#
The following example is computed from a nominally 1.0-degree ERA5 analysis valid 0000 UTC 01 October 2016. Note that regions relative to the respective TCs have not been excluded from the calculations.
|
|
Shown above are (top) the TC sea-level pressure (hPa) and (bottom) the 10-meter wind speed (mps) intensity. The areas of missing data are locations where the Bister and Emanuel (2002) solution does not converge.