o ����n�g�����������������������@���sx���d�dl�m�Z�mZ�d�dlZd�dlZG�dd��d�ZG�dd��d�ZG�dd��d�ZG�d d ��d �Z G�dd��d�Z G�d d��d�ZdS�)�����)�datetime� timedeltaNc�������������������@�������e�Zd�Zdd��ZdS�)�Togglec�����������������C���sx���i�dd�dd�dd�dd�dd�d d�d d�dd �dd�dd�dd�dd�dd�dd�dd�dd�dd�ddi�|�_�dS�)zx Dictionary with values that can be adjusted by the user to change a particular plot setting. Zx_min_limitg��������Zx_max_limitg�������@Z x_lim_lockF�y_min_limit�y_max_limit� y_lim_lock�ci_levgffffff�?�bs_nrepi���� bs_methodZ FORECASTS�bs_min_samp�����display_averages�sample_equalizationT�keep_shared_events_only�clear_prune_directory�plot_logo_left�plot_logo_right�zoom_logo_leftg�������?�zoom_logo_rightN)� plot_settings��self��r����;/lfs/h1/ops/prod/packages/evs.v1.0.19/ush/rtofs/settings.py�__init__���sJ����������� � ��� ������zToggle.__init__N��__name__� __module__�__qualname__r���r���r���r���r���r�����������r���c�������������������@���r���)� Templatesc�����������������C���s ���d|�_�dS�)a9�� Custom template used to find .stat files in OUTPUT_BASE_DIR. output_base_template must be a string. Use curly braces {} to enclose variable names that will be substituted with the appropriate value according to the plotting request. Current possible variable names: Example substituted values: ================================ =========================== RUN_CASE grid2obs RUN_TYPE conus_sfc LINE_TYPE sl1l2 VX_MASK conus FCST_VAR_NAME VIS VAR_NAME VISsfc MODEL HRRR EVAL_PERIOD LAST30DAYS valid?fmt=%Y%m or VALID?fmt=%Y%m 202206 Additionally, variable names may have the _LOWER or _UPPER suffix to substitute a lower- or upper-case conversion of the desired string. Finally, use asterisk * as a wildcard to match with and use data from several .stat files, or for portions of the .stat file name that vary but are inconsequential. Example: "{RUN_CASE_LOWER}/{MODEL}/{valid?fmt=%Y%m}/{MODEL}_{valid?fmt=%Y%m%d}*" z�{MODEL_LOWER}.{valid?fmt=%Y%m%d}/evs.stats.{MODEL_LOWER}.{OBTYPE_LOWER}.{RUN_CASE_LOWER}_{VAR_NAME_LOWER}.v{valid?fmt=%Y%m%d}.statN)�output_base_templater���r���r���r���r���#���s��� zTemplates.__init__Nr���r���r���r���r���r!���"���r ���r!���c�������������������@���r���)�Pathsc�����������������C���s0���t�j�t�jd�d�|�_t�j�t�jd�d�|�_dS�)z� Custom paths to left and right logos. Referenced if plot_logo_left and plot_logo_right, in the Toggle class, are set to True �FIX_DIRznoaa.pngznws.pngN)�os�path�join�environ�logo_left_path�logo_right_pathr���r���r���r���r���E���s���zPaths.__init__Nr���r���r���r���r���r#���D���r ���r#���c�������������������@���r���)�Presetsc�����������������C���s���t����tdd���d�t����tdd���d�t����tdd���d�t����tdd���d�d�t����tdd���d�t����tdd���d�t����tdd���d�t����tdd���d�d�t����tdd���d�t����tdd���d�t����tdd���d�t����tdd���d�d�t����tdd���d�t����tdd���d�t����tdd���d�t����tdd���d�d�t����td d���d�t����tdd���d�t����td d���d�t����tdd���d�d�d dd dd�dd dd d�t����tdd���d�t�����d�t����tdd���d�t�����d�d�t�����d�t�����d�t�����d�t�����d�d�t�����d�t�����d�t�����d�t�����d�d�t�����d�t�����d�t�����d�t�����d�d�d�|�_dS�)a��� Evaluation periods that are requested regularly can be defined here and then requested as the 'EVAL_PERIOD' variable in the plotting configuration file. Additional presets can be added, but must look like this: 'NAME_OF_PRESET': { 'valid_beg': 'YYYYmmdd', 'valid_end': 'YYYYmmdd', 'init_beg': 'YYYYmmdd', 'init_end': 'YYYYmmdd', }, Dates must be in YYYYmmdd format. A date can be written directly as a string, or may be defined using python's built-in datetime and/or timedelta (use td) libraries, which are already imported. Check the online documentation to learn how to use these libraries. �Z���)�daysz%Y%m%d����)� valid_beg� valid_end�init_beg�init_end�<���r �����������Z20200101Z20201231Z20210101Z20211231im��z%Y1201z%Y0228z%Y0301z%Y0531z%Y0601z%Y0831z%Y0901z%Y1130)Z last90daysZ last60daysZ last30daysZ last7daysZ last3daysZ2020Z2021ZDJFZMAMZJJAZSONN)r����now�td�strftime�date_presetsr���r���r���r���r���O���sp���������������zPresets.__init__Nr���r���r���r���r���r+���N���r ���r+���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)� ModelSpecsc�������������� ���C���s���i�dddd��dddd��dd d d��ddd d��dddd��dddd��dd d d��dddd��ddd d��dddd��dddd��dd d d��dddd��ddd d��dddd��dddd��dd d d��i�dddd��ddd d��d!d!d"d��d#d#d$d��d%d%d&d��d'd'd(d��d)ddd��d*dd d��d+d!d"d��d,d#d$d��d-d%d&d��d.d'd(d��d/ddd��d0dd d��d1d!d"d��d2d#d$d��d3d%d&d���i�d4d'd(d��d5ddd��d6dd d��d7d!d"d��d8d#d$d��d9d%d&d��d:d'd(d��d;ddd��d<dd d��d=d!d"d��d>d#d$d��d?d%d&d��d@d'd(d��dAdAdBd��dCddd��dDddd��dEd d d���i�dFdd d��dGddd��dHddd��dIddd��dJd d d��dKdd d��dLddd��dMdNdOd��dPdQdRd��dSdQdRd��dTdQdRd��dUdQdRd��dVdQdRd��dWdXdWd��dYdXdWd��dZdXdWd��d[dXdWd���i�d\dXdWd��d]d^d_d��d`d^d_d��dad^d_d��dbd^d_d��dcd^d_d��dddd��dddded��dfddd��dgdhdhd��didhdhd��djdkdkd��dldmdmd��dndmdmd��dododpd��dqdrdrd���|�_� �i�dsdtdudvdwdxdy��dzd{d|d}dwdxdy��d~dd�d}dwdxdy��d�d�d�d}dwdxdy��d�d�dudvdwdxdy��d�d�dudvdwdxdy��d�d�d�dvdwdxdy��d�d�d�dvdwdxdy��d�d�d�dvdwdxdy��d�d�dudvdwdxdy��d�d�d�d�dwd�dy��dXd�dudvdwdxdy��dNd�dudvdwdxdy��d^d�d�d}d�dxdy��dQd�d�d}d�dxdy��d�d�dudvdwdxdy��d�d�dudvdwdxdy��i�dd�dudvdwdxdy��dd�dudvdwdxdy��d d�dudvdwdxdy��ddtdudvdwdxdy��dd�dudvdwdxdy��d#d�dudvdwdxdy��d!d�dudvdwdxdy��d'dtd�d}d�dxdy��dhd{dudvdwdxdy��dkddudvdwdxdy��dddudvdwdxdy��dod�dudvdwdxdy��d�dtdudvdwd�dy��d�dtdudvd�d�dy��d�dtdudvdwd�dy��dAdtdudvdwd�dy��d�d{dudvdwdxdy���ddudvdwdxdy�d�dudvdwdxdy�d�dudvdwdxdy�d���|�_d�S�)�a��� The model_alias dictionary defines the appropriate key to be used when finding settings and the long name for certain requested models that may have several possible names in MET .stat files and file names. e.g., AKARW and CONUSARW, although they are different, may use the same line/marker settings and the same long name on plots, and so both can be defined here as aliases of the same model settings, if desired. ZARWZHRW_ARWz HiResW ARW)�settings_key� plot_nameZARW2ZHRW_ARW2zHiResW ARW2ZFV3ZHRW_FV3z HiResW FV3ZNMMBZHRW_NMMBzHiResW NMMBZAKARWZAKARW2ZAKFV3ZAKNESTZNAM_NESTzNAM NestZAKNMMBZCONUSARWZ CONUSARW2ZCONUSFV3Z CONUSNESTZ CONUSNMMBZ hireswarwZ hireswarwmem2Z hireswfv3Z HREF_MEANz HREF MeanZ HREF_AVRGzHREF Average of MEAN and PMMNZ HREF_LPMMz#HREF Local Probability-Matched MeanZ HREF_PMMNzHREF Probability-Matched MeanZ HREF_PROBzHREF ProbabilityZ HREFX_MEANzHREF-X MeanZCONUSHREF_MEANZCONUSHREF_AVRGZCONUSHREF_LPMMZCONUSHREF_PMMNZCONUSHREF_PROBZCONUSHREFX_MEANZAKHREF_MEANZAKHREF_AVRGZAKHREF_LPMMZAKHREF_PMMNZAKHREF_PROBZAKHREFX_MEANZPRHREF_MEANZPRHREF_AVRGZPRHREF_LPMMZPRHREF_PMMNZPRHREF_PROBZPRHREFX_MEANZHIHREF_MEANZHIHREF_AVRGZHIHREF_LPMMZHIHREF_PMMNZHIHREF_PROBZHIHREFX_MEANZ NARRE_MEANz NARRE MeanZHIARWZHIARW2ZHIFV3ZHINMMBZ HAWAIINESTZPRARWZPRARW2ZPRFV3ZPRNMMBZ PRICONESTZFV3LAMDAZLAMDAz FV3LAM-DAZ FV3LAMDAXZLAMDAXz FV3LAM-DAXZFV3LAMDAXAKZFV3LAMDAXHIZFV3LAMDAXNAZFV3LAMDAXPRZFV3LAMZLAMZFV3LAMAKZFV3LAMHIZFV3LAMNAZFV3LAMPRZFV3LAMXZLAMXzFV3LAM-XZ FV3LAMXAKZ FV3LAMXHIZ FV3LAMXNAZ FV3LAMXPRZNAM_FIREWXNESTzNAM Fire Wx NestZnamnestZHRRRAKZHRRRZhrrrZNAMNAZNAMZRAPAKZRAPZRAPNAZRRFS_AzRRFS-AZwafsZWAFSZmodel1z#000000�o�����solidg������@)�color�marker� markersize� linestyle� linewidthZmodel2z#fb2020�^����Zmodel3z#1e3cff�XZmodel4z#00dc00�PZmodel5z#e69f00Zmodel6z#56b4e9Zmodel7z#696969�sZmodel8z#8400c8�DZmodel9z#d269c1Zmodel10z#f0e492�obsz#aaaaaa�Noner���g������@�dashedZHWRFZHMONZGFS�������@Z GFS_DASHEDZGEFSZEC)ZCMCZCTCXZOFCLN)�model_alias�model_settingsr���r���r���r���r�������s������� �� ����������!��%��)��-��1��5��9��=��A��E��I��M��Q��U��Y��]��a��e��i��m��q��u��y��}������������� ������������������������������"�����&�����*�����.�����2�����6�����:�����>�����B�����F�����J�����N�����R�����V�����Z�����^�����b�����f�����j�����n�����r�����v�����z�����~����������������������������������������������������������������������#��������'��������+��������/��������3��������7��������;��������?��������C��������G��������K��������O��������U������ �� ��������������"��%��(��+��.��1��4��7��:��=��@��C��F��I��L��O��R��U��X��[��^��a��d��g����zModelSpecs.__init__c�����������������C���s���|�j�|�}|S�)N)rP���)r����nameZ color_dictr���r���r����get_color_dict���s��� zModelSpecs.get_color_dictN)r���r���r���r���rR���r���r���r���r���r:�������s�������^r:���c�������������������@���s"���e�Zd�Zdd��ZG�dd��d�ZdS�)� Referencec�����������������C���s��d|�j�jd�d|�j�jd�d|�j�jd�d�|�_ �i�dd�dd�dd �d d�dd �dd�dd�dd�dd�dd�dd�dd�dd�dd�d d!�d"d#�d$d%�i�d&d'�d(d)�d*d*�d+d,�d-d.�d/d0�d1d2�d3d4�d5d4�d6d4�d7d4�d8d4�d9d:�d;d<�d=d>�d?d@�dAdB��dCdDdEdFdGdHdFdIdJdKdLdM��|�_ �i�dNdO�dPdQ�dRdS�dTdU�dVdW�dXdY�dZd[�d\d]�d^d_�d`da�dbdc�ddde�dfdg�dhdi�djdk�dldm�dndo�i�dpdq�drds�dtdu�dvdw�dxdx�dydz�d{d|�d}d~�dd��d�d[�d�d��d�d��d�d��d�d��d�d��d�d��d�d���i�d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d���i�d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�dd�dēd�dƓd�dȓd�dʓ�d�d�i�|�_i�d�g�d�d�g�dТ�d�g�dҢ�d�g�dԢ�d�g�d֢�d�g�dآ�d�g�dڢ�d�g�dܢ�d�g�dޢ�d�g�d��d�g�d��d�g�d��d�g�d��d�g�d��d�g�d��d�g�d��d�g�d��g�dТg�dҢg�d�g�d�g�d�d��|�_ �d�d�g�d��dgg�d��d�d�dgg�d��d�d�d�d�� dgg�d��d�d�dgg�d��d�d�d�d�� dgg�d��d�d�dgg�d��d�d�d�d�� dgg�d��d�d�dgg�d��d�d�d�d�� dgg�d��d�d�dgg�d��d�d�d�d�� dgg�d��d�d�dgg�d��d�d�d�d�� dgg�d��d�d�dgg�d��d�d�d�d�� dgg�d��d�d�dgg�d��d�d�d�d�� d$gd�gd�d�d$gd�gd�d�d�d�� d�� d��d�d�g�d��ddgg�d��d�d�dgg�d��d�d�d�d�� id��d��d�d�g�d��dgg��d��d�d�dgg��d��d�d�d�d�� dgg��d��d�d�dgg��d��d�d�d�d�� dgg��d��d�d�dgg��d��d�d�d�d�� dgg��d��d�d�dgg��d��d�d�d�d�� d&gg��d�d�d�d&gg��d�d�d�d�d�� �d�d��d�d�g�d��ddgg��d��d�d�dgg��d��d�d�d�d�� id���d�d�dd�g��d�i��ddg�dgd�d�dg�dgd�d�d�d�� ��ddgd�gd�d�dgd�gd�d�d�d�� ��d dg�d gd��ddg�d gd��dd�d�� ��ddg�dgd�d�dg�dgd�d�d�d�� ��d dg�dgd�d�dg�dgd�d�d�d�� �d+d+g�d gd�d�d+g�d gd�d�d�d�� ��dd"gd�gd�d�d"gd�gd�d�d�d�� ��dd"g�d gd��dd"g�d gd��dd�d�� �d$d$gd�gd�d�d$gd�gd�d�d�d�� ��ddg�dgd�d�dg�dgd�d�d�d�� ��ddg�dgd�d�dg�dgd�d�d�d�� ��dd-g�dgd�d�d-g�dgd�d�d�d�� ��dd/g�dgd�d�d/g�dgd�d�d�d�� �d1d1gd�gd�d�d1gd�gd�d��dd�� �d d gd�gd�d�d gd�gd�d��dd�� �d9d9g�d gd�d�d9g�d gd�d�d�d�� �d;d;g�d gd�d�d;g�d gd�d�d�d�� �dg�d gd��ddg�d gd��dd�d�� d(g�d gd�d�d(g�d gd�d�d�d�� �d��d��idϐd�dg��d��dg�d g�dd��dg�dg�dd��d d�� �d!g�d �d"g�dd��d#g�d �dg�dd��d d�� �d$g�d �d"g�dd��d%g�d �dg�dd��d d�� �d&�d��idϐd�dg��d��dg�d g�dd��dg�dg�dd��d d�� �d!g�d �d"g�dd��d#g�d �dg�dd��d d�� �d$g�d �d"g�dd��d%g�d �dg�dd��d d�� �d&�d��i�d'�d(g��d)�dgg��d*�d�d�dgg��d*�d�d�d�d�� dgg��d*�d�d�dgg��d*�d�d�d�d�� dgg��d*�d�d�dgg��d*�d�d�d�d�� dgg��d*�d�d�dgg��d*�d�d�d�d�� �d+�d���d'�d(g��d)�ddgg��d*�d�d�dgg��d*�d�d�d�d�� id���d��d'�d(g��d,�dg�dgd�d�dg�dgd�d�d�d�� dg�dgd�d�dg�dgd�d�d�d�� dg�dgd�d�dg�dgd�d�d�d�� d=g�d gd��d-d=g�d gd�d�d�d�� d$gd�gd�d�d$gd�gd�d�d�d�� dAg�d gd�d�dAg�d gd�d��d.d�� dg�d gd��d/�d0dg�d gd�d��d.d�� d g�d gd�d�d g�d1gd�d��dd�� dgd�gd�d�dgd�gd�d�d�d�� d+g�d gd�d�d+g�d gd�d�d�d�� dg�dgd�d�dg�dgd�d�d�d�� dg�dgd�d�dg�dgd�d�d�d�� �d2�d���d'�d(g��d,��d3dg�dgd�d�dg�dgd�d�d�d�� id���d4�d(g��d5�dg�dg�d6d�dg�dg�d6d�d�d�� dg�dg�d7d��d8g�dg�d7d�d�d�� dAg�d g�d9d�dAg�d g�d9d��d.d�� dg�d g�d:�d/�d0dg�d g�d;d��d.d�� d g�d g�d<d�d g�d1g�d<d��dd�� �d=�d���d>�dϐd4�d?g��d,�d*g�d@g�dAd��dBg�d@g�dAd��dCd�� �dDg�dEg�dAd��dBg�dEg�dAd��dCd�� �dF�d��id�dGd�d�gdg�dgd�d�dg�dgd�d�d�d�� dgd�gd�d�dgd�gd�d�d�d�� d"gd�gd�d�d"gd�gd�d�d�d�� �dH�d��i�dId�g��dJ��dKgd�gd�d��dLgd�gd�d��dMd�� �dNgd�gd�d��dNgd�gd�d��dMd�� �dOgd�gd�d��dPgd�gd�d��dMd�� �dQgd�gd�d��dRgd�gd�d��dMd�� �dS�d��d�d�g��dJ��dKgd�gd�d��dLgd�gd�d��dMd�� �dNgd�gd�d��dNgd�gd�d��dMd�� �dOgd�gd�d��dPgd�gd�d��dMd�� �dT�d���dUd�g��dJ��dKgd�g�dVd��dLgd�g�dVd��dMd�� �dQgd�g�dWd��dRgd�g�dWd��dMd�� �dX�d���dY��dId�g��dJ��dKgd�gd�d��dZgd�gd�d��dMd�� �d[gg��d\�d�d��d]gg��d^�d�d��d_d�� �d`gg��d\�d�d��dagg��d^�d�d��d_d�� �db�d��d�d�g��dJ��dKgd�gd�d��dZgd�gd�d��dMd�� �d[gg��d\�d�d��d]gg��d^�d�d��d_d�� �d`gg��d\�d�d��dagg��d^�d�d��d_d�� �db�d���dUd�g��dJ��dKgd�g�dVd��dZgd�g�dVd��dMd�� �d[gg��d\��dVd��d]gg��d^��dVd��d_d�� �dc�d���dY��d'd�g��dd�d3d5g�de�d@gd�d�g��df��de�d@gd�d��dd�� d3d6g�dg�dhgd�d�g��di��dg�dhgd�d��dd�� d3d7g�dj�dkgd�d�g��dl��dj�dkgd�d��dd�� d3d8g�dmgd�d�g��dn��dmgd�d��dd�� �do�d���dpd�g��dd�d3d5g�de�d@g�dqd�g��df��de�d@g�dqd��dd�� d3d6g�dg�dhg�drd�g��di��dg�dhg�drd��dd�� d3d7g�dj�dkg�dsd�g��dl��dj�dkg�dsd��dd�� d3d8g�dmg�dtd�g��dn��dmg�dtd��dd�� �do�d���du�d�dvd�g��dw�dgd�gd�d��dLgd�gd�d�d�d�� �dxgd�gd�d��dygd�gd�d�d�d�� �dz�d��id�dvd�g��dw�dgd�gd�d��dLgd�gd�d�d�d�� �dxgd�gd�d��dygd�gd�d�d�d�� �dz�d��i�d{�|�_�d|S�(}��a��� The plotting scripts will convert MET units if they are listed below. The name of the unit must match one of the keys in the unit_conversions dictionary. The name of the new unit will become the value of the 'convert_to' key, and if necessary, the data and axis labels will be converted according to the value of the 'formula' key. Formulas are defined as regular functions in the formulas() subclass of the Reference() class (i.e., below...) �in)� convert_to�formula�F)zkg/m^2�K�C�TMPZTemperatureZTMP_Z0_mean�HGTzGeopotential Height�HGT_WV1_0-3zGeopotential Height: Waves 0-3�HGT_WV1_4-9zGeopotential Height: Waves 4-9� HGT_WV1_10-20z Geopotential Height: Waves 10-20�HGT_WV1_0-20zGeopotential Height: Waves 0-20�RHzRelative Humidity�SPFHzSpecific HumidityZDPTzDewpoint Temperature�UGRDzZonal Wind Speed�VGRDzMeridional Wind SpeedZ UGRD_VGRDzVector Wind SpeedZGUSTz Wind GustZCAPEz%Convective Available Potential EnergyZPRESZPressure�PRMSLzPressure Reduced to MSL�O3MRzOzone Mixing RatioZTOZNEzTotal Ozone�OZCON1�HPBLzPlanetary Boundary Layer Height�TSOILzSoil Temperature�SOILWz Volumetric Soil Moisture ContentZWEASDzAccum. Snow Depth Water Equiv.�APCPzAccumulated Precipitation�APCP_01�APCP_03�APCP_06�APCP_24ZPWATzPrecipitable WaterZCWATzCloud Water�TCDCzCloud Area Fraction� HGTCLDCEILzCloud Ceiling HeightZVISZ VisibilityzSea Surface TemperaturezSea Surface SalinityzSea Surface HeightzSea Ice ConcentrationzOcean TemperaturezOcean SalinityzIcing SeverityzComposite ReflectivityzAbove Ground Level ReflectivityzEcho Top Height)�sst�sss�ssh�ice_coverage�temperature�salinity�ICEC_Z0_meanZICESEV�REFC�REFD�RETOP�NHXzNorthern Hemisphere 20N-80N�SHXzSouthern Hemisphere 20S-80S�TROzTropics 20S-20N�PNAzPacific North America�N60z60N-90N�S60z60S-90S�NPACzNorth Pacific Ocean�NPOzNorthern Pacific Ocean�SPACzSouth Pacific Ocean�SPOzSouthern Pacific Ocean�EQPACzEquatorial Pacific Ocean�NATLzNorth Atlantic Ocean�NAOzNorthern Atlantic Ocean�SATLzSouth Atlantic Ocean�SAOzSouthern Atlantic Ocean�EQATLzEquatorial Atlantic Ocean�INDzIndian Ocean�SOCzSouthern Ocean�MEDITzMediterranean Sea�NHzNorthern Hemisphere 20N-90N�SHzSouthern Hemisphere 20S-90SZAR2ZASIAZAsiaZAUNZzAustralia and New ZealandZNAMRz North AmericaZNHMzNorthern HemisphereZNPCFZSHMzSouthern HemisphereZTRPZG002�GlobalZG003�GLBzGlobal Ocean�G130zCONUS - NCEP Grid 130ZG211zCONUS - NCEP Grid 211�G221zCONUS - NCEP Grid 221�G236zCONUS - NCEP Grid 236ZG223zCONUS - NCEP Grid 223�CONUS�POLARzPolar 60-90 N/S�ARCTIC�Arctic� Antarctic�EASTz Eastern US� CONUS_East�WESTz Western US� CONUS_West� CONUS_Centralz Central US�CONUS_SouthzSouthern US�NWCzNorthwest Coast�SWCzSouthwest Coast�NMTzNorthern Mountain Region�GRBzGreat Basin�SMTzSouthern Mountain Region�SWDzSouthwest Desert�NPLzNorthern Plains�SPLzSouthern Plains�MDWZMidwest�LMVzLower Mississippi Valley�APLZAppalachians�NECzNortheast Coast�SECzSoutheast Coast�GACzGulf of America Coast�Alaska�NAKzNorthern Alaska�SAKzSouthern Alaska�SEA_ICEzGlobal - Sea Ice�SEA_ICE_FREEzGlobal - Sea Ice Free� SEA_ICE_POLARzPolar - Sea Ice�SEA_ICE_FREE_POLARzPolar - Sea Ice FreeZFHO)�TOTAL�F_RATEZH_RATE�O_RATE�CTC)r����ZFY_OYZFY_ONZFN_OYZFN_ONZCTS)]r�����BASER� BASER_NCL� BASER_NCUZ BASER_BCLZ BASER_BCUZFMEANZ FMEAN_NCLZ FMEAN_NCUZ FMEAN_BCLZ FMEAN_BCU�ACC�ACC_NCL�ACC_NCU�ACC_BCL�ACC_BCU�FBIASZ FBIAS_BCLZ FBIAS_BCUZPODYZPODY_NCLZPODY_NCUZPODY_BCLZPODY_BCUZPODNZPODN_NCLZPODN_NCUZPODN_BCLZPODN_BCUZPOFDZPOFD_NCLZPOFD_NCUZPOFD_BCLZPOFD_BCUZFARZFAR_NCLZFAR_NCUZFAR_BCLZFAR_BCUZCSIZCSI_NCLZCSI_NCUZCSI_BCLZCSI_BCUZGSSZGSS_BCLZGSS_BCU�HKZHK_NCLZHK_NCU�HK_BCL�HK_BCUZHSSZHSS_BCLZHSS_BCUZODDSZODDS_NCLZODDS_NCUZODDS_BCLZODDS_BCUZLODDSZ LODDS_NCLZ LODDS_NCUZ LODDS_BCLZ LODDS_BCUZORSSZORSS_NCLZORSS_NCUZORSS_BCLZORSS_BCUZEDSZEDS_NCLZEDS_NCUZEDS_BCLZEDS_BCUZSEDSZSEDS_NCLZSEDS_NCUZSEDS_BCLZSEDS_BCUZEDIZEDI_NCLZEDI_NCUZEDI_BCLZEDI_BCUZSEDIZSEDI_NCLZSEDI_NCUZSEDI_BCLZSEDI_BCUZBAGSSZ BAGSS_BCLZ BAGSS_BCUZCNT)ar�����FBARZFBAR_NCLZFBAR_NCUZFBAR_BCLZFBAR_BCU�FSTDEVZ FSTDEV_NCLZ FSTDEV_NCUZ FSTDEV_BCLZ FSTDEV_BCU�OBARZOBAR_NCLZOBAR_NCUZOBAR_BCLZOBAR_BCU�OSTDEVZ OSTDEV_NCLZ OSTDEV_NCUZ OSTDEV_BCLZ OSTDEV_BCUZPR_CORRZPR_CORR_NCLZPR_CORR_NCUZPR_CORR_BCLZPR_CORR_BCUZSP_CORRZKT_CORRZRANKSZ FRANK_TIESZ ORANK_TIES�MEZME_NCLZME_NCUZME_BCLZME_BCUZESTDEVZ ESTDEV_NCLZ ESTDEV_NCUZ ESTDEV_BCLZ ESTDEV_BCUZMBIASZ MBIAS_BCLZ MBIAS_BCU�MAEZMAE_BCLZMAE_BCUZMSEZMSE_BCLZMSE_BCUZBCMSEZ BCMSE_BCLZ BCMSE_BCU�RMSEZRMSE_BCLZRMSE_BCUZE10ZE10_BCLZE10_BCUZE25ZE25_BCLZE25_BCUZE50ZE50_BCLZE50_BCUZE75ZE75_BCLZE75_BCUZE90ZE90_BCLZE90_BCUZIQRZIQR_BCLZIQR_BCUZMADZMAD_BCLZMAD_BCUZ ANOM_CORRZ ANOM_CORR_NCLZ ANOM_CORR_NCUZ ANOM_CORR_BCLZ ANOM_CORR_BCUZME2ZME2_BCLZME2_BCUZMSESSZ MSESS_BCLZ MSESS_BCUZRMSFAZ RMSFA_BCLZ RMSFA_BCUZRMSOAZ RMSOA_BCLZ RMSOA_BCUZANOM_CORR_UNCNTRZANOM_CORR_UNCNTR_BCLZANOM_CORR_UNCNTR_BCUZMCTC)r�����N_CATZFi_OjZMCTS) r����r����r����r����r����r����r����r����r����r����ZGERZGER_BCLZGER_BCUZPCT)r�����N_THRESH�THRESH_iZOY_iZON_i�THRESH_nZPSTD)r����r����r����r����r����ZRELIABILITY� RESOLUTIONZUNCERTAINTYZROC_AUCZBRIERZ BRIER_NCLZ BRIER_NCUZBRIERCLZBRIERCL_NCLZBRIERCL_NCUZBSSZBSS_SMPLr����ZPJC) r����r����r����ZOY_TP_iZON_TP_iZ CALIBRATION_iZREFINEMENT_iZLIKELIHOOD_iZBASER_ir�����PRC)r����r����r����ZPODY_iZPOFD_ir����ZECLV)r����r����ZVALUE_BASERZN_PNTZCL_iZVALUE_i�SL1L2)r����r����r����ZFOBARZFFBARZOOBARr�����SAL1L2)r����ZFABARZOABARZFOABARZFFABARZOOABARr�����VL1L2) r����ZUFBARZVFBARZUOBARZVOBARZUVFOBARZUVFFBARZUVOOBARZF_SPEED_BARZO_SPEED_BAR�VAL1L2)r����ZUFABARZVFABARZUOABARZVOABARZUVFOABARZUVFFABARZUVOOABARZVCNT)r����r����r����ZFS_RMSZOS_RMSZMSVE�RMSVEr����r����ZFDIRZODIR� FBAR_SPEEDZ OBAR_SPEED�VDIFF_SPEEDZ VDIFF_DIR� SPEED_ERRZSPEED_ABSERR�DIR_ERRZ DIR_ABSERRZMPR) r����ZINDEXZOBS_SIDZOBS_LATZOBS_LONZOBS_LVLZOBS_ELVZFCSTZOBSZOBS_QCZ CLIMO_MEANZCLIMO_STDEVZ CLIMO_CDF)r����ZFBSZFBS_BCLZFBS_BCUZFSSZFSS_BCLZFSS_BCUZAFSSZAFSS_BCLZAFSS_BCUZUFSSZUFSS_BCLZUFSS_BCUr����Z F_RATE_BCLZ F_RATE_BCUr����Z O_RATE_BCLZ O_RATE_BCU) r����ZFGBARZOGBARZMGBARZEGBAR�S1ZS1_OGZ FGOG_RATIOZDXZDY)r����ZFYZOYr����ZBADDELEYZ HAUSDORFFZMED_FOZMED_OFZMED_MINZMED_MAXZMED_MEANZFOM_FOZFOM_OFZFOM_MINZFROM_MAXZFOM_MEANZZHU_FOZZHU_OFZZHU_MINZZHU_MAXZZHU_MEAN)ZNBRCTCZNBRCTSZNBRCNTZGRADZDMAP�acc�NEAREST)r{���r|���r~���r}���)�P1000�P700�P500�P250��� sfc_upper) �fcst_var_names�fcst_var_levels�fcst_var_thresholdsZfcst_var_options� obs_var_names�obs_var_levels�obs_var_thresholdsZobs_var_options� plot_group)�P850r����r�����Z0) r[���r_���r\���r]���r^���rZ���rb���rc���rd���)�plot_stats_list�interp�vx_mask_list�var_dict)r����r����z&me, rmse, msess, rsd, rmse_md, rmse_pv)r����r����r����r�����P200�P100�P50�P20�P10�P5�P1)r����ZP70r����ZP30r����r����r����r����)r[���rZ���rb���rc���re���)r����r����Zfbar)r{���r|���r���r����r}���r����r����r����r����r����r�����TMP2m�Z2�TMPsfcZTMPtropsZL0zGRIB_lvl_typ = 7;�RH2mZSPFH2m�PRESsfcZ PREStrops�UGRD10mZZ10�VGRD10mZTSOILtopzZ10-0ZSOILWtopZprecipZcape)ZHGTtropsZTOZNEclmz%fss, csi, fbias, pod, faratio, sratiozNEAREST, NBRHD_CIRCLE, BILIN)r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����ZDAY1_1200_TSTMZDAY2_1730_TSTMrx���z>=20, >=30, >=40, >=50ZMergedReflectivityQCCompositeZZ500Zradarrz����Z1000Z EchoTop18ry���ZSeamlessHSR)rx���rz���ry���z'me, rmse, bcrmse, fbar_obar, fbar, obarzNEAREST, BILIN) r����r����r����r����r}���r����r����r����r����r����)r����ZP925r����r����r����ZP400ZP300r����r����ZP150r����r����r����r����r����)rZ���r`���ra���r[���)r����r�����G214r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����zGRIB_lvl_typ = 200;Zceil_viszGRIB_lvl_typ = 215;�CEILINGz L100000-0)r����r�����DPT2mro���rd����VISsfc� HGTcldceil�CAPEsfcZGUSTsfcrg���r����r����ZUGRD_VGRD10mz%csi, fbias, fss, pod, faratio, sratio)r����r����r���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����z <=15, <=20, <=25, <=30z >=4.4, >=10, >=15.55, >=21.11ZTDOzQ<=800, <805, <=1600, <1609, <=4800, <4828, <=8000, <8045, >=8045, <=16000, <16090zK<152, <=152, <305, <=305, <914, >=914, <=916, <1520, <=1524, <3040, <=3048zJ<152, <=152, <305, <=305, <914, >=914, <=916, <1520, <=1524, <3040, <=3048z'>500, >1000, >1500, >2000, >3000, >4000)r����r��r��r��r��)r����r����r����ZBILIN�A1z,>50, >60, >65, >70,>75, >85, >105,>125, >150ZCOPOZaq�OZCON8ZA8)rf���r��zme, rmse, fbar_obar)r����r����r����z"me, rmse, fsd, osd, esd, rsd, pcor)r����r����r����r����r����r����r����r����r����r����r����r����rq���Zanalysed_sstZ rtofs_sfcrr���rs���Zadtrt���Zice_conc)�SST�SSS�SSH�SIC)r��r ��r ��zsratio, pod, csi, fbias, hssz>=0, >=26.5z>=15, >=40, >=80)r��r��)r����r����r����ZWTMPru���)r����ZZ50ZZ125ZZ200ZZ400ZZ700r����ZZ1400�TEMP)zZ4-0zZ52-48zZ127-123zZ202-198zZ402-398zZ702-698z Z1003-997z Z1403-1397�rtofsrv����PSAL)r��r��r��)r��r��)r����r����r����r����r����r����r����r���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����ZA01)rj���rk���� APCP_01_Z0ZA03ZA3)rj���rl���r��ZA06ZA6)rj���rm���r��ZA24)rj���rn���r��)rk���rl���rm���rn���z:me, ets, fss, csi, fbias, fbar, obar, pod, faratio, sratioz9>=0.254, >=1.27, >=2.54, >=6.35, >=12.7, >=19.05, >=25.4,zA>=0.254, >=1.27, >=2.54, >=6.35, >=12.7, >=19.05, >=25.4, >=50.8,zQ>=0.254, >=2.54, >=6.35, >=12.7, >=19.05, >=25.4, >=38.1, >=50.8, >=76.2, >=101.6zP>=0.254, >=2.54, >=6.35, >=12.7, >=25.4, >=38.1, >=50.8, >=76.2, >=101.6 >=152.4)r����r����zme, rmse)r����r����r����r����r����r����r����r����rw���Zsea_ice_fraction)r��ZICEC)Zgrid2grid_anomZgrid2grid_presZ grid2grid_sfcZgrid2grid_mrmsZ radar_mrmsZgrid2obs_upper_airZgrid2obs_conus_sfcZgrid2obs_aqZgrid2obs_polar_sfcZgrid2grid_rtofsZgrid2obs_rtofsZprecip_ccpaZsatellite_ghrsst_ncei_avhrr_anlZ"satellite_ghrsst_ospo_geopolar_anlN) �formulas�mm_to_in�K_to_F�C_to_F�unit_conversions�variable_translator�domain_translatorZ linetype_cols� case_typer���r���r���r���r������s2����������� ��� ���������������� �"�$�&�(�)�*�+�,�- �9�������� � ��� ������������������� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1�2�3�4�5�6�7�8�9�:�;�<�=�>�?�@�A�B�C�D�F���>�?�C�E�K�N�P�R�T�V�Y�\�a�e�� ��� � � � � � � � ���m������������T����o�� ������%��.��7��@��I��R��[��d��m��v����� ����������� �������9�� � ����2�� � ����3������P����q� � � � � � � � � � � ���z��������������d� ����)� � ����&� � � ���/� � ���&� ����s� � ���&� � ���&� ����j � � � ���2 � � � ������ ����� �������������������������zReference.__init__c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)zReference.formulasc�����������������C���s���t��|�d�}|S�)Ngffffff9@)�np�divide)Zmm_valsZ inch_valsr���r���r���r��1 ��s���zReference.formulas.mm_to_inc�����������������C���s���t��|��d�d�d�d�}|S�)Ngfffffq@�������"@rN����������@@�r���array)ZK_vals�F_valsr���r���r���r��4 ��s���zReference.formulas.K_to_Fc�����������������C���s���t��|��d�d�d�}|S�)Nr��rN���r��r��)ZC_valsr��r���r���r���r��7 ��s���zReference.formulas.C_to_FN)r���r���r���r��r��r��r���r���r���r���r��0 ��s����r��N)r���r���r���r���r��r���r���r���r���rS������s �����������������4rS���)r���r���r7����numpyr��r%���r���r!���r#���r+���r:���rS���r���r���r���r����<module>���s���" Z���c