3

��O`�������������������@���sF���d�dl�Z�d�dlZd�dlZdd��Zdd��Zdd��Zdd	��Zdd
d�ZdS�)
�����Nc�������������C���s���|�j�j��s|�j�jddd��d�S�)NT)�parents�exist_ok)�parent�exists�mkdir)�output_path��r����Y/gpfs/hps/nco/ops/nwprod/ens_tracker.v1.2.2/ush/FSUgenesisPY/genesis_guidance/io_utils.py�	mkparents���s����
r
���c�������������C���s���t�j|�d||�S�)NZtracker)�pathlib�Path)�data_dir�model�basinr���r���r	����tracker_output_dir���s����r���c�������������C���s.���t�jt|�||�dj||||d��}t|��|S�)Nz5{rundate:%Y%m%d%H}_{model}_{storm_id:02}_{suffix}.txt)�rundate�suffixr����storm_id)r���r���r����formatr
���)r
���r���r���r���r���r���r���r���r���r	����tracker_output_path���s����
r���c�������������C���s,���t�jt|�||�dj|||d��}t|��|S�)Nz6{prefix}cases.{rundate:%y%m%d}.{model}{rundate:%H}.txt)r����prefixr���)r���r���r���r���r
���)r
���r���r���r���r���r���r���r���r	����cases_output_path���s����
r���c�������������C���s����t�|tj�r|jjddd��t�|�tj�s,d�S�tjdj	|d���|d�krJd}|�j
dkrf|�tjd�d��f�}�tj||�j
d�|d��d�S�)	NT)r���r���zSaving info to {filepath})�filepathzI%10.0f%5.0f%12.0f%10.2f%10.2f%10.2f%10.2f%10.2f%10.2f%5.0f%5.0f%5.0f%3.0f�����float)�fmt)�
isinstancer���r���r���r����np�ndarray�logging�infor����ndim�newaxis�savetxt�astype)�datar���Zstr_fmtr���r���r	����save_output_text'���s����
r&���)N)	r���r����numpyr���r
���r���r���r���r&���r���r���r���r	����<module>���s���