o �����G�g�����������������������@���st���d�dl�mZ�d�dlmZmZ�d�dlZd�dlZd�dlZe� d�Z e�d�Zdd��Z dd ��Zd d��Zdd ��Zdd��ZdS�)�����)�Path)�datetime� timedeltaN�gmtz1970-01-01T00:00:00c�����������������C���s&���t��|�d�t�t��dd��}t�|�S�)N�ns�����s)�np� datetime64�DT64REF�timedelta64r����utcfromtimestamp)�xr_dt64�ts��r����C/lfs/h1/ops/prod/packages/stofs.v2.1.16/ush/stofs_2d_glo/archive.py�_to_datetime ���s��� r���c�����������������C���s���t�j}t|����s |���S�t|�d�����}|�j}|�jj }t |d���}|D�]�}z t�j|dd��dd�}W�n�tyL�} �z dt | �v�rGW�Y�d�} ~ q$��d�} ~ ww�||k�sU||krVq$|}t||����d��} |d d ��}|dkrod}nt|�d �}||| <�|�d�}t|�dkr�d}nt|�dkr�d }ntd��q$td|d��D�]2} |d d| ��d d| ����}|dkr�d}nt|�d �}|t| d��}t||����d��} ||| <�q�q$W�d�����|���S�1�s�w���Y��|���S�)N�begTime�r�K����X���z%m/%d/%Y %H��formatzdoesn't match format����\����`���z****皙����X@� ���� i ���0���i���zUnrecognized forecast lengthr���������hours)�pd�NaTr����exists� to_pydatetimer����item�cur�cwl�values�open�to_datetime� Exception�str�int� total_seconds�float�strip�len�print�ranger���)�mut_ds�archFile� last_time�startr(���r)����fp�line�time�e�tm_hr�wlZhrs_fcst�hr�tmr���r���r����Read_ArchCWL���s\����� �� �2�2rB���c����������� ��� ���C���sP���t�|d��}|�|��|��|��|��|��d���W�d�����d�S�1�s!w���Y��d�S�)N�ar���)r+����write) r6���� arch_file�line1�line2�line3�line4�line5� temp_filer:���r���r���r���� Write_ArchCWLR���s���""�rL���c�����������������C���s��t�|�d�����}tj}|�jj}|�jj}t|����s|� ��S�t |d���}d} d} |����|D�]�}|���}t |�dkr:q-tj|d�dd�}tdd�D�]6} || �d krQqH|t| d�d ��}||k�r_qHt||����d��}||vrnqHt|| ��|�||<�| s~d} d} qH| r�tdd�D�]+} || �d kr�q�|t| d�d ��}t||����d��}||vr�q�t|| ��|�||<�q�| s�t |�dk�r�|�d d���t |�dk�s�|�|d���d���tdd�D�]} |�t|| ��d�d���q�|�d��|tdd ��}q-W�d�����|� ��S�1��sw���Y��|� ��S�)Nr���r���F����r����%m/%d/%Yr���r�����r!���r���Tr����6.2f� r�������)r���r'���r#���r$���r@���r*����obsr���r%���r&���r+����readline�splitr3���r,���r5���r���r/���r0���r1����appendrD���)r6���r7����ap�adjustr9���r8����hrsrS���r:����validZreReadr;���r<����colrA���r>���r���r���r����Read_ArchObs^���sj����� �� �C�Cr\���c����������� ������C���s*��|t�dd��}|jd�ur|�t�jd�d�}t|�d�����}t|�d�����}|�jj}|�j }||kr�|� d�}|g} td�D�],} t||�� ��d��}||krZ||v�rZ| �||�d ���n| �d d ���|t�dd��}q<|�| d���d���tdd �D�]}|�t| |��d �d���qx|�d��||ks0d�S�d�S�)Nr���r!���)�tzinfo�nowr���rN�������r���rP���r���r���rQ���rM���r���)r���r]���� astimezone�GMT�replacer���r'���rS���r*���r@����strftimer5���r/���r0���rV���rD���r1���) r6���rW���r8���r<���r^���r���rS���rY����dater;����ir>���r[���r���r���r���� Write_ArchObs����s*��� �rf���)�pathlibr���r���r����numpyr ����pandasr#����pytz�timezonera���r ���r���r���rB���rL���r\���rf���r���r���r���r����<module>���s���� ?U