Ejemplo n.º 1
0
 def reglaE(self, colIzq, colDer, regla, typeE=enu.TypeErros(1)):
     """la temperatura del termometro seco  debe ser mayor a la del termometro húmedo a las 07 """
     datarev = self.data3h[
         self.data3h.iloc[:, colIzq] < self.data3h.iloc[:, colDer]]
     return self.printEW(datarev,
                         regla, [0, 1, 2, 3, colIzq, colDer],
                         typeE=typeE)
Ejemplo n.º 2
0
 def reglaC(self, colIzq, colDer, regla, typeE=enu.TypeErros(1)):
     """Ninguna observacion la temmax puede ser menor a la temp de termometro seco """
     datarev = self.data3h[
         self.data3h.iloc[:, colIzq] <= self.data3h.iloc[:, colDer]]
     return self.printEW(datarev,
                         regla, [0, 1, 2, 3, colIzq, colDer],
                         typeE=typeE)
Ejemplo n.º 3
0
 def reglaD(self, colIzq, colDer, regla, typeE=enu.TypeErros(1)):
     """Ninguna observacion la tmin puede ser mayor a la tem del termometro seco a las 07 """
     datarev = self.data3h[
         self.data3h.iloc[:, colIzq] > self.data3h.iloc[:, colDer]]
     return self.printEW(datarev,
                         regla, [0, 1, 2, 3, colIzq, colDer],
                         typeE=typeE)
Ejemplo n.º 4
0
 def reglaB(self, ):
     """Para ninguna observacion de la temperatura mínima
     deberá ser menor a la minima de la serie"""
     # obtener la temperatura minima de la serie
     #print(self.extTemMin[(self.extTemMin['pref'] == "mn")])
     minSerie = self.extTemMin[(self.extTemMin['pref'] == "mn")].iloc[0, 3]
     # comparar con la serire
     datarev = self.data3h[self.data3h.iloc[:, 5] < minSerie]
     return self.printEW(datarev,
                         "TMIN < TMIN Serie", [0, 1, 2, 3, 5],
                         unival=minSerie,
                         nameV="minSerie",
                         typeE=enu.TypeErros(2))
Ejemplo n.º 5
0
 def reglaA(self):
     """Para ninguna observación la temperatura maxima
     debera ser mayor a la maxima de la serie"""
     # obtener la temperatura maxima de la serie
     #print(self.extTemMax[(self.extTemMax['pref'] == "mx")])
     maxSerie = self.extTemMax[(self.extTemMax['pref'] == "mx")].iloc[0, 3]
     # comparar con la serie
     datarev = self.data3h[self.data3h.iloc[:, 4] > maxSerie]
     return self.printEW(datarev,
                         "TMAX > TMAX Serie", [0, 1, 2, 3, 4],
                         unival=maxSerie,
                         nameV="maxSerie",
                         typeE=enu.TypeErros(2))
Ejemplo n.º 6
0
    def reglaF(self, minval=40, maxval=100):
        tsD = ts.ToTimeSerie()
        """humedad relativa menor al 40% es un error"""
        ddClass = dd.GetDailyData()
        datarev = ddClass.getDaily(self.codigo, self.año, "vd014")
        datarevTs = tsD.unaEstacionDia(datarev)
        ltFilter = datarevTs[datarevTs['val'] <= minval].copy()

        ltFilter['causa'] = "HR <= " + str(minval) + "%"
        mtFilter = datarevTs[datarevTs['val'] >= maxval].copy()
        mtFilter['causa'] = "HR => " + str(maxval) + "%"
        datarev = pd.concat([ltFilter, mtFilter], ignore_index=True, axis=0)
        if datarev.empty:
            return datarev
        else:
            datarev['codigo'] = self.data3h['codigo'][0]
            datarev['typeE'] = enu.TypeErros(1).name
            datarev['fecha'] = datarev['fecha'].map(str)
            datarev = datarev[['codigo', 'fecha', 'val', 'typeE', 'causa']]
            print(datarev)
            return datarev
