Daniel M. Gilford使用Python计算了Bister and Emanuel 2002提出的potential intensity 算法。相关测试数据和代码已经开源。https://github/dgilford/pyPI参考文档:http://texmex.mit.edu/pub/emanuel/TCMAX/pyPI_Documentation_v1.2.pdfBister M, Emanuel K A. Low frequency variability of tropical cyclone potential intensity 1. Interannual to interdecadal variability[J]. Journal of Geophysical Research Atmospheres, 2002, 3374(4801): ACL26–1-15.
https://github/dgilford/pyPI
pyPI: Potential Intensity Calculations in Python
pyPI is a set of scripts and notebooks that compute and validate tropical cyclone (TC) potential intensity (PI) calculations in Python.
It is a fully documented and improved port of the Bister and Emanuel 2002 algorithm (hereafter BE02) which was originally written in FORTRAN---and then MATLAB---by Prof. Kerry Emanuel (MIT).
Kerry"s original MATLAB code (pcmin.m) is found at:http://texmex.mit.edu/pub/emanuel/TCMAX
The goals in developing and maintaining pyPI are to:supply a freely available validated Python potential intensity calculator,
carefully document the BE02 algorithm and its Python implementation, and to
demonstrate and encourage the use of potential intensity theory in tropical cyclone climatology analysis.
If you have any questions, comments, or feedback, please contact the developer or open an Issue in the repository.
Citation
pyPI was developed by Daniel Gilford and has been archived on Zenodo:
If you use pyPI in your work, please include the citation:Gilford, D. M. 2020: pyPI: Potential Intensity Calculations in Python, pyPI v1.3. Zenodo. http://doi/10.5281/zenodo.3985975
Full pyPI Description
Please read pyPI_Users_Guide_v1.3.pdf for a full overview and details on pyPI.
The description includes the pyPI background, a PI computation derivation, validation against the commonly-used MATLAB algorithm (pcmin), and a set of sample analyses.
A manuscript detailing the development of pyPI is be prepared for submission.
Getting Started
pyPI requires Python version 3.7+ to run. It was written and tested with Python 3.7.6.
To get pyPI up and running on your system, clone the repository and ensure that you have the required dependencies.
Installation
Its packaged using the python package manager pip.
To install pyPI (tcpypi) from the command line:pip install tcpypi
pyPI DependenciesNumPy 1.18.1
Numba 0.48.0
xarray 0.15.1
Python Implementation of "pc_min" (BE02 PI Calculator)
pi.py is the Python function which directly computes PI given atmospheric and ocean state variables (akin to the BE02 algorithm MATLAB implementation pc_min.m). Given input vector columns of environmental atmospheric temperatures (T) and mixing ratios (R) on a pressure grid (P), sea surface temperatures (SST), and mean sea-level pressures (MSL), the algorithm outputs potential intensity, the outflow level, the outflow temperature, and the minimum central pressure, and a flag that shows the status of the completed PI calculation. pyPI is an improvement on pcmin in that it handles missing values depending on user input flags.
Users who want to apply the PI calculation to a set of local environmental conditions need only to download pi.py, organize their data appropriately, and call the function to return outputs, e.g.:(VMAX,PMIN,IFL,TO,LNB)=pi(SST,MSL,P,T,R)
Running a pyPI Sample
Included in the pyPI release is a sample script run_sample.py which runs global sample data from MERRA2 (in 2004) through pi.py, vectorizes the output, and performs several simple analyses. To run, simply:python run_sample.py
and examine the outputs locally produced in full_sample_output.nc.
File Descriptions
Key filespi.py - The primary function of pyPI, that computes and outputs PI (and associated variables) given atmospheric and ocean state variables.
run_sample.py - Example script that computes PI and accompanying analyses over the entire sample dataset
Datasample_data.nc - Sample atmospheric and ocean state variable data and BE02 MATLAB output data; values are monthly averages over the globe from MERRA2 in 2004.
mdr.pk1 - Python pickled dictionary containing Main Development Region definitions from Gilford et al. (2017)
raw_sample_output.nc - Sample outputs from pi.py only created by run_sample.py
full_sample_output.nc - Full set of sample outputs from pi.py as well as sample analyses such as PI decomposition
Validation and Testing Notebookstest_pi_calc.ipynb - Simple code showing a single call of pi.py and testing the speed of the algorithm
verify_pi.ipynb - Notebook validating/verifying pyPI outputs against BE02 MATLAB output data
sample_output_analyses.ipynb - Notebook showing examples of pyPI outputs and simple PI analyses
Misc.utilities.py - Set of functions used in the pyPI codebase
constants.py - Set of meteorological constants used in the pyPI codebase
reference_calculations.m - Script used to generate sample BE02 MATLAB outout data from original MERRA2 files monthly mean; included for posterity and transperancy
pc_min.m - Original BE02 algorithm from MATLAB, adapted and used to produce analyses of Gilford et al. (2017; 2019)
clock_pypi.ipynb - Notebook estimating the time it takes to run pyPI on a laptop
AuthorDaniel M. Gilford, PhD - Development & Maintenance - GitHub
Contributor(s)Daniel Rothenberg, PhD - Numba Optimization & Sample Code - GitHub
License
This project is licensed under the MIT License - see the LICENSE file for details
AcknowledgmentsKerry Emanuel (MIT) - Development of potential intensity theory; encouragement and permission to pursue Python implementation
Susan Solomon (MIT), Paul O"Gorman (MIT), Allison Wing (FSU) - Helpful conversations, advice, and suggestions on TC PI researchDan Chavas (Purdue), Jonathan Lin (MIT), Raphael Rousseau-Rizzi (MIT) - Feedback on pyPI code and documentation
目前已有180+位成员,
快快加入吧!
近40位嘉宾,
查看嘉宾信息,
根据嘉宾的擅长领域提问、探讨,
不止于气象。加入圈子可以收获什么呢?1.提供纯粹小范围的交流空间,高质量信息;
2.分享气象相关领域最新资讯并进行探讨;
3.集中且有深度地回复大家提出的各种问题;
4.结识国内外气象圈志趣相投的本硕博朋友;
5.获取就业资讯和工作内推资格;
6.了解学术相关动态,并且探讨相关细节;
7.提供相关气象业务需求对接;
8.为考研/博、导师选择等提供指导意见;
9.分享学术文章、专业书籍等资源;
10.闲聊气象人的生活、工作、家庭等等;
......往期推荐★ EC数据商店推出Python在线处理工具箱★EC打造实用气象Python工具Metview★机器学习简介及在短临天气预警中的应用★ 气象学家“知识星球”付费专栏正式推出★AMS推荐|气象学家-海洋学家的Python教程★EC气候数据商店推出Python在线处理工具箱★Nature-地球系统科学领域的深度学习及理解★采用神经网络与深度学习来预报降水、温度等
更多推荐
python强度公式计算_pyPI: Python计算热带气旋潜在强度(Potential Intensity, 数据+代码)...
发布评论