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 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{<: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"#419#420"{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},
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
— 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
— 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,
owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute},
metadata::InfrastructureSystems.TimeSeriesMetadata
) -> Bool
Return True if there is time series metadata matching the inputs.
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(
store::InfrastructureSystems.TimeSeriesMetadataStore,
time_series_uuid::Base.UUID
) -> Any
Return True if there is time series matching the UUID.
InfrastructureSystems.has_time_series
— Methodhas_time_series(
owner::Union{InfrastructureSystems.InfrastructureSystemsComponent, InfrastructureSystems.SupplementalAttribute}
) -> Any
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}
) -> Any
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"#110#111"}}
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"#110#111"} 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"#110#111"}}
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"#134#135"{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"#105#106"{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"#105#106"{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"#105#106"{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
)