import pandas as pd import numpy as np def create_template(output_file='windfarm_template.xlsx'): # Create sample data similar to the internal generator data = [] # Add Substation data.append({ 'Type': 'Substation', 'ID': 'Sub1', 'X': 4000, 'Y': -800, 'Power': 0, 'PlatformHeight': 0 }) # Add Turbines (Grid layout) n_turbines = 30 spacing = 800 n_cols = 6 for i in range(n_turbines): row = i // n_cols col = i % n_cols x = col * spacing y = row * spacing data.append({ 'Type': 'Turbine', 'ID': i, 'X': x, 'Y': y, 'Power': np.random.uniform(6.0, 10.0), 'PlatformHeight': 0 }) df = pd.DataFrame(data) # Create Cable data cable_data = [ {'CrossSection': 35, 'Capacity': 150, 'Resistance': 0.524, 'Cost': 8, 'Optional': ''}, {'CrossSection': 70, 'Capacity': 215, 'Resistance': 0.268, 'Cost': 12, 'Optional': ''}, {'CrossSection': 95, 'Capacity': 260, 'Resistance': 0.193, 'Cost': 15, 'Optional': ''}, {'CrossSection': 120, 'Capacity': 295, 'Resistance': 0.153, 'Cost': 18, 'Optional': ''}, {'CrossSection': 150, 'Capacity': 330, 'Resistance': 0.124, 'Cost': 22, 'Optional': ''}, {'CrossSection': 185, 'Capacity': 370, 'Resistance': 0.0991, 'Cost': 27, 'Optional': ''}, {'CrossSection': 240, 'Capacity': 425, 'Resistance': 0.0754, 'Cost': 35, 'Optional': ''}, {'CrossSection': 300, 'Capacity': 500, 'Resistance': 0.0601, 'Cost': 45, 'Optional': ''}, {'CrossSection': 400, 'Capacity': 580, 'Resistance': 0.0470, 'Cost': 60, 'Optional': ''} ] df_cables = pd.DataFrame(cable_data) # Create System Parameters data param_data = [ {'Parameter': 'Voltage (kV) / 电压 (kV)', 'Value': 66}, {'Parameter': 'Power Factor / 功率因数', 'Value': 0.95}, {'Parameter': 'Electricity Price (元/kWh) / 电价 (元/kWh)', 'Value': 0.4}, {'Parameter': 'Project Lifetime (years) / 工程运行期限/年', 'Value': 25}, {'Parameter': 'Discount Rate (%) / 折现率%', 'Value': 8}, {'Parameter': 'Annual Loss Hours (hours) / 年损耗小时数/小时', 'Value': 1400} ] df_params = pd.DataFrame(param_data) # Save to Excel with pd.ExcelWriter(output_file) as writer: df.to_excel(writer, sheet_name='Coordinates', index=False) df_cables.to_excel(writer, sheet_name='Cables', index=False) df_params.to_excel(writer, sheet_name='Parameters', index=False) print(f"Created sample file: {output_file} with sheets 'Coordinates', 'Cables', and 'Parameters'") if __name__ == "__main__": create_template()