diff --git a/docs/Contributors_Guide/add_use_case.rst b/docs/Contributors_Guide/add_use_case.rst index 2deea9dba5..2d2d3d20d0 100644 --- a/docs/Contributors_Guide/add_use_case.rst +++ b/docs/Contributors_Guide/add_use_case.rst @@ -216,11 +216,11 @@ use case OR category directory for a model_applications use case * Update the description of the input data in the Datasets section. * Update the list of External Dependencies (if applicable) to include any - required Python packages. Update the :ref:`python_requirements_table` - table. If the package is already listed in the spreadsheet, add - a link to the documentation page for this new use case, following the - format in the table. If the package is not already listed, update - the table to include the name of the required package, the version, + required Python packages. Update the :ref:`components_python_packages` + section. If the package is already listed, add a link to the documentation + page for this new use case in the dropdown menu for that package, following the + format in the dropdown menu. If the package is not already listed, update + the dropdown menus to include the name of the required package, the version, the METplus component (e.g. METplus wrappers, METcalcpy, METplotpy), the source, a brief description of the package, and a link to this new use case that uses this new Python package. diff --git a/docs/Users_Guide/appendixA.rst b/docs/Users_Guide/appendixA.rst new file mode 100644 index 0000000000..0adda81b61 --- /dev/null +++ b/docs/Users_Guide/appendixA.rst @@ -0,0 +1,565 @@ +.. _components_python_packages: + +********************************************* +Appendix A METplus Components Python Packages +********************************************* + +Overview +======== + +.. note:: The information below is a union of the Python package requirements + across the following METplus components: METplus (including use + cases), MET Python Embedding, METcalcpy, METplotpy, and METdataio. + Many of the Python packages listed below are **OPTIONAL** and not + required. + +For information regarding the Python package requirements for each of the +METplus components, see the documentation links below for the desired +METplus component. Please note that the documentation for the METplus +Use Cases lists the required Python packages in the individual Use Cases +documentation. + + * :ref:`METplus Python Package Requirements ` + * `MET Python Embedding Requirements `_ + * `METcalcpy Python Package Requirements `_ + * `METdataio Python Package Requirements `_ + * `METplotpy Python Package Requirements `_ + * `METviewer Python Package Requirements `_ + * `METexpress Python Package Requirements `_ + +.. _metplus_components_python_packages: + +METplus Components Python Packages +================================== + +.. dropdown:: Python |python_version| + + + METplus Component: + | METplus wrappers, + | METcalcpy, + | METplotpy, + | METdataio + +.. dropdown:: cartopy >=0.21.1 + + METplus Component: + | Select METplus Use Cases, + | METcalcpy, + | METplotpy + + Source: + https://scitools.org.uk/cartopy/docs/latest/ + + Description: + Designed for geospatial data processing in order to produce maps and other geospatial data analyses + + Use Cases: + | `TCGen: Genesis Density Function (GDF) and Track Density Function (TDF) <../generated/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF.html>`_ + | `CyclonePlotter: Extra-TC Tracker and Plotting Capabilities <../generated/model_applications/tc_and_extra_tc/CyclonePlotter_fcstGFS_obsGFS_UserScript_ExtraTC.html>`_ + +.. dropdown:: cfgrib + + METplus Component: + Select METplus Use Cases + + Source: + https://pypi.org/project/cfgrib/ + + Description: + Map GRIB files to the NetCDF Common Data Model following the CF Convention using ecCodes + + Use Cases: + `Multi_Tool: Feature Relative by Lead using Multiple User-Defined Fields + <../generated/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics.html>`_ + +.. dropdown:: cmocean + + METplus Component: + | METcalcpy, + | METplotpy + + Source: + https://pypi.org/project/cmocean/ + + Description: + Contains colormaps for commonly-used oceanographic variables + +.. dropdown:: dateutil >=2.8.2 + + METplus Component: + METplus wrappers + + Source: + https://github.com/dateutil/dateutil/releases + + Description: + Provides powerful extensions to the standard datetime module + + Use Cases: + Most + +.. dropdown:: eofs + + METplus Component: + | Select METplus Use Cases, + | METcalcpy, + | METplotpy + + Source: + https://pypi.org/project/eofs/ + + Description: + Empirical orthogonal functions analysis of spatial-temporal data + + Use Cases: + | `WeatherRegime Calculation: RegridDataPlane, PcpCombine, and WeatherRegime python code <../generated/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_WeatherRegime.html>`__ + | `WeatherRegime Calculation: GFS and ERA RegridDataPlane, PcpCombine, and WeatherRegime python code <../generated/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime.html>`__ + +.. dropdown:: h5py + + METplus Component: + Select METplus Use Cases + + Source: + https://github.com/h5py/h5py + + Description: + Pythonic interface to the HDF5 binary data format + + Use Case: + `PCPCombine: Python Embedding Use Case <../generated/met_tool_wrapper/PCPCombine/PCPCombine_python_embedding.html>`_ + +.. dropdown:: imutils >=0.5.4 + + METplus Component: + METplotpy + + Source: + https://pypi.org/project/imutils/ + + Description: + A series of convenience functions to make basic image processing functions such as translation, rotation, resizing, skeletonization, displaying Matplotlib images, sorting contours, detecting edges, and much more easier + +.. dropdown:: imageio + + METplus Component: + | METcalcpy, + | METplotpy + + Source: + https://pypi.org/project/imageio/ + + Description: + Provides an easy interface to read and write a wide range of image data, including animated + images, volumetric data, and scientific formats + +.. dropdown:: lxml >=4.9.1 + + METplus Component: + | METcalcpy, + | METplotpy, + | METdataio + + Source: + https://pypi.org/project/lxml/ + + Description: + A Pythonic binding for the C libraries libxml2 and libxslt + +.. dropdown:: matplotlib >=3.6.3 + + METplus Component: + | Select METplus Use Cases, + | METcalcpy, + | METplotpy + + Source: + https://matplotlib.org/stable/users/installing/index.html + + Description: + A comprehensive library for creating static, animated, and interactive visualizations + + Use Case: + | `UserScript: Make OMI plot from calculated MJO indices with ERA obs only <../generated/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_OMI.html>`__ + | `TCGen: Genesis Density Function and Track Density Function <../generated/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF.html>`_ + | `UserScript: Make a Phase Diagram plot from input RMM or OMI <../generated/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_PhaseDiagram.html>`_ + | `UserScript: Make OMI plot from calculated MJO indices with ERA obs and GFS fcst <../generated/model_applications/s2s_mjo/UserScript_fcstGFS_obsERA_OMI.html>`__ + | `UserScript: Make RMM plots from calculated MJO indices <../generated/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_RMM.html>`__ + | `CyclonePlotter: Extra-TC Tracker and Plotting Capabilities <../generated/model_applications/tc_and_extra_tc/CyclonePlotter_fcstGFS_obsGFS_UserScript_ExtraTC.html>`_ + +.. dropdown:: metcalcpy + + METplus Component: + | Select METplus Use Cases, + | METcalcpy, + | METplotpy + + Source: + https://github.com/dtcenter/METcalcpy/releases + + Description: + A Python version of the statistics calculation functionality of METviewer, METexpress, + plotting packages in METplotpy and is a stand-alone package for any other application + + Use Case: + | `UserScript: Make a Hovmoeller plot <../generated/model_applications/s2s/UserScript_obsPrecip_obsOnly_Hovmoeller.html>`_ + | `UserScript: Compute Cross Spectra and Make a Plot <../generated/model_applications/s2s/UserScript_fcstS2S_obsERAI_CrossSpectra.html>`__ + | `Grid-Stat: Verification of TC forecasts against merged TDR data <../generated/model_applications/tc_and_extra_tc/GridStat_fcstHAFS_obsTDR_NetCDF.html>`_ + | `UserScript: Calculate the Difficulty Index <../generated/model_applications/medium_range/UserScript_fcstGEFS_Difficulty_Index.html>`_ + | `UserScript: Make zonal and meridonial means <../generated/model_applications/s2s/UserScript_obsERA_obsOnly_Stratosphere.html>`_ + +.. dropdown:: metplotpy + + METplus Component: + Select METplus Use Cases + + Source: + https://github.com/dtcenter/METplotpy/releases + + Description: + Contains packages for plotting in METplus as stand-alone, or part of METplus use case, + Select METplus Use Cases, METexpress, or METviewer + + Use Case: + | `UserScript: Make a Hovmoeller plot <../generated/model_applications/s2s/UserScript_obsPrecip_obsOnly_Hovmoeller.html>`_ + | `UserScript: Compute Cross Spectra and Make a Plot <../generated/model_applications/s2s/UserScript_obsPrecip_obsOnly_CrossSpectraPlot.html>`__ + | `UserScript: Calculate the Difficulty Index <../generated/model_applications/medium_range/UserScript_fcstGEFS_Difficulty_Index.html>`_ + | `TCGen: Genesis Density Function (GDF) and Track Density Function (TDF) <../generated/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF.html>`_ + +.. dropdown:: metpy >=1.4.0 + + METplus Component: + Select METplus Use Cases + + Source: + https://www.unidata.ucar.edu/software/metpy/ + + Description: + A collection of tools in Python for reading, visualizing, and performing calculations + with weather data + + Use Case: + `Multi_Tool: Feature Relative by Lead using Multiple User-Defined Fields <../generated/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics.html>`_ + +.. dropdown:: nc-time-axis 1.4 + + METplus Component: + | METplotpy + | stratosphere_diagnostics + + Source: + | https://github.com/SciTools/nc-time-axis + + Description: + Extension to cftime - \**REQUIRES Python 3.7** + +.. dropdown:: netCDF4 >=1.6.2 + + METplus Component: + | Select METplus Use Cases, + | METcalcpy, + | METplotpy + + Source: + https://unidata.github.io/netcdf4-python/ + + Description: + + A Python interface to the netCDF C library + + Use Case: + For using MET Python embedding functionality in use cases + +.. dropdown:: numpy >=1.24.2 + + METplus Component: + | Select METplus Use Cases, + | METcalcpy, + | METplotpy, + | METdataio + + Source: + https://numpy.org/ + + Description: + NumPy offers comprehensive mathematical functions, random number generators, + linear algebra routines, Fourier transforms, and more. + + Use Case: + For using MET Python embedding functionality in use cases + +.. dropdown:: pandas >=1.5.2 + + METplus Component: + | Select METplus Use Cases, + | METcalcpy, + | METplotpy, + | METdataio + + Source: + https://pypi.org/project/pandas + + Description: + A fast, powerful, flexible and easy to use open source data analysis + and manipulation tool, built on top of the Python programming language + + Use Case: + For using MET Python embedding functionality in use cases + +.. dropdown:: pint >=0.20.1 + + METplus Component: + METcalcpy + + Source: + https://github.com/hgrecco/pint + + Description: + Python package to define, operate and manipulate physical quantities + +.. dropdown:: plotly >=5.13.0 + + METplus Component: + | METcalcpy, + | METplotpy + + Source: + https://github.com/plotly/plotly.py + + Description: + Makes interactive, publication-quality graphs + +.. dropdown:: pygrib + + METplus Component: + METplus wrappers + + Source: + https://github.com/jswhit/pygrib + + Description: + For reading/writing GRIB files + + Use Case: + | `Multi_Tool: Feature Relative by Lead using Multiple User-Defined Fields <../generated/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics.html>`_ + | `GridStat: Cloud Fractions Using GFS and ERA5 Data <../generated/model_applications/clouds/GridStat_fcstGFS_obsERA5_lowAndTotalCloudFrac.html>`_ + | `GridStat: Cloud Height with Neighborhood and Probabilities <../generated/model_applications/clouds/GridStat_fcstMPAS_obsERA5_cloudBaseHgt.html>`_ + | `GridStat: Cloud Pressure and Temperature Heights <../generated/model_applications/clouds/GridStat_fcstGFS_obsSATCORPS_cloudTopPressAndTemp.html>`_ + | `GridStat: Cloud Fractions Using GFS and MERRA2 Data <../generated/model_applications/clouds/GridStat_fcstGFS_obsMERRA2_lowAndTotalCloudFrac.html>`_ + | `GridStat: Cloud Fractions Using MPAS and SatCORPS Data <../generated/model_applications/clouds/GridStat_fcstMPAS_obsSATCORPS_lowAndTotalCloudFrac.html>`_ + | `GridStat: Cloud Fractions Using MPAS and MERRA2 Data <../generated/model_applications/clouds/GridStat_fcstMPAS_obsMERRA2_lowAndTotalCloudFrac.html>`_ + + +.. dropdown:: pylab + + METplus Component: + Select METplus Use Cases + + Source: + https://pypi.org/project/matplotlib/ + + Description: + A convenience module that bulk imports matplotlib.pyplot (for plotting) and NumPy (for + Mathematics and working with arrays) in a single name space + + Use Case: + | `WeatherRegime Calculation: RegridDataPlane, PcpCombine, and WeatherRegime python code <../generated/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_WeatherRegime.html>`__ + | `WeatherRegime Calculation: GFS and ERA RegridDataPlane, PcpCombine, and WeatherRegime python code <../generated/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime.html>`__ + +.. dropdown:: pymysql >=1.0.2 + + METplus Component: + | METcalcpy, + | METplotpy, + | METdataio + + Source: + https://pypi.org/project/psutil/ + + Description: + A pure-Python MySQL client library, based on PEP 249 + +.. dropdown:: pyproj >=2.3.1 + + METplus Component: + Select METplus Use Cases + + Source: + https://github.com/pyproj4/pyproj/archive/v2.3.1rel.tar.gz + + Description: + Python interface to PROJ (cartographic projections and coordinate transformations library) + + Use Case: + | `GridStat: Python Embedding to read and process ice cover <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover.html>`_ + +.. dropdown:: pyresample + + METplus Component: + Select METplus Use Cases + + METplus Component: + https://github.com/pytroll/pyresample + + Description: + For resampling geospatial image data + + Use Case: + | `GridStat: Python Embedding to read and process SST <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst.html>`_ + | `GridStat: Python Embedding to read and process ice cover <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover.html>`_ + | `GridStat: Python Embedding for sea surface salinity using level 3, 1 day composite obs <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss.html>`_ + | `GridStat: Python Embedding for sea surface salinity using level 3, 8 day mean obs <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss.html>`_ + +.. dropdown:: pytest >=7.2.1 + + METplus Component: + | METcalcpy, + | METplotpy, + | METdataio + + Source: + https://github.com/pytest-dev/pytest/archive/5.2.1.tar.gz + + Description: + A mature full-featured Python testing tool that helps to write better programs + +.. dropdown:: python-kaleido >=0.2.1 + + METplus Component: + | METcalcpy, + | METplotpy + + Source: + https://pypi.org/project/kaleido/ + + Description: + Provides a low-level Python API that is designed to be used by high-level plotting libraries like Plotly + +.. dropdown:: pyyaml >=6.0 + + METplus Component: + | METcalcpy, + | METplotpy, + | METdataio + + Source: + https://github.com/yaml/pyyaml + + Description: + A full-featured YAML framework for the Python programming language + +.. dropdown:: scikit-image >=0.19.3 + + METplus Component: + | METcalcpy, + | METplotpy + + Source: + https://scikit-image.org + + Description: + A collection of algorithms for image processing + +.. dropdown:: scikit-learn >=1.2.2 + + METplus Component: + | Select METplus Use Cases, + | METcalcpy, + | METplotpy + + Source: + https://github.com/scikit-learn/scikit-learn/releases + + Description: + Open Source library for Machine Learning in Python + + Use Case: + | `GridStat: Python Embedding to read and process SST <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst.html>`_ + | `GridStat: Python Embedding to read and process ice cover <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover.html>`_ + | `GridStat: Python Embedding for sea surface salinity using level 3, 1 day composite obs <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss.html>`_ + | `GridStat: Python Embedding for sea surface salinity using level 3, 8 day mean obs <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss.html>`_ + +.. dropdown:: scipy >=1.9.3 + + METplus Component: + | Select METplus Use Cases, + | METcalcpy, + | METplotpy + + Source: + https://www.scipy.org/ + + Description: + Wraps highly-optimized implementations written in low-level languages like Fortran, C, and C++ + + Use Case: + | `Blocking Calculation: ERA RegridDataPlane, PcpCombine, and Blocking python code <../generated/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_Blocking.html>`_ + | `WeatherRegime Calculation: RegridDataPlane, PcpCombine, and WeatherRegime python code <../generated/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_WeatherRegime.html>`__ + | `UserScript: Make OMI plot from calculated MJO indices with ERA obs only <../generated/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_OMI.html>`__ + | `WeatherRegime Calculation: GFS and ERA RegridDataPlane, PcpCombine, and WeatherRegime python code <../generated/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime.html>`__ + | `Blocking Calculation: GFS and ERA RegridDataPlane, PcpCombine, and Blocking python code <../generated/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking.html>`_ + | `UserScript: Make a Phase Diagram plot from input RMM or OMI <../generated/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_PhaseDiagram.html>`__ + | `UserScript: Make OMI plot from calculated MJO indices with ERA obs and GFS fcst <../generated/model_applications/s2s_mjo/UserScript_fcstGFS_obsERA_OMI.html>`__ + | `UserScript: Make RMM plots from calculated MJO indices <../generated/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_RMM.html>`__ + +.. dropdown:: sklearn + + METplus Component: + Select METplus Use Cases + + Source: + https://www.kite.com/python/docs/sklearn + + Description: + Simple and efficient tools for predictive data analysis + + Description: + | `WeatherRegime Calculation: RegridDataPlane, PcpCombine, and WeatherRegime python code <../generated/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_WeatherRegime.html>`__ + | `WeatherRegime Calculation: GFS and ERA RegridDataPlane, PcpCombine, and WeatherRegime python code <../generated/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime.html>`__ + + +.. dropdown:: xarray >=2023.1.0 + + METplus Component: + | Select METplus Use Cases, + | METcalcpy, + | METplotpy + + Source: + https://xarray.pydata.org/en/v0.17.0/ + + Description: + Makes working with labelled multi-dimensional arrays simple, efficient, and fun + + Use Case: + For using MET Python embedding functionality in use cases + +.. dropdown:: xesmf + + METplus Component: + Select METplus Use Cases + + Source: + NOTE: The xesmf package will not be installed on WCOSS2 and there is an open GitHub issue to + replace the package in the use case that uses it: + https://github.com/dtcenter/METplus/issues/1314 + + Description: + For regridding + + Use Case: + `PlotDataPlane: Python Embedding of tripolar coordinate file <../generated/model_applications/marine_and_cryosphere/PlotDataPlane_obsHYCOM_coordTripolar.html>`_ + + +.. dropdown:: yaml + + METplus Component: + | METcalcpy, + | METplotpy + + Source: + https://pypi.org/project/PyYAML/ + + Description: + To load, read, and write YAML files with PyYAML + diff --git a/docs/Users_Guide/index.rst b/docs/Users_Guide/index.rst index e5afd2f3df..345ec91e1e 100644 --- a/docs/Users_Guide/index.rst +++ b/docs/Users_Guide/index.rst @@ -88,7 +88,7 @@ is sponsored by NSF. glossary references statistics_list - + appendixA .. Indices and tables ================== diff --git a/docs/Users_Guide/installation.rst b/docs/Users_Guide/installation.rst index 3910bdca95..866060eabd 100644 --- a/docs/Users_Guide/installation.rst +++ b/docs/Users_Guide/installation.rst @@ -43,9 +43,9 @@ Software Requirements The following software is required to run METplus Wrappers: -- Python 3.8.6 or above +- Python |python_version| or above -- MET version 11.0.0 or above - +- MET version |met_version| or above - For information on installing MET please see the `Software Installation/Getting Started `_ section of the MET User's Guide. @@ -61,6 +61,8 @@ The following software is required to run METplus Wrappers: - convert (ImageMagick) utility - if generating images from the Postscript output +.. _python_package_requirements: + Python Package Requirements --------------------------- diff --git a/docs/Users_Guide/overview.rst b/docs/Users_Guide/overview.rst index 509394c58f..8ebbccc09e 100644 --- a/docs/Users_Guide/overview.rst +++ b/docs/Users_Guide/overview.rst @@ -41,11 +41,13 @@ researchers to test their own enhancements to models and providing a capability for the DTC to evaluate the strengths and weaknesses of advances in NWP prior to operational implementation. -METplus Wrappers will also be available to DTC visitors and the NOAA Unified Forecast System (UFS) and NCAR System for Integrated Modeling of the Atmosphere (SIMA) modeling communities for testing and evaluation of new model capabilities, -applications in new environments, and so on. The METplus Wrappers -release schedule is coincident with the MET release schedule and the -METplus Wrappers major release number is six less than the MET major -release number (e.g. MET 8.X is released with METplus Wrappers 2.X). +METplus Wrappers will also be available to DTC visitors and the NOAA +Unified Forecast System (UFS) and NCAR System for Integrated Modeling +of the Atmosphere (SIMA) modeling communities for testing and evaluation +of new model capabilities, applications in new environments, and so on. +The METplus Wrappers release schedule is coincident with the MET release +schedule and the METplus Wrappers major release number is six less than +the MET major release number (e.g. MET 8.X is released with METplus Wrappers 2.X). METplus Wrappers goals and design philosophy ============================================ @@ -67,7 +69,9 @@ their verification environments. Wrappers can be run individually, or as a group of wrappers that represent a sequence of MET processes. New wrappers can readily be added to the METplus Wrappers package due to this modular design. Currently, METplus Wrappers can easily be applied -by any user on their own computer platform that supports Python 3.8. We have deprecated support to Python 2.7. +by any user on their own computer platform that supports +Python |python_version|. + The METplus Wrappers code and documentation is maintained by the DTC in Boulder, Colorado. METplus Wrappers is freely available to the modeling, @@ -85,622 +89,6 @@ METplus Wrappers configuration files. Some Python wrappers do not correspond to a particular MET tool, but wrap utilities to extend METplus functionality. -.. _python_requirements_table: - -METplus Components Python Requirements -====================================== - -.. Number of characters per line: - Name - no more that 13 characters - Version - no more than 6 characters - METplus component - no more than 17 characters - Source - no more than 8 characters - Description - no more than 22 (was 20) characters - Use Cases - no more than 17 (was 10) characters - -.. role:: raw-html(raw) - :format: html - -.. list-table:: METplus Components Python Requirements - :widths: auto - :header-rows: 1 - - * - Name - - Version - - METplus Component - - Source - - Description - - Use Cases (only applicable for METplus wrappers component)(followed by - python package name) - * - Python 3.10.4+ - - - - METplus wrappers, :raw-html:`
` - METcalcpy, :raw-html:`
` - METplotpy, :raw-html:`
` - METdataio - - - - - - - * - cartopy - - >=0.21.1 - - METplus wrappers, :raw-html:`
` - METcalcpy, :raw-html:`
` - METplotpy - - https://scitools.org.uk/cartopy/docs/latest/ - - Designed for :raw-html:`
` - geospatial data :raw-html:`
` - processing in :raw-html:`
` - order to produce :raw-html:`
` - maps and other :raw-html:`
` - geospatial data :raw-html:`
` - analyses - - `TCGen: Genesis Density Function (GDF) - and Track Density Function (TDF) - (cartopy) - <../generated/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF.html>`_ :raw-html:`
` - `CyclonePlotter: Extra-TC Tracker - and Plotting Capabilities - (cartopy) - <../generated/model_applications/tc_and_extra_tc/CyclonePlotter_fcstGFS_obsGFS_UserScript_ExtraTC.html>`_ - * - cfgrib - - - - METplus wrappers - - https://pypi.org/project/cfgrib/ - - map GRIB files :raw-html:`
` - to the NetCDF :raw-html:`
` - Common Data Model :raw-html:`
` - following the :raw-html:`
` - CF Convention :raw-html:`
` - using ecCodes - - `Multi_Tool: - Feature Relative by Lead using - Multiple User-Defined Fields - (cfgrib) - <../generated/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics.html>`_ - * - cmocean - - - - METcalcpy, :raw-html:`
` - METplotpy - - https://pypi.org/project/cmocean/ - - contains colormaps :raw-html:`
` - for commonly-used :raw-html:`
` - oceanographic variables - - - * - dateutil - - >=2.8.2 - - METplus wrappers - - https://github.com/dateutil/dateutil/releases - - provides powerful :raw-html:`
` - extensions to the :raw-html:`
` - standard datetime :raw-html:`
` - module - - Most - * - eofs - - - - METplus wrappers, :raw-html:`
` - METcalcpy, :raw-html:`
` - METplotpy - - https://pypi.org/project/eofs/ - - empirical orthogonal :raw-html:`
` - functions analysis of :raw-html:`
` - spatial-temporal data - - `WeatherRegime Calculation: - RegridDataPlane, - PcpCombine, - and WeatherRegime python code - (eofs) - <../generated/model_applications/s2s/UserScript_obsERA_obsOnly_WeatherRegime.html>`_ :raw-html:`
` - `WeatherRegime Calculation: - GFS and ERA RegridDataPlane, - PcpCombine, and - WeatherRegime python code - (eofs) - <../generated/model_applications/s2s/UserScript_fcstGFS_obsERA_WeatherRegime.html>`_ - * - h5py - - - - METplus wrappers - - https://github.com/h5py/h5py - - Pythonic interface :raw-html:`
` - to the HDF5 :raw-html:`
` - binary data format - - `PCPCombine: - Python Embedding Use Case - (h5py) - <../generated/met_tool_wrapper/PCPCombine/PCPCombine_python_embedding.html>`_ - * - imutils - - >=0.5.4 - - METplotpy :raw-html:`
` - - https://pypi.org/project/imutils/ - - A series of convenience :raw-html:`
` - functions to make basic :raw-html:`
` - image processing :raw-html:`
` - functions such as :raw-html:`
` - translation, rotation, :raw-html:`
` - resizing, skeletonization, :raw-html:`
` - displaying Matplotlib :raw-html:`
` - images, sorting contours, :raw-html:`
` - detecting edges, :raw-html:`
` - and much more easier - - - * - imageio - - - - METcalcpy, :raw-html:`
` - METplotpy - - https://pypi.org/project/imageio/ - - provides an easy :raw-html:`
` - interface to read :raw-html:`
` - and write a wide :raw-html:`
` - range of image data, :raw-html:`
` - including animated :raw-html:`
` - images, volumetric data, :raw-html:`
` - and scientific formats - - - * - lxml - - >=4.9.1 - - METcalcpy, :raw-html:`
` - METplotpy, :raw-html:`
` - METdataio - - https://pypi.org/project/lxml/ - - a Pythonic binding for :raw-html:`
` - the C libraries :raw-html:`
` - libxml2 and libxslt - - - * - matplotlib - - >=3.6.3 - - METplus wrappers, :raw-html:`
` - METcalcpy, :raw-html:`
` - METplotpy - - https://matplotlib.org/stable/users/installing/index.html - - a comprehensive library :raw-html:`
` - for creating static, :raw-html:`
` - animated, and :raw-html:`
` - interactive visualizations - - `UserScript: - Make OMI plot from - calculated MJO indices (obs only) - (matplotlib) - <../generated/model_applications/s2s/UserScript_obsERA_obsOnly_OMI.html>`_ :raw-html:`
` - `TCGen: - Genesis Density Function (GDF) - and Track Density Function (TDF) - (matplotlib) - <../generated/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF.html>`_ :raw-html:`
` - `UserScript: - Make a Phase Diagram plot - from input RMM or OMI - (matplotlib) - <../generated/model_applications/s2s/UserScript_obsERA_obsOnly_PhaseDiagram.html>`_ :raw-html:`
` - `UserScript: - Make OMI plot from - calculated MJO indices - (matplotlib) - <../generated/model_applications/s2s/UserScript_fcstGFS_obsERA_OMI.html>`_ :raw-html:`
` - `UserScript: - Make RMM plots from - calculated MJO indices - (matplotlib) - <../generated/model_applications/s2s/UserScript_obsERA_obsOnly_RMM.html>`_ :raw-html:`
` - `CyclonePlotter: - Extra-TC Tracker and - Plotting Capabilities - (matplotlib) - <../generated/model_applications/tc_and_extra_tc/CyclonePlotter_fcstGFS_obsGFS_UserScript_ExtraTC.html>`_ :raw-html:`
` - * - metcalcpy - - - - METplus wrappers, :raw-html:`
` - METcalcpy, :raw-html:`
` - METplotpy - - https://github.com/dtcenter/METcalcpy/releases - - a Python version of the :raw-html:`
` - statistics calculation :raw-html:`
` - functionality of :raw-html:`
` - METviewer, METexpress, :raw-html:`
` - plotting packages in :raw-html:`
` - METplotpy and is a :raw-html:`
` - stand-alone package for :raw-html:`
` - any other application - - `UserScript: - Make a Hovmoeller plot - (metcalcpy) - <../generated/model_applications/s2s/UserScript_obsPrecip_obsOnly_Hovmoeller.html>`_ :raw-html:`
` - `UserScript: - Make a Cross Spectra plot - (metcalcpy) - <../generated/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF.html>`_ :raw-html:`
` - `Grid-Stat: - Verification of TC forecasts - against merged TDR data - (metcalcpy) - <../generated/model_applications/s2s/UserScript_obsPrecip_obsOnly_CrossSpectraPlot.html>`_ :raw-html:`
` - `UserScript: - Calculate the Difficulty Index - (metcalcpy) - <../generated/model_applications/medium_range/UserScript_fcstGEFS_Difficulty_Index.html>`_ :raw-html:`
` - `UserScript: - Make zonal and meridonial means - (metcalcpy) - <../generated/model_applications/s2s/UserScript_obsERA_obsOnly_Stratosphere.html>`_ :raw-html:`
` - * - metplotpy - - - - METplus wrappers - - https://github.com/dtcenter/METplotpy/releases - - contains packages for :raw-html:`
` - plotting in METplus as :raw-html:`
` - stand-alone, or part of :raw-html:`
` - METplus use case, :raw-html:`
` - METplus wrappers, :raw-html:`
` - METexpress, :raw-html:`
` - or METviewer - - `UserScript: - Make a Hovmoeller plot - (metplotpy) - <../generated/model_applications/s2s/UserScript_obsPrecip_obsOnly_Hovmoeller.html>`_ :raw-html:`
` - `UserScript: - Make a Cross Spectra plot - (metplotpy) - <../generated/model_applications/s2s/UserScript_obsPrecip_obsOnly_CrossSpectraPlot.html>`_ :raw-html:`
` - `UserScript: - Calculate the Difficulty Index - (metplotpy) - <../generated/model_applications/medium_range/UserScript_fcstGEFS_Difficulty_Index.html>`_ :raw-html:`
` - `TCGen: - Genesis Density Function (GDF) - and Track Density Function (TDF) - (metplotpy) - <../generated/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF.html>`_ - * - metpy - - >=1.4.0 - - METplus wrappers - - https://www.unidata.ucar.edu/software/metpy/ - - a collection of tools :raw-html:`
` - in Python for reading, :raw-html:`
` - visualizing, and :raw-html:`
` - performing calculations :raw-html:`
` - with weather data - - `Multi_Tool: - Feature Relative by Lead using - Multiple User-Defined Fields - (metpy) - <../generated/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics.html>`_ - * - nc-time-axis - - 1.4 - - METplotpy :raw-html:`
` - stratosphere_diagnostics - - https://github.com/SciTools/nc-time-axis - - extension to cftime :raw-html:`
` - \**REQUIRES Python 3.7 - - - * - netCDF4 - - >=1.6.2 - - METplus wrappers, :raw-html:`
` - METcalcpy, :raw-html:`
` - METplotpy - - https://unidata.github.io/netcdf4-python/ - - a Python interface to :raw-html:`
` - the netCDF C library - - For using MET Python embedding functionality in use cases - * - numpy - - >=1.24.2 - - METplus wrappers, :raw-html:`
` - METcalcpy, :raw-html:`
` - METplotpy, :raw-html:`
` - METdataio - - https://numpy.org/ - - NumPy offers :raw-html:`
` - comprehensive :raw-html:`
` - mathematical functions, :raw-html:`
` - random number generators, :raw-html:`
` - linear algebra routines, :raw-html:`
` - Fourier transforms, and more. - - For using MET Python embedding functionality in use cases - * - pandas - - >=1.5.2 - - METplus wrappers, :raw-html:`
` - METcalcpy, :raw-html:`
` - METplotpy, :raw-html:`
` - METdataio - - https://pypi.org/project/pandas - - a fast, powerful, :raw-html:`
` - flexible and easy to use :raw-html:`
` - open source data analysis :raw-html:`
` - and manipulation tool, :raw-html:`
` - built on top of the :raw-html:`
` - Python programming :raw-html:`
` - language - - For using MET Python embedding functionality in use cases - * - pint - - >=0.20.1 - - METcalcpy - - https://github.com/hgrecco/pint - - Python package to define, :raw-html:`
` - operate and manipulate :raw-html:`
` - physical quantities - - - * - plotly - - >=5.13.0 - - METcalcpy, :raw-html:`
` - METplotpy - - https://github.com/plotly/plotly.py - - makes interactive, :raw-html:`
` - publication-quality graphs - - - * - pygrib - - - - METplus wrappers - - https://github.com/jswhit/pygrib - - for reading/writing :raw-html:`
` - GRIB files - - `Multi_Tool: - Feature Relative by Lead - using Multiple User-Defined Fields - (pygrib) - <../generated/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics.html>`_ :raw-html:`
` - `GridStat: - Cloud Fractions Using GFS - and ERA5 Data - (pygrib) - <../generated/model_applications/clouds/GridStat_fcstGFS_obsERA5_lowAndTotalCloudFrac.html>`_ :raw-html:`
` - `GridStat: - Cloud Height with Neighborhood - and Probabilities - (pygrib) - <../generated/model_applications/clouds/GridStat_fcstMPAS_obsERA5_cloudBaseHgt.html>`_ :raw-html:`
` - `GridStat: - Cloud Pressure and - Temperature Heights - (pygrib) - <../generated/model_applications/clouds/GridStat_fcstGFS_obsSATCORPS_cloudTopPressAndTemp.html>`_ :raw-html:`
` - `GridStat: - Cloud Fractions Using GFS - and MERRA2 Data - (pygrib) - <../generated/model_applications/clouds/GridStat_fcstGFS_obsMERRA2_lowAndTotalCloudFrac.html>`_ :raw-html:`
` - `GridStat: - Cloud Fractions Using MPAS - and SatCORPS Data - (pygrib) - <../generated/model_applications/clouds/GridStat_fcstMPAS_obsSATCORPS_lowAndTotalCloudFrac.html>`_ :raw-html:`
` - `GridStat: - Cloud Fractions Using MPAS - and MERRA2 Data - (pygrib) - <../generated/model_applications/clouds/GridStat_fcstMPAS_obsMERRA2_lowAndTotalCloudFrac.html>`_ - * - pylab - - - - METplus wrappers - - https://pypi.org/project/matplotlib/ - - a convenience module :raw-html:`
` - that bulk imports :raw-html:`
` - matplotlib.pyplot (for :raw-html:`
` - plotting) and NumPy (for :raw-html:`
` - Mathematics and working :raw-html:`
` - with arrays) in a :raw-html:`
` - single name space - - `WeatherRegime Calculation: - RegridDataPlane, PcpCombine, - and WeatherRegime python code - (pylab) - <../generated/model_applications/s2s/UserScript_obsERA_obsOnly_WeatherRegime.html>`_ :raw-html:`
` - `WeatherRegime Calculation: - GFS and ERA RegridDataPlane, - PcpCombine, and WeatherRegime - python code - (pylab) - <../generated/model_applications/s2s/UserScript_fcstGFS_obsERA_WeatherRegime.html>`_ - * - pymysql - - >=1.0.2 - - METcalcpy, :raw-html:`
` - METplotpy, :raw-html:`
` - METdataio - - https://pypi.org/project/psutil/ - - a pure-Python MySQL :raw-html:`
` - client library, :raw-html:`
` - based on PEP 249 - - - * - pyproj - - >=2.3.1 - - METplus wrappers - - https://github.com/pyproj4/pyproj/archive/v2.3.1rel.tar.gz - - Python interface to PROJ :raw-html:`
` - (cartographic projections and :raw-html:`
` - coordinate transformations library) - - `GridStat: - Python Embedding to read - and process ice cover - (pyproj) - <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover.html>`_ - * - pyresample - - - - METplus wrappers - - https://github.com/pytroll/pyresample - - for resampling geospatial :raw-html:`
` - image data - - `GridStat: - Python Embedding to read and - process SST - (pyresample) - <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst.html>`_ :raw-html:`
` - `GridStat: - Python Embedding to read and - process ice cover - (pyresample) - <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover.html>`_ :raw-html:`
` - `GridStat: - Python Embedding for sea surface salinity - using level 3, 1 day composite obs - (pyresample) - <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss.html>`_ :raw-html:`
` - `GridStat: - Python Embedding for sea surface salinity - using level 3, 8 day mean obs - (pyresample) - <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss.html>`_ - * - pytest - - >=7.2.1 - - METcalcpy, :raw-html:`
` - METplotpy, :raw-html:`
` - METdataio - - https://github.com/pytest-dev/pytest/archive/5.2.1.tar.gz - - a mature full-featured :raw-html:`
` - Python testing tool that :raw-html:`
` - helps you write better :raw-html:`
` - programs - - - * - python-kaleido - - >=0.2.1 - - METcalcpy, :raw-html:`
` - METplotpy - - https://pypi.org/project/kaleido/ - - provides a low-level :raw-html:`
` - Python API that is :raw-html:`
` - designed to be used by :raw-html:`
` - high-level plotting :raw-html:`
` - libraries like Plotly - - - * - pyyaml - - >=6.0 - - METcalcpy, :raw-html:`
` - METplotpy, :raw-html:`
` - METdataio - - https://github.com/yaml/pyyaml - - a full-featured YAML :raw-html:`
` - framework for the Python :raw-html:`
` - programming language - - - * - scikit-image - - >=0.19.3 - - METcalcpy, :raw-html:`
` - METplotpy - - https://scikit-image.org - - a collection of :raw-html:`
` - algorithms for image :raw-html:`
` - processing - - - * - scikit-learn - - >=1.2.2 - - METplus wrappers, :raw-html:`
` - METcalcpy, :raw-html:`
` - METplotpy - - https://github.com/scikit-learn/scikit-learn/releases - - Open Source library for :raw-html:`
` - Machine Learning in Python - - `GridStat: - Python Embedding to read and process SST - (scikit-learn) - <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst.html>`_ :raw-html:`
` - `GridStat: - Python Embedding to read and process ice cover - (scikit-learn) <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover.html>`_ :raw-html:`
` - `GridStat: - Python Embedding for sea surface salinity using level 3, - 1 day composite obs - (scikit-learn) - <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss.html>`_ :raw-html:`
` - `GridStat: - Python Embedding for sea surface salinity using level 3, - 8 day mean obs - (scikit-learn) - <../generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss.html>`_ - * - scipy - - >=1.9.3 - - METplus wrappers, :raw-html:`
` - METcalcpy, :raw-html:`
` - METplotpy - - https://www.scipy.org/ - - wraps highly-optimized :raw-html:`
` - implementations written :raw-html:`
` - in low-level languages :raw-html:`
` - like Fortran, C, and C++ - - `Blocking Calculation: - ERA RegridDataPlane, - PcpCombine, and - Blocking python code - (scipy) - <../generated/model_applications/s2s/UserScript_obsERA_obsOnly_Blocking.html>`_ :raw-html:`
` - `WeatherRegime Calculation: - RegridDataPlane, PcpCombine, and WeatherRegime python code - (scipy) - <../generated/model_applications/s2s/UserScript_obsERA_obsOnly_WeatherRegime.html>`_ :raw-html:`
` - `UserScript: - Make OMI plot from calculated MJO indices - (obs only) (scipy) - <../generated/model_applications/s2s/UserScript_obsERA_obsOnly_OMI.html>`_ :raw-html:`
` - `WeatherRegime Calculation: - GFS and ERA RegridDataPlane, - PcpCombine, and - WeatherRegime python code - (scipy) - <../generated/model_applications/s2s/UserScript_fcstGFS_obsERA_WeatherRegime.html>`_ :raw-html:`
` - `Blocking Calculation: - GFS and ERA RegridDataPlane, - PcpCombine, and - Blocking python code - (scipy) - <../generated/model_applications/s2s/UserScript_fcstGFS_obsERA_Blocking.html>`_ :raw-html:`
` - `UserScript: - Make a Phase Diagram plot from input RMM or OMI - (scipy) - <../generated/model_applications/s2s/UserScript_obsERA_obsOnly_PhaseDiagram.html>`_ :raw-html:`
` - `UserScript: - Make OMI plot from calculated MJO indices - (scipy) - <../generated/model_applications/s2s/UserScript_fcstGFS_obsERA_OMI.html>`_ :raw-html:`
` - `UserScript: - Make RMM plots from calculated MJO indices - (scipy) - <../generated/model_applications/s2s/UserScript_obsERA_obsOnly_RMM.html>`_ - * - sklearn - - - - METplus wrappers - - https://www.kite.com/python/docs/sklearn - - Simple and efficient :raw-html:`
` - tools for predictive :raw-html:`
` - data analysis - - `WeatherRegime Calculation: - RegridDataPlane, PcpCombine, and WeatherRegime python code - (sklearn) - <../generated/model_applications/s2s/UserScript_obsERA_obsOnly_WeatherRegime.html>`_ :raw-html:`
` - `WeatherRegime Calculation: - GFS and ERA RegridDataPlane, PcpCombine, and WeatherRegime python code - (sklearn) - <../generated/model_applications/s2s/UserScript_fcstGFS_obsERA_WeatherRegime.html>`_ - * - xarray - - >=2023.1.0 - - METplus wrappers, :raw-html:`
` - METcalcpy, :raw-html:`
` - METplotpy - - https://xarray.pydata.org/en/v0.17.0/ - - makes working with :raw-html:`
` - labelled :raw-html:`
` - multi-dimensional arrays :raw-html:`
` - simple, efficient, :raw-html:`
` - and fun - - For using MET Python embedding functionality in use cases - * - xesmf - - - - METplus wrappers - - NOTE: The xesmf package :raw-html:`
` - will not be installed :raw-html:`
` - on WCOSS2 and there is :raw-html:`
` - an open GitHub issue to :raw-html:`
` - replace the package in :raw-html:`
` - the use case that uses it: :raw-html:`
` - https://github.com/dtcenter/METplus/issues/1314 - - for regridding - - `PlotDataPlane: - Python Embedding of - tripolar coordinate file - (xesmf) - <../generated/model_applications/marine_and_cryosphere/PlotDataPlane_obsHYCOM_coordTripolar.html>`_ - * - yaml - - - - METcalcpy, :raw-html:`
` - METplotpy - - https://pypi.org/project/PyYAML/ - - to load, read, and write :raw-html:`
` - YAML files with PyYAML - - - Future development plans ======================== diff --git a/docs/conf.py b/docs/conf.py index 35a1790c21..661d93e0bc 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -19,11 +19,14 @@ print(sys.path) from metplus import __version__, __release_date__ +from metplus import __python_version__ as python_version # -- Project information ----------------------------------------------------- project = 'METplus' +met_version = '12.0.0' + author = 'UCAR/NCAR, NOAA, CSU/CIRA, and CU/CIRES' # list of contributing authors currently involved with the project @@ -217,10 +220,13 @@ # -- Intersphinx control --------------------------------------------------------------- intersphinx_mapping = {'numpy':("https://docs.scipy.org/doc/numpy/", None)} +# -- Replace values in docs ------------------------------------------------------------ rst_epilog = f""" .. |copyright| replace:: {copyright} .. |author_list| replace:: {author_list} .. |release_date| replace:: {release_date} .. |release_year| replace:: {release_year} .. |release_info| replace:: {release_info} +.. |python_version| replace:: {python_version} +.. |met_version| replace:: {met_version} """ diff --git a/metplus/__init__.py b/metplus/__init__.py index 2696e90ad4..02a6079cfc 100644 --- a/metplus/__init__.py +++ b/metplus/__init__.py @@ -21,6 +21,7 @@ def get_metplus_info(info_rel_path): __version__ = get_metplus_version() __release_date__ = get_metplus_release_date() +__python_version__ = get_python_version() # import util and wrappers from .util import *