Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Add ability to instantiate a Scenario object via paths to relevant files

Aperta
#438 0 commenti 0 reazioni 3 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

feature request
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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Breakthrough-Energy/PowerSimData

Tutte le issue di Breakthrough-Energy/PowerSimData

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.