Ev refshare extrapolator
EV provincial disaggregation share extrapolator.
Extrapolates future provincial EV shares using a Gompertz model fitted to historical vehicle ownership, GDP, and population data. These shares are used to spatially disaggregate national REMIND EV demand to provincial level.
GompertzModel
Simplified Gompertz model for vehicle ownership prediction.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
saturation_level
|
float
|
Maximum vehicle ownership per 1000 people (default: 500) |
500
|
alpha
|
float
|
Fixed Gompertz parameter (default: -5.58) |
-5.58
|
Source code in workflow/scripts/remind_coupling/ev_refshare_extrapolator.py
fit_model(pgdp_data, vehicle_data)
Fit Gompertz model beta parameter to historical data.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pgdp_data
|
ndarray
|
Historical per-capita GDP data |
required |
vehicle_data
|
ndarray
|
Historical vehicle ownership data |
required |
Returns:
| Name | Type | Description |
|---|---|---|
bool |
bool
|
True if fitting successful, False otherwise |
Source code in workflow/scripts/remind_coupling/ev_refshare_extrapolator.py
gompertz_function(pgdp, beta)
Calculate Gompertz function values for vehicle ownership prediction.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pgdp
|
ndarray
|
Per-capita GDP values |
required |
beta
|
float
|
Fitted parameter |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
np.ndarray: Predicted vehicle ownership per capita |
Source code in workflow/scripts/remind_coupling/ev_refshare_extrapolator.py
predict_vehicles(pgdp, population)
Predict total vehicle numbers using fitted model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pgdp
|
float
|
Per-capita GDP |
required |
population
|
float
|
Population (in 10,000 persons) |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
Predicted vehicles (in 10,000 vehicles) |
Source code in workflow/scripts/remind_coupling/ev_refshare_extrapolator.py
extrapolate_reference(years, input_files, output_dir, config=None)
Extrapolate provincial EV disaggregation shares using Gompertz model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
years
|
list
|
Target years for projections (e.g., [2030, 2040, 2050]) |
required |
input_files
|
dict
|
Dictionary of input data file paths with keys: - 'historical_gdp': Historical GDP by province - 'historical_pop': Historical population by province - 'historical_cars': Historical vehicle ownership by province - 'ssp2_pop': SSP2 future population projections - 'ssp2_gdp': SSP2 future GDP projections |
required |
output_dir
|
str
|
Output directory for results (CSV files will be saved here) |
required |
config
|
dict
|
Gompertz model parameters from sectors.electric_vehicles.gompertz configuration: - 'saturation_level': Maximum vehicles per 1000 people (default: 500) - 'alpha': Fixed Gompertz parameter (default: -5.58) |
None
|
Outputs
Saves two CSV files to output_dir: - ev_passenger_shares.csv: Provincial shares of passenger EV demand - ev_freight_shares.csv: Provincial shares of freight EV demand