Programmeringskode#
Mange masteroppgaver inkluderer databehandling eller programmering. Ofte representerer dette en betydelig del av innsatsen i oppgaven, og uten innblikk i koden kan det være vanskelig å forstå hva som er gjort.
Den generelle anbefalingen er at kode deles via GitHub, med en tydelig beskrivelse av hva som deles og hvordan det kan brukes.
Programkodespesifikke retninglinjer:
Inkluder beskrivelse av forfatter, prosjekt og innhold i hver fil.
Del filene opp i funksjonsdeler, og forklar hva hver del gjør.
Beskriv alle definisjoner iht. spesifikasjoner for det spesifikke programmeringsspråk.
Inkluder en readme på GitHub som beskriver hva er i repositoriet, og hvordan det kan brukes.
Deklarer lisenser for videre bruk av koden.
Kvaliteten heves dersom koden er satt opp slik at den kan kjøres av andre for å teste alternativer, eller bygge videre.
Et eksempel på slik deling er oppgaven [Energy Yield Assessment of Floating Solar PV on Inland Water Bodies in Norway] [Osborg, 2023], hvor koden er delt på metteLie/master.
Programkode som inkluderes i selve rapporten, får økt lesbarhet dersom den skilles fra øvrig tekst i et kjent format [Osborg, 2023]:
def get_module_performance(self, G_poa_df):
"""
Calculates the module performance metrics based on given data.
Parameters
----------
G_poa_df : pandas.DataFrame
DataFrame containing weather and irradiance data, with columns 'T2m' (ambient temperature),
'poa_global_W/m2' (plane of array irradiance in W/m^2), and 'aoi' (angle of incidence in degrees).
Returns
-------
pandas.DataFrame
DataFrame containing the temperature efficiency, IAM, module temperature, and module efficiency for each time step.
"""
T_STC = 25
T_module = self.__get_cell_temperature_profile(G_poa_df)
temperature_eff = 1 - self.params['beta']*(T_module - T_STC)
IAM = self.__get_IAM_profile(G_poa_df)
module_efficiency = (self.params['eff_nom']* IAM * temperature_eff )
return pd.DataFrame({'temperature_eff': module_efficiency,
'IAM': IAM, 'T_module': T_module,
'module_efficiency': module_efficiency })