| @@ 113-158 (lines=46) @@ | ||
| 110 | ) |
|
| 111 | ||
| 112 | ||
| 113 | class HeatPumps2035(Dataset): |
|
| 114 | def __init__(self, dependencies): |
|
| 115 | def dyn_parallel_tasks_2035(): |
|
| 116 | """Dynamically generate tasks |
|
| 117 | ||
| 118 | The goal is to speed up tasks by parallelising bulks of mvgds. |
|
| 119 | ||
| 120 | The number of parallel tasks is defined via parameter |
|
| 121 | `parallel_tasks` in the dataset config `datasets.yml`. |
|
| 122 | ||
| 123 | Returns |
|
| 124 | ------- |
|
| 125 | set of airflow.PythonOperators |
|
| 126 | The tasks. Each element is of |
|
| 127 | :func:`egon.data.datasets.heat_supply.individual_heating. |
|
| 128 | determine_hp_cap_peak_load_mvgd_ts_2035` |
|
| 129 | """ |
|
| 130 | parallel_tasks = config.datasets()["demand_timeseries_mvgd"].get( |
|
| 131 | "parallel_tasks", 1 |
|
| 132 | ) |
|
| 133 | tasks = set() |
|
| 134 | for i in range(parallel_tasks): |
|
| 135 | tasks.add( |
|
| 136 | PythonOperator( |
|
| 137 | task_id=( |
|
| 138 | "individual_heating." |
|
| 139 | f"determine-hp-capacity-2035-" |
|
| 140 | f"mvgd-bulk{i}" |
|
| 141 | ), |
|
| 142 | python_callable=split_mvgds_into_bulks, |
|
| 143 | op_kwargs={ |
|
| 144 | "n": i, |
|
| 145 | "max_n": parallel_tasks, |
|
| 146 | "func": determine_hp_cap_peak_load_mvgd_ts_2035, |
|
| 147 | }, |
|
| 148 | ) |
|
| 149 | ) |
|
| 150 | return tasks |
|
| 151 | ||
| 152 | super().__init__( |
|
| 153 | name="HeatPumps2035", |
|
| 154 | version="0.0.2", |
|
| 155 | dependencies=dependencies, |
|
| 156 | tasks=( |
|
| 157 | delete_heat_peak_loads_eGon2035, |
|
| 158 | {*dyn_parallel_tasks_2035()}, |
|
| 159 | ), |
|
| 160 | ) |
|
| 161 | ||
| @@ 66-109 (lines=44) @@ | ||
| 63 | hp_capacity = Column(REAL) |
|
| 64 | ||
| 65 | ||
| 66 | class HeatPumpsPypsaEurSec(Dataset): |
|
| 67 | def __init__(self, dependencies): |
|
| 68 | def dyn_parallel_tasks_pypsa_eur_sec(): |
|
| 69 | """Dynamically generate tasks |
|
| 70 | The goal is to speed up tasks by parallelising bulks of mvgds. |
|
| 71 | ||
| 72 | The number of parallel tasks is defined via parameter |
|
| 73 | `parallel_tasks` in the dataset config `datasets.yml`. |
|
| 74 | ||
| 75 | Returns |
|
| 76 | ------- |
|
| 77 | set of airflow.PythonOperators |
|
| 78 | The tasks. Each element is of |
|
| 79 | :func:`egon.data.datasets.heat_supply.individual_heating. |
|
| 80 | determine_hp_cap_peak_load_mvgd_ts_pypsa_eur_sec` |
|
| 81 | """ |
|
| 82 | parallel_tasks = config.datasets()["demand_timeseries_mvgd"].get( |
|
| 83 | "parallel_tasks", 1 |
|
| 84 | ) |
|
| 85 | ||
| 86 | tasks = set() |
|
| 87 | for i in range(parallel_tasks): |
|
| 88 | tasks.add( |
|
| 89 | PythonOperator( |
|
| 90 | task_id=( |
|
| 91 | f"individual_heating." |
|
| 92 | f"determine-hp-capacity-pypsa-eur-sec-" |
|
| 93 | f"mvgd-bulk{i}" |
|
| 94 | ), |
|
| 95 | python_callable=split_mvgds_into_bulks, |
|
| 96 | op_kwargs={ |
|
| 97 | "n": i, |
|
| 98 | "max_n": parallel_tasks, |
|
| 99 | "func": determine_hp_cap_peak_load_mvgd_ts_pypsa_eur_sec, # noqa: E501 |
|
| 100 | }, |
|
| 101 | ) |
|
| 102 | ) |
|
| 103 | return tasks |
|
| 104 | ||
| 105 | super().__init__( |
|
| 106 | name="HeatPumpsPypsaEurSec", |
|
| 107 | version="0.0.2", |
|
| 108 | dependencies=dependencies, |
|
| 109 | tasks=({*dyn_parallel_tasks_pypsa_eur_sec()},), |
|
| 110 | ) |
|
| 111 | ||
| 112 | ||