<s> '''<STR_LIT>''' <EOL> import numpy as np <EOL> import pandas as pd <EOL> import pvl_tools <EOL> import pdb <EOL> def pvl_perez ( SurfTilt , SurfAz , DHI , DNI , HExtra , SunZen , SunAz , AM , modelt = '<STR_LIT>' ) : <EOL> '''<STR_LIT>''' <EOL> Vars = locals ( ) <EOL> Expect = { '<STR_LIT>' : ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : ( '<STR_LIT>' ) , <EOL> '<STR_LIT>' : ( '<STR_LIT>' ) , <EOL> '<STR_LIT>' : ( '<STR_LIT>' ) , <EOL> '<STR_LIT>' : ( '<STR_LIT>' ) , <EOL> '<STR_LIT>' : ( '<STR_LIT>' ) , <EOL> '<STR_LIT>' : ( '<STR_LIT>' ) , <EOL> '<STR_LIT>' : ( '<STR_LIT>' ) , <EOL> '<STR_LIT>' : ( '<STR_LIT:default>' , '<STR_LIT>' ) } <EOL> var = pvl_tools . Parse ( Vars , Expect ) <EOL> kappa = <NUM_LIT> <EOL> z = var . SunZen * np . pi / <NUM_LIT> <EOL> Dhfilter = var . DHI > <NUM_LIT:0> <EOL> e = ( ( var . DHI [ Dhfilter ] + var . DNI [ Dhfilter ] ) / var . DHI [ Dhfilter ] + kappa * z [ Dhfilter ] ** <NUM_LIT:3> ) / ( <NUM_LIT:1> + kappa * z [ Dhfilter ] ** <NUM_LIT:3> ) . reindex_like ( var . SunZen ) <EOL> ebin = pd . Series ( np . zeros ( var . DHI . shape [ <NUM_LIT:0> ] ) , index = e . index ) <EOL> ebin [ ( e < <NUM_LIT> ) ] = <NUM_LIT:1> <EOL> ebin [ ( e >= <NUM_LIT> ) & ( e < <NUM_LIT> ) ] = <NUM_LIT:2> <EOL> ebin [ ( e >= <NUM_LIT> ) & ( e < <NUM_LIT> ) ] = <NUM_LIT:3> <EOL> ebin [ ( e >= <NUM_LIT> ) & ( e < <NUM_LIT> ) ] = <NUM_LIT:4> <EOL> ebin [ ( e >= <NUM_LIT> ) & ( e < <NUM_LIT> ) ] = <NUM_LIT:5> <EOL> ebin [ ( e >= <NUM_LIT> ) & ( e < <NUM_LIT> ) ] = <NUM_LIT:6> <EOL> ebin [ ( e >= <NUM_LIT> ) & ( e < <NUM_LIT> ) ] = <NUM_LIT:7> <EOL> ebin [ e >= <NUM_LIT> ] = <NUM_LIT:8> <EOL> ebinfilter = ebin > <NUM_LIT:0> <EOL> ebin = ebin - <NUM_LIT:1> <EOL> ebin [ ebinfilter == False ] = np . NaN <EOL> ebin = ebin . dropna ( ) . astype ( int ) <EOL> var . HExtra [ var . HExtra == <NUM_LIT:0> ] = <NUM_LIT> <EOL> delt = var . DHI * var . AM / var . HExtra <EOL> F1c , F2c = GetPerezCoefficients ( var . modelt ) <EOL> F1 = F1c [ ebin , <NUM_LIT:0> ] + F1c [ ebin , <NUM_LIT:1> ] * delt [ ebinfilter ] + F1c [ ebin , <NUM_LIT:2> ] * z [ ebinfilter ] <EOL> F1 [ F1 < <NUM_LIT:0> ] = <NUM_LIT:0> ; <EOL> F1 = F1 . astype ( float ) <EOL> F2 = F2c [ ebin , <NUM_LIT:0> ] + F2c [ ebin , <NUM_LIT:1> ] * delt [ ebinfilter ] + F2c [ ebin , <NUM_LIT:2> ] * z [ ebinfilter ] <EOL> F2 [ F2 < <NUM_LIT:0> ] = <NUM_LIT:0> <EOL> F2 = F2 . astype ( float ) <EOL> A = pvl_tools . cosd ( var . SurfTilt ) * pvl_tools . cosd ( var . SunZen ) + pvl_tools . sind ( var . SurfTilt ) * pvl_tools . sind ( var . SunZen ) * pvl_tools . cosd ( var . SunAz - var . SurfAz ) ; <EOL> A [ A < <NUM_LIT:0> ] = <NUM_LIT:0> <EOL> B = pvl_tools . cosd ( var . SunZen ) ; <EOL> B [ B < pvl_tools . cosd ( <NUM_LIT> ) ] = pvl_tools . cosd ( <NUM_LIT> ) <EOL> SkyDiffuse = var . DHI [ ebinfilter ] * ( <NUM_LIT:0.5> * ( <NUM_LIT:1> - F1 [ ebinfilter ] ) * ( <NUM_LIT:1> + pvl_tools . cosd ( var . SurfTilt ) ) + F1 [ ebinfilter ] * A [ ebinfilter ] / B [ ebinfilter ] + F2 [ ebinfilter ] * pvl_tools . sind ( var . SurfTilt ) ) <EOL> SkyDiffuse [ SkyDiffuse <= <NUM_LIT:0> ] = <NUM_LIT:0> <EOL> return pd . DataFrame ( { '<STR_LIT>' : SkyDiffuse } ) <EOL> def GetPerezCoefficients ( perezmodelt ) : <EOL> '''<STR_LIT>''' <EOL> coeffdict = { '<STR_LIT>' : <EOL> [ [ - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] ] , <EOL> '<STR_LIT>' : <EOL> [ [ - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT:0> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] ] , <EOL> '<STR_LIT>' : <EOL> [ [ - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] ] , <EOL> '<STR_LIT>' : <EOL> [ [ - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] ] , <EOL> '<STR_LIT>' : <EOL> [ [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] ] , <EOL> '<STR_LIT>' : <EOL> [ [ - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] ] , <EOL> '<STR_LIT>' : <EOL> [ [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] ] , <EOL> '<STR_LIT>' : <EOL> [ [ - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] ] , <EOL> '<STR_LIT>' : <EOL> [ [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] ] , <EOL> '<STR_LIT>' : <EOL> [ [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] ] , <EOL> '<STR_LIT>' : <EOL> [ [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> ] ] , <EOL> } <EOL> array = np . array ( coeffdict [ perezmodelt ] ) <EOL> F1coeffs = array . T [ <NUM_LIT:0> : <NUM_LIT:3> ] . T <EOL> F2coeffs = array . T [ <NUM_LIT:3> : <NUM_LIT:7> ] . T <EOL> return F1coeffs , F2coeffs </s>
