a
    ì9lhˆ  ã                   @   s   d dl Z dd„ Zdd„ ZdS )é    Nc              
   C   sÄ   t d| › d�ƒ tj | ¡s0t d| › d�ƒ dS z\t| dƒ�>}t|ƒD ]$\}}t d|d › d	| ¡ › �ƒ qFW d  ƒ n1 s€0    Y  W n2 ty¾ } zt d
|› �ƒ W Y d}~n
d}~0 0 dS )zŒ
    Reads an ASCII file line by line and prints each line.
    Useful for simple text files or when processing each line individually.
    z
--- Reading 'z' line by line ---úError: File 'ú' not found.NÚrzLine é   ú: z.An error occurred while reading line by line: )ÚprintÚosÚpathÚexistsÚopenÚ	enumerateÚstripÚ	Exception)ÚfilenameÚfZline_numÚlineÚe© r   úe/share/grpeta/dsk001/dist/users/jorge/cicloneBapo/2015020200/Eta10km_Topo1hPa/python2Nc/EtaLibrary.pyÚread_ascii_line_by_line   s    @r   c                 C   sB  t d| › d�ƒ tj | ¡s0t d| › d�ƒ dS i }g d¢}�zÈt| dƒ��t}|D ]²}| ¡  ¡ }|sŠt d|› d	�ƒ  W d  ƒ W dS z"| d
¡d  ¡ }t|ƒ||< W qR t	t
f�y } z8t d|› d|› d|› �ƒ W Y d}~ W d  ƒ W dS d}~0 0 qR| ¡  ¡ }| ¡  ¡ }	|�r*|	�sDt dƒ W d  ƒ W dS zt|ƒ|d< t|	ƒ|d< W nP t
�y° } z6t d|› d|	› d|› �ƒ W Y d}~W d  ƒ W dS d}~0 0 W d  ƒ n1 �sÈ0    Y  t dƒ | ¡ D ]\}}
t d|› d|
› �ƒ �qâ|W S  t�y< } zt d|› �ƒ W Y d}~dS d}~0 0 dS )zƒ
    Reads specific grid information (west, east, north, south, res)
    and two subsequent integer values from an ASCII file.
    z-
--- Reading specific grid information from 'z' ---r   r   N)ÚwestÚeastÚnorthÚsouthÚresr   z-Error: Unexpected end of file while reading 'z'.ú=r   zError parsing line for 'z': 'z' - z;Error: Unexpected end of file while reading integer values.ÚnlonsÚnlatszError parsing integer values: 'z', 'z
Parsed Grid Information:z  r   zAn unexpected error occurred: )r   r   r	   r
   r   Úreadliner   ÚsplitÚfloatÚ
IndexErrorÚ
ValueErrorÚintÚitemsr   )r   Z	grid_infoZexpected_keysr   Úkeyr   Z	value_strr   Úline1Úline2Úvaluer   r   r   Úread_specific_grid_info   sJ    *Fr)   )r   r   r)   r   r   r   r   Ú<module>   s   