InfrastructureSystems API Reference
InfrastructureSystems.AbstractRecorderEvent
— TypeSupertype for recorder events
InfrastructureSystems.AverageRateCurve
— TypeAn average rate curve, relating the production quantity to the average cost rate from the origin: y = f(x)/x
. Can be used, for instance, in the representation of a CostCurve
where x
is MW and y
is currency/MWh, or in the representation of a FuelCurve
where x
is MW and y
is fuel/MWh. Typically calculated by dividing absolute values of cost rate or fuel input rate by absolute values of electric power.
InfrastructureSystems.CompressionSettings
— TypeCompressionSettings(enabled, type, level, shuffle)
Provides customization of HDF5 compression settings.
enabled::Bool
: Controls whether compression is enabled.type::InfrastructureSystems.CompressionTypesModule.CompressionTypes
: Specifies the type of compression to use.level::Int64
: Supported values are 0-9. Higher values deliver better compression ratios but take longer.shuffle::Bool
: Controls whether to enable the shuffle filter. Used with DEFLATE.
Refer to the HDF5.jl and HDF5 documentation for more details on the options.
Example
settings = CompressionSettings(
+ enabled = true,
+ type = CompressionTypes.DEFLATE, # BLOSC is also supported
+ level = 3,
+ shuffle = true,
+)
InfrastructureSystems.CostCurve
— Typestruct CostCurve{T<:InfrastructureSystems.ValueCurve} <: InfrastructureSystems.ProductionVariableCostCurve{T<:InfrastructureSystems.ValueCurve}
value_curve::InfrastructureSystems.ValueCurve
: The underlyingValueCurve
representation of thisProductionVariableCostCurve
power_units::InfrastructureSystems.UnitSystemModule.UnitSystem
: (default: natural units (MW)) The units for the x-axis of the curvevom_cost::LinearCurve
: (default of 0) Additional proportional Variable Operation and Maintenance Cost in /(power_unit h), represented as aLinearCurve
CostCurve(value_curve, power_units, vom_cost)
+CostCurve(; value_curve, power_units, vom_cost)
Direct representation of the variable operation cost of a power plant in currency. Composed of a ValueCurve
that may represent input-output, incremental, or average rate data. The default units for the x-axis are MW and can be specified with power_units
.
InfrastructureSystems.DataFormatError
— TypeThrown upon detection of user data that is not supported.
InfrastructureSystems.Deterministic
— Typemutable struct Deterministic <: AbstractDeterministic
+ name::String
+ data::SortedDict
+ resolution::Dates.Period
+ scaling_factor_multiplier::Union{Nothing, Function}
+ internal::InfrastructureSystemsInternal
+end
A deterministic forecast for a particular data field in a Component.
Arguments
name::String
: user-defined namedata::SortedDict
: timestamp - scalingfactorresolution::Dates.Period
: forecast resolutionscaling_factor_multiplier::Union{Nothing, Function}
: Applicable when the time series data are scaling factors. Called on the associated component to convert the values.internal::InfrastructureSystemsInternal
InfrastructureSystems.Deterministic
— MethodDeterministic(
+ name::AbstractString,
+ input_data::AbstractDict{Dates.DateTime, <:TimeSeries.TimeArray};
+ normalization_factor,
+ scaling_factor_multiplier
+) -> InfrastructureSystems.Deterministic
+
Construct Deterministic from a Dict of TimeArrays.
Arguments
name::AbstractString
: user-defined nameinput_data::AbstractDict{Dates.DateTime, TimeSeries.TimeArray}
: time series data.normalization_factor::NormalizationFactor = 1.0
: optional normalization factor to apply to each data entryscaling_factor_multiplier::Union{Nothing, Function} = nothing
: If the data are scaling factors then this function will be called on the component and applied to the data whenget_time_series_array
is called.timestamp = :timestamp
: If the values are DataFrames is passed then this must be the column name that contains timestamps.
InfrastructureSystems.Deterministic
— MethodDeterministic(
+ name::AbstractString,
+ filename::AbstractString,
+ component::InfrastructureSystems.InfrastructureSystemsComponent,
+ resolution::Dates.Period;
+ normalization_factor,
+ scaling_factor_multiplier
+) -> InfrastructureSystems.Deterministic
+
Construct Deterministic from a CSV file. The first column must be a timestamp in DateTime format and the columns the values in the forecast window.
Arguments
name::AbstractString
: user-defined namefilename::AbstractString
: name of CSV file containing datacomponent::InfrastructureSystemsComponent
: component associated with the datanormalization_factor::NormalizationFactor = 1.0
: optional normalization factor to apply to each data entryscaling_factor_multiplier::Union{Nothing, Function} = nothing
: If the data are scaling factors then this function will be called on the component and applied to the data whenget_time_series_array
is called.
InfrastructureSystems.Deterministic
— MethodDeterministic(
+ name::AbstractString,
+ series_data::InfrastructureSystems.RawTimeSeries,
+ resolution::Dates.Period;
+ normalization_factor,
+ scaling_factor_multiplier
+) -> InfrastructureSystems.Deterministic
+
Construct Deterministic from RawTimeSeries.
InfrastructureSystems.Deterministic
— MethodDeterministic(
+ src::InfrastructureSystems.Deterministic,
+ name::AbstractString;
+ scaling_factor_multiplier
+) -> InfrastructureSystems.Deterministic
+
Construct Deterministic that shares the data from an existing instance.
This is useful in cases where you want a component to use the same time series data for two different attributes.
Examples
resolution = Dates.Hour(1)
+data = Dict(
+ DateTime("2020-01-01T00:00:00") => ones(24),
+ DateTime("2020-01-01T01:00:00") => ones(24),
+)
+# Define a Deterministic for the first attribute
+forecast_max_active_power = Deterministic(
+ "max_active_power",
+ data,
+ resolution,
+ scaling_factor_multiplier = get_max_active_power,
+)
+add_time_series!(sys, generator, forecast_max_active_power)
+# Reuse time series for second attribute
+forecast_max_reactive_power = Deterministic(
+ forecast_max_active_power,
+ "max_reactive_power"
+ scaling_factor_multiplier = get_max_reactive_power,
+)
+add_time_series!(sys, generator, forecast_max_reactive_power)
InfrastructureSystems.Deterministic
— MethodDeterministic(
+ forecast::InfrastructureSystems.Deterministic,
+ data
+) -> InfrastructureSystems.Deterministic
+
Construct a new Deterministic from an existing instance and a subset of data.
InfrastructureSystems.DeterministicMetadata
— Typemutable struct DeterministicMetadata <: ForecastMetadata
+ name::String
+ resolution::Dates.Period
+ initial_timestamp::Dates.DateTime
+ interval::Dates.Period
+ count::Int
+ time_series_uuid::UUIDs.UUID
+ horizon::Dates.Period
+ time_series_type::Type{<:AbstractDeterministic}
+ scaling_factor_multiplier::Union{Nothing, Function}
+ features::Dict{String, Union{Bool, Int, String}}
+ internal::InfrastructureSystemsInternal
+end
A deterministic forecast for a particular data field in a Component.
Arguments
name::String
: user-defined nameresolution::Dates.Period
:initial_timestamp::Dates.DateTime
: time series availability timeinterval::Dates.Period
: time step between forecast windowscount::Int
: number of forecast windowstime_series_uuid::UUIDs.UUID
: reference to time series datahorizon::Dates.Period
: length of this time seriestime_series_type::Type{<:AbstractDeterministic}
: Type of the time series data associated with this metadata.scaling_factor_multiplier::Union{Nothing, Function}
: (default:nothing
) Applicable when the time series data are scaling factors. Called on the associated component to convert the values.features::Dict{String, Union{Bool, Int, String}}
: (default:Dict{String, Any}()
) User-defined tags that differentiate multiple time series arrays that represent the same component attribute, such as different arrays for different scenarios or years.internal::InfrastructureSystemsInternal
:
InfrastructureSystems.DeterministicSingleTimeSeries
— Typemutable struct DeterministicSingleTimeSeries <: AbstractDeterministic
+ single_time_series::SingleTimeSeries
+ initial_timestamp::Dates.DateTime
+ interval::Dates.Period
+ count::Int
+ horizon::Int
+end
A deterministic forecast that wraps a SingleTimeSeries
DeterministicSingleTimeSeries
behaves exactly like a Deterministic
, but instead of storing windows at each initial time it provides a view into the existing SingleTimeSeries
at incrementing offsets. This avoids large data duplications when there are the overlapping windows between forecasts.
Can be used as a perfect forecast based on historical data when real forecast data is unavailable.
Arguments
single_time_series::SingleTimeSeries
: wrappedSingleTimeSeries
objectinitial_timestamp::Dates.DateTime
: time series availability timeinterval::Dates.Period
: time step between forecast windowscount::Int
: number of forecast windowshorizon::Int
: length of this time series
InfrastructureSystems.DeviceParameter
— TypeBase type for auxillary structs. These should not be stored in a system.
InfrastructureSystems.FileLogger
— TypeSpecializes the behavior of SimpleLogger by adding timestamps and process and thread IDs.
InfrastructureSystems.FlattenIteratorWrapper
— TypeWrapper around Iterators.Flatten to provide total length.
InfrastructureSystems.Forecast
— TypeSupertype for forecast time series Current concrete subtypes are:
Subtypes of Forecast must implement:
get_horizon_count
get_initial_times
get_initial_timestamp
get_name
get_scaling_factor_multiplier
get_window
iterate_windows
InfrastructureSystems.ForecastCache
— MethodConstruct ForecastCache to automatically control caching of forecast data. Maintains some count of forecast windows in memory based on cache_size_bytes
.
Call Base.iterate or get_next_time_series_array!
to retrieve data. Each iteration will return a TimeSeries.TimeArray covering one forecast window of length horizon_count
.
Arguments
::Type{T}
: subtype of Forecastcomponent::InfrastructureSystemsComponent
: componentname::AbstractString
: forecast namestart_time::Union{Nothing, Dates.DateTime} = nothing
: forecast start timehorizon_count::Union{Nothing, Int} = nothing
: forecast horizon countcache_size_bytes = TIME_SERIES_CACHE_SIZE_BYTES
: maximum size of data to keep in memoryignore_scaling_factors = false
: controls whether to ignorescaling_factor_multiplier
in the time series instance
InfrastructureSystems.ForecastKey
— TypeA unique key to identify and retrieve a Forecast
See: get_time_series_keys
and get_time_series(::TimeSeriesOwners, ::TimeSeriesKey)
.
InfrastructureSystems.FuelCurve
— Typestruct FuelCurve{T<:InfrastructureSystems.ValueCurve} <: InfrastructureSystems.ProductionVariableCostCurve{T<:InfrastructureSystems.ValueCurve}
value_curve::InfrastructureSystems.ValueCurve
: The underlyingValueCurve
representation of thisProductionVariableCostCurve
power_units::InfrastructureSystems.UnitSystemModule.UnitSystem
: (default: natural units (MW)) The units for the x-axis of the curvefuel_cost::Union{Float64, InfrastructureSystems.TimeSeriesKey}
: Either a fixed value for fuel cost or theTimeSeriesKey
to a fuel cost time seriesvom_cost::LinearCurve
: (default of 0) Additional proportional Variable Operation and Maintenance Cost in /(power_unit h) represented as aLinearCurve
FuelCurve(value_curve, power_units, fuel_cost, vom_cost)
+FuelCurve(value_curve, fuel_cost)
+FuelCurve(value_curve, fuel_cost, vom_cost)
+FuelCurve(value_curve, power_units, fuel_cost)
+FuelCurve(; value_curve, power_units, fuel_cost, vom_cost)
Representation of the variable operation cost of a power plant in terms of fuel (MBTU, liters, m^3, etc.), coupled with a conversion factor between fuel and currency. Composed of a ValueCurve
that may represent input-output, incremental, or average rate data. The default units for the x-axis are MW and can be specified with power_units
.
InfrastructureSystems.GeographicInfo
— TypeAttribute to store Geographic Information about the system components
InfrastructureSystems.Hdf5TimeSeriesStorage
— TypeStores all time series data in an HDF5 file.
The file used is assumed to be temporary and will be automatically deleted when there are no more references to the storage object.
InfrastructureSystems.Hdf5TimeSeriesStorage
— MethodHdf5TimeSeriesStorage(
+ create_file::Bool;
+ filename,
+ directory,
+ compression
+) -> InfrastructureSystems.Hdf5TimeSeriesStorage
+
Constructs Hdf5TimeSeriesStorage.
Arguments
create_file::Bool
: create new filefilename=nothing
: if nothing, create a temp file, else use this name.directory=nothing
: if set and filename is nothing, create a temp file in this directory. If it is not set, use the environment variable SIENNATIMESERIES_DIRECTORY. If that is not set, use tempdir(). This should be set if the time series data is larger than the tmp filesystem can hold.
InfrastructureSystems.Hdf5TimeSeriesStorage
— MethodHdf5TimeSeriesStorage(
+
+) -> InfrastructureSystems.Hdf5TimeSeriesStorage
+
Constructs Hdf5TimeSeriesStorage by creating a temp file.
InfrastructureSystems.InMemoryTimeSeriesStorage
— TypeStores all time series data in memory.
InfrastructureSystems.InMemoryTimeSeriesStorage
— MethodInMemoryTimeSeriesStorage(
+ hdf5_storage::InfrastructureSystems.Hdf5TimeSeriesStorage
+) -> InfrastructureSystems.InMemoryTimeSeriesStorage
+
Constructs InMemoryTimeSeriesStorage from an instance of Hdf5TimeSeriesStorage.
InfrastructureSystems.IncrementalCurve
— TypeAn incremental (or 'marginal') curve, relating the production quantity to the derivative of cost: y = f'(x)
. Can be used, for instance, in the representation of a CostCurve
where x
is MW and y
is currency/MWh, or in the representation of a FuelCurve
where x
is MW and y
is fuel/MWh.
InfrastructureSystems.InfrastructureSystemsComponent
— TypeBase type for structs that are stored in a system.
Required interface functions for subtypes:
- get_name()
- get_internal()
Subtypes may contain time series.
InfrastructureSystems.InfrastructureSystemsInternal
— TypeInternal storage common to InfrastructureSystems types.
InfrastructureSystems.InfrastructureSystemsInternal
— MethodInfrastructureSystemsInternal(
+ u::Base.UUID
+) -> InfrastructureSystems.InfrastructureSystemsInternal
+
Creates InfrastructureSystemsInternal with an existing UUID.
InfrastructureSystems.InfrastructureSystemsInternal
— MethodInfrastructureSystemsInternal(
+;
+ uuid,
+ shared_system_references,
+ units_info,
+ ext
+) -> InfrastructureSystems.InfrastructureSystemsInternal
+
Creates InfrastructureSystemsInternal with a new UUID.
InfrastructureSystems.InfrastructureSystemsType
— TypeBase type for any struct in the Sienna packages. All structs must implement a kwarg-only constructor to allow deserializing from a Dict.
InfrastructureSystems.InputOutputCurve
— TypeAn input-output curve, directly relating the production quantity to the cost: y = f(x)
. Can be used, for instance, in the representation of a CostCurve
where x
is MW and y
is currency/hr, or in the representation of a FuelCurve
where x
is MW and y
is fuel/hr.
InfrastructureSystems.LazyDictFromIterator
— MethodLazyDictFromIterator creates a dictionary from an iterator, but only increments the iterator and adds items to the dictionary as it needs them. In the worst case it is identical to creating a dictionary by iterating over the entire list. Each V should have a K member.
Arguments
K
: type of the dictionary keysV
: type of the dictionary valuesiter
: any object implementing the Iterator interfacegetter::Function
: method to call on V to get its K
InfrastructureSystems.LinearCurve
— TypeLinearCurve(proportional_term::Float64)
+LinearCurve(proportional_term::Float64, constant_term::Float64)
A linear input-output curve, representing a constant marginal rate. May have zero no-load cost (i.e., constant average rate) or not.
Arguments
proportional_term::Float64
: marginal rateconstant_term::Float64
: optional, cost at zero production, defaults to0.0
InfrastructureSystems.LinearFunctionData
— TypeStructure to represent the underlying data of linear functions. Principally used for the representation of cost functions f(x) = proportional_term*x + constant_term
.
Arguments
proportional_term::Float64
: the proportional term in the represented functionconstant_term::Float64
: the constant term in the represented function
InfrastructureSystems.LogEvent
— TypeContains information describing a log event.
InfrastructureSystems.LogEventTracker
— TypeLogEventTracker() -> InfrastructureSystems.LogEventTracker
+LogEventTracker(
+ levels
+) -> InfrastructureSystems.LogEventTracker
+
Tracks counts of all log events by level.
Examples
LogEventTracker()
+LogEventTracker((Logging.Info, Logging.Warn, Logging.Error))
InfrastructureSystems.MultiLogger
— TypeRedirects log events to multiple loggers. The primary use case is to allow logging to both a file and the console. Secondarily, it can track the counts of all log messages.
Example
MultiLogger([TerminalLogger(stderr), SimpleLogger(stream)], LogEventTracker())
InfrastructureSystems.MultiLogger
— MethodMultiLogger(
+ loggers::Array{T<:Base.CoreLogging.AbstractLogger}
+) -> InfrastructureSystems.MultiLogger
+
Creates a MultiLogger with no event tracking.
Example
MultiLogger([TerminalLogger(stderr), SimpleLogger(stream)])
InfrastructureSystems.NotImplementedError
— TypeIndicate that the feature at hand happens to not be implemented for the given data even though it could be. If it is a category mistake to imagine this feature defined on that data, use another exception, like TypeError
or ArgumentError
.
InfrastructureSystems.PiecewiseAverageCurve
— TypePiecewiseAverageCurve(initial_input::Union{Float64, Nothing}, x_coords::Vector{Float64}, slopes::Vector{Float64})
A piecewise linear curve specified by average rates between production points. May have nonzero initial value.
Arguments
initial_input::Union{Float64, Nothing}
: cost at minimum production pointfirst(x_coords)
(NOT at zero production), defines the start of the curvex_coords::Vector{Float64}
: vector ofn
production pointsslopes::Vector{Float64}
: vector ofn-1
average rates/slopes of the curve segments between the points
InfrastructureSystems.PiecewiseIncrementalCurve
— TypePiecewiseIncrementalCurve(initial_input::Union{Float64, Nothing}, x_coords::Vector{Float64}, slopes::Vector{Float64})
+PiecewiseIncrementalCurve(input_at_zero::Union{Nothing, Float64}, initial_input::Union{Float64, Nothing}, x_coords::Vector{Float64}, slopes::Vector{Float64})
A piecewise linear curve specified by marginal rates (slopes) between production points. May have nonzero initial value.
Arguments
input_at_zero::Union{Nothing, Float64}
: (optional, defaults tonothing
) cost at zero production, does NOT represent a part of the curveinitial_input::Union{Float64, Nothing}
: cost at minimum production pointfirst(x_coords)
(NOT at zero production), defines the start of the curvex_coords::Vector{Float64}
: vector ofn
production pointsslopes::Vector{Float64}
: vector ofn-1
marginal rates/slopes of the curve segments between the points
InfrastructureSystems.PiecewiseLinearData
— TypeStructure to represent piecewise linear data as a series of points: two points define one segment, three points define two segments, etc. The curve starts at the first point given, not the origin. Principally used for the representation of cost functions where the points store quantities (x, y), such as (MW, /h).
Arguments
points::Vector{@NamedTuple{x::Float64, y::Float64}}
: the points that define the function
InfrastructureSystems.PiecewisePointCurve
— TypePiecewisePointCurve(points::Vector{Tuple{Float64, Float64}})
A piecewise linear curve specified by cost values at production points.
Arguments
points::Vector{Tuple{Float64, Float64}}
or similar: vector of(production, cost)
pairs
InfrastructureSystems.PiecewiseStepData
— TypeStructure to represent a step function as a series of endpoint x-coordinates and segment y-coordinates: two x-coordinates and one y-coordinate defines a single segment, three x-coordinates and two y-coordinates define two segments, etc. This can be useful to represent the derivative of a PiecewiseLinearData, where the y-coordinates of this step function represent the slopes of that piecewise linear function, so there is also an optional field c
that can be used to store the initial y-value of that piecewise linear function. Principally used for the representation of cost functions where the points store quantities (x, dy/dx), such as (MW, /MWh).
Arguments
x_coords::Vector{Float64}
: the x-coordinates of the endpoints of the segmentsy_coords::Vector{Float64}
: the y-coordinates of the segments:y_coords[1]
is the y-value between
x_coords[1]
and x_coords[2]
, etc. Must have one fewer elements than x_coords
.
c::Union{Nothing, Float64}
: optional, the value to use for the integral from 0 tox_coords[1]
of this function
InfrastructureSystems.Probabilistic
— Typemutable struct Probabilistic <: Forecast
+ name::String
+ resolution::Dates.Period
+ percentiles::Vector{Float64}
+ data::SortedDict
+ scaling_factor_multiplier::Union{Nothing, Function}
+ internal::InfrastructureSystemsInternal
+end
A Probabilistic forecast for a particular data field in a Component.
Arguments
name::String
: user-defined nameresolution::Dates.Period
: forecast resolutionpercentiles::Vector{Float64}
: Percentiles for the probabilistic forecastdata::SortedDict
: timestamp - scalingfactorscaling_factor_multiplier::Union{Nothing, Function}
: Applicable when the time series data are scaling factors. Called on the associated component to convert the values.internal::InfrastructureSystemsInternal
InfrastructureSystems.Probabilistic
— MethodProbabilistic(
+ name::AbstractString,
+ input_data::AbstractDict,
+ percentiles::Vector,
+ resolution::Dates.Period;
+ normalization_factor,
+ scaling_factor_multiplier
+) -> InfrastructureSystems.Probabilistic
+
Construct Probabilistic from a SortedDict of Arrays.
Arguments
name::AbstractString
: user-defined nameinput_data::AbstractDict{Dates.DateTime, Matrix{Float64}}
: time series data.percentiles
: Percentiles represented in the probabilistic forecastresolution::Dates.Period
: The resolution of the forecast in Dates.Period`normalization_factor::NormalizationFactor = 1.0
: optional normalization factor to apply to each data entryscaling_factor_multiplier::Union{Nothing, Function} = nothing
: If the data are scaling factors then this function will be called on the component and applied to the data whenget_time_series_array
is called.
InfrastructureSystems.Probabilistic
— MethodProbabilistic(
+ name::AbstractString,
+ input_data::AbstractDict{Dates.DateTime, <:TimeSeries.TimeArray},
+ percentiles::Vector{Float64};
+ normalization_factor,
+ scaling_factor_multiplier
+) -> InfrastructureSystems.Probabilistic
+
Construct Probabilistic from a Dict of TimeArrays.
Arguments
name::AbstractString
: user-defined nameinput_data::AbstractDict{Dates.DateTime, TimeSeries.TimeArray}
: time series data.percentiles
: Percentiles represented in the probabilistic forecastnormalization_factor::NormalizationFactor = 1.0
: optional normalization factor to apply to each data entryscaling_factor_multiplier::Union{Nothing, Function} = nothing
: If the data are scaling factors then this function will be called on the component and applied to the data whenget_time_series_array
is called.timestamp = :timestamp
: If the values are DataFrames is passed then this must be the column name that contains timestamps.
InfrastructureSystems.Probabilistic
— MethodProbabilistic(
+ name::AbstractString,
+ series_data::InfrastructureSystems.RawTimeSeries,
+ percentiles::Vector,
+ resolution::Dates.Period;
+ normalization_factor,
+ scaling_factor_multiplier
+) -> InfrastructureSystems.Probabilistic
+
Construct Deterministic from RawTimeSeries.
InfrastructureSystems.Probabilistic
— MethodProbabilistic(
+ src::InfrastructureSystems.Probabilistic,
+ name::AbstractString;
+ scaling_factor_multiplier
+) -> InfrastructureSystems.Probabilistic
+
Construct a Probabilistic that shares the data from an existing instance.
This is useful in cases where you want a component to use the same time series data for two different attributes.
InfrastructureSystems.ProbabilisticMetadata
— Typemutable struct ProbabilisticMetadata <: ForecastMetadata
+ name::String
+ initial_timestamp::Dates.DateTime
+ resolution::Dates.Period
+ interval::Dates.Period
+ count::Int
+ percentiles::Vector{Float64}
+ time_series_uuid::UUIDs.UUID
+ horizon::Dates.Period
+ scaling_factor_multiplier::Union{Nothing, Function}
+ features::Dict{String, Union{Bool, Int, String}}
+ internal::InfrastructureSystemsInternal
+end
A Probabilistic forecast for a particular data field in a Component.
Arguments
name::String
: user-defined nameinitial_timestamp::Dates.DateTime
: time series availability timeresolution::Dates.Period
:interval::Dates.Period
: time step between forecast windowscount::Int
: number of forecast windowspercentiles::Vector{Float64}
: Percentiles for the probabilistic forecasttime_series_uuid::UUIDs.UUID
: reference to time series datahorizon::Dates.Period
: length of this time seriesscaling_factor_multiplier::Union{Nothing, Function}
: (default:nothing
) Applicable when the time series data are scaling factors. Called on the associated component to convert the values.features::Dict{String, Union{Bool, Int, String}}
: (default:Dict{String, Any}()
) User-defined tags that differentiate multiple time series arrays that represent the same component attribute, such as different arrays for different scenarios or years.internal::InfrastructureSystemsInternal
:
InfrastructureSystems.QuadraticCurve
— TypeQuadraticCurve(quadratic_term::Float64, proportional_term::Float64, constant_term::Float64)
A quadratic input-output curve, may have nonzero no-load cost.
Arguments
quadratic_term::Float64
: quadratic term of the curveproportional_term::Float64
: proportional term of the curveconstant_term::Float64
: constant term of the curve
InfrastructureSystems.QuadraticFunctionData
— TypeStructure to represent the underlying data of quadratic functions. Principally used for the representation of cost functions f(x) = quadratic_term*x^2 + proportional_term*x + constant_term
.
Arguments
quadratic_term::Float64
: the quadratic term in the represented functionproportional_term::Float64
: the proportional term in the represented functionconstant_term::Float64
: the constant term in the represented function
InfrastructureSystems.QuadraticFunctionData
— MethodQuadraticFunctionData(
+ data::InfrastructureSystems.LinearFunctionData
+) -> InfrastructureSystems.QuadraticFunctionData
+
Losslessly convert LinearFunctionData
to QuadraticFunctionData
InfrastructureSystems.RawTimeSeries
— TypeWraps the data read from the text files with time series
InfrastructureSystems.Recorder
— TypeRecords user-defined events in JSON format.
InfrastructureSystems.Recorder
— MethodRecorder(
+ name::Symbol;
+ io,
+ mode,
+ directory
+) -> InfrastructureSystems.Recorder
+
Construct a Recorder.
Arguments
name::Symbol
: name of recorderio::Union{Nothing, IO}
: If nothing, record events in a file using name.mode = "w"
: Only used when io is nothing.directory = "."
: Only used when io is nothing.
InfrastructureSystems.Results
— TypeTo implement a sub-type of this you need to implement the methods below.
InfrastructureSystems.Scenarios
— Typemutable struct Scenarios <: Forecast
+ name::String
+ resolution::Dates.Period
+ scenario_count::Int64
+ data::SortedDict
+ scaling_factor_multiplier::Union{Nothing, Function}
+ internal::InfrastructureSystemsInternal
+end
A Discrete Scenario Based time series for a particular data field in a Component.
Arguments
name::String
: user-defined nameresolution::Dates.Period
: forecast resolutionscenario_count::Int64
: Number of scenariosdata::SortedDict
: timestamp - scalingfactorscaling_factor_multiplier::Union{Nothing, Function}
: Applicable when the time series data are scaling factors. Called on the associated component to convert the values.internal::InfrastructureSystemsInternal
InfrastructureSystems.Scenarios
— MethodScenarios(
+ name::AbstractString,
+ input_data::AbstractDict,
+ resolution::Dates.Period;
+ normalization_factor,
+ scaling_factor_multiplier
+) -> InfrastructureSystems.Scenarios
+
Construct Scenarios from a SortedDict of Arrays.
Arguments
name::AbstractString
: user-defined nameinput_data::AbstractDict{Dates.DateTime, Matrix{Float64}}
: time series data.resolution::Dates.Period
: The resolution of the forecast in Dates.Period`normalization_factor::NormalizationFactor = 1.0
: optional normalization factor to apply to each data entryscaling_factor_multiplier::Union{Nothing, Function} = nothing
: If the data are scaling factors then this function will be called on the component and applied to the data whenget_time_series_array
is called.
InfrastructureSystems.Scenarios
— MethodScenarios(
+ name::AbstractString,
+ input_data::AbstractDict{Dates.DateTime, <:TimeSeries.TimeArray};
+ normalization_factor,
+ scaling_factor_multiplier
+) -> InfrastructureSystems.Scenarios
+
Construct Scenarios from a Dict of TimeArrays.
Arguments
name::AbstractString
: user-defined nameinput_data::AbstractDict{Dates.DateTime, TimeSeries.TimeArray}
: time series data.normalization_factor::NormalizationFactor = 1.0
: optional normalization factor to apply to each data entryscaling_factor_multiplier::Union{Nothing, Function} = nothing
: If the data are scaling factors then this function will be called on the component and applied to the data whenget_time_series_array
is called.timestamp = :timestamp
: If the values are DataFrames is passed then this must be the column name that contains timestamps.
InfrastructureSystems.Scenarios
— MethodScenarios(
+ src::InfrastructureSystems.Scenarios,
+ name::AbstractString;
+ scaling_factor_multiplier
+) -> InfrastructureSystems.Scenarios
+
Construct Scenarios that shares the data from an existing instance.
This is useful in cases where you want a component to use the same time series data for two different attributes.
InfrastructureSystems.ScenariosMetadata
— Typemutable struct ScenariosMetadata <: ForecastMetadata
+ name::String
+ resolution::Dates.Period
+ initial_timestamp::Dates.DateTime
+ interval::Dates.Period
+ scenario_count::Int64
+ count::Int
+ time_series_uuid::UUIDs.UUID
+ horizon::Dates.Period
+ scaling_factor_multiplier::Union{Nothing, Function}
+ features::Dict{String, Union{Bool, Int, String}}
+ internal::InfrastructureSystemsInternal
+end
A Discrete Scenario Based time series for a particular data field in a Component.
Arguments
name::String
: user-defined nameresolution::Dates.Period
:initial_timestamp::Dates.DateTime
: time series availability timeinterval::Dates.Period
: time step between forecast windowsscenario_count::Int64
: Number of scenarioscount::Int
: number of forecast windowstime_series_uuid::UUIDs.UUID
: reference to time series datahorizon::Dates.Period
: length of this time seriesscaling_factor_multiplier::Union{Nothing, Function}
: (default:nothing
) Applicable when the time series data are scaling factors. Called on the associated component to convert the values.features::Dict{String, Union{Bool, Int, String}}
: (default:Dict{String, Any}()
) User-defined tags that differentiate multiple time series arrays that represent the same component attribute, such as different arrays for different scenarios or years.internal::InfrastructureSystemsInternal
:
InfrastructureSystems.SingleTimeSeries
— Typemutable struct SingleTimeSeries <: StaticTimeSeries
+ name::String
+ data::TimeSeries.TimeArray
+ scaling_factor_multiplier::Union{Nothing, Function}
+ internal::InfrastructureSystemsInternal
+end
A single column of time series data for a particular data field in a Component.
In contrast with a forecast, this can represent one continual time series, such as a series of historical measurements or realizations or a single scenario (e.g. a weather year or different input assumptions).
Arguments
name::String
: user-defined namedata::TimeSeries.TimeArray
: timestamp - scalingfactorresolution::Dates.Period
: Time duration between steps in the time series. The resolution must be the same throughout the time seriesscaling_factor_multiplier::Union{Nothing, Function}
: Applicable when the time series data are scaling factors. Called on the associated component to convert the values.internal::InfrastructureSystemsInternal
InfrastructureSystems.SingleTimeSeries
— MethodSingleTimeSeries(
+ name::AbstractString,
+ filename::AbstractString,
+ component::InfrastructureSystems.InfrastructureSystemsComponent,
+ resolution::Dates.Period;
+ normalization_factor,
+ scaling_factor_multiplier
+) -> InfrastructureSystems.SingleTimeSeries
+
Construct SingleTimeSeries from a CSV file. The file must have a column that is the name of the component.
Arguments
name::AbstractString
: user-defined namefilename::AbstractString
: name of CSV file containing datacomponent::InfrastructureSystemsComponent
: component associated with the dataresolution::Dates.Period
: resolution of the time seriesnormalization_factor::NormalizationFactor = 1.0
: optional normalization factor to apply to each data entryscaling_factor_multiplier::Union{Nothing, Function} = nothing
: If the data are scaling factors then this function will be called on the component and applied to the data whenget_time_series_array
is called.
InfrastructureSystems.SingleTimeSeries
— MethodSingleTimeSeries(
+ name::AbstractString,
+ data::Union{DataFrames.DataFrame, TimeSeries.TimeArray};
+ normalization_factor,
+ scaling_factor_multiplier,
+ timestamp
+) -> InfrastructureSystems.SingleTimeSeries
+
Construct SingleTimeSeries from a TimeArray or DataFrame.
Arguments
name::AbstractString
: user-defined namedata::Union{TimeSeries.TimeArray, DataFrames.DataFrame}
: time series datanormalization_factor::NormalizationFactor = 1.0
: optional normalization factor to apply to each data entryscaling_factor_multiplier::Union{Nothing, Function} = nothing
: If the data are scaling factors then this function will be called on the component and applied to the data whenget_time_series_array
is called.timestamp = :timestamp
: If a DataFrame is passed then this must be the column name that contains timestamps.
InfrastructureSystems.SingleTimeSeries
— MethodSingleTimeSeries(
+ src::InfrastructureSystems.SingleTimeSeries,
+ name::AbstractString;
+ scaling_factor_multiplier
+) -> InfrastructureSystems.SingleTimeSeries
+
Construct SingleTimeSeries that shares the data from an existing instance.
This is useful in cases where you want a component to use the same time series data for two different attribtues.
InfrastructureSystems.SingleTimeSeries
— MethodSingleTimeSeries(
+ time_series::InfrastructureSystems.SingleTimeSeries,
+ data::TimeSeries.TimeArray
+) -> Any
+
Creates a new SingleTimeSeries from an existing instance and a subset of data.
InfrastructureSystems.SingleTimeSeries
— MethodSingleTimeSeries(
+ name::String,
+ resolution::Dates.Period,
+ initial_time::Dates.DateTime,
+ time_steps::Int64
+) -> InfrastructureSystems.SingleTimeSeries
+
Construct SingleTimeSeries after constructing a TimeArray from initial_time
and time_steps
.
InfrastructureSystems.SingleTimeSeriesMetadata
— Typemutable struct SingleTimeSeriesMetadata <: StaticTimeSeriesMetadata
+ name::String
+ resolution::Dates.Period
+ initial_timestamp::Dates.DateTime
+ time_series_uuid::UUIDs.UUID
+ length::Int
+ scaling_factor_multiplier::Union{Nothing, Function}
+ features::Dict{String, Union{Bool, Int, String}}
+ internal::InfrastructureSystemsInternal
+end
A TimeSeries Data object in contigous form.
Arguments
name::String
: user-defined nameresolution::Dates.Period
:initial_timestamp::Dates.DateTime
: time series availability timetime_series_uuid::UUIDs.UUID
: reference to time series datalength::Int
: length of this time seriesscaling_factor_multiplier::Union{Nothing, Function}
: (default:nothing
) Applicable when the time series data are scaling factors. Called on the associated component to convert the values.features::Dict{String, Union{Bool, Int, String}}
: (default:Dict{String, Any}()
) User-defined tags that differentiate multiple time series arrays that represent the same component attribute, such as different arrays for different scenarios or years.internal::InfrastructureSystemsInternal
:
InfrastructureSystems.StaticTimeSeries
— TypeSupertype for static time series, which has one value per time point
Current concrete subtypes are:
See also: Forecast
InfrastructureSystems.StaticTimeSeriesCache
— MethodConstruct StaticTimeSeriesCache to automatically control caching of time series data. Maintains rows of data in memory based on cache_size_bytes
.
Call Base.iterate or get_time_series_array
to retrieve data. Each iteration will return a TimeSeries.TimeArray of size 1.
Arguments
::Type{T}
: subtype of StaticTimeSeriescomponent::InfrastructureSystemsComponent
: componentname::AbstractString
: time series namecache_size_bytes = TIME_SERIES_CACHE_SIZE_BYTES
: maximum size of data to keep in memoryignore_scaling_factors = false
: controls whether to ignore scalingfactormultiplier in the time series instance
InfrastructureSystems.StaticTimeSeriesKey
— TypeA unique key to identify and retrieve a StaticTimeSeries
See: get_time_series_keys
and get_time_series(::TimeSeriesOwners, ::TimeSeriesKey)
.
InfrastructureSystems.StructDefinition
— MethodStructDefinition(
+;
+ struct_name,
+ fields,
+ supertype,
+ docstring,
+ is_component
+)
+
Construct a StructDefinition for code auto-generation purposes.
Arguments
struct_name::AbstractString
: Struct namefields::Vector{StructField}
: Struct fields. Refer toStructField
.docstring::AbstractString
: Struct docstring. Defaults to an empty string.supertype::Union{String, DataType}
: Struct supertype. Defaults to no supertype.is_component::Bool
: Set to true for component types that will be attached to a system. Do not set to Default to true.
InfrastructureSystems.StructField
— MethodStructField(
+;
+ name,
+ data_type,
+ default,
+ comment,
+ needs_conversion,
+ exclude_setter,
+ valid_range,
+ validation_action,
+ null_value,
+ internal_default
+)
+
Construct a StructField for code auto-generation purposes.
Arguments
name::String
: Field namedata_type::Union{DataType, String}
: Field typedefault::Any
: The generated constructors will define this as a default value.comment::String
: Include this comment above the field name. Defaults to empty string.needs_conversion::Bool
: Set to true if the getter and setter functions need to apply unit conversion. The type must implementget_value(::Component, ::Type)
andset_value(::Component, ::Type)
for this combination of component type and field type.exclude_setter::Bool
: Do not generate a setter function for this field. Defaults to false.valid_range::Union{Nothing, String, Dict}
: Enables range validation when the component is added to a system. Define this as a Dict with "min" and "max" or as a String with the field name in the struct that defines this field's valid range and InfrastructureSystems will validate any value against that range. Usenothing
if one doesn't apply, such as if there is no max limit.validation_action
: Define this as "error" or "warn". If it is "error" then InfrastructureSystems will throw an exception if the validation code detects a problem. Otherwise, it will log a warning.null_value::Any
: Value to indicate the field is zero or empty, such as 0.0 for Float64. If all members in the struct define this field then a "demo" constructor will be generated. This allows enteringval = MyType(nothing)
in the REPL to see the layout of a struct without worrying about valid values.internal_default
: Set to true for non-user-facing fields likeInfrastructureSystemsInternal
that have default values.
InfrastructureSystems.SupplementalAttribute
— TypeBase type for structs that store supplemental attributes
Required interface functions for subtypes:
- get_internal()
Optional interface functions:
- get_uuid()
Subtypes may contain time series. Which requires
- supportstimeseries(::SupplementalAttribute)
All subtypes must include an instance of ComponentUUIDs in order to track components attached to each attribute.
InfrastructureSystems.SupplementalAttributeAssociations
— MethodSupplementalAttributeAssociations(
+
+) -> InfrastructureSystems.SupplementalAttributeAssociations
+
Construct a new SupplementalAttributeAssociations with an in-memory database.
InfrastructureSystems.SystemData
— Typemutable struct SystemData <: InfrastructureSystemsType
+ components::Components
+ "Masked components are attached to the system for overall management purposes but
+ are not exposed in the standard library calls like [`get_components`](@ref).
+ Examples are components in a subsystem."
+ masked_components::Components
+ validation_descriptors::Vector
+ internal::InfrastructureSystemsInternal
+end
Container for system components and time series data
InfrastructureSystems.SystemData
— MethodSystemData(
+;
+ validation_descriptor_file,
+ time_series_in_memory,
+ time_series_directory,
+ compression
+) -> InfrastructureSystems.SystemData
+
Construct SystemData to store components and time series data.
Arguments
validation_descriptor_file = nothing
: Optionally, a file defining component validation descriptors.time_series_in_memory = false
: Controls whether time series data is stored in memory or in a file.time_series_directory = nothing
: Controls what directory time series data is stored in. Default is the environment variable SIENNATIMESERIES_DIRECTORY or tempdir() if that isn't set.compression = CompressionSettings()
: Controls compression of time series data.
InfrastructureSystems.TimeSeriesAssociation
— TypeDefines an association between a time series owner (component or supplemental attribute) and the time series metadata.
Examples
association1 = TimeSeriesAssociation(component, time_series)
+association2 = TimeSeriesAssociation(component, time_series, scenario = "high")
InfrastructureSystems.TimeSeriesCounts
— TypeProvides counts of time series including attachments to components and supplemental attributes.
InfrastructureSystems.TimeSeriesData
— TypeAbstract type for time series stored in the system. Components store references to these through TimeSeriesMetadata values so that data can reside on storage media instead of memory.
InfrastructureSystems.TimeSeriesFileMetadata
— TypeDescribes how to construct time_series from raw time series data files.
InfrastructureSystems.TimeSeriesKey
— TypeSupertype for keys that can be used to access a desired time series dataset
Concrete subtypes:
Required methods:
get_name
get_time_series_type
The default methods rely on the field names name
and time_series_type
.
InfrastructureSystems.TimeSeriesMetadata
— TypeAbstract type for time_series that are stored in a system. Users never create them or get access to them. Stores references to TimeSeriesData.
InfrastructureSystems.TimeSeriesMetadataStore
— MethodTimeSeriesMetadataStore(
+ filename::AbstractString
+) -> InfrastructureSystems.TimeSeriesMetadataStore
+
Load a TimeSeriesMetadataStore from a saved database into an in-memory database.
InfrastructureSystems.TimeSeriesMetadataStore
— MethodTimeSeriesMetadataStore(
+
+) -> InfrastructureSystems.TimeSeriesMetadataStore
+
Construct a new TimeSeriesMetadataStore with an in-memory database.
InfrastructureSystems.TimeSeriesStorage
— TypeAbstract type for time series storage implementations.
All subtypes must implement:
clear_time_series!
deserialize_time_series
get_compression_settings
get_num_time_series
remove_time_series!
serialize_time_series!
Base.isempty
InfrastructureSystems.ValueCurve
— TypeSupertype that represents a unitless cost curve
Concrete subtypes are:
Base.close
— Methodclose(logger::InfrastructureSystems.MultiLogger)
+
Ensures that any file streams are flushed and closed.
Base.convert
— Methodconvert(
+ _::Type{InfrastructureSystems.QuadraticFunctionData},
+ data::InfrastructureSystems.LinearFunctionData
+) -> InfrastructureSystems.QuadraticFunctionData
+
Losslessly convert LinearFunctionData
to QuadraticFunctionData
Base.flush
— Methodflush(logger::InfrastructureSystems.MultiLogger)
+
Flush any file streams.
Base.get
— Methodget(
+ container::InfrastructureSystems.LazyDictFromIterator,
+ key
+) -> Any
+
Returns the item mapped to key. If the key is already stored then it will be returned with a dictionary lookup. If it has not been stored then iterate over the list until it is found.
Returns nothing if key is not found.
Base.zero
— Methodzero(
+ _::Type{InfrastructureSystems.FunctionData}
+) -> InfrastructureSystems.LinearFunctionData
+
Get a FunctionData
representing the function f(x) = 0
Base.zero
— Methodzero(
+ _::Union{InfrastructureSystems.LinearFunctionData, Type{InfrastructureSystems.LinearFunctionData}}
+) -> InfrastructureSystems.LinearFunctionData
+
Get a LinearFunctionData
representing the function f(x) = 0
Base.zero
— Methodzero(
+ _::Union{Type{InfrastructureSystems.AverageRateCurve}, InfrastructureSystems.AverageRateCurve}
+) -> InfrastructureSystems.AverageRateCurve{InfrastructureSystems.LinearFunctionData}
+
Get an AverageRateCurve
representing f(x)/x = 0
with zero initial_input
Base.zero
— Methodzero(
+ _::Union{Type{InfrastructureSystems.CostCurve}, InfrastructureSystems.CostCurve}
+) -> InfrastructureSystems.CostCurve{LinearCurve}
+
Get a CostCurve
representing zero variable cost
Base.zero
— Methodzero(
+ _::Union{Type{InfrastructureSystems.FuelCurve}, InfrastructureSystems.FuelCurve}
+) -> InfrastructureSystems.FuelCurve{LinearCurve}
+
Get a FuelCurve
representing zero fuel usage and zero fuel cost
Base.zero
— Methodzero(
+ _::Union{Type{InfrastructureSystems.IncrementalCurve}, InfrastructureSystems.IncrementalCurve}
+) -> InfrastructureSystems.IncrementalCurve{InfrastructureSystems.LinearFunctionData}
+
Get an IncrementalCurve
representing f'(x) = 0
with zero initial_input
Base.zero
— Methodzero(
+ _::Union{Type{InfrastructureSystems.InputOutputCurve}, InfrastructureSystems.InputOutputCurve}
+) -> LinearCurve
+
Get an InputOutputCurve
representing f(x) = 0
Base.zero
— Methodzero(
+ _::Union{Type{InfrastructureSystems.ValueCurve}, InfrastructureSystems.ValueCurve}
+) -> LinearCurve
+
Get a ValueCurve
representing zero variable cost
InfrastructureSystems._check_transform_single_time_series
— Method_check_transform_single_time_series(
+ data::InfrastructureSystems.SystemData,
+ _::Type{InfrastructureSystems.DeterministicSingleTimeSeries},
+ horizon::Dates.Period,
+ interval::Dates.Period
+) -> Vector{Any}
+
Check that all existing SingleTimeSeries can be converted to DeterministicSingleTimeSeries with the given horizon and interval.
Throw ConflictingInputsError if any time series cannot be converted.
Return a Vector of NamedTuple of component, time series metadata, and forecast parameters for all matches.
InfrastructureSystems._get_all_concrete_subtypes
— Method_get_all_concrete_subtypes(
+ _::Type{T},
+ sub_types::Vector{DataType}
+)
+
Recursively builds a vector of subtypes.
InfrastructureSystems._validate
— Method_validate(
+ data::InfrastructureSystems.SystemData,
+ component::InfrastructureSystems.InfrastructureSystemsComponent
+)
+
Checks that the component exists in data and is the same object.
InfrastructureSystems.add_association!
— Methodadd_association!(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations,
+ component::InfrastructureSystems.InfrastructureSystemsComponent,
+ attribute::InfrastructureSystems.SupplementalAttribute
+)
+
Add a supplemental attribute association to the associations. The caller must check for duplicates.
InfrastructureSystems.add_component!
— Methodadd_component!(
+ components::InfrastructureSystems.Components,
+ component::InfrastructureSystems.InfrastructureSystemsComponent;
+ kwargs...
+)
+
Add a component.
Throws ArgumentError if the component's name is already stored for its concrete type.
Throws InvalidRange if any of the component's field values are outside of defined valid range.
InfrastructureSystems.add_component_to_subsystem!
— Methodadd_component_to_subsystem!(
+ data::InfrastructureSystems.SystemData,
+ subsystem_name::AbstractString,
+ component::InfrastructureSystems.InfrastructureSystemsComponent
+)
+
Add a component to a subsystem.
InfrastructureSystems.add_metadata!
— Methodadd_metadata!(
+ store::InfrastructureSystems.TimeSeriesMetadataStore,
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ metadata::InfrastructureSystems.TimeSeriesMetadata
+)
+
Add metadata to the store. The caller must check if there are duplicates.
InfrastructureSystems.add_serialization_metadata!
— Methodadd_serialization_metadata!(data::Dict, _::Type{T})
+
Add type information to the dictionary that can be used to deserialize the value.
InfrastructureSystems.add_subsystem!
— Methodadd_subsystem!(
+ data::InfrastructureSystems.SystemData,
+ subsystem_name::AbstractString
+)
+
Add a new subsystem to the system.
InfrastructureSystems.add_time_series!
— Methodadd_time_series!(
+ data::InfrastructureSystems.SystemData,
+ components,
+ time_series::InfrastructureSystems.TimeSeriesData;
+ features...
+) -> InfrastructureSystems.TimeSeriesKey
+
Add the same time series data to multiple components.
Arguments
data::SystemData
: SystemDatacomponents
: iterable of components that will store the same time series referencetime_series::TimeSeriesData
: Any object of subtype TimeSeriesData
This is significantly more efficent than calling add_time_series!
for each component individually with the same data because in this case, only one time series array is stored.
Throws ArgumentError if a component is not stored in the system.
InfrastructureSystems.add_time_series!
— Methodadd_time_series!(
+ data::InfrastructureSystems.SystemData,
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ time_series::InfrastructureSystems.TimeSeriesData;
+ features...
+) -> InfrastructureSystems.TimeSeriesKey
+
Add time series data to a component or supplemental attribute.
Arguments
data::SystemData
: SystemDataowner::InfrastructureSystemsComponent
: will store the time series referencetime_series::TimeSeriesData
: Any object of subtype TimeSeriesData
Throws ArgumentError if the owner is not stored in the system.
InfrastructureSystems.add_time_series_from_file_metadata!
— Methodadd_time_series_from_file_metadata!(
+ data::InfrastructureSystems.SystemData,
+ component_type::Type{<:InfrastructureSystems.InfrastructureSystemsComponent},
+ file_metadata::Vector{InfrastructureSystems.TimeSeriesFileMetadata};
+ resolution
+) -> Vector{InfrastructureSystems.TimeSeriesKey}
+
Adds time series data from a metadata file or metadata descriptors.
Arguments
data::SystemData
: systemfile_metadata::Vector{TimeSeriesFileMetadata}
: metadata for time seriesresolution::DateTime.Period=nothing
: skip time_series that don't match this resolution.
InfrastructureSystems.add_time_series_from_file_metadata!
— Methodadd_time_series_from_file_metadata!(
+ data::InfrastructureSystems.SystemData,
+ ::Type{T<:InfrastructureSystems.InfrastructureSystemsComponent},
+ metadata_file::AbstractString;
+ resolution
+) -> Vector{InfrastructureSystems.TimeSeriesKey}
+
Adds time_series from a metadata file or metadata descriptors.
Arguments
data::SystemData
: system::Type{T}
: type of the component associated with time series data; may be abstractmetadata_file::AbstractString
: metadata file for time series that includes an array of TimeSeriesFileMetadata instances or a vector.resolution::DateTime.Period=nothing
: skip time_series that don't match this resolution.
InfrastructureSystems.assign_new_uuid_internal!
— Methodassign_new_uuid_internal!(
+ component::InfrastructureSystems.InfrastructureSystemsComponent
+)
+
Return an instance of ForecastParameters for the given inputs.
Throws ConflictingInputsError if horizon and interval are incompatible with the metadata.
InfrastructureSystems.assign_new_uuid_internal!
— Methodassign_new_uuid_internal!(
+ obj::InfrastructureSystems.InfrastructureSystemsType
+)
+
Assign a new UUID.
InfrastructureSystems.backup_to_temp
— Methodbackup_to_temp(
+ store::InfrastructureSystems.TimeSeriesMetadataStore
+) -> String
+
Backup the database to a file on the temporary filesystem and return that filename.
InfrastructureSystems.check_consistency
— Methodcheck_consistency(
+ store::InfrastructureSystems.TimeSeriesMetadataStore,
+ _::Type{InfrastructureSystems.SingleTimeSeries}
+) -> Tuple{Any, Any}
+
Throw InvalidValue if the SingleTimeSeries arrays have different initial times or lengths. Return the initial timestamp and length as a tuple.
InfrastructureSystems.clear_components!
— Methodclear_components!(
+ components::InfrastructureSystems.Components
+)
+
Removes all components from the system.
InfrastructureSystems.clear_ext!
— Methodclear_ext!(
+ obj::InfrastructureSystems.InfrastructureSystemsInternal
+)
+
Clear any value stored in ext.
InfrastructureSystems.clear_metadata!
— Methodclear_metadata!(
+ store::InfrastructureSystems.TimeSeriesMetadataStore
+) -> SQLite.Query
+
Clear all time series metadata from the store.
InfrastructureSystems.clear_supplemental_attributes!
— Methodclear_supplemental_attributes!(
+ mgr::InfrastructureSystems.SupplementalAttributeManager
+)
+
Removes all supplemental_attributes from the system.
Ignores whether attributes are attached to components.
InfrastructureSystems.clear_supplemental_attributes!
— Methodclear_supplemental_attributes!(
+ data::InfrastructureSystems.SystemData
+)
+
Remove all supplemental attributes.
InfrastructureSystems.compare_over_fields
— Methodcompare_over_fields(cmp_op, reduce_op, init, a, b) -> Any
+
For a
and b
, instances of the same concrete type, iterate over all the fields, compare a
's value to b
's using cmp_op
, and reduce to one value using reduce_op
with an initialization value of init
.
InfrastructureSystems.compare_values
— Methodcompare_values(
+ match_fn::Union{Nothing, Function},
+ x,
+ y;
+ compare_uuids,
+ exclude
+) -> Bool
+
Recursively compares struct values. Prints all mismatched values to stdout.
Arguments
match_fn
: optional, a function used to determine whether two values match in the base case of the recursion. Ifnothing
or not specified, the default implementation usesIS.isequivalent
.x::T
: First valuey::U
: Second valuecompare_uuids::Bool = false
: Compare any UUID in the object or composed objects.- `exclude::Set{Symbol} = Set{Symbol}(): Fields to exclude from comparison. Passed on recursively and so applied per type.
InfrastructureSystems.compute_sha256
— Methodcompute_sha256(filename::AbstractString) -> String
+
Return the SHA 256 hash of a file.
InfrastructureSystems.configure_logging
— Methodconfigure_logging(
+;
+ console,
+ console_stream,
+ console_level,
+ progress,
+ file,
+ filename,
+ file_level,
+ file_mode,
+ tracker,
+ set_global
+) -> InfrastructureSystems.MultiLogger
+
Creates console and file loggers per caller specification and returns a MultiLogger.
Suppress noisy events by specifying per-event values of maxlog = X
and _suppression_period = Y
where X is the max number of events that can occur in Y seconds. After the period ends, messages will no longer be suppressed. Note that if you don't specify _suppression_period
then maxlog
applies for the for the duration of your process (standard Julia logging behavior).
Note: Use of log message suppression and the LogEventTracker are not thread-safe. Please contact the package developers if you need this functionality.
Note: If logging to a file users must call Base.close() on the returned MultiLogger to ensure that all events get flushed.
Arguments
console::Bool=true
: create console loggerconsole_stream::IOStream=stderr
: stream for console loggerconsole_level::Logging.LogLevel=Logging.Error
: level for console messagesprogress::Bool=true
: enable progress loggerfile::Bool=true
: create file loggerfilename::Union{Nothing, String}=log.txt
: log filefile_level::Logging.LogLevel=Logging.Info
: level for file messagesfile_mode::String=w+
: mode used when opening log filetracker::Union{LogEventTracker, Nothing}=LogEventTracker()
: optionally track log eventsset_global::Bool=true
: set the created logger as the global logger
Example
logger = configure_logging(filename="mylog.txt")
+@info "hello world"
+@info "hello world" maxlog = 5 _suppression_period = 10
InfrastructureSystems.copy_h5_file
— Methodcopy_h5_file(src::AbstractString, dst::AbstractString)
+
Copies an HDF5 file to a new file. This should be used instead of a system call to copy because it won't copy unused space that results from deleting datasets.
InfrastructureSystems.copy_time_series!
— Methodcopy_time_series!(
+ dst::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ src::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute};
+ name_mapping,
+ scaling_factor_multiplier_mapping
+)
+
Efficiently add all time_series in one component to another by copying the underlying references.
Arguments
dst::TimeSeriesOwners
: Destination ownersrc::TimeSeriesOwners
: Source ownername_mapping::Dict = nothing
: Optionally map src names to different dst names. If provided and src has a timeseries with a name not present in namemapping, that timeseries will not copied. If namemapping is nothing then all time_series will be copied with src's names.scaling_factor_multiplier_mapping::Dict = nothing
: Optionally map src multipliers to different dst multipliers. If provided and src has a timeseries with a multiplier not present in scalingfactormultipliermapping, that timeseries will not copied. If scalingfactormultipliermapping is nothing then all time_series will be copied with src's multipliers.
InfrastructureSystems.deserialize
— Methoddeserialize(
+ _::Type{T<:InfrastructureSystems.InfrastructureSystemsType},
+ data::Dict
+) -> InfrastructureSystems.ComponentUUIDs
+
Deserialize an object from standard types stored in non-Julia formats, such as JSON, into Julia types.
InfrastructureSystems.double_equals_from_fields
— Methoddouble_equals_from_fields(a, b) -> Any
+
Compute the conjunction of the ==
values of all the fields in a
and b
InfrastructureSystems.drop_table
— Methoddrop_table(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations
+)
+
Drop the supplemental attribute associations table.
InfrastructureSystems.empty_group_levels!
— Methodempty_group_levels!(
+ logger::InfrastructureSystems.MultiLogger
+)
+
Empty the minimum log levels stored for each group.
InfrastructureSystems.execute
— Methodexecute(
+ db::SQLite.DB,
+ query::AbstractString,
+ params::Union{Nothing, Vector},
+ log_group::Symbol
+) -> SQLite.Query
+
Wrapper around SQLite.DBInterface.execute to provide caching of compiled statements as well as log messages.
InfrastructureSystems.execute_count
— Methodexecute_count(
+ db::SQLite.DB,
+ query::AbstractString,
+ params::Union{Nothing, Vector},
+ log_group::Symbol
+) -> Any
+
Run a query to find a count. The query must produce a column called count with one row.
InfrastructureSystems.from
— Methodfrom(
+ time_series::InfrastructureSystems.SingleTimeSeries,
+ timestamp
+) -> InfrastructureSystems.SingleTimeSeries
+
Return a time_series truncated starting with timestamp.
InfrastructureSystems.from_file
— Methodfrom_file(
+ ::Type{InfrastructureSystems.Hdf5TimeSeriesStorage},
+ filename::AbstractString;
+ read_only,
+ directory
+) -> InfrastructureSystems.Hdf5TimeSeriesStorage
+
Constructs Hdf5TimeSeriesStorage from an existing file.
InfrastructureSystems.from_h5_file
— Methodfrom_h5_file(
+ _::Type{InfrastructureSystems.TimeSeriesMetadataStore},
+ src::AbstractString,
+ directory
+) -> InfrastructureSystems.TimeSeriesMetadataStore
+
Load a TimeSeriesMetadataStore from an HDF5 file into an in-memory database.
InfrastructureSystems.from_json
— Methodfrom_json(
+ _::Type{T<:InfrastructureSystems.InfrastructureSystemsType},
+ filename::String
+) -> Any
+
Deserializes a InfrastructureSystemsType from a JSON filename.
InfrastructureSystems.from_json
— Methodfrom_json(
+ io::Union{IO, String},
+ _::Type{T<:InfrastructureSystems.InfrastructureSystemsType}
+) -> InfrastructureSystems.TestComponent
+
Deserializes a InfrastructureSystemsType from String or IO.
InfrastructureSystems.generate_struct_file
— Methodgenerate_struct_file(
+ definition::InfrastructureSystems.StructDefinition;
+ filename,
+ output_directory
+)
+
Generate a Julia source code file for one struct from a StructDefinition
.
Refer to StructDefinition
and StructField
for descriptions of the available fields.
Arguments
definition::StructDefinition
: Defines the struct and all fields.filename::AbstractString
: Add the struct definition to this JSON file. Defaults tosrc/descriptors/structs.json
output_directory::AbstractString
: Generate the files in this directory. Defaults tosrc/generated
InfrastructureSystems.generate_struct_files
— Methodgenerate_struct_files(
+ definitions;
+ filename,
+ output_directory
+)
+
Generate Julia source code files for multiple structs from a iterable of StructDefinition
instances.
Refer to StructDefinition
and StructField
for descriptions of the available fields.
Arguments
definitions
: Defines the structs and all fields.filename::AbstractString
: Add the struct definition to this JSON file. Defaults tosrc/descriptors/power_system_structs.json
output_directory::AbstractString
: Generate the files in this directory. Defaults tosrc/generated
InfrastructureSystems.get_abstract_subtypes
— Methodget_abstract_subtypes(_::Type{T}) -> Vector
+
Returns an array of abstract types that are direct subtypes of T.
InfrastructureSystems.get_all_concrete_subtypes
— Methodget_all_concrete_subtypes(_::Type{T}) -> Any
+
Returns an array of all concrete subtypes of T. Caches the values for faster lookup on repeated calls.
Note that this does not find parameterized types. It will also not find types dynamically added after the first call of given type.
InfrastructureSystems.get_assigned_subsystems
— Methodget_assigned_subsystems(
+ data::InfrastructureSystems.SystemData,
+ component::InfrastructureSystems.InfrastructureSystemsComponent
+) -> Vector
+
Return a Vector of subsystem names that contain the component.
InfrastructureSystems.get_attribute_counts_by_type
— Methodget_attribute_counts_by_type(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations
+) -> Vector
+
Return a Vector of OrderedDict of stored time series counts by type.
InfrastructureSystems.get_attribute_summary_table
— Methodget_attribute_summary_table(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations
+) -> DataFrames.DataFrame
+
Return a DataFrame with the number of supplemental attributes by type for components.
InfrastructureSystems.get_average_rates
— Methodget_average_rates(
+ vc::PiecewiseAverageCurve
+) -> Vector{Float64}
+
Get the average rates that define the PiecewiseAverageCurve
InfrastructureSystems.get_component
— Methodget_component(
+ _::Type{T<:InfrastructureSystems.InfrastructureSystemsComponent},
+ components::InfrastructureSystems.Components,
+ name::AbstractString
+) -> Union{Nothing, InfrastructureSystems.InfrastructureSystemsComponent}
+
Get the component of type T with name. Returns nothing if no component matches. If T is an abstract type then the names of components across all subtypes of T must be unique.
See get_components_by_name
for abstract types with non-unique names across subtypes.
Throws ArgumentError if T is not a concrete type and there is more than one component with requested name
InfrastructureSystems.get_components
— Methodget_components(
+ ::Type{T<:InfrastructureSystems.InfrastructureSystemsComponent},
+ components::InfrastructureSystems.Components;
+ component_uuids
+) -> InfrastructureSystems.FlattenIteratorWrapper{T, I} where {T<:InfrastructureSystems.InfrastructureSystemsComponent, I<:(Vector)}
+
Returns an iterator of components. T can be concrete or abstract. Call collect on the result if an array is desired.
Arguments
T
: component typecomponents::Components
: Components of the systemfilter_func::Union{Nothing, Function} = nothing
: Optional function that accepts a component of type T and returns a Bool. Apply this function to each component and only return components where the result is true.
See also: iterate_components
InfrastructureSystems.get_components_by_name
— Methodget_components_by_name(
+ _::Type{T<:InfrastructureSystems.InfrastructureSystemsComponent},
+ components::InfrastructureSystems.Components,
+ name::AbstractString
+) -> Vector{T} where T<:InfrastructureSystems.InfrastructureSystemsComponent
+
Get the components of abstract type T with name. Note that InfrastructureSystems enforces unique names on each concrete type but not across concrete types.
See get_component
if the concrete type is known.
Throws ArgumentError if T is not an abstract type.
InfrastructureSystems.get_concrete_subtypes
— Methodget_concrete_subtypes(_::Type{T}) -> Vector
+
Returns an array of concrete types that are direct subtypes of T.
InfrastructureSystems.get_constant_term
— Methodget_constant_term(vc::LinearCurve) -> Float64
+
Get the constant term (i.e., intercept) of the LinearCurve
InfrastructureSystems.get_constant_term
— Methodget_constant_term(vc::QuadraticCurve) -> Float64
+
Get the constant term of the QuadraticCurve
InfrastructureSystems.get_count
— Methodget_count(
+ value::InfrastructureSystems.DeterministicMetadata
+) -> Int64
+
Get DeterministicMetadata
count
.
InfrastructureSystems.get_count
— Methodget_count(
+ value::InfrastructureSystems.DeterministicSingleTimeSeries
+) -> Int64
+
Get DeterministicSingleTimeSeries
count
.
InfrastructureSystems.get_count
— Methodget_count(
+ value::InfrastructureSystems.ProbabilisticMetadata
+) -> Int64
+
Get ProbabilisticMetadata
count
.
InfrastructureSystems.get_count
— Methodget_count(
+ value::InfrastructureSystems.ScenariosMetadata
+) -> Int64
+
Get ScenariosMetadata
count
.
InfrastructureSystems.get_data
— Methodget_data(
+ value::InfrastructureSystems.Deterministic
+) -> DataStructures.SortedDict
+
Get Deterministic
data
.
InfrastructureSystems.get_data
— Methodget_data(
+ value::InfrastructureSystems.Probabilistic
+) -> DataStructures.SortedDict
+
Get Probabilistic
data
.
InfrastructureSystems.get_data
— Methodget_data(
+ value::InfrastructureSystems.Scenarios
+) -> DataStructures.SortedDict
+
Get Scenarios
data
.
InfrastructureSystems.get_data
— Methodget_data(
+ value::InfrastructureSystems.SingleTimeSeries
+) -> TimeSeries.TimeArray
+
Get SingleTimeSeries
data
.
InfrastructureSystems.get_data_type
— Methodget_data_type(
+ ts::InfrastructureSystems.TimeSeriesData
+) -> Any
+
Return a String for the data type of the forecast data, this implementation avoids the use of eval
on arbitrary code stored in HDF dataset.
InfrastructureSystems.get_ext
— Methodget_ext(
+ obj::InfrastructureSystems.InfrastructureSystemsInternal
+) -> Union{Nothing, Dict{String, Any}}
+
Return a user-modifiable dictionary to store extra information.
InfrastructureSystems.get_features
— Methodget_features(
+ value::InfrastructureSystems.DeterministicMetadata
+) -> Dict{String, Union{Bool, Int64, String}}
+
Get DeterministicMetadata
features
.
InfrastructureSystems.get_features
— Methodget_features(
+ value::InfrastructureSystems.ProbabilisticMetadata
+) -> Dict{String, Union{Bool, Int64, String}}
+
Get ProbabilisticMetadata
features
.
InfrastructureSystems.get_features
— Methodget_features(
+ value::InfrastructureSystems.ScenariosMetadata
+) -> Dict{String, Union{Bool, Int64, String}}
+
Get ScenariosMetadata
features
.
InfrastructureSystems.get_features
— Methodget_features(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata
+) -> Dict{String, Union{Bool, Int64, String}}
+
Get SingleTimeSeriesMetadata
features
.
InfrastructureSystems.get_fuel_cost
— Methodget_fuel_cost(
+ cost::InfrastructureSystems.FuelCurve
+) -> Union{Float64, InfrastructureSystems.TimeSeriesKey}
+
Get the fuel cost or the name of the fuel cost time series
InfrastructureSystems.get_function_data
— Methodget_function_data(
+ cost::InfrastructureSystems.ProductionVariableCostCurve
+) -> Any
+
Get the FunctionData
representation of this ProductionVariableCostCurve
's ValueCurve
InfrastructureSystems.get_function_data
— Methodget_function_data(
+ curve::InfrastructureSystems.ValueCurve
+) -> Any
+
Get the underlying FunctionData
representation of this ValueCurve
InfrastructureSystems.get_group_level
— Methodget_group_level(
+ logger::InfrastructureSystems.MultiLogger,
+ group::Symbol
+) -> Union{Nothing, Base.CoreLogging.LogLevel}
+
Return the minimum logging level for a group or nothing if group
is not stored.
InfrastructureSystems.get_group_levels
— Methodget_group_levels(
+ logger::InfrastructureSystems.MultiLogger
+) -> Dict{Symbol, Base.CoreLogging.LogLevel}
+
Return the minimum logging levels for groups that have been stored.
InfrastructureSystems.get_horizon
— Methodget_horizon(
+ value::InfrastructureSystems.DeterministicMetadata
+) -> Dates.Period
+
Get DeterministicMetadata
horizon
.
InfrastructureSystems.get_horizon
— Methodget_horizon(
+ value::InfrastructureSystems.DeterministicSingleTimeSeries
+) -> Dates.Period
+
Get DeterministicSingleTimeSeries
horizon
.
InfrastructureSystems.get_horizon
— Methodget_horizon(
+ value::InfrastructureSystems.ProbabilisticMetadata
+) -> Dates.Period
+
Get ProbabilisticMetadata
horizon
.
InfrastructureSystems.get_horizon
— Methodget_horizon(
+ value::InfrastructureSystems.ScenariosMetadata
+) -> Dates.Period
+
Get ScenariosMetadata
horizon
.
InfrastructureSystems.get_initial_input
— Methodget_initial_input(
+ cost::InfrastructureSystems.ProductionVariableCostCurve
+) -> Union{Nothing, Float64}
+
Get the initial_input
field of this ProductionVariableCostCurve
's ValueCurve
(not defined for input-output data)
InfrastructureSystems.get_initial_input
— Methodget_initial_input(
+ curve::Union{InfrastructureSystems.AverageRateCurve, InfrastructureSystems.IncrementalCurve}
+) -> Union{Nothing, Float64}
+
Get the initial_input
field of this ValueCurve
(not defined for InputOutputCurve
)
InfrastructureSystems.get_initial_times
— Methodget_initial_times(
+ f::InfrastructureSystems.Forecast
+) -> DataStructures.SDMKeyIteration{T} where T<:DataStructures.SortedDict
+
Return the initial times in the forecast.
InfrastructureSystems.get_initial_timestamp
— Methodget_initial_timestamp(
+ value::InfrastructureSystems.DeterministicMetadata
+) -> Dates.DateTime
+
Get DeterministicMetadata
initial_timestamp
.
InfrastructureSystems.get_initial_timestamp
— Methodget_initial_timestamp(
+ value::InfrastructureSystems.DeterministicSingleTimeSeries
+) -> Dates.DateTime
+
Get DeterministicSingleTimeSeries
initial_timestamp
.
InfrastructureSystems.get_initial_timestamp
— Methodget_initial_timestamp(
+ value::InfrastructureSystems.ProbabilisticMetadata
+) -> Dates.DateTime
+
Get ProbabilisticMetadata
initial_timestamp
.
InfrastructureSystems.get_initial_timestamp
— Methodget_initial_timestamp(
+ value::InfrastructureSystems.ScenariosMetadata
+) -> Dates.DateTime
+
Get ScenariosMetadata
initial_timestamp
.
InfrastructureSystems.get_initial_timestamp
— Methodget_initial_timestamp(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata
+) -> Dates.DateTime
+
Get SingleTimeSeriesMetadata
initial_timestamp
.
InfrastructureSystems.get_input_at_zero
— Methodget_input_at_zero(
+ curve::InfrastructureSystems.ValueCurve
+) -> Any
+
Get the input_at_zero
field of this ValueCurve
InfrastructureSystems.get_internal
— Methodget_internal(
+ value::InfrastructureSystems.DeterministicMetadata
+) -> InfrastructureSystems.InfrastructureSystemsInternal
+
Get DeterministicMetadata
internal
.
InfrastructureSystems.get_internal
— Methodget_internal(
+ value::InfrastructureSystems.Deterministic
+) -> InfrastructureSystems.InfrastructureSystemsInternal
+
Get Deterministic
internal
.
InfrastructureSystems.get_internal
— Methodget_internal(
+ value::InfrastructureSystems.ProbabilisticMetadata
+) -> InfrastructureSystems.InfrastructureSystemsInternal
+
Get ProbabilisticMetadata
internal
.
InfrastructureSystems.get_internal
— Methodget_internal(
+ value::InfrastructureSystems.Probabilistic
+) -> InfrastructureSystems.InfrastructureSystemsInternal
+
Get Probabilistic
internal
.
InfrastructureSystems.get_internal
— Methodget_internal(
+ value::InfrastructureSystems.ScenariosMetadata
+) -> InfrastructureSystems.InfrastructureSystemsInternal
+
Get ScenariosMetadata
internal
.
InfrastructureSystems.get_internal
— Methodget_internal(
+ value::InfrastructureSystems.Scenarios
+) -> InfrastructureSystems.InfrastructureSystemsInternal
+
Get Scenarios
internal
.
InfrastructureSystems.get_internal
— Methodget_internal(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata
+) -> InfrastructureSystems.InfrastructureSystemsInternal
+
Get SingleTimeSeriesMetadata
internal
.
InfrastructureSystems.get_internal
— Methodget_internal(
+ value::InfrastructureSystems.SingleTimeSeries
+) -> InfrastructureSystems.InfrastructureSystemsInternal
+
Get SingleTimeSeries
internal
.
InfrastructureSystems.get_interval
— Methodget_interval(
+ value::InfrastructureSystems.DeterministicMetadata
+) -> Dates.Period
+
Get DeterministicMetadata
interval
.
InfrastructureSystems.get_interval
— Methodget_interval(
+ value::InfrastructureSystems.DeterministicSingleTimeSeries
+) -> Dates.Period
+
Get DeterministicSingleTimeSeries
interval
.
InfrastructureSystems.get_interval
— Methodget_interval(
+ value::InfrastructureSystems.ProbabilisticMetadata
+) -> Dates.Period
+
Get ProbabilisticMetadata
interval
.
InfrastructureSystems.get_interval
— Methodget_interval(
+ value::InfrastructureSystems.ScenariosMetadata
+) -> Dates.Period
+
Get ScenariosMetadata
interval
.
InfrastructureSystems.get_length
— Methodget_length(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata
+) -> Int64
+
Get SingleTimeSeriesMetadata
length
.
InfrastructureSystems.get_log_events
— Methodget_log_events(
+ tracker::InfrastructureSystems.LogEventTracker,
+ level::Base.CoreLogging.LogLevel
+) -> Union{Base.ValueIterator{Dict{Symbol, InfrastructureSystems.LogEvent}}, Vector{Any}}
+
Returns an iterable of log events for a level.
InfrastructureSystems.get_metadata
— Methodget_metadata(
+ store::InfrastructureSystems.TimeSeriesMetadataStore,
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ time_series_type::Type{<:InfrastructureSystems.TimeSeriesData},
+ name::String;
+ features...
+) -> Any
+
Return the metadata matching the inputs. Throw an exception if there is more than one matching input.
InfrastructureSystems.get_name
— Methodget_name(
+ value::InfrastructureSystems.DeterministicMetadata
+) -> String
+
Get DeterministicMetadata
name
.
InfrastructureSystems.get_name
— Methodget_name(
+ value::InfrastructureSystems.Deterministic
+) -> String
+
Get Deterministic
name
.
InfrastructureSystems.get_name
— Methodget_name(
+ value::InfrastructureSystems.ProbabilisticMetadata
+) -> String
+
Get ProbabilisticMetadata
name
.
InfrastructureSystems.get_name
— Methodget_name(
+ value::InfrastructureSystems.Probabilistic
+) -> String
+
Get Probabilistic
name
.
InfrastructureSystems.get_name
— Methodget_name(
+ value::InfrastructureSystems.ScenariosMetadata
+) -> String
+
Get ScenariosMetadata
name
.
InfrastructureSystems.get_name
— Methodget_name(value::InfrastructureSystems.Scenarios) -> String
+
Get Scenarios
name
.
InfrastructureSystems.get_name
— Methodget_name(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata
+) -> String
+
Get SingleTimeSeriesMetadata
name
.
InfrastructureSystems.get_name
— Methodget_name(
+ value::InfrastructureSystems.SingleTimeSeries
+) -> String
+
Get SingleTimeSeries
name
.
InfrastructureSystems.get_next_time
— Methodget_next_time(
+ cache::InfrastructureSystems.TimeSeriesCache
+) -> Any
+
Return the timestamp for the next read with get_next_time_series_array!
.
Return nothing
if all data has been read.
InfrastructureSystems.get_next_time_series_array!
— Methodget_next_time_series_array!(
+ cache::InfrastructureSystems.TimeSeriesCache
+) -> Any
+
Return the next TimeSeries.TimeArray.
Returns nothing
when all data has been read. Call reset!
to restart. Call get_next_time
to check the start time.
Reads from storage if the data is not already in cache.
Arguments
cache::StaticTimeSeriesCache
: cached instance
Examples
cache = ForecastCache(Deterministic, component, "max_active_power")
+window1 = get_next_time_series_array!(cache)
+window2 = get_next_time_series_array!(cache)
InfrastructureSystems.get_num_attributes
— Methodget_num_attributes(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations
+) -> Any
+
Return the number of supplemental attributes.
InfrastructureSystems.get_num_components_with_attributes
— Methodget_num_components_with_attributes(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations
+) -> Any
+
Return the number of components with supplemental attributes.
InfrastructureSystems.get_num_steps
— Methodget_num_steps(
+ _::Type{T<:InfrastructureSystems.TimeSeriesFileFormat},
+ file::CSV.File,
+ period::AbstractArray
+) -> Any
+
Return the number of steps specified by the period in the file.
InfrastructureSystems.get_num_steps
— Methodget_num_steps(
+ _::Type{T<:InfrastructureSystems.TimeSeriesFormatPeriodAsHeader},
+ file::CSV.File,
+ period::AbstractArray
+) -> Any
+
Return the number of steps specified by the period in the file.
InfrastructureSystems.get_num_steps
— Methodget_num_steps(
+ _::Type{T<:Union{InfrastructureSystems.TimeSeriesFormatDateTimeAsColumn, InfrastructureSystems.TimeSeriesFormatPeriodAsColumn}},
+ file::CSV.File,
+ period::AbstractArray
+) -> Any
+
Return the number of steps specified by the period in the file.
InfrastructureSystems.get_num_subsystems
— Methodget_num_subsystems(
+ data::InfrastructureSystems.SystemData
+) -> Int64
+
Return the number of subsystems in the system.
InfrastructureSystems.get_num_time_series
— Methodget_num_time_series(
+ store::InfrastructureSystems.TimeSeriesMetadataStore
+) -> Any
+
Return the number of unique time series arrays.
InfrastructureSystems.get_percentiles
— Methodget_percentiles(
+ value::InfrastructureSystems.ProbabilisticMetadata
+) -> Vector{Float64}
+
Get ProbabilisticMetadata
percentiles
.
InfrastructureSystems.get_percentiles
— Methodget_percentiles(
+ value::InfrastructureSystems.Probabilistic
+) -> Vector{Float64}
+
Get Probabilistic
percentiles
.
InfrastructureSystems.get_period_columns
— Methodget_period_columns(
+ _::Type{InfrastructureSystems.TimeSeriesFormatPeriodAsColumn},
+ file::CSV.File
+) -> Vector{Symbol}
+
Return the column names that specify the Period.
InfrastructureSystems.get_points
— Methodget_points(
+ data::InfrastructureSystems.PiecewiseLinearData
+) -> Vector{@NamedTuple{x::Float64, y::Float64}}
+
Get the points that define the piecewise data
InfrastructureSystems.get_points
— Methodget_points(
+ vc::PiecewisePointCurve
+) -> Vector{@NamedTuple{x::Float64, y::Float64}}
+
Get the points that define the PiecewisePointCurve
InfrastructureSystems.get_power_units
— Methodget_power_units(
+ cost::InfrastructureSystems.ProductionVariableCostCurve
+) -> Any
+
Get the units for the x-axis of the curve
InfrastructureSystems.get_proportional_term
— Methodget_proportional_term(vc::LinearCurve) -> Float64
+
Get the proportional term (i.e., slope) of the LinearCurve
InfrastructureSystems.get_proportional_term
— Methodget_proportional_term(vc::QuadraticCurve) -> Float64
+
Get the proportional (i.e., linear) term of the QuadraticCurve
InfrastructureSystems.get_quadratic_term
— Methodget_quadratic_term(vc::QuadraticCurve) -> Float64
+
Get the quadratic term of the QuadraticCurve
InfrastructureSystems.get_raw_data_type
— FunctionGet from a subtype or instance of FunctionData the type of data its getrawdata method returns
InfrastructureSystems.get_resolution
— Methodget_resolution(
+ value::InfrastructureSystems.DeterministicMetadata
+) -> Dates.Period
+
Get DeterministicMetadata
resolution
.
InfrastructureSystems.get_resolution
— Methodget_resolution(
+ value::InfrastructureSystems.Deterministic
+) -> Dates.Period
+
Get Deterministic
resolution
.
InfrastructureSystems.get_resolution
— Methodget_resolution(
+ value::InfrastructureSystems.ProbabilisticMetadata
+) -> Dates.Period
+
Get ProbabilisticMetadata
resolution
.
InfrastructureSystems.get_resolution
— Methodget_resolution(
+ value::InfrastructureSystems.Probabilistic
+) -> Dates.Period
+
Get Probabilistic
resolution
.
InfrastructureSystems.get_resolution
— Methodget_resolution(
+ value::InfrastructureSystems.ScenariosMetadata
+) -> Dates.Period
+
Get ScenariosMetadata
resolution
.
InfrastructureSystems.get_resolution
— Methodget_resolution(
+ value::InfrastructureSystems.Scenarios
+) -> Dates.Period
+
Get Scenarios
resolution
.
InfrastructureSystems.get_resolution
— Methodget_resolution(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata
+) -> Dates.Period
+
Get SingleTimeSeriesMetadata
resolution
.
InfrastructureSystems.get_resolution
— Methodget_resolution(
+ value::InfrastructureSystems.SingleTimeSeries
+) -> Dates.Period
+
Get SingleTimeSeries
resolution
.
InfrastructureSystems.get_resolution
— Methodget_resolution(ts::TimeSeries.TimeArray) -> Any
+
Return the resolution from a TimeArray.
InfrastructureSystems.get_scaling_factor_multiplier
— Methodget_scaling_factor_multiplier(
+ value::InfrastructureSystems.DeterministicMetadata
+) -> Union{Nothing, Function}
+
Get DeterministicMetadata
scaling_factor_multiplier
.
InfrastructureSystems.get_scaling_factor_multiplier
— Methodget_scaling_factor_multiplier(
+ value::InfrastructureSystems.Deterministic
+) -> Union{Nothing, Function}
+
Get Deterministic
scaling_factor_multiplier
.
InfrastructureSystems.get_scaling_factor_multiplier
— Methodget_scaling_factor_multiplier(
+ value::InfrastructureSystems.ProbabilisticMetadata
+) -> Union{Nothing, Function}
+
Get ProbabilisticMetadata
scaling_factor_multiplier
.
InfrastructureSystems.get_scaling_factor_multiplier
— Methodget_scaling_factor_multiplier(
+ value::InfrastructureSystems.Probabilistic
+) -> Union{Nothing, Function}
+
Get Probabilistic
scaling_factor_multiplier
.
InfrastructureSystems.get_scaling_factor_multiplier
— Methodget_scaling_factor_multiplier(
+ value::InfrastructureSystems.ScenariosMetadata
+) -> Union{Nothing, Function}
+
Get ScenariosMetadata
scaling_factor_multiplier
.
InfrastructureSystems.get_scaling_factor_multiplier
— Methodget_scaling_factor_multiplier(
+ value::InfrastructureSystems.Scenarios
+) -> Union{Nothing, Function}
+
Get Scenarios
scaling_factor_multiplier
.
InfrastructureSystems.get_scaling_factor_multiplier
— Methodget_scaling_factor_multiplier(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata
+) -> Union{Nothing, Function}
+
Get SingleTimeSeriesMetadata
scaling_factor_multiplier
.
InfrastructureSystems.get_scaling_factor_multiplier
— Methodget_scaling_factor_multiplier(
+ value::InfrastructureSystems.SingleTimeSeries
+) -> Union{Nothing, Function}
+
Get SingleTimeSeries
scaling_factor_multiplier
.
InfrastructureSystems.get_scenario_count
— Methodget_scenario_count(
+ value::InfrastructureSystems.ScenariosMetadata
+) -> Int64
+
Get ScenariosMetadata
scenario_count
.
InfrastructureSystems.get_scenario_count
— Methodget_scenario_count(
+ value::InfrastructureSystems.Scenarios
+) -> Int64
+
Get Scenarios
scenario_count
.
InfrastructureSystems.get_serialization_metadata
— Methodget_serialization_metadata(data::Dict) -> Any
+
Return the type information for the serialized struct.
InfrastructureSystems.get_single_time_series
— Methodget_single_time_series(
+ value::InfrastructureSystems.DeterministicSingleTimeSeries
+) -> InfrastructureSystems.SingleTimeSeries
+
Get DeterministicSingleTimeSeries
single_time_series
.
InfrastructureSystems.get_slopes
— Methodget_slopes(
+ pwl::InfrastructureSystems.PiecewiseLinearData
+) -> Vector{Float64}
+
Calculates the slopes of the line segments defined by the PiecewiseLinearData, returning one fewer slope than the number of underlying points.
InfrastructureSystems.get_slopes
— Methodget_slopes(vc::PiecewiseIncrementalCurve) -> Vector{Float64}
+
Fetch the slopes that define the PiecewiseIncrementalCurve
InfrastructureSystems.get_slopes
— Methodget_slopes(vc::PiecewisePointCurve) -> Vector{Float64}
+
Calculate the slopes of the line segments defined by the PiecewisePointCurve
InfrastructureSystems.get_subsystem_components
— Methodget_subsystem_components(
+ data::InfrastructureSystems.SystemData,
+ subsystem_name::AbstractString
+) -> Base.Generator{Set{Base.UUID}, InfrastructureSystems.var"#420#421"{InfrastructureSystems.SystemData}}
+
Return a Generator of all components in the subsystem.
Throws ArgumentError if the subsystem name is not stored.
InfrastructureSystems.get_subsystems
— Methodget_subsystems(
+ data::InfrastructureSystems.SystemData
+) -> Base.KeySet{String, Dict{String, Set{Base.UUID}}}
+
Return an iterator of all subsystem names in the system.
InfrastructureSystems.get_supplemental_attributes
— Methodget_supplemental_attributes(
+ filter_func::Function,
+ _::Type{T<:InfrastructureSystems.SupplementalAttribute},
+ mgr::InfrastructureSystems.SupplementalAttributeManager
+) -> InfrastructureSystems.FlattenIteratorWrapper{T, I} where {T<:InfrastructureSystems.SupplementalAttribute, I<:(Vector)}
+
Returns an iterator of supplemental_attributes. T can be concrete or abstract. Call collect on the result if an array is desired.
Arguments
T
: supplemental_attribute typemgr::SupplementalAttributeManager
: SupplementalAttributeManager in the systemfilter_func::Union{Nothing, Function} = nothing
: Optional function that accepts a component of type T and returns a Bool. Apply this function to each component and only return components where the result is true.
InfrastructureSystems.get_supplemental_attributes
— Methodget_supplemental_attributes(
+ _::Type{T<:InfrastructureSystems.SupplementalAttribute},
+ component::InfrastructureSystems.InfrastructureSystemsComponent
+) -> Any
+
Return a Vector of supplemental_attributes. T can be concrete or abstract.
Arguments
T
: supplemental_attribute typesupplemental_attributes::SupplementalAttributes
: SupplementalAttributes in the systemfilter_func::Union{Nothing, Function} = nothing
: Optional function that accepts a component of type T and returns a Bool. Apply this function to each component and only return components where the result is true.
InfrastructureSystems.get_time_series
— Functionget_time_series(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ key::InfrastructureSystems.TimeSeriesKey
+) -> Any
+get_time_series(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ key::InfrastructureSystems.TimeSeriesKey,
+ start_time::Union{Nothing, Dates.DateTime}
+) -> Any
+get_time_series(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ key::InfrastructureSystems.TimeSeriesKey,
+ start_time::Union{Nothing, Dates.DateTime},
+ len::Union{Nothing, Int64}
+) -> Any
+get_time_series(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ key::InfrastructureSystems.TimeSeriesKey,
+ start_time::Union{Nothing, Dates.DateTime},
+ len::Union{Nothing, Int64},
+ count::Union{Nothing, Int64}
+) -> Any
+
Return the exact stored data in a time series, using a time series key look up
This will load all forecast windows into memory by default. Be aware of how much data is stored.
Specify start_time and len if you only need a subset of data.
Does not apply a scaling factor multiplier.
Arguments
owner::TimeSeriesOwners
: Component or attribute containing the time serieskey::TimeSeriesKey
: the time series' keystart_time::Union{Nothing, Dates.DateTime} = nothing
: If nothing, use theinitial_timestamp
of the time series. If the time series is a subtype of Forecast thenstart_time
must be the first timestamp of a window.len::Union{Nothing, Int} = nothing
: Length in the time dimension. If nothing, use the entire length.count::Union{Nothing, Int} = nothing
: Only applicable to subtypes of Forecast. Number of forecast windows starting atstart_time
to return. Defaults to all available.features...
: User-defined tags that differentiate multiple time series arrays for the same component attribute, such as different arrays for different scenarios or years
See also: get_time_series
by name
InfrastructureSystems.get_time_series
— Methodget_time_series(
+ ::Type{T<:InfrastructureSystems.TimeSeriesData},
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ name::AbstractString;
+ start_time,
+ len,
+ count,
+ features...
+) -> Any
+
Return the exact stored data in a time series
This will load all forecast windows into memory by default. Be aware of how much data is stored.
Specify start_time
and len
if you only need a subset of data.
Does not apply a scaling factor multiplier.
Arguments
::Type{T}
: Concrete subtype ofTimeSeriesData
to returnowner::TimeSeriesOwners
: Component or attribute containing the time seriesname::AbstractString
: name of time seriesstart_time::Union{Nothing, Dates.DateTime} = nothing
: If nothing, use theinitial_timestamp
of the time series. If T is a subtype of Forecast thenstart_time
must be the first timestamp of a window.len::Union{Nothing, Int} = nothing
: Length in the time dimension. If nothing, use the entire length.count::Union{Nothing, Int} = nothing
: Only applicable to subtypes of Forecast. Number of forecast windows starting atstart_time
to return. Defaults to all available.features...
: User-defined tags that differentiate multiple time series arrays for the same component attribute, such as different arrays for different scenarios or years
See also: get_time_series_array
, get_time_series_values
, get_time_series
by key
InfrastructureSystems.get_time_series_array
— Functionget_time_series_array(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ time_series::InfrastructureSystems.StaticTimeSeries;
+ ...
+) -> Any
+get_time_series_array(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ time_series::InfrastructureSystems.StaticTimeSeries,
+ start_time::Union{Nothing, Dates.DateTime};
+ len,
+ ignore_scaling_factors
+) -> Any
+
Return a TimeSeries.TimeArray
from a cached StaticTimeSeries
instance.
If the time series data are scaling factors, the returned data will be scaled by the scaling factor multiplier by default.
Arguments
owner::TimeSeriesOwners
: Component or attribute containing the time seriestime_series::StaticTimeSeries
: subtype ofStaticTimeSeries
(e.g.,SingleTimeSeries
)start_time::Union{Nothing, Dates.DateTime} = nothing
: the first timestamp to retrieve. If nothing, use theinitial_timestamp
of the time series.len::Union{Nothing, Int} = nothing
: Length of time-series to retrieve (i.e. number of timestamps). If nothing, use the entire lengthignore_scaling_factors = false
: Iftrue
, the time-series data will be multiplied by the result of calling the storedscaling_factor_multiplier
function on theowner
See also: get_time_series_values
, get_time_series_timestamps
, StaticTimeSeriesCache
, get_time_series_array
by name from storage, get_time_series_array
from a ForecastCache
InfrastructureSystems.get_time_series_array!
— Methodget_time_series_array!(
+ cache::InfrastructureSystems.TimeSeriesCache,
+ timestamp::Dates.DateTime
+) -> Any
+
Return the TimeSeries.TimeArray starting at timestamp. Reads from storage if the data is not already in cache.
Timestamps must be read sequentially. Repeated reads are allowed. Random access may be added in the future.
Arguments
cache::StaticTimeSeriesCache
: cached instancetimestamp::Dates.DateTime
: starting timestamp for the time series array
InfrastructureSystems.get_time_series_array
— Methodget_time_series_array(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ forecast::InfrastructureSystems.Forecast,
+ start_time::Dates.DateTime;
+ len,
+ ignore_scaling_factors
+) -> Any
+
Return a TimeSeries.TimeArray
for one forecast window from a cached Forecast
instance
If the time series data are scaling factors, the returned data will be scaled by the scaling factor multiplier by default.
Arguments
owner::TimeSeriesOwners
: Component or attribute containing the time seriesforecast::Forecast
: a concrete subtype ofForecast
start_time::Union{Nothing, Dates.DateTime} = nothing
: the first timestamp of one of the forecast windowslen::Union{Nothing, Int} = nothing
: Length of time-series to retrieve (i.e. number of timestamps). If nothing, use the entire length.ignore_scaling_factors = false
: Iftrue
, the time-series data will be multiplied by the result of calling the storedscaling_factor_multiplier
function on theowner
See also get_time_series_values
, get_time_series_timestamps
, ForecastCache
, get_time_series_array
by name from storage, get_time_series_array
from a StaticTimeSeriesCache
InfrastructureSystems.get_time_series_array
— Methodget_time_series_array(
+ ::Type{T<:InfrastructureSystems.TimeSeriesData},
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ name::AbstractString;
+ start_time,
+ len,
+ ignore_scaling_factors,
+ features...
+) -> Any
+
Return a TimeSeries.TimeArray
from storage for the given time series parameters.
If the time series data are scaling factors, the returned data will be scaled by the scaling factor multiplier by default.
This will load all forecast windows into memory by default. Be aware of how much data is stored.
Specify start_time
and len
if you only need a subset of data.
Arguments
::Type{T}
: the type of time series (a concrete subtype ofTimeSeriesData
)owner::TimeSeriesOwners
: Component or attribute containing the time seriesname::AbstractString
: name of time seriesstart_time::Union{Nothing, Dates.DateTime} = nothing
: If nothing, use theinitial_timestamp
of the time series. If T is a subtype ofForecast
thenstart_time
must be the first timestamp of a window.len::Union{Nothing, Int} = nothing
: Length of time-series to retrieve (i.e. number of timestamps). If nothing, use the entire length.ignore_scaling_factors = false
: Iftrue
, the time-series data will be multiplied by the result of calling the storedscaling_factor_multiplier
function on theowner
features...
: User-defined tags that differentiate multiple time series arrays for the same component attribute, such as different arrays for different scenarios or years
See also: get_time_series_values
, get_time_series_timestamps
, get_time_series_array
from a StaticTimeSeriesCache
, get_time_series_array
from a ForecastCache
InfrastructureSystems.get_time_series_counts
— Methodget_time_series_counts(
+ store::InfrastructureSystems.TimeSeriesMetadataStore
+) -> InfrastructureSystems.TimeSeriesCounts
+
Return an instance of TimeSeriesCounts.
InfrastructureSystems.get_time_series_counts_by_type
— Methodget_time_series_counts_by_type(
+ store::InfrastructureSystems.TimeSeriesMetadataStore
+) -> Vector
+
Return a Vector of OrderedDict of stored time series counts by type.
InfrastructureSystems.get_time_series_format
— Methodget_time_series_format(file::CSV.File) -> Type
+
Return the time series format used in the CSV file.
InfrastructureSystems.get_time_series_keys
— Methodget_time_series_keys(
+ store::InfrastructureSystems.TimeSeriesMetadataStore,
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute}
+) -> Vector
+
Return information about each time series array attached to the owner. This information can be used to call gettimeseries.
InfrastructureSystems.get_time_series_keys
— Methodget_time_series_keys(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute}
+) -> Vector
+
Return information about each time series array attached to the owner. This information can be used to call get_time_series(::TimeSeriesOwners, ::TimeSeriesKey)
.
InfrastructureSystems.get_time_series_manager
— Methodget_time_series_manager(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute}
+) -> Any
+
Return the TimeSeriesManager or nothing if the component/attribute does not support time series.
InfrastructureSystems.get_time_series_multiple
— Functionget_time_series_multiple(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute};
+ ...
+) -> Union{Tuple{}, Channel{Any}}
+get_time_series_multiple(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ filter_func;
+ type,
+ name
+) -> Union{Tuple{}, Channel{Any}}
+
Returns an iterator of TimeSeriesData instances attached to the component or attribute.
Note that passing a filter function can be much slower than the other filtering parameters because it reads time series data from media.
Call collect
on the result to get an array.
Arguments
owner::TimeSeriesOwners
: component or attribute from which to get time_seriesfilter_func = nothing
: Only return time_series for which this returns true.type = nothing
: Only return time_series with this type.name = nothing
: Only return time_series matching this value.
See also: get_time_series_multiple
from a System
InfrastructureSystems.get_time_series_multiple
— Functionget_time_series_multiple(
+ data::InfrastructureSystems.SystemData;
+ ...
+) -> Channel{Any}
+get_time_series_multiple(
+ data::InfrastructureSystems.SystemData,
+ filter_func;
+ type,
+ name
+) -> Channel{Any}
+
Returns an iterator of TimeSeriesData
instances attached to the system.
Note that passing a filter function can be much slower than the other filtering parameters because it reads time series data from media.
Call collect
on the result to get an array.
Arguments
data::SystemData
: systemfilter_func = nothing
: Only return time_series for which this returns true.type = nothing
: Only return time_series with this type.name = nothing
: Only return time_series matching this value.
See also: get_time_series_multiple
from an individual component or attribute
InfrastructureSystems.get_time_series_resolutions
— Methodget_time_series_resolutions(
+ store::InfrastructureSystems.TimeSeriesMetadataStore;
+ time_series_type
+) -> Any
+
Return a sorted Vector of distinct resolutions for all time series of the given type (or all types).
InfrastructureSystems.get_time_series_summary_table
— Methodget_time_series_summary_table(
+ store::InfrastructureSystems.TimeSeriesMetadataStore
+) -> DataFrames.DataFrame
+
Return a DataFrame with the number of time series by type for components and supplemental attributes.
InfrastructureSystems.get_time_series_timestamps
— Functionget_time_series_timestamps(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ forecast::InfrastructureSystems.Forecast;
+ ...
+)
+get_time_series_timestamps(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ forecast::InfrastructureSystems.Forecast,
+ start_time::Union{Nothing, Dates.DateTime};
+ len
+) -> Vector{D} where D<:Dates.TimeType
+
Return a vector of timestamps from a cached Forecast instance.
Arguments
owner::TimeSeriesOwners
: Component or attribute containing the time seriesforecast::Forecast
: a concrete subtype ofForecast
start_time::Union{Nothing, Dates.DateTime} = nothing
: the first timestamp of one of the forecast windowslen::Union{Nothing, Int} = nothing
: Length of time-series to retrieve (i.e. number of timestamps). If nothing, use the entire length.
See also: get_time_series_array
, get_time_series_values
, ForecastCache
, get_time_series_timestamps
by name from storage, get_time_series_timestamps
from a StaticTimeSeriesCache
InfrastructureSystems.get_time_series_timestamps
— Functionget_time_series_timestamps(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ time_series::InfrastructureSystems.StaticTimeSeries;
+ ...
+) -> Vector{D} where D<:Dates.TimeType
+get_time_series_timestamps(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ time_series::InfrastructureSystems.StaticTimeSeries,
+ start_time::Union{Nothing, Dates.DateTime};
+ len
+) -> Vector{D} where D<:Dates.TimeType
+
Return a vector of timestamps from a cached StaticTimeSeries instance.
Arguments
owner::TimeSeriesOwners
: Component or attribute containing the time seriestime_series::StaticTimeSeries
: subtype ofStaticTimeSeries
(e.g.,SingleTimeSeries
)start_time::Union{Nothing, Dates.DateTime} = nothing
: the first timestamp to retrieve. If nothing, use theinitial_timestamp
of the time series.len::Union{Nothing, Int} = nothing
: Length of time-series to retrieve (i.e. number of timestamps). If nothing, use the entire length
See also: get_time_series_array
, get_time_series_values
, StaticTimeSeriesCache
, get_time_series_timestamps
by name from storage, get_time_series_timestamps
from a ForecastCache
InfrastructureSystems.get_time_series_timestamps
— Methodget_time_series_timestamps(
+ ::Type{T<:InfrastructureSystems.TimeSeriesData},
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ name::AbstractString;
+ start_time,
+ len,
+ features...
+) -> Vector{D} where D<:Dates.TimeType
+
Return a vector of timestamps from storage for the given time series parameters.
Arguments
::Type{T}
: the type of time series (a concrete subtype ofTimeSeriesData
)owner::TimeSeriesOwners
: Component or attribute containing the time seriesname::AbstractString
: name of time seriesstart_time::Union{Nothing, Dates.DateTime} = nothing
: If nothing, use theinitial_timestamp
of the time series. If T is a subtype ofForecast
thenstart_time
must be the first timestamp of a window.len::Union{Nothing, Int} = nothing
: Length of time-series to retrieve (i.e. number of timestamps). If nothing, use the entire length.features...
: User-defined tags that differentiate multiple time series arrays for the same component attribute, such as different arrays for different scenarios or years
See also: get_time_series_array
, get_time_series_values
, get_time_series_timestamps
from a StaticTimeSeriesCache
, get_time_series_timestamps
from a ForecastCache
InfrastructureSystems.get_time_series_type
— Methodget_time_series_type(
+ value::InfrastructureSystems.DeterministicMetadata
+) -> Type{<:InfrastructureSystems.AbstractDeterministic}
+
Get DeterministicMetadata
time_series_type
.
InfrastructureSystems.get_time_series_uuid
— Methodget_time_series_uuid(
+ value::InfrastructureSystems.DeterministicMetadata
+) -> Base.UUID
+
Get DeterministicMetadata
time_series_uuid
.
InfrastructureSystems.get_time_series_uuid
— Methodget_time_series_uuid(
+ value::InfrastructureSystems.ProbabilisticMetadata
+) -> Base.UUID
+
Get ProbabilisticMetadata
time_series_uuid
.
InfrastructureSystems.get_time_series_uuid
— Methodget_time_series_uuid(
+ value::InfrastructureSystems.ScenariosMetadata
+) -> Base.UUID
+
Get ScenariosMetadata
time_series_uuid
.
InfrastructureSystems.get_time_series_uuid
— Methodget_time_series_uuid(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata
+) -> Base.UUID
+
Get SingleTimeSeriesMetadata
time_series_uuid
.
InfrastructureSystems.get_time_series_values
— Functionget_time_series_values(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ time_series::InfrastructureSystems.StaticTimeSeries;
+ ...
+) -> Any
+get_time_series_values(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ time_series::InfrastructureSystems.StaticTimeSeries,
+ start_time::Union{Nothing, Dates.DateTime};
+ len,
+ ignore_scaling_factors
+) -> Any
+
Return an vector of timeseries data without timestamps from a cached StaticTimeSeries
instance
Arguments
owner::TimeSeriesOwners
: Component or attribute containing the time seriestime_series::StaticTimeSeries
: subtype ofStaticTimeSeries
(e.g.,SingleTimeSeries
)start_time::Union{Nothing, Dates.DateTime} = nothing
: the first timestamp to retrieve. If nothing, use theinitial_timestamp
of the time series.len::Union{Nothing, Int} = nothing
: Length of time-series to retrieve (i.e. number of timestamps). If nothing, use the entire lengthignore_scaling_factors = false
: Iftrue
, the time-series data will be multiplied by the result of calling the storedscaling_factor_multiplier
function on theowner
See also: get_time_series_array
, get_time_series_timestamps
, StaticTimeSeriesCache
, get_time_series_values
by name from storage, get_time_series_values
from a ForecastCache
InfrastructureSystems.get_time_series_values
— Methodget_time_series_values(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ forecast::InfrastructureSystems.Forecast,
+ start_time::Dates.DateTime;
+ len,
+ ignore_scaling_factors
+) -> Any
+
Return an vector of timeseries data without timestamps for one forecast window from a cached Forecast
instance.
Arguments
owner::TimeSeriesOwners
: Component or attribute containing the time seriesforecast::Forecast
: a concrete subtype ofForecast
start_time::Union{Nothing, Dates.DateTime} = nothing
: the first timestamp of one of the forecast windowslen::Union{Nothing, Int} = nothing
: Length of time-series to retrieve (i.e. number of timestamps). If nothing, use the entire length.ignore_scaling_factors = false
: Iftrue
, the time-series data will be multiplied by the result of calling the storedscaling_factor_multiplier
function on theowner
See also: get_time_series_array
, get_time_series_timestamps
, ForecastCache
, get_time_series_values
by name from storage, get_time_series_values
from a StaticTimeSeriesCache
InfrastructureSystems.get_time_series_values
— Methodget_time_series_values(
+ ::Type{T<:InfrastructureSystems.TimeSeriesData},
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ name::AbstractString;
+ start_time,
+ len,
+ ignore_scaling_factors,
+ features...
+) -> Any
+
Return an vector of timeseries data without timestamps from storage
If the data size is small and this will be called many times, consider using the version that accepts a cached TimeSeriesData
instance.
Arguments
::Type{T}
: type of the time series (a concrete subtype ofTimeSeriesData
)owner::TimeSeriesOwners
: Component or attribute containing the time seriesname::AbstractString
: name of time seriesstart_time::Union{Nothing, Dates.DateTime} = nothing
: If nothing, use theinitial_timestamp
of the time series. If T is a subtype ofForecast
thenstart_time
must be the first timestamp of a window.len::Union{Nothing, Int} = nothing
: Length of time-series to retrieve (i.e. number of timestamps). If nothing, use the entire length.ignore_scaling_factors = false
: Iftrue
, the time-series data will be multiplied by the result of calling the storedscaling_factor_multiplier
function on theowner
features...
: User-defined tags that differentiate multiple time series arrays for the same component attribute, such as different arrays for different scenarios or years
See also: get_time_series_array
, get_time_series_timestamps
, get_time_series
, get_time_series_values
from a StaticTimeSeriesCache
, get_time_series_values
from a ForecastCache
InfrastructureSystems.get_timestamp
— Methodget_timestamp(
+ _::Type{InfrastructureSystems.TimeSeriesFormatYMDPeriodAsColumn},
+ file::CSV.File,
+ row_index::Int64
+) -> Any
+
Return a Dates.DateTime for the row in the CSV file.
InfrastructureSystems.get_total_period
— Methodget_total_period(f::InfrastructureSystems.Forecast) -> Any
+
Return the total period covered by the forecast.
InfrastructureSystems.get_unique_timestamps
— Methodget_unique_timestamps(
+ _::Type{T<:InfrastructureSystems.TimeSeriesFileFormat},
+ file::CSV.File
+) -> Vector{Dict{String, Any}}
+
Return a vector of dicts of unique timestamps and their counts.
InfrastructureSystems.get_uuid
— Methodget_uuid(
+ obj::InfrastructureSystems.InfrastructureSystemsType
+) -> Base.UUID
+
Gets the UUID for any InfrastructureSystemsType.
InfrastructureSystems.get_value_columns
— Methodget_value_columns(
+ _::Type{InfrastructureSystems.TimeSeriesFormatComponentsAsColumnsNoTime},
+ file::CSV.File
+) -> Vector{Symbol}
+
Return the column names with values.
InfrastructureSystems.get_value_columns
— Methodget_value_columns(
+ _::Type{InfrastructureSystems.TimeSeriesFormatYMDPeriodAsColumn},
+ file::CSV.File
+) -> Vector{Symbol}
+
Return the column names with values (components).
InfrastructureSystems.get_value_curve
— Methodget_value_curve(
+ cost::InfrastructureSystems.ProductionVariableCostCurve
+) -> Any
+
Get the underlying ValueCurve
representation of this ProductionVariableCostCurve
InfrastructureSystems.get_vom_cost
— Methodget_vom_cost(
+ cost::InfrastructureSystems.ProductionVariableCostCurve
+) -> Any
+
Get the variable operation and maintenance cost in currency/(power_units h)
InfrastructureSystems.get_window
— Methodget_window(
+ forecast::InfrastructureSystems.Forecast,
+ index::Int64;
+ len
+) -> Any
+
Return the forecast window corresponsing to interval index.
InfrastructureSystems.get_x_coords
— Methodget_x_coords(
+ data::InfrastructureSystems.PiecewiseLinearData
+) -> Vector{Float64}
+
Get the x-coordinates of the points that define the piecewise data
InfrastructureSystems.get_x_coords
— Methodget_x_coords(
+ data::InfrastructureSystems.PiecewiseStepData
+) -> Vector{Float64}
+
Get the x-coordinates of the points that define the piecewise data
InfrastructureSystems.get_x_coords
— Methodget_x_coords(vc::PiecewiseAverageCurve) -> Vector{Float64}
+
Get the x-coordinates that define the PiecewiseAverageCurve
InfrastructureSystems.get_x_coords
— Methodget_x_coords(
+ vc::PiecewiseIncrementalCurve
+) -> Vector{Float64}
+
Get the x-coordinates that define the PiecewiseIncrementalCurve
InfrastructureSystems.get_x_coords
— Methodget_x_coords(vc::PiecewisePointCurve) -> Vector{Float64}
+
Get the x-coordinates of the points that define the PiecewisePointCurve
InfrastructureSystems.get_x_lengths
— Methodget_x_lengths(
+ pwl::Union{InfrastructureSystems.PiecewiseLinearData, InfrastructureSystems.PiecewiseStepData}
+) -> Vector{Float64}
+
Calculates the x-length of each segment of a piecewise curve.
InfrastructureSystems.get_y_coords
— Methodget_y_coords(
+ data::InfrastructureSystems.PiecewiseLinearData
+) -> Vector{Float64}
+
Get the y-coordinates of the points that define the PiecewiseLinearData
InfrastructureSystems.get_y_coords
— Methodget_y_coords(
+ data::InfrastructureSystems.PiecewiseStepData
+) -> Vector{Float64}
+
Get the y-coordinates of the segments in the PiecewiseStepData
InfrastructureSystems.get_y_coords
— Methodget_y_coords(vc::PiecewisePointCurve) -> Vector{Float64}
+
Get the y-coordinates of the points that define the PiecewisePointCurve
InfrastructureSystems.has_association
— Methodhas_association(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations,
+ attribute::InfrastructureSystems.SupplementalAttribute
+) -> Bool
+
Return true if there is at least one association matching the inputs.
InfrastructureSystems.has_component
— Methodhas_component(
+ components::InfrastructureSystems.Components,
+ T::Type{<:InfrastructureSystems.InfrastructureSystemsComponent},
+ name::AbstractString
+) -> Bool
+
Check to see if a component with name exists.
InfrastructureSystems.has_component
— Methodhas_component(
+ data::InfrastructureSystems.SystemData,
+ subsystem_name::AbstractString,
+ component::InfrastructureSystems.InfrastructureSystemsComponent
+) -> Bool
+
Return true if the component is in the subsystem.
InfrastructureSystems.has_component
— Methodhas_component(
+ data::InfrastructureSystems.SystemData,
+ T::Type{<:InfrastructureSystems.InfrastructureSystemsComponent},
+ name::AbstractString
+) -> Bool
+
Check to see if a component exists.
InfrastructureSystems.has_components
— Methodhas_components(
+ components::InfrastructureSystems.Components,
+ T::Type{<:InfrastructureSystems.InfrastructureSystemsComponent}
+) -> Bool
+
Check to see if a component if the given type exists.
InfrastructureSystems.has_metadata
— Methodhas_metadata(
+ store::InfrastructureSystems.TimeSeriesMetadataStore,
+ time_series_uuid::Base.UUID
+) -> Bool
+
Return True if there is time series matching the UUID.
InfrastructureSystems.has_supplemental_attributes
— Methodhas_supplemental_attributes(
+ component::InfrastructureSystems.InfrastructureSystemsComponent
+) -> Bool
+
Return true if the component has supplemental attributes.
InfrastructureSystems.has_supplemental_attributes
— Methodhas_supplemental_attributes(
+ component::InfrastructureSystems.InfrastructureSystemsComponent,
+ _::Type{T<:InfrastructureSystems.SupplementalAttribute}
+) -> Bool
+
Return true if the component has supplemental attributes of the given type.
InfrastructureSystems.has_time_series
— Methodhas_time_series(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute}
+) -> Bool
+
Return true if the component or supplemental attribute has time series data.
InfrastructureSystems.has_time_series
— Methodhas_time_series(
+ val::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ _::Type{T<:InfrastructureSystems.TimeSeriesData}
+) -> Bool
+
Return true if the component or supplemental attribute has time series data of type T.
InfrastructureSystems.hash_from_fields
— Methodhash_from_fields(a) -> Any
+
Compute a hash of the instance a
by combining hashes of all its fields
InfrastructureSystems.head
— Methodhead(
+ time_series::InfrastructureSystems.SingleTimeSeries
+) -> Any
+
Return a time_series with only the first num values.
InfrastructureSystems.increment_count!
— Methodincrement_count!(
+ tracker::InfrastructureSystems.LogEventTracker,
+ event::InfrastructureSystems.LogEvent,
+ suppressed::Bool
+) -> Union{Nothing, Int64, InfrastructureSystems.LogEvent}
+
Increments the count of a log event.
InfrastructureSystems.index_to_initial_time
— Methodindex_to_initial_time(
+ forecast::InfrastructureSystems.Forecast,
+ index::Int64
+) -> Any
+
Return the Dates.DateTime corresponding to an interval index.
InfrastructureSystems.is_assigned_to_subsystem
— Methodis_assigned_to_subsystem(
+ data::InfrastructureSystems.SystemData,
+ component::InfrastructureSystems.InfrastructureSystemsComponent,
+ subsystem_name::AbstractString
+) -> Bool
+
Return true if the component is assigned to the subsystem.
InfrastructureSystems.is_assigned_to_subsystem
— Methodis_assigned_to_subsystem(
+ data::InfrastructureSystems.SystemData,
+ component::InfrastructureSystems.InfrastructureSystemsComponent
+) -> Bool
+
Return true if the component is assigned to any subsystems.
InfrastructureSystems.is_convex
— Methodis_convex(
+ pwl::InfrastructureSystems.PiecewiseLinearData
+) -> Bool
+
Returns True/False depending on the convexity of the underlying data
InfrastructureSystems.is_convex
— Methodis_convex(
+ cost::InfrastructureSystems.ProductionVariableCostCurve
+) -> Any
+
Calculate the convexity of the underlying data
InfrastructureSystems.is_convex
— Methodis_convex(curve::InfrastructureSystems.ValueCurve) -> Bool
+
Calculate the convexity of the underlying data
InfrastructureSystems.is_cost_alias
— Methodis_cost_alias(
+ _::Union{Type{<:InfrastructureSystems.ValueCurve}, InfrastructureSystems.ValueCurve}
+) -> Bool
+
Whether there is a cost alias for the instance or type under consideration
InfrastructureSystems.is_ext_valid_for_serialization
— Methodis_ext_valid_for_serialization(value) -> Bool
+
Perform a test to see if JSON3 can convert this value so that the code can give the user a a comprehensible corrective action.
InfrastructureSystems.isequal_from_fields
— Methodisequal_from_fields(a, b) -> Any
+
Compute the conjunction of the isequal
values of all the fields in a
and b
InfrastructureSystems.isequivalent
— Methodisequivalent(x, y) -> Any
+
An equality predicate that is true
for NaN, NaN
(unlike ==
) and for -0.0, 0.0
(unlike isequal
)
InfrastructureSystems.iterate_components
— Methoditerate_components(
+ components::InfrastructureSystems.Components
+) -> Base.Iterators.Flatten{Base.Generator{Base.ValueIterator{Dict{DataType, Dict{String, <:InfrastructureSystems.InfrastructureSystemsComponent}}}, InfrastructureSystems.var"#114#115"}}
+
Iterates over all components.
Examples
for component in iterate_components(obj)
+ @show component
+end
See also: get_components
InfrastructureSystems.iterate_container
— Methoditerate_container(
+ container::InfrastructureSystems.InfrastructureSystemsContainer
+) -> Base.Iterators.Flatten{I} where I<:(Base.Generator{_A, InfrastructureSystems.var"#114#115"} where _A)
+
Iterates over all data in the container.
InfrastructureSystems.iterate_supplemental_attributes
— Methoditerate_supplemental_attributes(
+ mgr::InfrastructureSystems.SupplementalAttributeManager
+) -> Base.Iterators.Flatten{Base.Generator{Base.ValueIterator{Dict{DataType, Dict{Base.UUID, <:InfrastructureSystems.SupplementalAttribute}}}, InfrastructureSystems.var"#114#115"}}
+
Iterates over all supplemental_attributes.
Examples
for supplemental_attribute in iterate_supplemental_attributes(obj)
+ @show supplemental_attribute
+end
InfrastructureSystems.iterate_windows
— Methoditerate_windows(
+ forecast::InfrastructureSystems.DeterministicSingleTimeSeries
+) -> Union{Tuple{Any}, Base.Generator{I, InfrastructureSystems.var"#138#139"{InfrastructureSystems.DeterministicSingleTimeSeries}} where I<:(StepRangeLen{T, R, S, Int64} where {T, R>:Dates.DateTime, S})}
+
Iterate over the windows in a forecast
Examples
for window in iterate_windows(forecast)
+ @show values(maximum(window))
+end
InfrastructureSystems.iterate_windows
— Methoditerate_windows(
+ forecast::InfrastructureSystems.Deterministic
+) -> Base.Generator{I, InfrastructureSystems.var"#109#110"{InfrastructureSystems.Deterministic}} where I<:(DataStructures.SDMKeyIteration{T} where T<:DataStructures.SortedDict)
+
Iterate over the windows in a forecast
Examples
for window in iterate_windows(forecast)
+ @show values(maximum(window))
+end
InfrastructureSystems.iterate_windows
— Methoditerate_windows(
+ forecast::InfrastructureSystems.Probabilistic
+) -> Base.Generator{I, InfrastructureSystems.var"#109#110"{InfrastructureSystems.Probabilistic}} where I<:(DataStructures.SDMKeyIteration{T} where T<:DataStructures.SortedDict)
+
Iterate over the windows in a forecast
Examples
for window in iterate_windows(forecast)
+ @show values(maximum(window))
+end
InfrastructureSystems.iterate_windows
— Methoditerate_windows(
+ forecast::InfrastructureSystems.Scenarios
+) -> Base.Generator{I, InfrastructureSystems.var"#109#110"{InfrastructureSystems.Scenarios}} where I<:(DataStructures.SDMKeyIteration{T} where T<:DataStructures.SortedDict)
+
Iterate over the windows in a forecast
Examples
for window in iterate_windows(forecast)
+ @show values(maximum(window))
+end
InfrastructureSystems.list_associated_component_uuids
— Methodlist_associated_component_uuids(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations,
+ attribute::InfrastructureSystems.SupplementalAttribute
+) -> Any
+
Return the component UUIDs associated with the attribute.
InfrastructureSystems.list_associated_supplemental_attribute_uuids
— Methodlist_associated_supplemental_attribute_uuids(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations,
+ component::InfrastructureSystems.InfrastructureSystemsComponent;
+ attribute_type
+) -> Any
+
Return the supplemental attribute UUIDs associated with the component and attribute type.
InfrastructureSystems.list_existing_metadata
— Methodlist_existing_metadata(
+ store::InfrastructureSystems.TimeSeriesMetadataStore,
+ owners::Vector{Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute}},
+ metadata::Vector{InfrastructureSystems.TimeSeriesMetadata}
+) -> Vector
+
Return the metadata specified in the passed metadata vector that are already stored.
InfrastructureSystems.list_existing_time_series_uuids
— Methodlist_existing_time_series_uuids(
+ store::InfrastructureSystems.TimeSeriesMetadataStore,
+ uuids
+) -> Any
+
Return the time series UUIDs specified in the passed uuids that are already stored.
InfrastructureSystems.list_matching_time_series_uuids
— Methodlist_matching_time_series_uuids(
+ store::InfrastructureSystems.TimeSeriesMetadataStore;
+ time_series_type,
+ name,
+ features...
+) -> Any
+
Return the time series UUIDs that match the inputs.
InfrastructureSystems.list_metadata_with_owner_uuid
— Methodlist_metadata_with_owner_uuid(
+ store::InfrastructureSystems.TimeSeriesMetadataStore,
+ owner_type::Type{<:Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute}};
+ time_series_type,
+ name,
+ features...
+) -> Vector
+
Return a Vector of NamedTuple of owner UUID and time series metadata matching the inputs.
InfrastructureSystems.list_recorder_events
— Methodlist_recorder_events(
+ ::Type{T<:InfrastructureSystems.AbstractRecorderEvent},
+ filename::AbstractString
+) -> Vector{T} where T<:InfrastructureSystems.AbstractRecorderEvent
+list_recorder_events(
+ ::Type{T<:InfrastructureSystems.AbstractRecorderEvent},
+ filename::AbstractString,
+ filter_func::Union{Nothing, Function}
+) -> Vector{T} where T<:InfrastructureSystems.AbstractRecorderEvent
+
Return the events of type T in filename.
Arguments
T
: event typefilename::AbstractString
: filename containing recorder eventsfilter_func::Union{Nothing, Function} = nothing
: Optional function that accepts an event of type T and returns a Bool. Apply this function to each event and only return events where the result is true.
InfrastructureSystems.load_records!
— Methodload_records!(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations,
+ records
+)
+
Add records to the database. Expects output from to_records
.
InfrastructureSystems.make_time_array
— Methodmake_time_array(
+ forecast::InfrastructureSystems.Forecast,
+ start_time::Dates.DateTime;
+ len
+) -> Any
+
Return a TimeSeries.TimeArray for one forecast window.
InfrastructureSystems.make_time_series!
— Methodmake_time_series!(
+ cache::InfrastructureSystems.TimeSeriesParsingCache,
+ ts_file_metadata::InfrastructureSystems.TimeSeriesFileMetadata
+) -> Any
+
Return a time series from TimeSeriesFileMetadata.
Arguments
cache::TimeSeriesParsingCache
: cached datats_file_metadata::TimeSeriesFileMetadata
: metadataresolution::{Nothing, Dates.Period}
: skip any time_series that don't match this resolution
InfrastructureSystems.mask_component!
— Methodmask_component!(
+ data::InfrastructureSystems.SystemData,
+ component::InfrastructureSystems.InfrastructureSystemsComponent;
+ remove_time_series
+)
+
Removes the component from the main container and adds it to the masked container.
InfrastructureSystems.open_file_logger
— Functionopen_file_logger(func::Function, filename::String) -> Any
+open_file_logger(
+ func::Function,
+ filename::String,
+ level
+) -> Any
+open_file_logger(
+ func::Function,
+ filename::String,
+ level,
+ mode
+) -> Any
+
Opens a file logger using Logging.SimpleLogger
.
Arguments
func::Function
filename::String
: logger filenamelevel=Logging.Info
: optional, to change the minimum logging levelmode = "w+"
: Optional, to designate write mode
Example
open_file_logger("log.txt", Logging.Info) do logger
+ global_logger(logger)
+ @info "hello world"
+end
InfrastructureSystems.prepare_for_removal!
— Methodprepare_for_removal!(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute}
+)
+
This function must be called when a component or attribute is removed from a system.
InfrastructureSystems.prepare_for_serialization_to_file!
— Methodprepare_for_serialization_to_file!(
+ data::InfrastructureSystems.SystemData,
+ filename::AbstractString;
+ force
+)
+
Parent object should call this prior to serialization so that SystemData can store the appropriate path information for the time series data.
InfrastructureSystems.read_time_series
— Methodread_time_series(
+ ::Type{T<:InfrastructureSystems.TimeSeriesData},
+ data_file::AbstractString;
+ ...
+) -> InfrastructureSystems.RawTimeSeries
+read_time_series(
+ ::Type{T<:InfrastructureSystems.TimeSeriesData},
+ data_file::AbstractString,
+ component_name;
+ kwargs...
+) -> Any
+
Return a TimeArray from a CSV file.
Pass component_name when the file does not have the component name in a column header.
InfrastructureSystems.read_time_series
— Methodread_time_series(
+ ::Type{T<:InfrastructureSystems.TimeSeriesFormatPeriodAsHeader},
+ ::Type{<:InfrastructureSystems.StaticTimeSeries},
+ file::CSV.File,
+ component_name::AbstractString;
+ kwargs...
+) -> InfrastructureSystems.RawTimeSeries
+
This version of the function supports the format where there is no column header for a component, so the component_name must be passed in.
InfrastructureSystems.read_time_series
— Methodread_time_series(
+ ::Type{T<:InfrastructureSystems.TimeSeriesFormatComponentsAsColumnsNoTime},
+ ::Type{<:InfrastructureSystems.StaticTimeSeries},
+ file::CSV.File;
+ ...
+) -> InfrastructureSystems.RawTimeSeries
+read_time_series(
+ ::Type{T<:InfrastructureSystems.TimeSeriesFormatComponentsAsColumnsNoTime},
+ ::Type{<:InfrastructureSystems.StaticTimeSeries},
+ file::CSV.File,
+ component_name;
+ kwargs...
+) -> InfrastructureSystems.RawTimeSeries
+
This version of the function only has component_name to match the interface. It is unused.
Set start_datetime as a keyword argument for the starting timestamp, otherwise the current day is used.
InfrastructureSystems.read_time_series
— Methodread_time_series(
+ ::Type{T<:Union{InfrastructureSystems.TimeSeriesFormatDateTimeAsColumn, InfrastructureSystems.TimeSeriesFormatPeriodAsColumn}},
+ ::Type{<:InfrastructureSystems.StaticTimeSeries},
+ file::CSV.File;
+ ...
+) -> InfrastructureSystems.RawTimeSeries
+read_time_series(
+ ::Type{T<:Union{InfrastructureSystems.TimeSeriesFormatDateTimeAsColumn, InfrastructureSystems.TimeSeriesFormatPeriodAsColumn}},
+ ::Type{<:InfrastructureSystems.StaticTimeSeries},
+ file::CSV.File,
+ component_name;
+ kwargs...
+) -> InfrastructureSystems.RawTimeSeries
+
Return a TimeSeries.TimeArray representing the CSV file.
This version of the function only has component_name to match the interface. It is unused.
InfrastructureSystems.read_time_series
— Methodread_time_series(
+ ::Type{T<:InfrastructureSystems.TimeSeriesFormatDateTimeAsColumn},
+ ::Type{InfrastructureSystems.Deterministic},
+ file::CSV.File;
+ ...
+) -> InfrastructureSystems.RawTimeSeries
+read_time_series(
+ ::Type{T<:InfrastructureSystems.TimeSeriesFormatDateTimeAsColumn},
+ ::Type{InfrastructureSystems.Deterministic},
+ file::CSV.File,
+ component_name;
+ kwargs...
+) -> InfrastructureSystems.RawTimeSeries
+
Return a RawTimeSeries from a CSV file.
Pass component_name when the file does not have the component name in a column header.
InfrastructureSystems.read_time_series_file_metadata
— Methodread_time_series_file_metadata(
+ file_path::AbstractString
+) -> Any
+
Reads time_series metadata and fixes relative paths to the data files.
InfrastructureSystems.redirect_stdout_to_log
— Methodredirect_stdout_to_log(func::Function) -> Any
+
Redirect all data written to stdout by a function to log events.
InfrastructureSystems.register_recorder!
— Methodregister_recorder!(name::Symbol; io, mode, directory)
+
Register a recorder to log events. Afterwards, calls to @record name <event-type>() will record the event as JSON in <name>.log.
Callers should guarantee that unregister_recorder!
is called to close the file handle.
Arguments
name::Symbol
: name of recorderio::Union{Nothing, IO}
: If nothing, record events in a file using name.mode = "w"
: Only used when io is nothing.directory = "."
: Only used when io is nothing.
InfrastructureSystems.remove_association!
— Methodremove_association!(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations,
+ component::InfrastructureSystems.InfrastructureSystemsComponent,
+ attribute::InfrastructureSystems.SupplementalAttribute
+)
+
Remove the association between the attribute and component.
InfrastructureSystems.remove_associations!
— Methodremove_associations!(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations,
+ type::Type{<:InfrastructureSystems.SupplementalAttribute}
+)
+
Remove all associations of the given type.
InfrastructureSystems.remove_component!
— Methodremove_component!(
+ components::InfrastructureSystems.Components,
+ component::InfrastructureSystems.InfrastructureSystemsComponent;
+ remove_time_series
+) -> InfrastructureSystems.InfrastructureSystemsComponent
+
Remove a component by its value.
Throws ArgumentError if the component is not stored.
InfrastructureSystems.remove_component!
— Methodremove_component!(
+ ::Type{T<:InfrastructureSystems.InfrastructureSystemsComponent},
+ components::InfrastructureSystems.Components,
+ name::AbstractString;
+ remove_time_series
+) -> InfrastructureSystems.InfrastructureSystemsComponent
+
Remove a component by its name.
Throws ArgumentError if the component is not stored.
InfrastructureSystems.remove_component_from_subsystem!
— Methodremove_component_from_subsystem!(
+ data::InfrastructureSystems.SystemData,
+ subsystem_name::AbstractString,
+ component::InfrastructureSystems.InfrastructureSystemsComponent
+)
+
Remove a component from a subsystem.
Throws ArgumentError if the subsystem name or component is not stored.
InfrastructureSystems.remove_components!
— Methodremove_components!(
+ _::Type{T<:InfrastructureSystems.InfrastructureSystemsComponent},
+ components::InfrastructureSystems.Components
+) -> Base.ValueIterator{T} where T<:(Dict{String, <:InfrastructureSystems.InfrastructureSystemsComponent})
+
Remove all components of type T.
Throws ArgumentError if the type is not stored.
InfrastructureSystems.remove_metadata!
— Methodremove_metadata!(
+ store::InfrastructureSystems.TimeSeriesMetadataStore,
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ metadata::InfrastructureSystems.TimeSeriesMetadata
+)
+
Remove the matching metadata from the store.
InfrastructureSystems.remove_subsystem!
— Methodremove_subsystem!(
+ data::InfrastructureSystems.SystemData,
+ subsystem_name::AbstractString
+)
+
Remove a subsystem from the system.
Throws ArgumentError if the subsystem name is not stored.
InfrastructureSystems.remove_supplemental_attributes!
— Methodremove_supplemental_attributes!(
+ mgr::InfrastructureSystems.SupplementalAttributeManager,
+ _::Type{T<:InfrastructureSystems.SupplementalAttribute}
+) -> Base.ValueIterator{T} where T<:(Dict{Base.UUID, <:InfrastructureSystems.SupplementalAttribute})
+
Remove all supplemental_attributes of type T.
Ignores whether attributes are attached to components.
Throws ArgumentError if the type is not stored.
InfrastructureSystems.remove_time_series!
— Methodremove_time_series!(
+ mgr::InfrastructureSystems.TimeSeriesManager,
+ time_series_type::Type{<:InfrastructureSystems.TimeSeriesData},
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
+ name::String;
+ features...
+)
+
Remove the time series data for a component.
InfrastructureSystems.remove_time_series!
— Methodremove_time_series!(
+ data::InfrastructureSystems.SystemData,
+ ::Type{T<:InfrastructureSystems.TimeSeriesData},
+ component::InfrastructureSystems.InfrastructureSystemsComponent,
+ name::String;
+ features...
+)
+
Remove the time series data for a component.
InfrastructureSystems.remove_time_series!
— Methodremove_time_series!(
+ data::InfrastructureSystems.SystemData,
+ _::Type{T<:InfrastructureSystems.TimeSeriesData}
+)
+
Removes all time series of a particular type from a System.
Arguments
data::SystemData
: systemtype::Type{<:TimeSeriesData}
: Type of time series objects to remove.
InfrastructureSystems.replace_component_uuid!
— Methodreplace_component_uuid!(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations,
+ old_uuid::Base.UUID,
+ new_uuid::Base.UUID
+)
+
Replace the component UUID in the table.
InfrastructureSystems.replace_iterator
— Methodreplace_iterator(
+ container::InfrastructureSystems.LazyDictFromIterator,
+ iter
+)
+
Replace the iterator, maintaining the cached dict.
InfrastructureSystems.report_log_summary
— Methodreport_log_summary(
+ tracker::InfrastructureSystems.LogEventTracker
+) -> String
+
Returns a summary of log event counts by level.
InfrastructureSystems.report_log_summary
— Methodreport_log_summary(
+ logger::InfrastructureSystems.MultiLogger
+) -> String
+
Returns a summary of log event counts by level.
InfrastructureSystems.reset!
— Methodreset!(cache::InfrastructureSystems.TimeSeriesCache)
+
Reset parameters in order to start reading data from the beginning with get_next_time_series_array!
InfrastructureSystems.reset_iterator
— Methodreset_iterator(
+ container::InfrastructureSystems.LazyDictFromIterator
+)
+
Reset the iterator for cases where underlying arrays have changed.
InfrastructureSystems.serialize
— Methodserialize(
+ val::InfrastructureSystems.InfrastructureSystemsType
+) -> Dict{String, Any}
+
Serialize the Julia value into standard types that can be converted to non-Julia formats, such as JSON. In cases where val is an instance of a struct, return a Dict. In cases where val is a scalar value, return that value.
InfrastructureSystems.set_component!
— Methodset_component!(
+ metadata::InfrastructureSystems.TimeSeriesFileMetadata,
+ data::InfrastructureSystems.SystemData,
+ mod::Module
+) -> Union{Nothing, InfrastructureSystems.InfrastructureSystemsComponent}
+
Set the component value in metadata by looking up the category in module. This requires that category be a string version of a component's abstract type. Modules can override for custom behavior.
InfrastructureSystems.set_count!
— Methodset_count!(
+ value::InfrastructureSystems.DeterministicMetadata,
+ val
+) -> Any
+
Set DeterministicMetadata
count
.
InfrastructureSystems.set_count!
— Methodset_count!(
+ value::InfrastructureSystems.DeterministicSingleTimeSeries,
+ val
+) -> Any
+
Set DeterministicSingleTimeSeries
count
.
InfrastructureSystems.set_count!
— Methodset_count!(
+ value::InfrastructureSystems.ProbabilisticMetadata,
+ val
+) -> Any
+
Set ProbabilisticMetadata
count
.
InfrastructureSystems.set_count!
— Methodset_count!(
+ value::InfrastructureSystems.ScenariosMetadata,
+ val
+) -> Any
+
Set ScenariosMetadata
count
.
InfrastructureSystems.set_data!
— Methodset_data!(
+ value::InfrastructureSystems.Deterministic,
+ val
+) -> Any
+
Set Deterministic
data
.
InfrastructureSystems.set_data!
— Methodset_data!(
+ value::InfrastructureSystems.Probabilistic,
+ val
+) -> Any
+
Set Probabilistic
data
.
InfrastructureSystems.set_data!
— Methodset_data!(
+ value::InfrastructureSystems.Scenarios,
+ val
+) -> Any
+
Set Scenarios
data
.
InfrastructureSystems.set_data!
— Methodset_data!(
+ value::InfrastructureSystems.SingleTimeSeries,
+ val
+) -> Any
+
Set SingleTimeSeries
data
.
InfrastructureSystems.set_features!
— Methodset_features!(
+ value::InfrastructureSystems.DeterministicMetadata,
+ val
+) -> Any
+
Set DeterministicMetadata
features
.
InfrastructureSystems.set_features!
— Methodset_features!(
+ value::InfrastructureSystems.ProbabilisticMetadata,
+ val
+) -> Any
+
Set ProbabilisticMetadata
features
.
InfrastructureSystems.set_features!
— Methodset_features!(
+ value::InfrastructureSystems.ScenariosMetadata,
+ val
+) -> Any
+
Set ScenariosMetadata
features
.
InfrastructureSystems.set_features!
— Methodset_features!(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata,
+ val
+) -> Any
+
Set SingleTimeSeriesMetadata
features
.
InfrastructureSystems.set_group_level!
— Methodset_group_level!(
+ logger::InfrastructureSystems.MultiLogger,
+ group::Symbol,
+ level::Base.CoreLogging.LogLevel
+)
+
Set the minimum log level for a group.
The group
field of a log message defaults to its file's base name (no extension) as a symbol. It can be customized by setting _group = :a_group_name
.
The minimum log level stored for a console or file logger supercede this setting.
InfrastructureSystems.set_group_levels!
— Methodset_group_levels!(
+ logger::InfrastructureSystems.MultiLogger,
+ group_levels::Dict{Symbol, Base.CoreLogging.LogLevel}
+)
+
Set the minimum log levels for multiple groups. Refer to set_group_level!
for more information.
InfrastructureSystems.set_horizon!
— Methodset_horizon!(
+ value::InfrastructureSystems.DeterministicMetadata,
+ val
+) -> Any
+
Set DeterministicMetadata
horizon
.
InfrastructureSystems.set_horizon!
— Methodset_horizon!(
+ value::InfrastructureSystems.DeterministicSingleTimeSeries,
+ val
+) -> Any
+
Set DeterministicSingleTimeSeries
horizon
.
InfrastructureSystems.set_horizon!
— Methodset_horizon!(
+ value::InfrastructureSystems.ProbabilisticMetadata,
+ val
+) -> Any
+
Set ProbabilisticMetadata
horizon
.
InfrastructureSystems.set_horizon!
— Methodset_horizon!(
+ value::InfrastructureSystems.ScenariosMetadata,
+ val
+) -> Any
+
Set ScenariosMetadata
horizon
.
InfrastructureSystems.set_initial_timestamp!
— Methodset_initial_timestamp!(
+ value::InfrastructureSystems.DeterministicMetadata,
+ val
+) -> Any
+
Set DeterministicMetadata
initial_timestamp
.
InfrastructureSystems.set_initial_timestamp!
— Methodset_initial_timestamp!(
+ value::InfrastructureSystems.DeterministicSingleTimeSeries,
+ val
+) -> Any
+
Set DeterministicSingleTimeSeries
initial_timestamp
.
InfrastructureSystems.set_initial_timestamp!
— Methodset_initial_timestamp!(
+ value::InfrastructureSystems.ProbabilisticMetadata,
+ val
+) -> Any
+
Set ProbabilisticMetadata
initial_timestamp
.
InfrastructureSystems.set_initial_timestamp!
— Methodset_initial_timestamp!(
+ value::InfrastructureSystems.ScenariosMetadata,
+ val
+) -> Any
+
Set ScenariosMetadata
initial_timestamp
.
InfrastructureSystems.set_initial_timestamp!
— Methodset_initial_timestamp!(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata,
+ val
+) -> Any
+
Set SingleTimeSeriesMetadata
initial_timestamp
.
InfrastructureSystems.set_internal!
— Methodset_internal!(
+ value::InfrastructureSystems.Deterministic,
+ val
+) -> Any
+
Set Deterministic
internal
.
InfrastructureSystems.set_internal!
— Methodset_internal!(
+ value::InfrastructureSystems.DeterministicMetadata,
+ val
+) -> Any
+
Set DeterministicMetadata
internal
.
InfrastructureSystems.set_internal!
— Methodset_internal!(
+ value::InfrastructureSystems.Probabilistic,
+ val
+) -> Any
+
Set Probabilistic
internal
.
InfrastructureSystems.set_internal!
— Methodset_internal!(
+ value::InfrastructureSystems.ProbabilisticMetadata,
+ val
+) -> Any
+
Set ProbabilisticMetadata
internal
.
InfrastructureSystems.set_internal!
— Methodset_internal!(
+ value::InfrastructureSystems.Scenarios,
+ val
+) -> Any
+
Set Scenarios
internal
.
InfrastructureSystems.set_internal!
— Methodset_internal!(
+ value::InfrastructureSystems.ScenariosMetadata,
+ val
+) -> Any
+
Set ScenariosMetadata
internal
.
InfrastructureSystems.set_internal!
— Methodset_internal!(
+ value::InfrastructureSystems.SingleTimeSeries,
+ val
+) -> Any
+
Set SingleTimeSeries
internal
.
InfrastructureSystems.set_internal!
— Methodset_internal!(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata,
+ val
+) -> Any
+
Set SingleTimeSeriesMetadata
internal
.
InfrastructureSystems.set_interval!
— Methodset_interval!(
+ value::InfrastructureSystems.DeterministicMetadata,
+ val
+) -> Any
+
Set DeterministicMetadata
interval
.
InfrastructureSystems.set_interval!
— Methodset_interval!(
+ value::InfrastructureSystems.DeterministicSingleTimeSeries,
+ val
+) -> Any
+
Set DeterministicSingleTimeSeries
interval
.
InfrastructureSystems.set_interval!
— Methodset_interval!(
+ value::InfrastructureSystems.ProbabilisticMetadata,
+ val
+) -> Any
+
Set ProbabilisticMetadata
interval
.
InfrastructureSystems.set_interval!
— Methodset_interval!(
+ value::InfrastructureSystems.ScenariosMetadata,
+ val
+) -> Any
+
Set ScenariosMetadata
interval
.
InfrastructureSystems.set_length!
— Methodset_length!(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata,
+ val
+) -> Any
+
Set SingleTimeSeriesMetadata
length
.
InfrastructureSystems.set_name!
— Methodset_name!(
+ value::InfrastructureSystems.Deterministic,
+ val
+) -> Any
+
Set Deterministic
name
.
InfrastructureSystems.set_name!
— Methodset_name!(
+ value::InfrastructureSystems.DeterministicMetadata,
+ val
+) -> Any
+
Set DeterministicMetadata
name
.
InfrastructureSystems.set_name!
— Methodset_name!(
+ value::InfrastructureSystems.Probabilistic,
+ val
+) -> Any
+
Set Probabilistic
name
.
InfrastructureSystems.set_name!
— Methodset_name!(
+ value::InfrastructureSystems.ProbabilisticMetadata,
+ val
+) -> Any
+
Set ProbabilisticMetadata
name
.
InfrastructureSystems.set_name!
— Methodset_name!(
+ value::InfrastructureSystems.Scenarios,
+ val
+) -> Any
+
Set Scenarios
name
.
InfrastructureSystems.set_name!
— Methodset_name!(
+ value::InfrastructureSystems.ScenariosMetadata,
+ val
+) -> Any
+
Set ScenariosMetadata
name
.
InfrastructureSystems.set_name!
— Methodset_name!(
+ value::InfrastructureSystems.SingleTimeSeries,
+ val
+) -> Any
+
Set SingleTimeSeries
name
.
InfrastructureSystems.set_name!
— Methodset_name!(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata,
+ val
+) -> Any
+
Set SingleTimeSeriesMetadata
name
.
InfrastructureSystems.set_percentiles!
— Methodset_percentiles!(
+ value::InfrastructureSystems.Probabilistic,
+ val
+) -> Any
+
Set Probabilistic
percentiles
.
InfrastructureSystems.set_percentiles!
— Methodset_percentiles!(
+ value::InfrastructureSystems.ProbabilisticMetadata,
+ val
+) -> Any
+
Set ProbabilisticMetadata
percentiles
.
InfrastructureSystems.set_resolution!
— Methodset_resolution!(
+ value::InfrastructureSystems.Deterministic,
+ val
+) -> Any
+
Set Deterministic
resolution
.
InfrastructureSystems.set_resolution!
— Methodset_resolution!(
+ value::InfrastructureSystems.DeterministicMetadata,
+ val
+) -> Any
+
Set DeterministicMetadata
resolution
.
InfrastructureSystems.set_resolution!
— Methodset_resolution!(
+ value::InfrastructureSystems.Probabilistic,
+ val
+) -> Any
+
Set Probabilistic
resolution
.
InfrastructureSystems.set_resolution!
— Methodset_resolution!(
+ value::InfrastructureSystems.ProbabilisticMetadata,
+ val
+) -> Any
+
Set ProbabilisticMetadata
resolution
.
InfrastructureSystems.set_resolution!
— Methodset_resolution!(
+ value::InfrastructureSystems.Scenarios,
+ val
+) -> Any
+
Set Scenarios
resolution
.
InfrastructureSystems.set_resolution!
— Methodset_resolution!(
+ value::InfrastructureSystems.ScenariosMetadata,
+ val
+) -> Any
+
Set ScenariosMetadata
resolution
.
InfrastructureSystems.set_resolution!
— Methodset_resolution!(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata,
+ val
+) -> Any
+
Set SingleTimeSeriesMetadata
resolution
.
InfrastructureSystems.set_scaling_factor_multiplier!
— Methodset_scaling_factor_multiplier!(
+ value::InfrastructureSystems.Deterministic,
+ val
+) -> Any
+
Set Deterministic
scaling_factor_multiplier
.
InfrastructureSystems.set_scaling_factor_multiplier!
— Methodset_scaling_factor_multiplier!(
+ value::InfrastructureSystems.DeterministicMetadata,
+ val
+) -> Any
+
Set DeterministicMetadata
scaling_factor_multiplier
.
InfrastructureSystems.set_scaling_factor_multiplier!
— Methodset_scaling_factor_multiplier!(
+ value::InfrastructureSystems.Probabilistic,
+ val
+) -> Any
+
Set Probabilistic
scaling_factor_multiplier
.
InfrastructureSystems.set_scaling_factor_multiplier!
— Methodset_scaling_factor_multiplier!(
+ value::InfrastructureSystems.ProbabilisticMetadata,
+ val
+) -> Any
+
Set ProbabilisticMetadata
scaling_factor_multiplier
.
InfrastructureSystems.set_scaling_factor_multiplier!
— Methodset_scaling_factor_multiplier!(
+ value::InfrastructureSystems.Scenarios,
+ val
+) -> Any
+
Set Scenarios
scaling_factor_multiplier
.
InfrastructureSystems.set_scaling_factor_multiplier!
— Methodset_scaling_factor_multiplier!(
+ value::InfrastructureSystems.ScenariosMetadata,
+ val
+) -> Any
+
Set ScenariosMetadata
scaling_factor_multiplier
.
InfrastructureSystems.set_scaling_factor_multiplier!
— Methodset_scaling_factor_multiplier!(
+ value::InfrastructureSystems.SingleTimeSeries,
+ val
+) -> Any
+
Set SingleTimeSeries
scaling_factor_multiplier
.
InfrastructureSystems.set_scaling_factor_multiplier!
— Methodset_scaling_factor_multiplier!(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata,
+ val
+) -> Any
+
Set SingleTimeSeriesMetadata
scaling_factor_multiplier
.
InfrastructureSystems.set_scenario_count!
— Methodset_scenario_count!(
+ value::InfrastructureSystems.Scenarios,
+ val
+) -> Any
+
Set Scenarios
scenario_count
.
InfrastructureSystems.set_scenario_count!
— Methodset_scenario_count!(
+ value::InfrastructureSystems.ScenariosMetadata,
+ val
+) -> Any
+
Set ScenariosMetadata
scenario_count
.
InfrastructureSystems.set_single_time_series!
— Methodset_single_time_series!(
+ value::InfrastructureSystems.DeterministicSingleTimeSeries,
+ val
+) -> Any
+
Set DeterministicSingleTimeSeries
single_time_series
.
InfrastructureSystems.set_time_series_type!
— Methodset_time_series_type!(
+ value::InfrastructureSystems.DeterministicMetadata,
+ val
+) -> Any
+
Set DeterministicMetadata
time_series_type
.
InfrastructureSystems.set_time_series_uuid!
— Methodset_time_series_uuid!(
+ value::InfrastructureSystems.DeterministicMetadata,
+ val
+) -> Any
+
Set DeterministicMetadata
time_series_uuid
.
InfrastructureSystems.set_time_series_uuid!
— Methodset_time_series_uuid!(
+ value::InfrastructureSystems.ProbabilisticMetadata,
+ val
+) -> Any
+
Set ProbabilisticMetadata
time_series_uuid
.
InfrastructureSystems.set_time_series_uuid!
— Methodset_time_series_uuid!(
+ value::InfrastructureSystems.ScenariosMetadata,
+ val
+) -> Any
+
Set ScenariosMetadata
time_series_uuid
.
InfrastructureSystems.set_time_series_uuid!
— Methodset_time_series_uuid!(
+ value::InfrastructureSystems.SingleTimeSeriesMetadata,
+ val
+) -> Any
+
Set SingleTimeSeriesMetadata
time_series_uuid
.
InfrastructureSystems.show_recorder_events
— Methodshow_recorder_events(
+ ::Type{T<:InfrastructureSystems.AbstractRecorderEvent},
+ filename::AbstractString;
+ ...
+)
+show_recorder_events(
+ ::Type{T<:InfrastructureSystems.AbstractRecorderEvent},
+ filename::AbstractString,
+ filter_func::Union{Nothing, Function};
+ kwargs...
+)
+
Show the events of type T in filename in a table. Refer to PrettyTables.jl documentation for accepted kwargs.
Arguments
T
: event typefilename::AbstractString
: filename containing recorder eventsfilter_func::Union{Nothing, Function} = nothing
: Optional function that accepts an event of type T and returns a Bool. Apply this function to each event and only return events where the result is true.exclude_columns = Set{String}()
: Column names to exclude from the tablekwargs
: Passed to PrettyTables
Examples
show_recorder_events(TestEvent, test_recorder.log)
+show_recorder_events(TestEvent, test_recorder.log, x -> x.val2 > 2)
InfrastructureSystems.show_supplemental_attributes
— Methodshow_supplemental_attributes(
+ component::InfrastructureSystems.InfrastructureSystemsComponent
+)
+
Show a table with supplemental attributes attached to the component.
InfrastructureSystems.show_time_series
— Methodshow_time_series(
+ owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute}
+)
+
Show a table with time series data attached to the component.
InfrastructureSystems.sql
— Functionsql(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations,
+ query::String
+) -> DataFrames.DataFrame
+sql(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations,
+ query::String,
+ params
+) -> DataFrames.DataFrame
+
Run a query and return the results in a DataFrame.
InfrastructureSystems.sql
— Functionsql(
+ store::InfrastructureSystems.TimeSeriesMetadataStore,
+ query::String
+) -> DataFrames.DataFrame
+sql(
+ store::InfrastructureSystems.TimeSeriesMetadataStore,
+ query::String,
+ params
+) -> DataFrames.DataFrame
+
Run a query and return the results in a DataFrame.
InfrastructureSystems.strip_module_name
— Methodstrip_module_name(name::String) -> String
+
Strips the module name off of a type. This can be useful to print types as strings and receive consistent results regardless of whether the user used import
or using
to load a package.
Unlike Base.nameof, this function preserves any parametric types.
Examples
julia> strip_module_name(PowerSystems.RegulationDevice{ThermalStandard})
+"RegulationDevice{ThermalStandard}"
+julia> string(nameof(PowerSystems.RegulationDevice{ThermalStandard}))
+"RegulationDevice"
InfrastructureSystems.supertypes
— Methodsupertypes(::Type{T}) -> Vector{Any}
+supertypes(::Type{T}, types) -> Any
+
Returns an array of all super types of T.
InfrastructureSystems.tail
— Methodtail(
+ time_series::InfrastructureSystems.SingleTimeSeries
+) -> Any
+
Return a time_series with only the ending num values.
InfrastructureSystems.test_generated_structs
— Methodtest_generated_structs(
+ descriptor_file,
+ existing_dir
+) -> Bool
+
Return true if the structs defined in existingdir match structs freshly-generated from descriptorfile.
InfrastructureSystems.to
— Methodto(
+ time_series::InfrastructureSystems.SingleTimeSeries,
+ timestamp
+) -> InfrastructureSystems.SingleTimeSeries
+
Return a time_series truncated after timestamp.
InfrastructureSystems.to_dict
— Methodto_dict(
+ data::InfrastructureSystems.SystemData
+) -> Dict{String, Any}
+
Serialize all system and component data to a dictionary.
InfrastructureSystems.to_json
— Methodto_json(
+ obj::InfrastructureSystems.InfrastructureSystemsType;
+ pretty,
+ indent
+) -> Any
+
Serializes a InfrastructureSystemsType to a JSON string.
InfrastructureSystems.to_json
— Methodto_json(
+ obj::InfrastructureSystems.InfrastructureSystemsType;
+ pretty,
+ indent
+) -> Any
+
Serializes a InfrastructureSystemsType to a JSON file.
InfrastructureSystems.to_records
— Methodto_records(
+ associations::InfrastructureSystems.SupplementalAttributeAssociations
+) -> Vector
+
Return all rows in the table as dictionaries.
InfrastructureSystems.transform_single_time_series!
— Methodtransform_single_time_series!(
+ data::InfrastructureSystems.SystemData,
+ _::Type{<:InfrastructureSystems.DeterministicSingleTimeSeries},
+ horizon::Dates.Period,
+ interval::Dates.Period
+)
+
Transform all instances of SingleTimeSeries to DeterministicSingleTimeSeries. If all SingleTimeSeries instances cannot be transformed then none will be.
Any existing DeterministicSingleTimeSeries forecasts will be deleted even if the inputs are invalid.
InfrastructureSystems.unregister_recorder!
— Methodunregister_recorder!(name::Symbol; close_io) -> Any
+
Unregister the recorder with this name and stop recording events.
InfrastructureSystems.validate_exported_names
— Methodvalidate_exported_names(mod::Module) -> Bool
+
Return true if all publicly exported names in mod are defined.
InfrastructureSystems.validate_struct
— Methodvalidate_struct(
+ ist::InfrastructureSystems.InfrastructureSystemsType
+) -> Bool
+
Validates a struct using only information within the struct.
InfrastructureSystems.when
— Methodwhen(
+ time_series::InfrastructureSystems.SingleTimeSeries,
+ period::Function,
+ t::Integer
+) -> Any
+
Refer to TimeSeries.when(). Underlying data is copied.
InfrastructureSystems.@assert_op
— MacroThrow an AssertionError
if conditions like op(exp1, exp2)
are false
, where op
is a conditional infix operator.
Examples
julia> a = 3; b = 4;
+julia> @assert_op a == b
+ERROR: AssertionError: 3 == 4
+
+julia> @assert_op a + 3 > b + 4
+ERROR: AssertionError: 6 > 8
InfrastructureSystems.@record
— MacroRecord an event if the recorder with name is enabled.
Arguments
name::Symbol
: name of recorderevent::AbstractRecorderEvent
: event to record
Examples
@record simulation TestEvent("start", 1, 2.0)
InfrastructureSystems.@scoped_enum
— MacroMacro to wrap Enum in a module to keep the top level scope clean.
Examples
julia> @scoped_enum Fruit APPLE = 1 ORANGE = 2
+
+julia> value = Fruit.APPLE
+Fruit.APPLE = 1
+
+julia> value = Fruit(1)
+Fruit.APPLE = 1
+
+julia> @scoped_enum(Fruit,
+ APPLE = 1, # comment
+ ORANGE = 2, # comment
+)