ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/cv/epw2wea.c
(Generate patch)

Comparing ray/src/cv/epw2wea.c (file contents):
Revision 2.1 by greg, Wed Sep 25 16:52:28 2013 UTC vs.
Revision 2.2 by greg, Mon Oct 21 20:30:50 2013 UTC

# Line 1 | Line 1
1 #ifndef lint
2 static const char RCSid[] = "$Id$";
3 #endif
1   /*  Copyright (c) 2003
2   *  National Research Council Canada
3   *  written by Christoph Reinhart
4   */
5  
6 < /* epw2wea: daylight analysis subprogram of DAYSIM
7 <   Program converts EnergyPlus weather format (*.ppw) into DAYSIM format (*.wea)
11 < */
6 > /* epw2wea: daylight analysis subprogram of DAYSIM */
7 > /* Program converts EnergyPlus weather format (*.ppw) into DAYSIM format (*.wea) */
8  
13 #include <stdlib.h>
9   #include <stdio.h>
10 + #include <stdlib.h>
11   #include <string.h>
16 #include <errno.h>
12  
13 < int
19 < main(int argc, char *argv[])
13 > int main( int argc, char  *argv[])
14   {
15          FILE *EPW_FILE;
16          FILE* WEA_FILE;
17 <        int year, month,day, hour_in,minute,i;
17 >        int year, month,day, hour_in,minute=60,i;
18 >        int minute_message=1;
19          float dir_norm_rad, dif_or_rad,dummy_float;
20 <        char keyword[2000]="";
20 >    char keyword[2000]="";
21 >        char minute_string[2000]="";
22          char epw_file[200]="";
23          char wea_file[200] ="";
24          char city[200] ="";
# Line 32 | Line 28 | main(int argc, char *argv[])
28          if (argc < 3)
29          {
30                  fprintf(stderr,"epw2wea: FATAL ERROR - wrong number of arguments\n");
31 <                fprintf(stderr,"start program with: epw2wea file-name.epw file-name.wea\n");
32 <                return(1);
31 >                fprintf(stderr,"start program with: epw2wea <file-name.epw> <file-name.wea>\n");
32 >                exit(1);
33          }
34          if (argc >= 3)
35          {
# Line 45 | Line 41 | main(int argc, char *argv[])
41                          {
42                                  case 'h':       /* scaling factor */
43                                          break;
44 <                        }//end switch (argv[i][1])
44 >                        }
45                  else
46                  {
47                          fprintf(stdout,"epw2wea: fatal error - %s bad option for input arguments\n", argv[i]);
48 <                        return(1);
49 <                }//end else
48 >                        exit(0);
49 >                }
50          }
51  
52 <        EPW_FILE=fopen(epw_file, "r");;
53 <        WEA_FILE=fopen(wea_file, "w");;
52 >        EPW_FILE=fopen(epw_file, "r");
53 >        WEA_FILE=fopen(wea_file, "w");
54          fscanf(EPW_FILE,"%[^,]s",keyword);
55 <        if(strcmp(keyword,"LOCATION") ){
60 <                fprintf(stderr,"epw2wea: FATAL ERROR - this does not seem to be an epw file \n");
61 <                return(1);
62 <        }
55 >        if( !strcmp(keyword,"LOCATION") ){
56          fscanf(EPW_FILE,",%[^,]s",city);
57          fscanf(EPW_FILE,",%[^,]s",country);
58          fscanf(EPW_FILE,",%[^,]s",country);
# Line 68 | Line 61 | main(int argc, char *argv[])
61          fprintf(WEA_FILE,"%s",keyword);
62  
63          fscanf(EPW_FILE,",%[^,]s",country);
64 <        fscanf(EPW_FILE,",%[^,]s",country);//printf("%s\n",country);
64 >        fscanf(EPW_FILE,",%[^,]s",country);
65          fscanf(EPW_FILE,",%[^,]s",latitude);
66          printf("latitude %s\n",latitude);
67          fprintf(WEA_FILE,"latitude %s\n",latitude);
# Line 90 | Line 83 | main(int argc, char *argv[])
83          fscanf(EPW_FILE,"%*[^\n]");fscanf(EPW_FILE,"%*[\n\r]");
84          fscanf(EPW_FILE,"%*[^\n]");fscanf(EPW_FILE,"%*[\n\r]");
85          fscanf(EPW_FILE,"%*[^\n]");fscanf(EPW_FILE,"%*[\n\r]");
86 +                
87 +        /* read in time step interval */
88 +        fscanf(EPW_FILE,"%[^,]s",keyword);
89 +        fscanf(EPW_FILE,",%[^,]s",keyword);
90 +        fscanf(EPW_FILE,",%[^,]s",minute_string);
91 +        minute=atoi(minute_string);
92 +        if(minute==1)   /* one measurement per hour equals a 60 minute time step */
93 +                minute=60;
94          fscanf(EPW_FILE,"%*[^\n]");fscanf(EPW_FILE,"%*[\n\r]");
95 <
96 <
97 <        while( EOF != fscanf(EPW_FILE,"%d,%d,%d,%d,%d",&year,&month,&day, &hour_in,&minute)){
95 >    
96 >        while( EOF != fscanf(EPW_FILE,"%d,%d,%d,%d",&year,&month,&day, &hour_in)){
97 >                
98                  fprintf(WEA_FILE,"%d %d %.3f ",month,day,hour_in*1.0-minute*(0.5/60));
99 <
99 >                
100 >                fscanf(EPW_FILE,",%f",&dummy_float);
101                  fscanf(EPW_FILE,",%[^,]s",city);
102                  fscanf(EPW_FILE,",%f",&dummy_float);
103                  fscanf(EPW_FILE,",%f",&dummy_float);
# Line 113 | Line 115 | main(int argc, char *argv[])
115                  fprintf(WEA_FILE,"\n");
116          }
117  
118 <        fclose(EPW_FILE);
119 <        fclose(WEA_FILE);
118 > }else{
119 >                fprintf(stderr,"epw2wea: FATAL ERROR - this does not seem to be an epw file \n");exit(1);
120 > }
121  
122 <        return(0);
122 > fclose(EPW_FILE);
123 > fclose(WEA_FILE);
124 > return 0;
125   }
126  
127  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines