Software Attributes#
The sections here tabulate the software attribute database. Each attribute (column) is described in the Attribute Schema. Some columns contain lists of strings which means that they cannot be fully sorted. Instead, they can be filtered by searching for a string in the search box
Show code cell content
from pathlib import Path
import yaml
from itables import init_notebook_mode
import pandas as pd
init_notebook_mode(all_interactive=True)
software_attr_dir = Path("..", "..", "software_attributes")
model_list_inputs = yaml.safe_load( open(software_attr_dir / "database_list.yaml", "r") )
models = model_list_inputs["active"]
model_attributes_map = {
model: yaml.safe_load( open(Path("..", "..", "software_attributes", "database", f"{model}.yaml"), "r") )
for model in models
}
df = pd.DataFrame.from_dict(model_attributes_map, orient="index")
# print(list(df.columns))
# print(df)
General#
Show code cell source
# Get all columns that begin with "does_"
does_columns = [col for col in df.columns if col.startswith("does_")]
# Make a list of all the "does_" columns that are True for each row dropping the "does_" prefix
# Add this to the dataframe
for i, row in df.iterrows():
does_list = [col.replace("does_", "") for col in does_columns if row[col]]
# print(f"{i}: {does_list}")
df.at[i, "does"] = does_list
general_df = df[[
"github_account",
"github_repo",
"does",
"active_funding",
"development_status",
"programming_language",
"license_type",
"data_collection_methods",
"last_release_date"
]]
general_df
github_account | github_repo | does | active_funding | development_status | programming_language | license_type | data_collection_methods | last_release_date | |
---|---|---|---|---|---|---|---|---|---|
Loading ITables v2.2.4 from the init_notebook_mode cell...
(need help?) |
Turbine Modeling#
Show code cell source
turbine_df = df[[
"scope",
"system_location",
"time_domain",
"turbine_model",
"does_loads",
"does_design_optimization",
"does_costs",
]]
turbine_df = turbine_df[ pd.DataFrame( turbine_df["scope"].tolist() ).isin( ["turbine", "any"] ).any(axis=1).values ]
turbine_df
scope | system_location | time_domain | turbine_model | does_loads | does_design_optimization | does_costs | |
---|---|---|---|---|---|---|---|
Loading ITables v2.2.4 from the init_notebook_mode cell...
(need help?) |
Farm Modeling#
Show code cell source
farm_df = df[[
"scope",
"system_location",
"time_domain",
"turbine_model",
"wake_model",
"does_loads",
"does_design_optimization",
"does_costs",
]]
farm_df = farm_df[ pd.DataFrame( farm_df["scope"].tolist() ).isin( ["farm", "any"] ).any(axis=1).values ]
farm_df.dropna()
scope | system_location | time_domain | turbine_model | wake_model | does_loads | does_design_optimization | does_costs | |
---|---|---|---|---|---|---|---|---|
Loading ITables v2.2.4 from the init_notebook_mode cell...
(need help?) |
Cost Modeling#
Show code cell source
cost_df = df[[
"scope",
"system_location",
"does_design_optimization",
"does_costs",
"tags",
]]
cost_df = cost_df[ cost_df["does_costs"] == True]
cost_df.dropna()
scope | system_location | does_design_optimization | does_costs | tags | |
---|---|---|---|---|---|
Loading ITables v2.2.4 from the init_notebook_mode cell...
(need help?) |
Full Suite Modeling Comparison#
Show code cell source
modeling_df = df[[
"scope",
"system_location",
"time_domain",
"turbine_model",
"wake_model",
"does_controls",
"does_costs",
"does_data_analysis",
"does_design",
"does_design_optimization",
"does_simulation",
"does_loads",
"tags",
]]
modeling_df
scope | system_location | time_domain | turbine_model | wake_model | does_controls | does_costs | does_data_analysis | does_design | does_design_optimization | does_simulation | does_loads | tags | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Loading ITables v2.2.4 from the init_notebook_mode cell...
(need help?) |
Distribution#
Show code cell source
distribution_df = df[[
"supported_platforms",
"package_manager",
"package_manager_url",
"installation_complexity",
]]
distribution_df
supported_platforms | package_manager | package_manager_url | installation_complexity | |
---|---|---|---|---|
Loading ITables v2.2.4 from the init_notebook_mode cell...
(need help?) |
Documentation#
Show code cell source
documentation_df = df[[
"documentation_url",
"has_user_docs",
"has_developer_docs",
"has_api_docs",
"has_cli_docs",
"has_installation_docs",
"has_getting_started_docs",
"has_examples_tutorials",
"has_design_intent_statement",
"readability",
"project_coverage",
]]
documentation_df
documentation_url | has_user_docs | has_developer_docs | has_api_docs | has_cli_docs | has_installation_docs | has_getting_started_docs | has_examples_tutorials | has_design_intent_statement | readability | project_coverage | |
---|---|---|---|---|---|---|---|---|---|---|---|
Loading ITables v2.2.4 from the init_notebook_mode cell...
(need help?) |
Testing#
Show code cell source
testing_df = df[[
"testing_framework",
"continuous_testing",
"test_coverage",
"test_documentation",
"performance_tests",
]]
testing_df
testing_framework | continuous_testing | test_coverage | test_documentation | performance_tests | |
---|---|---|---|---|---|
Loading ITables v2.2.4 from the init_notebook_mode cell...
(need help?) |
Interfaces#
Show code cell source
interfaces_df = df[[
"first_class_ui",
"has_cli",
"language_interfaces",
"feature_accessibility",
]]
interfaces_df
first_class_ui | has_cli | language_interfaces | feature_accessibility | |
---|---|---|---|---|
Loading ITables v2.2.4 from the init_notebook_mode cell...
(need help?) |
Input / Output#
Show code cell source
io_df = df[[
"filetypes",
"file_structure_stability",
]]
io_df
filetypes | file_structure_stability | |
---|---|---|
Loading ITables v2.2.4 from the init_notebook_mode cell...
(need help?) |