Ejemplo n.º 7
0
    def printEW(self,
                dataf,
                regla,
                cols=[1, 2, 3],
                unival=-400,
                nameV="none",
                typeE=enu.TypeErros(1)):
        """Imprime los errores o advertencias en una tabla"""
        #print("\nRegla  " ,regla,self.data3h['codigo'][0])
        format = pd.DataFrame()
        if dataf.empty:
            #print(" No hay errores para ",varVer)
            return dataf
        else:
            dataf = dataf.iloc[:, cols].copy()
            #dataf.iloc[:, [0, 1, 2]]=dataf.iloc[:,[0,1,2]].astype(int)
            # -400 significa que se requiere crear una nueva culumna con un solo valor
            if unival != -400:
                #print("crea una columna ------")
                dataf[nameV] = unival
                dataf['typeE'] = typeE.name
                dataf['causa'] = regla
            else:  #agrega la columna que se le pasa
                dataf['typeE'] = typeE.name
                dataf['causa'] = regla
            #print(dataf)
            format['codigo'] = dataf['codigo']
            format['fecha'] = dataf['anio'].astype(int).map(
                str) + "-" + dataf['mes'].astype(int).map(
                    str) + "-" + dataf['dia'].astype(int).map(str)
            #print(dataf.columns)
            for i in range(4, len(dataf.columns)):
                va = dataf.columns[i]
                format[va] = dataf[va]
            #print(format)

        return format
Ejemplo n.º 8
0
    appR = AppReglas(est, 2014)
    ra = appR.reglaA()
    rb = appR.reglaB()
    rc07 = appR.reglaC(colIzq=4, colDer=6, regla="Tmx > Ts a las 07")
    rc13 = appR.reglaC(colIzq=4, colDer=7, regla="Tmx > Ts a las 13")
    rc19 = appR.reglaC(colIzq=4, colDer=8, regla="Tmx > Ts a las 19")
    rd07 = appR.reglaD(colIzq=5, colDer=6, regla="Tmn <= Ts a las 07")
    rd13 = appR.reglaD(colIzq=5, colDer=7, regla="Tmn <= Ts a las 13")
    rd19 = appR.reglaD(colIzq=5, colDer=8, regla="Tmn <= Ts a las 19")
    re07 = appR.reglaE(colIzq=6, colDer=9, regla="TS07 < TH07")
    re13 = appR.reglaE(colIzq=7, colDer=10, regla="TS13 < TH13")
    re19 = appR.reglaE(colIzq=8, colDer=11, regla="TS19 < TH19")
    rf = appR.reglaF()
    rg = appR.reglaG()
    rh = appR.reglaH()
    ri07 = appR.reglaI(12, 30, "RR > 30 mm a las 07", enu.TypeErros(2))
    ri13 = appR.reglaI(13, 30, "RR > 30 mm a las 13 ", enu.TypeErros(2))
    ri19 = appR.reglaI(14, 30, "RR > 30 mm a las 19 ", enu.TypeErros(2))
    """rj07=appR.reglaJ(15,5,"Evap > 5 m a las 07")
    rj13=appR.reglaJ(17,5,"Evap > 5 m a las 13")
    rj19=appR.reglaJ(19,5,"Evap > 5 m a las 19")
    rk07=appR.reglaK(19,0,"Evap < 0 m a las 07")
    rk13=appR.reglaK(19,0,"Evap < 0 m a las 13")
    rk19=appR.reglaK(19,0,"Evap < 0 m a las 19")
    """
    frames = [
        ra, rb, rc07, rc13, rc19, rd07, rd13, rd19, re07, re13, re19, rf, rg,
        rh, ri07, ri13, ri19
    ]

    for df in frames:
Ejemplo n.º 9
0
 def reglaI(self, columna, valor, regla, typeE=enu.TypeErros(1)):
     """precipitaciones mayores a 30mm """
     datarev = self.data3h[self.data3h.iloc[:, columna] > valor]
     return self.printEW(datarev, regla, [0, 1, 2, 3, columna], typeE=typeE)
Ejemplo n.º 10
0
 def reglaH(self):
     """la temperatura del termometro seco  a la 07 debe ser menor a la del termometro húmedo a las 19 """
     datarev = self.data3h[self.data3h.iloc[:, 6] > self.data3h.iloc[:, 8]]
     return self.printEW(datarev,
                         "TS07 > TS19", [0, 1, 2, 3, 6, 8],
                         typeE=enu.TypeErros(2))