-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreate_solar_data.R
145 lines (133 loc) · 6.8 KB
/
create_solar_data.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
getwd();
setwd('C:/Users/Anish/Desktop/Research Project');
#install.packages("GGally")
#install.packages('RNetCDF')
#install.packages('ncdf4')
#install.packages('data.table')
#install.packages('stringr')
#install.packages('lettercase')
#install.packages('dplyr')
library('RNetCDF')
library('ncdf4')
library('data.table')
library('stringr')
library('lettercase')
library('dplyr')
library('GGally')
random_records<-read.csv('random_station_details.csv')
county_names<-unique(random_records$County)
county_names<-county_names[order(county_names)]
summary(county_names)
get_solar_records<-function(county,file_count,clear_sky){
file_name<-""
print(paste("County: ",county))
if(file_count==0)
{
file_name<-paste(str_decapitalize(county),"irradiation-hourly-May2008-May2018.nc",sep="-")
}
if(file_count!=0)
{
file_name<-paste(str_decapitalize(county),file_count,"irradiation-hourly-May2008-May2018.nc",sep="-")
}
nc<-nc_open(file_name , write=FALSE, readunlim=TRUE, verbose=FALSE,
auto_GMT=FALSE, suppress_dimvals=TRUE)
if(!clear_sky)
{
print(print(paste("Reading: Solar ",file_name,sep="-" )) )
solar_data_GHI<-ncvar_get(nc, varid=nc$var$GHI, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE )
solar_data_BNI<-ncvar_get(nc, varid=nc$var$BNI, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE )
solar_data_DHI<-ncvar_get(nc, varid=nc$var$DHI, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE )
solar_data_BHI<-ncvar_get(nc, varid=nc$var$BHI, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE )
}
if(clear_sky)
{
print(print(paste("Reading: Clear-Sky ",file_name,sep=" " )) )
solar_data_CSKY_GHI<-ncvar_get(nc, varid=nc$var$CLEAR_SKY_GHI, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE )
solar_data_CSKY_BNI<-ncvar_get(nc, varid=nc$var$CLEAR_SKY_BNI, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE )
solar_data_CSKY_DHI<-ncvar_get(nc, varid=nc$var$CLEAR_SKY_DHI, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE )
solar_data_CSKY_BHI<-ncvar_get(nc, varid=nc$var$CLEAR_SKY_BHI, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE )
}
solar_data_date<-ISOdatetime(
ncvar_get(nc, varid=nc$var$ut_year, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE ),
ncvar_get(nc, varid=nc$var$ut_month, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE ),
ncvar_get(nc, varid=nc$var$ut_day, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE ),
ncvar_get(nc, varid=nc$var$ut_hour, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE ),
ncvar_get(nc, varid=nc$var$ut_minute, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE ),
ncvar_get(nc, varid=nc$var$ut_second, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE ))
solar_data_G0<- ncvar_get(nc, varid=nc$var$G0, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE )
solar_data_Year<-as.factor(ncvar_get(nc, varid=nc$var$ut_year, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE ))
solar_data_Month<-as.factor(ncvar_get(nc, varid=nc$var$ut_month, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE ))
solar_data_Day<-as.factor(ncvar_get(nc, varid=nc$var$ut_day, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE ))
solar_data_Hour<-as.factor(ncvar_get(nc, varid=nc$var$ut_hour, start=NA, count=NA, verbose=FALSE,
signedbyte=TRUE, collapse_degen=TRUE, raw_datavals=FALSE ))
nc_close(nc)
rm(nc)
print(paste("File Closed",file_name,sep=" "))
##########SOLAR DATA###############
if(!clear_sky)
{
solar_data_df<-data.frame(County=county,Timestamp=solar_data_date,
Year=solar_data_Year,Month=solar_data_Month,Day=solar_data_Day,
Hour=solar_data_Hour,G0=solar_data_G0,
GHI=solar_data_GHI,DHI=solar_data_DHI,
BHI=solar_data_BHI,BNI=solar_data_BNI)
return(solar_data_df)
}
if(clear_sky){
solar_data_cs_df<-data.frame(County=county_names[i],Timestamp=solar_data_date,
Year=solar_data_Year,Month=solar_data_Month,Day=solar_data_Day,
Hour=solar_data_Hour,G0=solar_data_G0,
CS_GHI=solar_data_CSKY_GHI,CS_DHI=solar_data_CSKY_DHI,
CS_BHI=solar_data_CSKY_BHI,CS_BNI=solar_data_CSKY_BNI)
return(solar_data_cs_df)
}
}
#test<-get_solar_records(county_names[1],5,FALSE)
##########SOLAR DATA###############
#temporary solution
#sapply(solar_data_main,function(x) sum(is.na(x)))
#solar_data_main<-na.omit(solar_data_main)
for(i in 1:length(county_names)){
max_limit<-5
if(county_names[i]=="Longford"){
max_limit<-3}
for(j in 0:max_limit){
if(i==1 & j==0){
solar_data_main<-get_solar_records(county = county_names[i],file_count = j,clear_sky = FALSE)
solar_data_cs_main<-get_solar_records(county = county_names[i],file_count = j,clear_sky = TRUE)
}
else{
solar_data_df<-get_solar_records(county = county_names[i],file_count = j,clear_sky = FALSE)
solar_data_cs_df<-get_solar_records(county = county_names[i],file_count = j,clear_sky = TRUE)
solar_data_main<-rbind(solar_data_main,solar_data_df)
solar_data_cs_main<-rbind(solar_data_cs_main,solar_data_cs_df)
}
}
rm(solar_data_df)
rm(solar_data_cs_df)
}
#summary(nc)
summary(solar_data_main)
summary(solar_data_cs_main)
resetData<-solar_data_main
reset_CS_data<-solar_data_cs_main
save(resetData, file="resetData.RData")
save(reset_CS_data, file="reset_CS_Data.RData")