コード例 #1
0
    print('calculating ERA5 ' + state + ' GWA')
    if GWA == "3":
        if state == 'PR':
            GWA = xr.open_rasterio(usa_path+'/GWA/GWA3_PR100m.tif')
        else:
            GWA = xr.open_rasterio(usa_path+'/GWA/GWA3_USA100m.tif')
    else:
        if state == 'AK':
            GWA = xr.open_rasterio(usa_path+'/GWA/GWA_AK100m.tif')
        elif state == 'HI':
            GWA = xr.open_rasterio(usa_path+'/GWA/GWA_HI100m.tif')
        elif state == 'PR':
            GWA = xr.open_rasterio(usa_path+'/GWA/GWA_PR100m.tif')
        else:
            GWA = xr.open_rasterio(usa_path+'/GWA/GWA_USA100m.tif')
    ind = turbine_data_era_gwa.state == state
    wps = windpower_simulation_era5(wind.wh100,
                                    alpha.alpha,
                                    turbine_data_era_gwa.height[ind].values,
                                    turbine_data_era_gwa.capacity[ind].values,
                                    turbine_data_era_gwa.sp[ind].values,
                                    turbine_data_era_gwa.lon[ind].values,
                                    turbine_data_era_gwa.lat[ind].values,
                                    pd.to_datetime(turbine_data_era_gwa.commissioning[ind].values).year.values,
                                    startyearmonth,
                                    GWA,
                                    startGWA,
                                    endGWA)
    # save as netcdf
    wps.drop(['x','y']).to_dataset(name='wp').to_netcdf(results_path+"/windpower_"+state+"_ERA5_GWA.nc")
コード例 #2
0
alpha = xr.open_mfdataset(era_path + "/eff_ws/era5_alpha_NZ_*.nc",
                          chunks={'time':
                                  46})  #.sel(time=slice('1997','2020'))

# load windpark data
windparks = pd.read_csv(nz_path + "/windparks_NZ.csv",
                        delimiter=';',
                        parse_dates=['commissioning'])
# calculate specific power of turbines (in W)
windparks['sp'] = windparks.turb_cap * 10**6 / (windparks.d_rotor**2 * np.pi /
                                                4)

# with GWA
outfile = results_path + '/windpower_??_ERA5_GWA.nc'

if results_path + '/windpower_NZ_ERA5_GWA.nc' not in glob.glob(outfile):
    print('calculating ERA5 NZ GWA')
    if GWA == "3":
        GWA = xr.open_rasterio(nz_path + '/GWA/GWA3_NZ100m.tif')
    else:
        GWA = xr.open_dataarray(nz_path + '/GWA/GWA2_NZ100m.nc')
    wps = windpower_simulation_era5(
        wind.wh100, alpha.alpha, windparks.Height.values,
        windparks.Capacity.values, windparks.sp.values,
        windparks.Longitude.values, windparks.Latitude.values,
        windparks.commissioning.values, startyear, GWA, startGWA, endGWA)
    # save as netcdf
    wps.drop(['x', 'y'
              ]).to_dataset(name='wp').to_netcdf(results_path +
                                                 "/windpower_NZ_ERA5_GWA.nc")
コード例 #3
0
# Simulate wind power with ERA5
wind = xr.open_mfdataset(era_path + "/eff_ws/era5_wind_BRA_*.nc",
                         chunks={'time': 100})
alpha = xr.open_mfdataset(era_path + "/eff_ws/era5_alpha_BRA_*.nc",
                          chunks={'time': 100})

# with GWA
outfile = results_path + '/windpower_??_ERA5_GWA.nc'
turbine_data = pd.read_csv(bra_path + '/turbine_data_era_gwa' + GWA + '.csv',
                           parse_dates=['commissioning'],
                           index_col=0)

if results_path + '/windpower_' + state + '_ERA5_GWA.nc' not in glob.glob(
        outfile):
    print('calculating ERA5 ' + state + ' GWA')
    if GWA == "3":
        GWA = xr.open_rasterio(bra_path + '/GWA/GWA3_BRA100m.tif')
    else:
        GWA = xr.open_dataarray(bra_path + '/GWA/GWA2_BRA100m.nc')
    ind = turbine_data.state == state
    wps = windpower_simulation_era5(
        wind.wh100, alpha.alpha, turbine_data.height.values[ind],
        turbine_data.capacity.values[ind], turbine_data.sp.values[ind],
        turbine_data.lon.values[ind], turbine_data.lat.values[ind],
        turbine_data.commissioning.values[ind], startyear, GWA, startGWA,
        endGWA)
    # save as netcdf
    wps.drop(['x', 'y'
              ]).to_dataset(name='wp').to_netcdf(results_path + "/windpower_" +
                                                 state + "_ERA5_GWA.nc")
コード例 #4
0
from scipy.interpolate import interp1d

from utils import power_curve
from utils import windpower_simulation_era5


from dask.diagnostics import ProgressBar
ProgressBar().register()

from paths_bra import *


# Simulate wind power with ERA5
wind = xr.open_mfdataset(era_path + "/eff_ws/era5_wind_BRA_*.nc", chunks = {'time': 100})
alpha = xr.open_mfdataset(era_path + "/eff_ws/era5_alpha_BRA_*.nc", chunks = {'time': 100})

# without GWA
outfile = results_path + '/windpower_stat_ERA5.nc'
turbine_data = pd.read_csv(bra_path + '/turbine_data_era.csv', parse_dates=['commissioning'], index_col = 0)

if outfile not in glob.glob(results_path+'/*'):
	wps = windpower_simulation_era5(wind.wh100,
                                    alpha.alpha,
                                    turbine_data.height.values,
                                    turbine_data.capacity.values,
                                    turbine_data.sp.values,
                                    turbine_data.lon.values,
                                    turbine_data.lat.values,
                                    turbine_data.commissioning.values)
	# save as netcdf
	wps.to_dataset(name='wp').to_netcdf(outfile)