o

�����G�g�����������������������@���st���d�dl�mZ�d�dlmZmZ�d�dlZd�dlZd�dlZe�	d�Z
e�d�Zdd��Z
dd	��Zd
d��Zdd
��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�tyL�}	�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