DataProviderResultDataSetCollection#

class ansys.stk.core.stkobjects.DataProviderResultDataSetCollection#

Represents a collection of datasets in the interval returned by the data providers.

Overview#

item

Given an index, returns an element in the collection.

get_data_set_by_name

Return the element, given the name.

get_row

Return the specified row.

to_array

Return the entire dataset collection in row format.

to_numpy_array

Return a row formatted dataset collection as a numpy array. This function requires numpy.

to_pandas_dataframe

Return a row formatted dataset collection as a pandas DataFrame. This function requires pandas.

count

Return a number of elements in collection.

_new_enum

Return an enumerator for the collection.

row_count

Return the number of rows in the dataset collection.

element_names

Return the element names.

Examples#

Create a heat map of coverage definition results graphing duration by asset using a Pandas DataFrame

# CoverageDefinition coverage: Coverage object
from matplotlib import pyplot as plt
import numpy as np

# compute data provider results for All Regions by Pass coverage
coverage_data_provider = coverage.data_providers.item("All Regions By Pass")
coverage_data = coverage_data_provider.execute()

# convert dataset collection in a row format as a Pandas DataFrame with default numeric row index
coverage_all_regions_elements = coverage_data_provider.elements
all_regions_coverage_df = coverage_data.data_sets.to_pandas_dataframe(
    data_provider_elements=coverage_all_regions_elements
)

# reshape the DataFrame based on column values
pivot = all_regions_coverage_df.pivot_table(index="region name", columns="asset name", values="duration")

# plot heat map that shows duration by asset name by region
plt.xlabel("Duration by Asset", fontsize=20)
plt.xticks(ticks=range(len(pivot.columns.values)), labels=pivot.columns.values)

plt.ylabel("Region Name", fontsize=20)
plt.yticks(ticks=np.arange(len(pivot.index), step=10), labels=pivot.index[::10])

im = plt.imshow(pivot, cmap="YlGnBu", aspect="auto", interpolation="none")
plt.colorbar(orientation="vertical")

Compute descriptive statistics for access measurements using a Pandas DataFrame

# CoverageDefinition coverage: Coverage object
import pandas as pd

# compute data provider results for All Regions by Pass coverage
coverage_data_provider = coverage.data_providers.item("All Regions By Pass")
coverage_data = coverage_data_provider.execute()

# convert dataset collection in a row format as a Pandas DataFrame with default numeric row index
all_regions_coverage_df = coverage_data.data_sets.to_pandas_dataframe()

# compute descriptive statistics of Duration, Percent Coverage, Area Coverage
all_regions_coverage_df[["duration", "percent coverage", "area coverage"]].apply(pd.to_numeric).describe()

Convert access data provider results to a Pandas DataFrame

# Access facility_sensor_satellite_access: Access calculation
# compute data provider results for basic Access
field_names = ["Access Number", "Start Time", "Stop Time", "Duration"]

access_data = facility_sensor_satellite_access.data_providers["Access Data"].execute_elements(
    self.get_scenario().start_time, self.get_scenario().stop_time, field_names
)

# convert dataset collection in a row format as a Pandas DataFrame
index_column = "Access Number"
access_data_df = access_data.data_sets.to_pandas_dataframe(index_element_name=index_column)

Convert coverage definition data provider results to a Pandas DataFrame

# CoverageDefinition coverage: Coverage object
# compute data provider results for All Regions by Pass coverage
coverage_data_provider = coverage.data_providers.item("All Regions By Pass")
coverage_data = coverage_data_provider.execute()

# convert dataset collection in a row format as a Pandas DataFrame with default numeric row index
coverage_df = coverage_data.data_sets.to_pandas_dataframe()

Load a Numpy array with flight profile data

# Aircraft aircraft: Aircraft object
from scipy.spatial import ConvexHull
import matplotlib.pyplot as plt

# compute data provider results for an aircraft's Flight Profile By Time
field_names = ["Mach #", "Altitude"]
time_step_sec = 1.0

flight_profile_data_provider = aircraft.data_providers.item("Flight Profile By Time")
flight_profile_data = flight_profile_data_provider.execute_elements(
    self.get_scenario().start_time, self.get_scenario().stop_time, time_step_sec, field_names
)

# convert dataset collection in a row format as a Numpy array
flight_profile_data_arr = flight_profile_data.data_sets.to_numpy_array()

# plot estimated fligth envelope as a convex hull
hull = ConvexHull(flight_profile_data_arr)

plt.figure(figsize=(15, 10))
for simplex in hull.simplices:
    plt.plot(flight_profile_data_arr[simplex, 1], flight_profile_data_arr[simplex, 0], color="darkblue")

plt.title("Estimated Flight Envelope", fontsize=15)
plt.xlabel("Mach Number", fontsize=15)
plt.ylabel("Altitude", fontsize=15)

plt.tick_params(axis="x", labelsize=15)
plt.tick_params(axis="y", labelsize=15)
plt.grid(visible=True)

Import detail#

from ansys.stk.core.stkobjects import DataProviderResultDataSetCollection

Property detail#

property DataProviderResultDataSetCollection.count: int#

Return a number of elements in collection.

property DataProviderResultDataSetCollection._new_enum: EnumeratorProxy#

Return an enumerator for the collection.

property DataProviderResultDataSetCollection.row_count: int#

Return the number of rows in the dataset collection.

property DataProviderResultDataSetCollection.element_names: list#

Return the element names.

Method detail#

DataProviderResultDataSetCollection.item(self, index: int) DataProviderResultDataSet#

Given an index, returns an element in the collection.

Parameters:

index : int

Returns:

DataProviderResultDataSet

DataProviderResultDataSetCollection.get_data_set_by_name(self, data_set_name: str) DataProviderResultDataSet#

Return the element, given the name.

Parameters:

data_set_name : str

Returns:

DataProviderResultDataSet

DataProviderResultDataSetCollection.get_row(self, index: int) list#

Return the specified row.

Parameters:

index : int

Returns:

list

DataProviderResultDataSetCollection.to_array(self) list#

Return the entire dataset collection in row format.

Returns:

list

DataProviderResultDataSetCollection.to_numpy_array(self) ndarray#

Return a row formatted dataset collection as a numpy array. This function requires numpy.

Returns:

ndarray

DataProviderResultDataSetCollection.to_pandas_dataframe(self, index_element_name: str, data_provider_elements: DataProviderElements) DataFrame:#

Return a row formatted dataset collection as a pandas DataFrame. This function requires pandas.

This function optionally maps data provider element types to pandas DataFrame column dtypes and optionally sets the column to be used as the DataFrame index.

Parameters:

index_element_name : str

data_provider_elements : DataProviderElements

Returns:

DataFrame