#*************************************************************
# Progamm:			mitteltemperatur_simpel
# Sinn des Programms: 		Berechnung einer globalen Mitteltemperatur
# Sinn der Einheit  :		Einlesen der Temperaturdaten	
# Name dieser Datei:		temp_einlese.py
# Versionsnummer:		1
# Wird aufgerufen von:		mitteltemperatur_simpel_haupt.py
# Ruft auf:			-
# Nummer im Programmpaket:	3
# von:				5			
# Autor: 			Armin Ulrich
# Erster Lauf: 			05.02.2020
# Letzte Änderung: 		24.09.2021
#*************************************************************


#*************************************************************
# Import der Klasse os zum Bearbeiten von Dateien
#*************************************************************
import os
import numpy as np

#*************************************************************
# Klassendefinition Temp_einlese
#*************************************************************
class Temp_einlese:
  #Konstruktormethode
  def __init__(self):		
    print("Temp_einleseobjekt erzeugt")


  #Destruktormethode
  def __del__(self):	
    print("Temp_einleseobjekt entfernt") 


#*************************************************************
# Funktion zum Einlesen der Temperaturen
#*************************************************************
  def temp_input(self,eingabedatei):
    print("Einlesen der Temperaturen")    
    print("Name der Temperatur_datei:",eingabedatei)
#*************************************************************
# Öffnung der Gitterdatei
#*************************************************************
    if os.path.exists(eingabedatei):
      print("Temperatur_datei ist vorhanden")
      fobj_in = open(eingabedatei,"r")
      self.zeilenzähler = 0
      while True:
        zeile=fobj_in.readline()
        if len(zeile) == 0: # eine leere Zeile bedeutet Dateiende (EOF)
          break
        self.zeilenzähler += 1
      fobj_in.close()
      print("zeilenzähler=",self.zeilenzähler)
      
      dummy = list in range(17)
      self.temp_daten = np.zeros((self.zeilenzähler-2,16))
 
      fobj_in = open(eingabedatei,"r")
      for i in range(self.zeilenzähler):
        zeile=fobj_in.readline()
        zeile = zeile[:-1]
        dummy = zeile.split("\t")
        if(i == 2):
          self.anfangsdatum = dummy[0]
        if(i == self.zeilenzähler-1):
          self.enddatum = dummy[0]  
        if i>1 :
          for j in range(16):
            self.temp_daten[i-2][j]=  float(dummy[j+1])
      
            
      fobj_in.close()
      self.anzahl_tage = i-1
      self.m = i-1
      self.n = j+1
      print("m = ", self.m, "n =" ,self.n)
      
      print("Anzahl der Tage =", self.anzahl_tage,"Anfangsdatum = ", self.anfangsdatum, "Enddatum = " , self.enddatum)
      print(self.temp_daten[0][0], self.temp_daten[i-2][15])
      return True
    else:
      print("Temperatur_datei ist NICHT vorhanden")
      return False     
