Add ability to instantiate a Scenario object via paths to relevant files
Nessuno ha ancora preso questa issue.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Motivation/Description
As discussed over Slack, a Scenario in Analyze state is mostly read-only (with the exception of being able to delete the Scenario), providing access to:
- scenario metadata that's retrieved from the ScenarioList
- a Grid object that's parsed from a .mat file
- input profiles
- output time series
- a change table
Instantiating a Scenario in Analyze state currently relies on using the ScenarioList on the 'compute server' to grab the metadata, locate the grid.mat file, locate the output files, and calculate the input profiles from the base profiles and the change table. However, if we can instantiate a Scenario object in an alternate way that still provides the user with access to all of the relevant data, then we can pass this Scenario object to the many analysis and plotting functions in PostREISE without depending on an external machine that has a ScenarioList and organizes the input/output files in a particular way. This could allow alternate organization of the input/output files to suit a user's needs, e.g. all files for one scenario in the same folder rather than named in a particular way in a raw folder, a data/input folder, a data/output folder.
One design idea
We could create a new AnalyzeFromFilepaths class, as a child class of the existing Analyze class (so that all of our existing checks on isinstance(foo, Analyze) still pass. This new class would overwrite all existing get_x() methods.
Similarly, we could create a new ScenarioFromFilepaths class as a child class of the existing Scenario class. We could instantiate this new ScenarioFromFilepaths class in the following pattern:
class Scenario:
...
@staticmethod
def from_filepaths(
*,
grid_model,
interconnect,
grid_filepath,
pg_filepath,
pf_filepath,
lmp_filepath,
congu_filepath,
congl_filepath,
averaged_cong_filepath,
dcline_pf_filepath=None,
storage_pg_filepath=None,
storage_e_filepath=None,
load_shed_filepath=None,
demand_filepath=None,
hydro_filepath=None,
solar_filepath=None,
wind_filepath=None,
base_demand_filepath=None,
base_hydro_filepath=None,
base_solar_filepath=None,
base_wind_filepath=None,
ct=None,
)
Then, a Scenario which behaves virtually-identically identically to the current Scenario in Analyze state (with the exception of being able to access certain ScenarioList entries) could be instantiated with:
- All required inputs, plus
- either:
- paths to scaled/appended input profiles, or
- paths to base input profiles, plus a change table
with the call signature scenario = Scenario.from_filepaths(**kwargs).
This could also provide the base for functions which could be given one or more folders (e.g. outputs_folder, inputs_folder or base_profiles_folder + ct) and would determine the filepaths automatically and return a ScenarioFromFilepaths.
- Lingua principale
- Python
- Stelle
- 63
- Fork
- 48
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Breakthrough-Energy/PowerSimData
-
documentation
Breakthrough-Energy/PowerSimData#706 · 4 assegnatari ·
-
Breakthrough-Energy/PowerSimData#705 · 1 commento · 4 assegnatari ·
-
feature request
Breakthrough-Energy/PowerSimData#688 · 4 assegnatari ·
-
feature request
Breakthrough-Energy/PowerSimData#687 · 4 assegnatari ·
-
bug
Breakthrough-Energy/PowerSimData#680 · 9 commenti · 5 assegnatari ·
Tutte le issue di Breakthrough-Energy/PowerSimData
Issue simili
-
agent-ready documentation needs-triage
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
-
documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
-
workflow-status page template still says reusable workflows are "triggered only by workflow_call:" Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
-
instance instance add
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
searxng/searx-instances#939 · 1 commento ·
-
area-deployment area-integrations triage:bot-seen
Difficoltà 2/5 Mezza giornata Idoneità per principianti 86/100