def read_epw(self):
<EOL>self.climateDataPath = os.path.join(self.epwDir, self.epwFileName)<EOL>try:<EOL><INDENT>climate_data = utilities.read_csv(self.climateDataPath)<EOL><DEDENT>except Exception as e:<EOL><INDENT>raise Exception("<STR_LIT>".format(e.message))<EOL><DEDENT>self._header = climate_data[<NUM_LIT:0>:<NUM_LIT:8>]<EOL>self.epwinput = climate_data[<NUM_LIT:8>:]<EOL>self.lat = float(self._header[<NUM_LIT:0>][<NUM_LIT:6>])<EOL>self.lon = float(self._header[<NUM_LIT:0>][<NUM_LIT:7>])<EOL>self.GMT = float(self._header[<NUM_LIT:0>][<NUM_LIT:8>])<EOL>soilData = self._header[<NUM_LIT:3>]<EOL>self.nSoil = int(soilData[<NUM_LIT:1>])           <EOL>self.Tsoil = utilities.zeros(self.nSoil, <NUM_LIT:12>)  <EOL>self.depth_soil = utilities.zeros(self.nSoil, <NUM_LIT:1>)   <EOL>for i in range(self.nSoil):<EOL><INDENT>self.depth_soil[i][<NUM_LIT:0>] = float(soilData[<NUM_LIT:2> + (i*<NUM_LIT:16>)])  <EOL>for j in range(<NUM_LIT:12>):<EOL><INDENT>self.Tsoil[i][j] = float(soilData[<NUM_LIT:6> + (i*<NUM_LIT:16>) + j]) + <NUM_LIT><EOL><DEDENT><DEDENT>self.newPathName = os.path.join(self.destinationDir, self.destinationFileName)<EOL>
Section 2 - Read EPW file
        properties:
            self.climateDataPath
            self.newPathName
            self._header    # header data
            self.epwinput   # timestep data for weather
            self.lat        # latitude
            self.lon        # longitude
            self.GMT        # GMT
            self.nSoil      # Number of soil depths
            self.Tsoil      # nSoil x 12 matrix for soil temperture (K)
            self.depth_soil # nSoil x 1 matrix for soil depth (m)