Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン
#438 コメント 0 件 リアクション 0 件 担当者 3 名 GitHub で見る

@jenhagg がすでに取り組んでいます。

2021年4月2日 から。

評価

この issue はまだ評価されていません。

説明

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.

主要言語
Python
スター
64
フォーク
48
PR マージ指標
30日以内にマージされた PR はありません

環境構築

  • Dockerfile または Docker Compose ファイルあり
  • プルリクエストのテンプレートなし
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Breakthrough-Energy/PowerSimData のほかの issue

Breakthrough-Energy/PowerSimData の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。