Programmeringskode

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 })