build_renewable_{potentials,profiles}: Fix landuse types and introduce linear correction factor
This commit is contained in:
parent
cb5681df18
commit
7f3a1a6cd0
@ -36,6 +36,7 @@ renewable:
|
|||||||
turbine: Vestas_V112_3MW
|
turbine: Vestas_V112_3MW
|
||||||
# ScholzPhd Tab 4.3.1: 10MW/km^2
|
# ScholzPhd Tab 4.3.1: 10MW/km^2
|
||||||
capacity_per_sqm: 3
|
capacity_per_sqm: 3
|
||||||
|
# correction_factor: 0.93
|
||||||
corine:
|
corine:
|
||||||
#The selection of CORINE Land Cover [1] types that are allowed for wind and solar are based on [2] p.42 / p.28
|
#The selection of CORINE Land Cover [1] types that are allowed for wind and solar are based on [2] p.42 / p.28
|
||||||
#
|
#
|
||||||
@ -55,6 +56,7 @@ renewable:
|
|||||||
# ScholzPhd Tab 4.3.1: 10MW/km^2
|
# ScholzPhd Tab 4.3.1: 10MW/km^2
|
||||||
capacity_per_sqm: 3
|
capacity_per_sqm: 3
|
||||||
height_cutoff: 50
|
height_cutoff: 50
|
||||||
|
# correction_factor: 0.93
|
||||||
corine:
|
corine:
|
||||||
grid_codes: [44, 255]
|
grid_codes: [44, 255]
|
||||||
natura: true
|
natura: true
|
||||||
@ -66,8 +68,10 @@ renewable:
|
|||||||
orientation: latitude_optimal
|
orientation: latitude_optimal
|
||||||
# ScholzPhd Tab 4.3.1: 170 MW/km^2
|
# ScholzPhd Tab 4.3.1: 170 MW/km^2
|
||||||
capacity_per_sqm: 1.7
|
capacity_per_sqm: 1.7
|
||||||
|
correction_factor: 0.882
|
||||||
corine:
|
corine:
|
||||||
grid_codes: [44, 255]
|
grid_codes: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
|
||||||
|
18, 19, 20, 26, 31, 32]
|
||||||
natura: true
|
natura: true
|
||||||
hydro:
|
hydro:
|
||||||
cutout: europe-2012-2016-era5
|
cutout: europe-2012-2016-era5
|
||||||
|
@ -29,7 +29,10 @@ indicatormatrix = cutout.indicatormatrix(regions.geometry)
|
|||||||
|
|
||||||
resource = config['resource']
|
resource = config['resource']
|
||||||
func = getattr(cutout, resource.pop('method'))
|
func = getattr(cutout, resource.pop('method'))
|
||||||
capacity_factor = func(capacity_factor=True, **resource)
|
correction_factor = config.get('correction_factor', 1.)
|
||||||
|
if correction_factor != 1.:
|
||||||
|
logger.warning('correction_factor is set as {}'.format(correction_factor))
|
||||||
|
capacity_factor = correction_factor * func(capacity_factor=True, **resource)
|
||||||
layout = capacity_factor * potentials
|
layout = capacity_factor * potentials
|
||||||
|
|
||||||
profile, capacities = func(matrix=indicatormatrix, index=regions.index,
|
profile, capacities = func(matrix=indicatormatrix, index=regions.index,
|
||||||
@ -42,7 +45,7 @@ p_nom_max = xr.DataArray([np.nanmin(relativepotentials[row.nonzero()[1]])
|
|||||||
for row in indicatormatrix.tocsr()],
|
for row in indicatormatrix.tocsr()],
|
||||||
[capacities.coords['bus']]) * capacities
|
[capacities.coords['bus']]) * capacities
|
||||||
|
|
||||||
ds = xr.merge([profile.rename('profile'),
|
ds = xr.merge([(correction_factor * profile).rename('profile'),
|
||||||
capacities.rename('weight'),
|
capacities.rename('weight'),
|
||||||
p_nom_max.rename('p_nom_max')])
|
p_nom_max.rename('p_nom_max')])
|
||||||
(ds.sel(bus=ds['profile'].mean('time') > config.get('min_p_max_pu', 0.))
|
(ds.sel(bus=ds['profile'].mean('time') > config.get('min_p_max_pu', 0.))
|
||||||
|
Loading…
Reference in New Issue
Block a user