diff --git a/Manual.html b/Manual.html new file mode 100644 index 0000000..6e99ff7 --- /dev/null +++ b/Manual.html @@ -0,0 +1,5488 @@ + + + + + + + + + + +GFA-Evaluation & GFA-Grünflächen-Configurator - Manual + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

GFA-Evaluation & GFA-Grünflächen-Configurator - Manual

+
+ + + +
+ +
+
Author
+
+

Gewerd Strauss

+
+
+ +
+
Published
+
+

07.09.2023

+
+
+ + +
+ + +
+ +
+

1 Grünflächen-Konfigurator

+

Overview
+This program bundles several small utility scripts I wrote over the course of my internship. Major features include:

+
    +
  1. Generate the configuration-files and start-scripts required to run GFA_Evaluation.R. See the section on the main script.
  2. +
  3. Easy GUI-aided method of mass-renaming ordered images into various groups. See the section on renamed images.
  4. +
  5. A one-click function to create an xlsx- version of any csv-file which doesn’t exist as an xlsx-file yet. See the section on csv-conversion.
  6. +
+

The respective sections go into further details; alternatively issues can be raised on the project’s GitHub-Page.

+
+

1.1 Main Script

+

To make things easier, I will establish a few rules used throughout this section.
+Anytime text is formatted like this (X), it refers to a button, editable field, drop-down menu, or in general a control on the GUI. The number at the end, here an (X) signifies which section of the GUI this control is located in. As an example, csv2xlsx (4) is the button used to convert csv-files to xlsx-files, located under 4. Auxiliary Utilities.

+
+

1.1.1 Selecting a configuration

+

The main task of this program is to generate a suitable configuration file which can be used with the R-Script GFA_Evaluation.R bundled alongside this program. For details on its functioning, see documentation on GFA_Evaluation.R
+Configuration files can be handled by this program in three ways: 1. New Config in Folder (1)
+This allows you to create a config-file for a new project 2. Edit existing Config (1)
+This allows you to load an existing config file for editing 3. Double-clicking a configuration previously used under Configurations and Image-renaming (4)
+This effectively works the same as Number 2. 4. You may also drag and drop a config file onto the greyed-out field (1) to the right of those two buttons.

+

Under curr. loaded Config (3), the path to a configuration-file will be visible if the user has chosen a path already - by loading a config, or by manually selecting a config’s location when clicking New Config in Folder. When saving or previewing a configuration, the program will attempt to validate the inputs given by the user. Certain inputs however cannot be validated with certainty by the program. In these cases, the user is asked to manually confirm or discard their choices. These popups differentiate between mild warnings (yellow warning signs) and severe warnings (red x-crosses). This depends on how severe a false decision may be, or how vital it is for GFA_main()’s functioning to have correct inputs. ### Selecting and Editing an R-Script

+

To complement the config-files generated, the user may generate a barebones “starter”-R-Script which will call GFA_main().

+

R-Scripts can be handled by this program in three ways: 1. New R-StarterScript (2)
+This allows you to create a new R-Script for a new project 2. Edit existing R-StarterScript (2)
+This allows you to load an existing R-Script for editing 3. Double-clicking an R-Script previously used under R Scripts (4)
+This effectively works the same as Number 2. 4. You may also drag and drop a config file onto the greyed-out field (2)1 to the right of those two buttons.

  • 1 Note that this is not the same greyed-out field that is used for dropping configurations.

  • +

    Under curr. loaded R-Script (3), an R-Script is visible. If the field is empty, attempting to write to a file will result in the program asking the user to select an appropriate location.

    +
    +
    +

    1.1.2 Editing a configuration

    +

    First off it makes sense to take a look at the example configurations and how the results of them look. Examples can be found under XX\res\Examples, where XX is the folder in which this program resides. They are not meant to display sensible data, the data may be unrealistic. The intention of the reference files is mostly to give simple visualisation of a configuration. They also don’t showcase all potential cases, as those are just too many.

    +

    Configurations can be edited after being loaded (see section on config-selection).
    +If a configuration is leaded, its path will be visible under curr. loaded Config (3)
    +Alternatively, the user can create a config file first.

    +
    +
    +
    +

    1.2 csv2xlsx

    +

    After selecting a configuration file (see Section 1.1.1), you may use the button csv2xlsx (4) to run the csv-to-xlsx-converter embedded into the program. It will parse through all _*.csv_-files in any subfolder of the config’s location, check if there is a xlsx-equivalent present, and create it if it is not.
    +Note This program will cease to function if the csv’s are not delimited using either , or ;.
    +The program will

    +
      +
    1. replace the cell-delimiter (, or ;) with ;
    2. +
    3. replace dots . with ,
    4. +
    5. save this transformed version to the csv-file, effectively overwriting it.
    6. +
    7. Afterwards, it will create an xlsx-copy.
      +This functionality requires the program Excel to be installed on the user’s machine, as it takes advantage of Excel’s ComObject-Interface to do its work.
    8. +
    +

    Program Configuration options:
    +As with all program-configuration options, these affect the behaviour of the Configurator-Program, not the R-Script.
    +Options can be accessed by pressing Alt+P on the Configurator’s main window. It is not recommended to modify the raw config files of this program by hand.2

  • 2 You can, obviously. It is just very easy to disrupt or destroy data if you do not know how AutoHotKey handles config files, and more importantly how this program itself handles them. Just use the GUI please.

  • + + + + + + + + + + + + + +
    OptionExplanation
    //
    +
    +
    +

    1.3 Rename images

    +

    Program Configuration options:
    +After selecting a configuration file (see [Selecting a configuration|here]), you may use the button rename Images (4) to run the image-renamer embedded into the program.
    +The program will use the currently loaded configuration to retrieve data required, namely the number of pots per group & groups names. These variables can be changed before submitting. The user can then choose a folder containing images they want to rename. The folder must not contain subfolders which also contain images, or those will also be considered.

    +

    Upon submission, the program will open a preview in which the user can check that each image was associated with its correct name; then submit to rename the images.

    +

    Images are never renamed in-place, instead a set of working copies is made which get renamed instead. They will be located in a GFAR_WD-subfolder of the initially chosen directory, alongside a textfile associating original filenames with their renamed counterparts.
    +As with all program-configuration options, these affect the behaviour of the Configurator-Program, not the R-Script.
    +Options can be accessed by pressing Alt+P on the Configurator’s main window. It is not recommended to modify the raw config files of this program by hand.3

  • 3 You can, obviously. It is just very easy to disrupt or destroy data if you do not know how AutoHotKey handles config files, and more importantly how this program itself handles them. Just use the GUI please.

  • + ++++ + + + + + + + + + + + + + + + + + + + + + + + + +
    OptionExplanation
    filetypeSelect if the script should consider JPG- or PNG-files for renaming.
    PutFilesOnClipboardDo you want to have the renamed images put on your clipboard at the end? Suggested if you need to move them all to a different computer.
    CopyFilesSelect if you want to copy Ctrl+C the files to your clipboard. Uncheck if you want to cut Ctrl+X them instead
    CopyParentDirectorySelect if you want to copy/cut the parent directory, instead of all files. Generally suggested to ease batch-renaming of multiple sets at once.
    +
    +
    +

    1.4 Parameter Quick-Reference

    +

    This section serves as a quick reference for modifying an existing config-file without necessarily opening the program, and assumes the user is informed about the basic functionality of the parameters they alter.
    +If unsure, it is recommended to modify config files via this script - although that is only possible on Windows.
    +For further, and particularly usage-dependent information, see the tooltip information on each parameter.

    +
    +

    1.4.1 1. Grouping

    +
    +

    Facet2D

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterFacet2D [Section:Experiment]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionFacet2D: Do you want to facet the plot, f.e. over a treatment?
    ElaborationClarification: Facetting here refers to the segmentation of the plots along the Y-Axis, NOT along the X-Axis.\nFor segmenting along the X-Axis, refer to 'UniqueGroups' and 'GroupsOrderX'.
    +
    +
    +

    Facet2DVar

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterFacet2DVar [Section:Experiment]
    Value/
    Default/
    TypeString
    Options/
    InstructionFacet2DVar: Set the comma-separated list of facet-members to assing to the 'UniqueGroups'
    Elaboration[Facet2D==TRUE]\nClarification: The entries you specified for 'UniqueGroups' must each match a single entry in this list as well
    +
    +
    +

    GroupsOrderX

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterGroupsOrderX [Section:Experiment]
    ValueUU,G14,G21,G28,G35,G42
    DefaultUU,G14,G21,G28,G35,G42
    TypeString
    Options/
    InstructionGroupsOrderX: Set the comma-separated order of groups in the plots along X-axis
    ElaborationOrder the Groups along the X-Axis. Groups are ordered left to right
    +
    +
    +

    GroupsOrderY

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterGroupsOrderY [Section:Experiment]
    Value/
    Default/
    TypeString
    Options/
    InstructionGroupsOrderY: Set the comma-separated order of groups in the plots along Y-Axis (only for facetting)
    Elaboration[Facet2D==TRUE]\nOrder the Groups along the Y-Axis. Groups are ordered top to bottom.
    +
    +
    +

    Palette_Boxplot

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterPalette_Boxplot [Section:Experiment]
    Valueyellow,orange,orangered,red,darkred,black,white
    Defaultyellow,orange,orangered,red,darkred,black,white
    TypeString
    Optionsw400/
    InstructionPalette_Boxplot: Set the colors for the Summaryplot
    ElaborationColors are assigned regardless of order of the plots, and always in the following order:\nLeft to right, Top to bottom\n\nThis set of colors is responsible for the overview plot
    +
    +
    +

    Palette_Boxplot2

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterPalette_Boxplot2 [Section:Experiment]
    Valuewhite,yellow,orange,orangered,red,darkred,black
    Defaultwhite,yellow,orange,orangered,red,darkred,black
    TypeString
    Optionsw400/
    InstructionPalette_Boxplot2: Set the colors for the daily plots
    ElaborationColors are assigned regardless of order of the plots, and always in the following order:\nLeft to right, Top to bottom\n\nThis set of colors is responsible for the daily plots
    +
    +
    +

    Palette_Lines

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterPalette_Lines [Section:Experiment]
    Valueyellow,orange,orangered,red,darkred,black,black
    Defaultyellow,orange,orangered,red,darkred,black,black
    TypeString
    Optionsw400/
    InstructionPalette_Lines: Set the colors for the Summaryplot
    ElaborationColors are assigned regardless of order of the plots, and always in the following order:\nLeft to right, Top to bottom\n\nThis set of colors is responsible for the overview plot
    +
    +
    +

    Palette_Lines2

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterPalette_Lines2 [Section:Experiment]
    Valueblack,yellow,orange,orangered,red,darkred,black
    Defaultblack,yellow,orange,orangered,red,darkred,black
    TypeString
    Optionsw400/
    InstructionPalette_Lines2: Set the colors for the daily plots
    ElaborationColors are assigned regardless of order of the plots, and always in the following order:\nLeft to right, Top to bottom\n\nThis set of colors is responsible for the daily plots
    +
    +
    +

    PotsPerGroup

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterPotsPerGroup [Section:Experiment]
    Value7
    Default7
    TypeInteger
    Optionsnumber/
    InstructionPotsPerGroup: Set the number of pots per group/combination
    Elaboration[Facet2D==TRUE]\nHere, combination is a combination of a member of 'UniqueGroups' and a member of 'Facet2DVar'
    +
    +
    +

    RefGroup

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterRefGroup [Section:Experiment]
    ValueUU
    DefaultUU
    TypeString
    Options/
    InstructionRefGroup: Set the reference group for all statistical tests
    Elaboration\n[Facet2D==FALSE]\nFor a normal plot, this must be a member of 'UniqueGroups'\n\n[Facet2D==TRUE]\nFor a facetted plot, this must be a combination of 1 member of 'Facet2DVar' and 'UniqueGroups', separated by a dot (.).\nThe order is always '[UniqueGroups_Member].[Facet2DVar_Member]'\nExample:\n'Ungestresst.Unbehandelt'
    +
    +
    +

    UniqueGroups

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterUniqueGroups [Section:Experiment]
    ValueG14,G21,G28,G35,G42,UU
    DefaultG14,G21,G28,G35,G42,UU
    TypeString
    Options/
    InstructionUniqueGroups: Set the comma-separated list of all unique group names
    ElaborationIf you set 'Facet2D' to TRUE, this must have as many entries as 'Facet2DVar'
    +
    +
    +
    +

    1.4.2 2. GeneralConfiguration

    +
    +

    Debug

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterDebug [Section:General]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionDebug: Do you want to print debug information?
    Elaboration
    +
    +
    +

    filename_date_format

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameterfilename_date_format [Section:Experiment]
    Value%d.%m.%Y
    Default%d.%m.%Y
    TypeString
    Options%d.%m.%Y||%Y-%m-%d
    Instructionfilename_date_format: Select the date format for saved files. Editing allowed
    ElaborationDoes not control the date format on the figure. For that, see option 'figure_date_format'.
    +
    +
    +

    Filename_Prefix

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterFilename_Prefix [Section:Experiment]
    ValueGF
    DefaultGF
    TypeString
    Options/
    InstructionFilename_Prefix:
    ElaborationDecide the file-prefix used when saving figures and statistical results.\n\nATTENTION:\nChanging this if files have been generated before will result in those files not\nbeing overwritten so you will end up with an old and a current set of result-\nfiles (images/excel-sheets/RData-files)
    +
    +
    +

    language

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameterlanguage [Section:General]
    ValueEnglish
    DefaultEnglish
    TypeString
    OptionsEnglish||German
    Instructionlanguage: Select language for auto-generated labels
    Elaboration
    +
    +
    +

    Normalise

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterNormalise [Section:Experiment]
    ValueTRUE
    Default1
    Typeboolean
    OptionsTRUE/FALSE
    InstructionNormalise: Do you want to normalise your leaf area?
    ElaborationThis accesses the data-column 'plant_area_normalised'. For more info, check the documentation.
    +
    +
    +

    T0

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterT0 [Section:Experiment]
    Value20230906111832
    Default20230906111832
    TypeString
    Options/
    InstructionT0: Set the T0-date for calculating 'plant-age' for your experiment, in format dd.MM.yyyy (24.12.2023)
    ElaborationThis is relevant mostly for calculating the plant-age plotted on the y-axis.
    +
    +
    +

    used_filesuffix

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameterused_filesuffix [Section:General]
    Valuexlsx
    Defaultxlsx
    TypeString
    Optionsxlsx||csv
    Instructionused_filesuffix: Select the filetype you want to ingest
    Elaboration'xlsx' is recommended. 'csv' was tested, but not as adamantly as xlsx. It should not make any difference, but that is not guaranteed.
    +
    +
    +
    +

    1.4.3 3. Figure

    +
    +

    Name

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterName [Section:Experiment]
    ValueExperiment X
    DefaultExperiment X
    TypeString
    Options/
    InstructionName: Set the name of the Experiment as seen in the figure title
    Elaboration
    +
    +
    +

    PlotMeanLine

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterPlotMeanLine [Section:General]
    ValueTRUE
    Default1
    Typeboolean
    OptionsTRUE/FALSE
    InstructionPlotMeanLine: Do you want to plot the line connecting the means of each group's boxplots?
    Elaboration
    +
    +
    +

    Theme

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterTheme [Section:General]
    Value7
    Default7
    TypeInteger
    OptionsNumber
    InstructionTheme: Choose your default theme.
    Elaboration
    +
    +
    +
    +

    1.4.4 4. Axes

    +
    +

    axis_units_x

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameteraxis_units_x [Section:General]
    ValueTage,days
    DefaultTage,days
    TypeString
    Options/
    Instructionaxis_units_x: Set the unit of the X-axis (for the Overview-plot).
    ElaborationFormat: '[German Text],[English Text]'. Replace a field with "/" to skip it
    +
    +
    +

    axis_units_x_Daily

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameteraxis_units_x_Daily [Section:General]
    Value/,/
    Default/,/
    TypeString
    Options/
    Instructionaxis_units_x_Daily: Set the unit of the X-axis (for the daily plots).
    ElaborationFormat: '[German Text],[English Text]'. Replace a field with "/" to skip it
    +
    +
    +

    axis_units_y

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameteraxis_units_y [Section:General]
    Valuecm^2,cm^2
    Defaultcm^2,cm^2
    TypeString
    Options/
    Instructionaxis_units_y: Set the unit of the Y-axis (for the Overview-plot).
    ElaborationFormat: '[German Text],[English Text]'. Replace a field with "/" to skip it
    +
    +
    +

    axis_units_y_Daily

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameteraxis_units_y_Daily [Section:General]
    Valuecm^2,cm^2
    Defaultcm^2,cm^2
    TypeString
    Options/
    Instructionaxis_units_y_Daily: Set the unit of the Y-axis (for the daily plots).
    ElaborationFormat: '[German Text],[English Text]'. Replace a field with "/" to skip it
    +
    +
    +

    BreakStepSize

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterBreakStepSize [Section:Experiment]
    Value25
    Default25
    Typenumber
    Options/
    InstructionBreakStepSize: Set the spacing between numbered breaks on the Y-Axis. Requires ForceAxes=T
    Elaboration
    +
    +
    +

    figure_date_format

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameterfigure_date_format [Section:Experiment]
    Value%d.%m.%Y
    Default%d.%m.%Y
    TypeString
    Options%d.%m.%Y||%Y-%m-%d
    Instructionfigure_date_format: Select the date format for dates on the x-axis or in titles. Editing allowed
    Elaboration[RelativeColNames==TRUE]\nDoes not take effect\n\n\n[RelativeColNames==FALSE]\nSet the format for dates on the x-axis\n\nDoes not control the date format for the saved files. For that, see option 'filename_date_format'.
    +
    +
    +

    ForceAxes

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterForceAxes [Section:Experiment]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionForceAxes: Do you want to force the Y-Axis scaling? This requires setting 'YLimits'
    Elaboration
    +
    +
    +

    RelativeColnames

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterRelativeColnames [Section:General]
    ValueTRUE
    Default1
    Typeboolean
    OptionsTRUE/FALSE
    InstructionRelativeColnames: Do you want to display the X-positions as 'days since T0'?
    Elaboration
    +
    +
    +

    ShowBothColnames

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowBothColnames [Section:General]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionShowBothColnames: Do you want to display the X-positions as 'days since T0 - date'?
    Elaboration
    +
    +
    +

    XLabel

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterXLabel [Section:Experiment]
    ValueTime since repotting
    DefaultTime since repotting
    TypeString
    Options/
    InstructionXLabel: Set the xlabel-string for the summary plot.
    Elaboration
    +
    +
    +

    XLabel_Daily

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterXLabel_Daily [Section:Experiment]
    ValueTreatment Groups
    DefaultTreatment Groups
    TypeString
    Options/
    InstructionXLabel_Daily: Set the xlabel-string for the daily analyses.
    Elaboration
    +
    +
    +

    YLabel

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterYLabel [Section:Experiment]
    Valuegreen plant area
    Defaultgreen plant area
    TypeString
    Options/
    InstructionYLabel: Set the ylabel-string for the summary plot and daily analyses.
    Elaboration
    +
    +
    +

    YLimits

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterYLimits [Section:Experiment]
    Value0,150
    Default0,150
    TypeString
    Options/
    InstructionYLimits: Set the minimum and maximum limit for the Y-Axis. Does not take effect if 'ForceAxes' is false. Used for all plots
    Elaboration
    +
    +
    +
    +

    1.4.5 5. Statistics and its displaying

    +
    +

    PlotSampleSize

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterPlotSampleSize [Section:General]
    ValueTRUE
    Default1
    Typeboolean
    OptionsTRUE/FALSE
    InstructionPlotSampleSize: Do you want to plot the sample size of each group's boxplots?
    Elaboration
    +
    +
    +

    ShowNAtallboxplots

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowNAtallboxplots [Section:General]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionShowNAtallboxplots: Do you want to print 'n=XX' above every boxplot in the daily plots?
    Elaboration[ShowNAtallboxplot==TRUE]:\nThe Sample size is printed above every day.\nThis is generally not recommended as it will become cluttered with increasing number of days.\n\n[ShowNAtallboxplot==FALSE]\nDo not print sample sizes above every day. Sample size is displayed via the plot_subtitle element instead (but only if you enable rr)
    +
    +
    +

    ShowOnlyIrregularN

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowOnlyIrregularN [Section:General]
    ValueTRUE
    Default1
    Typeboolean
    OptionsTRUE/FALSE
    InstructionShowOnlyIrregularN: Do you want to only plot sample sizes which differ from 'PotsPerGroup'?
    ElaborationRequires also ticking 'PlotSampleSize'
    +
    +
    +
    +

    1.4.6 6. Fontsizes

    +
    +

    Fontsize_PValue

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterFontsize_PValue [Section:Fontsizes]
    Value2.500000
    Default2.5
    Typenumber
    Options/
    InstructionFontsize_PValue: Set the fontsize for the p-values in the daily plots
    ElaborationNote that the zeros can be omitted in principle, but are a side-effect of the validation used. You can ignore them.
    +
    +
    +

    Fontsize_SampleSize

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterFontsize_SampleSize [Section:Fontsizes]
    Value2.500000
    Default2.5
    Typenumber
    Options/
    InstructionFontsize_SampleSize: Set the fontsize for the sample size in the daily plots
    ElaborationNote that the zeros can be omitted in principle, but are a side-effect of the validation used. You can ignore them.
    +
    +
    +
    +

    1.4.7 7. Titles

    +
    +

    DebugText

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterDebugText [Section:General]
    Value"Setting [DEBUG==TRUE]" in section '2. General Configuration' will overwrite any settings made in this section"
    Default"Setting [DEBUG==TRUE]" in section '2. General Configuration' will overwrite any settings made in this section"
    Typetext
    Options/
    InstructionSetting [DEBUG==TRUE] in section '2. General Configuration' will overwrite any settings made in this section
    Elaboration
    +
    +
    +

    ShowTitle

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowTitle [Section:General]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionShowTitle: Do you want to show the title above the summary plot?
    Elaboration
    +
    +
    +

    ShowTitle_Daily

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowTitle_Daily [Section:General]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionShowTitle_Daily: Do you want to show the title above the daily plots?
    Elaboration
    +
    +
    +

    ShowTitleDateWhere

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowTitleDateWhere [Section:General]
    ValueSubTitle
    DefaultSubTitle
    TypeString
    OptionsTitle|SubTitle||nowhere
    InstructionShowTitleDateWhere: Select if the date (range) should be appended to the end of the title- or subtitle-element.
    ElaborationFor date-format, see key 'figure_date_format' under section '4. Axes'\n\n[ShowTitle==FALSE]\nNo effect.
    +
    +
    +

    ShowTitleSub

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowTitleSub [Section:General]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionShowTitleSub: Do you want to show the sub-title above the summary plot?
    Elaboration
    +
    +
    +

    ShowTitleSub_Daily

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowTitleSub_Daily [Section:General]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionShowTitleSub_Daily: Do you want to show the sub-title above the daily plots?
    Elaboration
    +
    +
    +

    Title

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterTitle [Section:General]
    Value/
    Default/
    TypeString
    Options/
    InstructionTitle: Enter the title you want to use for the summary plot. Leave empty to use the default title.
    ElaborationNote that the respective days' date is appended to either the title or subtitle, depending on what you choose under 'ShowTitleDateWhere'.
    +
    +
    +

    Title_Daily

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterTitle_Daily [Section:General]
    Value/
    Default/
    TypeString
    Options/
    InstructionTitle_Daily: Enter the title you want to use for the daily plots. Leave empty to use the default title.
    ElaborationNote that the respective days' date is appended to either the title or subtitle, depending on what you choose under 'ShowTitleDateWhere'.
    +
    +
    +

    TitleSub

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterTitleSub [Section:General]
    Value/
    Default/
    TypeString
    Options/
    InstructionTitleSub: Enter the sub-title you want to use for the summary plot. Leave empty to use the default sub-title.
    ElaborationNote that the respective days' date is appended to either the title or subtitle, depending on what you choose under 'ShowTitleDateWhere'.
    +
    +
    +

    TitleSub_Daily

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterTitleSub_Daily [Section:General]
    Value/
    Default/
    TypeString
    Options/
    InstructionTitleSub_Daily: Enter the sub-title you want to use for the daily plots. Leave empty to use the default sub-title.
    ElaborationNote that the respective days' date is appended to either the title or subtitle, depending on what you choose under 'ShowTitleDateWhereA'.
    +
    +
    +
    +
    +
    +

    2 GFA_Evaluation.R

    +
    +

    2.1 Setup

    +

    The script can also be used without the configurator explained so far.

    +
    +
    +
    +
    +

    +
    Example folder structure. The names of the folders do not matter. Note the file ‘GFA_conf.ini’ in the directory. This configures the behaviour of the script and is necessary to run the script.
    +
    +
    +
    +
    +

    Below you will find an example script

    +
    +
    +Code +
    # do not run, show
    +get_os <- function(){
    +    sysinf <- Sys.info()
    +    if (!is.null(sysinf)){
    +        os <- sysinf['sysname']
    +        if (os == 'Darwin')
    +            os <- "osx"
    +    } else { ## mystery machine
    +        os <- .Platform$OS.type
    +        if (grepl("^darwin", R.version$os))
    +            os <- "osx"
    +        if (grepl("linux-gnu", R.version$os))
    +            os <- "linux"
    +    }
    +    return(tolower(os))
    +}
    +source("D:/Dokumente neu/Repositories/Grünflächen-Utilities/GFA_Evaluation.R")
    +if (isTRUE(as.logical(get_os()=='windows'))) { # this is an optimistic approach to the problem, I won't try to anticipate all possible OS-names # WINDOWS:
    +    GFA_2 <- GFA_main(folder_path = r"(D:\Dokumente neu\Obsidian NoteTaking\The Universe\200 University\06 Interns and Unis\BE28 Internship Report\assets\Exp2.3\GFA\GFA_conf.ini)",returnDays = 0,saveFigures = 0,saveExcel = 0,saveRDATA = 0)
    +} else {    # MAC:
    +    GFA_2 <- GFA_main(folder_path = r"(D:\Dokumente neu\Obsidian NoteTaking\The Universe\200 University\06 Interns and Unis\BE28 Internship Report\assets\Exp2.3\GFA\GFA_conf.ini)",returnDays = 0,saveFigures = 0,saveExcel = 0,saveRDATA = 0)
    +}
    +## do not clear your workspace between the calls to `source()` and `GFA_main()`. If you absolutely MUST, only clear your worspace after GFA_main() has returned its output and you no longer need its results, or selectively clear variables. Clearing the workspace inbetween these two points will render the script useless.
    +
    +
    +

    Which results in the following plot

    +
    +
    +
    +
    +

    +
    Experiment 2: Plant-area development for different drought stress periods and field capacities, 07 - 63 days post repotting. The determined area consists of green and yellow pixels. The solid black line marks the begin of the stress differentiation and the end of the initial drought stress period. Dotted lines mark the end of the stress differentiation period and the return to a supply of 90% FC for the respective stress group. (n=8)
    +
    +
    +
    +
    +
    +
    +

    2.2 Error Handling and restrictions

    +

    Most aspects of the R-Script are handled on a trust-first basis, but certain things are validated as required. If checks are not passed, the script will stop by throwing a distinct error-message (red text in Console). In this case, the issue must be resolved to allow the script to function.
    +There are also notifications which are displayed as warnings (yellow text). These contain information on internal deviations to the given configurations, or generally inform the user that something might behave different than the settings would indicate. The difference here is that they are performed automatically, are conservative and usually required to obtain acceptable results.

    +
    +
    +Code +
    Error: GFA_main() [user-defined]: Task: loading configuration from ini-file,1
    +The configuration file ('C:\Users\Claudius Main\Desktop\TempTemporal\Exp2.3_GFA_fixedValuesfor1007\GFA_conf.ini')
    +could not be loaded. The best assumption for its file-encoding is UTF-16LE, but using this returned an empty object.
    +Please double-check the encoding of the configuration-file
    +
    +
    +

    Beyond this, by functionality this script does not deviate from the steps taken in the original script this was derived from.

    +
    +
    +
    +

    3 Requirements

    +

    Full functionality requires:

    +
      +
    • GFA-Grünflächen-Configurator: +
    • +
    • csv2xlsx: Requires installation of Microsoft Excel. Will not function instead. +
        +
      • as a submodule of the above-mentioned configurator, it requires the same access rights.
      • +
    • +
    • GFA_Evaluation.R Installation of R, and respectively required packages (will be loaded by the R-script via library) - usable on any operating system
    • +
    +
    +
    +

    4 License

    +

    See accompanying license file. License of used code can be found in dist\res\CombinedLicenses.txt, as best as could be retrieved.

    +
    + + +

    Reuse

    MIT License \n\n\r\rCopyright (c) 2023 Gewerd Strauss \n\n\r\rPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: \n\n\r\rThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. \n\n\r\rTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    + + +
    + + + + \ No newline at end of file diff --git a/res/Manual.html b/res/Manual.html new file mode 100644 index 0000000..6e99ff7 --- /dev/null +++ b/res/Manual.html @@ -0,0 +1,5488 @@ + + + + + + + + + + +GFA-Evaluation & GFA-Grünflächen-Configurator - Manual + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +

    GFA-Evaluation & GFA-Grünflächen-Configurator - Manual

    +
    + + + +
    + +
    +
    Author
    +
    +

    Gewerd Strauss

    +
    +
    + +
    +
    Published
    +
    +

    07.09.2023

    +
    +
    + + +
    + + +
    + +
    +

    1 Grünflächen-Konfigurator

    +

    Overview
    +This program bundles several small utility scripts I wrote over the course of my internship. Major features include:

    +
      +
    1. Generate the configuration-files and start-scripts required to run GFA_Evaluation.R. See the section on the main script.
    2. +
    3. Easy GUI-aided method of mass-renaming ordered images into various groups. See the section on renamed images.
    4. +
    5. A one-click function to create an xlsx- version of any csv-file which doesn’t exist as an xlsx-file yet. See the section on csv-conversion.
    6. +
    +

    The respective sections go into further details; alternatively issues can be raised on the project’s GitHub-Page.

    +
    +

    1.1 Main Script

    +

    To make things easier, I will establish a few rules used throughout this section.
    +Anytime text is formatted like this (X), it refers to a button, editable field, drop-down menu, or in general a control on the GUI. The number at the end, here an (X) signifies which section of the GUI this control is located in. As an example, csv2xlsx (4) is the button used to convert csv-files to xlsx-files, located under 4. Auxiliary Utilities.

    +
    +

    1.1.1 Selecting a configuration

    +

    The main task of this program is to generate a suitable configuration file which can be used with the R-Script GFA_Evaluation.R bundled alongside this program. For details on its functioning, see documentation on GFA_Evaluation.R
    +Configuration files can be handled by this program in three ways: 1. New Config in Folder (1)
    +This allows you to create a config-file for a new project 2. Edit existing Config (1)
    +This allows you to load an existing config file for editing 3. Double-clicking a configuration previously used under Configurations and Image-renaming (4)
    +This effectively works the same as Number 2. 4. You may also drag and drop a config file onto the greyed-out field (1) to the right of those two buttons.

    +

    Under curr. loaded Config (3), the path to a configuration-file will be visible if the user has chosen a path already - by loading a config, or by manually selecting a config’s location when clicking New Config in Folder. When saving or previewing a configuration, the program will attempt to validate the inputs given by the user. Certain inputs however cannot be validated with certainty by the program. In these cases, the user is asked to manually confirm or discard their choices. These popups differentiate between mild warnings (yellow warning signs) and severe warnings (red x-crosses). This depends on how severe a false decision may be, or how vital it is for GFA_main()’s functioning to have correct inputs. ### Selecting and Editing an R-Script

    +

    To complement the config-files generated, the user may generate a barebones “starter”-R-Script which will call GFA_main().

    +

    R-Scripts can be handled by this program in three ways: 1. New R-StarterScript (2)
    +This allows you to create a new R-Script for a new project 2. Edit existing R-StarterScript (2)
    +This allows you to load an existing R-Script for editing 3. Double-clicking an R-Script previously used under R Scripts (4)
    +This effectively works the same as Number 2. 4. You may also drag and drop a config file onto the greyed-out field (2)1 to the right of those two buttons.

  • 1 Note that this is not the same greyed-out field that is used for dropping configurations.

  • +

    Under curr. loaded R-Script (3), an R-Script is visible. If the field is empty, attempting to write to a file will result in the program asking the user to select an appropriate location.

    +
    +
    +

    1.1.2 Editing a configuration

    +

    First off it makes sense to take a look at the example configurations and how the results of them look. Examples can be found under XX\res\Examples, where XX is the folder in which this program resides. They are not meant to display sensible data, the data may be unrealistic. The intention of the reference files is mostly to give simple visualisation of a configuration. They also don’t showcase all potential cases, as those are just too many.

    +

    Configurations can be edited after being loaded (see section on config-selection).
    +If a configuration is leaded, its path will be visible under curr. loaded Config (3)
    +Alternatively, the user can create a config file first.

    +
    +
    +
    +

    1.2 csv2xlsx

    +

    After selecting a configuration file (see Section 1.1.1), you may use the button csv2xlsx (4) to run the csv-to-xlsx-converter embedded into the program. It will parse through all _*.csv_-files in any subfolder of the config’s location, check if there is a xlsx-equivalent present, and create it if it is not.
    +Note This program will cease to function if the csv’s are not delimited using either , or ;.
    +The program will

    +
      +
    1. replace the cell-delimiter (, or ;) with ;
    2. +
    3. replace dots . with ,
    4. +
    5. save this transformed version to the csv-file, effectively overwriting it.
    6. +
    7. Afterwards, it will create an xlsx-copy.
      +This functionality requires the program Excel to be installed on the user’s machine, as it takes advantage of Excel’s ComObject-Interface to do its work.
    8. +
    +

    Program Configuration options:
    +As with all program-configuration options, these affect the behaviour of the Configurator-Program, not the R-Script.
    +Options can be accessed by pressing Alt+P on the Configurator’s main window. It is not recommended to modify the raw config files of this program by hand.2

  • 2 You can, obviously. It is just very easy to disrupt or destroy data if you do not know how AutoHotKey handles config files, and more importantly how this program itself handles them. Just use the GUI please.

  • + + + + + + + + + + + + + +
    OptionExplanation
    //
    +
    +
    +

    1.3 Rename images

    +

    Program Configuration options:
    +After selecting a configuration file (see [Selecting a configuration|here]), you may use the button rename Images (4) to run the image-renamer embedded into the program.
    +The program will use the currently loaded configuration to retrieve data required, namely the number of pots per group & groups names. These variables can be changed before submitting. The user can then choose a folder containing images they want to rename. The folder must not contain subfolders which also contain images, or those will also be considered.

    +

    Upon submission, the program will open a preview in which the user can check that each image was associated with its correct name; then submit to rename the images.

    +

    Images are never renamed in-place, instead a set of working copies is made which get renamed instead. They will be located in a GFAR_WD-subfolder of the initially chosen directory, alongside a textfile associating original filenames with their renamed counterparts.
    +As with all program-configuration options, these affect the behaviour of the Configurator-Program, not the R-Script.
    +Options can be accessed by pressing Alt+P on the Configurator’s main window. It is not recommended to modify the raw config files of this program by hand.3

  • 3 You can, obviously. It is just very easy to disrupt or destroy data if you do not know how AutoHotKey handles config files, and more importantly how this program itself handles them. Just use the GUI please.

  • + ++++ + + + + + + + + + + + + + + + + + + + + + + + + +
    OptionExplanation
    filetypeSelect if the script should consider JPG- or PNG-files for renaming.
    PutFilesOnClipboardDo you want to have the renamed images put on your clipboard at the end? Suggested if you need to move them all to a different computer.
    CopyFilesSelect if you want to copy Ctrl+C the files to your clipboard. Uncheck if you want to cut Ctrl+X them instead
    CopyParentDirectorySelect if you want to copy/cut the parent directory, instead of all files. Generally suggested to ease batch-renaming of multiple sets at once.
    +
    +
    +

    1.4 Parameter Quick-Reference

    +

    This section serves as a quick reference for modifying an existing config-file without necessarily opening the program, and assumes the user is informed about the basic functionality of the parameters they alter.
    +If unsure, it is recommended to modify config files via this script - although that is only possible on Windows.
    +For further, and particularly usage-dependent information, see the tooltip information on each parameter.

    +
    +

    1.4.1 1. Grouping

    +
    +

    Facet2D

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterFacet2D [Section:Experiment]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionFacet2D: Do you want to facet the plot, f.e. over a treatment?
    ElaborationClarification: Facetting here refers to the segmentation of the plots along the Y-Axis, NOT along the X-Axis.\nFor segmenting along the X-Axis, refer to 'UniqueGroups' and 'GroupsOrderX'.
    +
    +
    +

    Facet2DVar

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterFacet2DVar [Section:Experiment]
    Value/
    Default/
    TypeString
    Options/
    InstructionFacet2DVar: Set the comma-separated list of facet-members to assing to the 'UniqueGroups'
    Elaboration[Facet2D==TRUE]\nClarification: The entries you specified for 'UniqueGroups' must each match a single entry in this list as well
    +
    +
    +

    GroupsOrderX

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterGroupsOrderX [Section:Experiment]
    ValueUU,G14,G21,G28,G35,G42
    DefaultUU,G14,G21,G28,G35,G42
    TypeString
    Options/
    InstructionGroupsOrderX: Set the comma-separated order of groups in the plots along X-axis
    ElaborationOrder the Groups along the X-Axis. Groups are ordered left to right
    +
    +
    +

    GroupsOrderY

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterGroupsOrderY [Section:Experiment]
    Value/
    Default/
    TypeString
    Options/
    InstructionGroupsOrderY: Set the comma-separated order of groups in the plots along Y-Axis (only for facetting)
    Elaboration[Facet2D==TRUE]\nOrder the Groups along the Y-Axis. Groups are ordered top to bottom.
    +
    +
    +

    Palette_Boxplot

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterPalette_Boxplot [Section:Experiment]
    Valueyellow,orange,orangered,red,darkred,black,white
    Defaultyellow,orange,orangered,red,darkred,black,white
    TypeString
    Optionsw400/
    InstructionPalette_Boxplot: Set the colors for the Summaryplot
    ElaborationColors are assigned regardless of order of the plots, and always in the following order:\nLeft to right, Top to bottom\n\nThis set of colors is responsible for the overview plot
    +
    +
    +

    Palette_Boxplot2

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterPalette_Boxplot2 [Section:Experiment]
    Valuewhite,yellow,orange,orangered,red,darkred,black
    Defaultwhite,yellow,orange,orangered,red,darkred,black
    TypeString
    Optionsw400/
    InstructionPalette_Boxplot2: Set the colors for the daily plots
    ElaborationColors are assigned regardless of order of the plots, and always in the following order:\nLeft to right, Top to bottom\n\nThis set of colors is responsible for the daily plots
    +
    +
    +

    Palette_Lines

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterPalette_Lines [Section:Experiment]
    Valueyellow,orange,orangered,red,darkred,black,black
    Defaultyellow,orange,orangered,red,darkred,black,black
    TypeString
    Optionsw400/
    InstructionPalette_Lines: Set the colors for the Summaryplot
    ElaborationColors are assigned regardless of order of the plots, and always in the following order:\nLeft to right, Top to bottom\n\nThis set of colors is responsible for the overview plot
    +
    +
    +

    Palette_Lines2

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterPalette_Lines2 [Section:Experiment]
    Valueblack,yellow,orange,orangered,red,darkred,black
    Defaultblack,yellow,orange,orangered,red,darkred,black
    TypeString
    Optionsw400/
    InstructionPalette_Lines2: Set the colors for the daily plots
    ElaborationColors are assigned regardless of order of the plots, and always in the following order:\nLeft to right, Top to bottom\n\nThis set of colors is responsible for the daily plots
    +
    +
    +

    PotsPerGroup

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterPotsPerGroup [Section:Experiment]
    Value7
    Default7
    TypeInteger
    Optionsnumber/
    InstructionPotsPerGroup: Set the number of pots per group/combination
    Elaboration[Facet2D==TRUE]\nHere, combination is a combination of a member of 'UniqueGroups' and a member of 'Facet2DVar'
    +
    +
    +

    RefGroup

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterRefGroup [Section:Experiment]
    ValueUU
    DefaultUU
    TypeString
    Options/
    InstructionRefGroup: Set the reference group for all statistical tests
    Elaboration\n[Facet2D==FALSE]\nFor a normal plot, this must be a member of 'UniqueGroups'\n\n[Facet2D==TRUE]\nFor a facetted plot, this must be a combination of 1 member of 'Facet2DVar' and 'UniqueGroups', separated by a dot (.).\nThe order is always '[UniqueGroups_Member].[Facet2DVar_Member]'\nExample:\n'Ungestresst.Unbehandelt'
    +
    +
    +

    UniqueGroups

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterUniqueGroups [Section:Experiment]
    ValueG14,G21,G28,G35,G42,UU
    DefaultG14,G21,G28,G35,G42,UU
    TypeString
    Options/
    InstructionUniqueGroups: Set the comma-separated list of all unique group names
    ElaborationIf you set 'Facet2D' to TRUE, this must have as many entries as 'Facet2DVar'
    +
    +
    +
    +

    1.4.2 2. GeneralConfiguration

    +
    +

    Debug

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterDebug [Section:General]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionDebug: Do you want to print debug information?
    Elaboration
    +
    +
    +

    filename_date_format

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameterfilename_date_format [Section:Experiment]
    Value%d.%m.%Y
    Default%d.%m.%Y
    TypeString
    Options%d.%m.%Y||%Y-%m-%d
    Instructionfilename_date_format: Select the date format for saved files. Editing allowed
    ElaborationDoes not control the date format on the figure. For that, see option 'figure_date_format'.
    +
    +
    +

    Filename_Prefix

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterFilename_Prefix [Section:Experiment]
    ValueGF
    DefaultGF
    TypeString
    Options/
    InstructionFilename_Prefix:
    ElaborationDecide the file-prefix used when saving figures and statistical results.\n\nATTENTION:\nChanging this if files have been generated before will result in those files not\nbeing overwritten so you will end up with an old and a current set of result-\nfiles (images/excel-sheets/RData-files)
    +
    +
    +

    language

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameterlanguage [Section:General]
    ValueEnglish
    DefaultEnglish
    TypeString
    OptionsEnglish||German
    Instructionlanguage: Select language for auto-generated labels
    Elaboration
    +
    +
    +

    Normalise

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterNormalise [Section:Experiment]
    ValueTRUE
    Default1
    Typeboolean
    OptionsTRUE/FALSE
    InstructionNormalise: Do you want to normalise your leaf area?
    ElaborationThis accesses the data-column 'plant_area_normalised'. For more info, check the documentation.
    +
    +
    +

    T0

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterT0 [Section:Experiment]
    Value20230906111832
    Default20230906111832
    TypeString
    Options/
    InstructionT0: Set the T0-date for calculating 'plant-age' for your experiment, in format dd.MM.yyyy (24.12.2023)
    ElaborationThis is relevant mostly for calculating the plant-age plotted on the y-axis.
    +
    +
    +

    used_filesuffix

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameterused_filesuffix [Section:General]
    Valuexlsx
    Defaultxlsx
    TypeString
    Optionsxlsx||csv
    Instructionused_filesuffix: Select the filetype you want to ingest
    Elaboration'xlsx' is recommended. 'csv' was tested, but not as adamantly as xlsx. It should not make any difference, but that is not guaranteed.
    +
    +
    +
    +

    1.4.3 3. Figure

    +
    +

    Name

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterName [Section:Experiment]
    ValueExperiment X
    DefaultExperiment X
    TypeString
    Options/
    InstructionName: Set the name of the Experiment as seen in the figure title
    Elaboration
    +
    +
    +

    PlotMeanLine

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterPlotMeanLine [Section:General]
    ValueTRUE
    Default1
    Typeboolean
    OptionsTRUE/FALSE
    InstructionPlotMeanLine: Do you want to plot the line connecting the means of each group's boxplots?
    Elaboration
    +
    +
    +

    Theme

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterTheme [Section:General]
    Value7
    Default7
    TypeInteger
    OptionsNumber
    InstructionTheme: Choose your default theme.
    Elaboration
    +
    +
    +
    +

    1.4.4 4. Axes

    +
    +

    axis_units_x

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameteraxis_units_x [Section:General]
    ValueTage,days
    DefaultTage,days
    TypeString
    Options/
    Instructionaxis_units_x: Set the unit of the X-axis (for the Overview-plot).
    ElaborationFormat: '[German Text],[English Text]'. Replace a field with "/" to skip it
    +
    +
    +

    axis_units_x_Daily

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameteraxis_units_x_Daily [Section:General]
    Value/,/
    Default/,/
    TypeString
    Options/
    Instructionaxis_units_x_Daily: Set the unit of the X-axis (for the daily plots).
    ElaborationFormat: '[German Text],[English Text]'. Replace a field with "/" to skip it
    +
    +
    +

    axis_units_y

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameteraxis_units_y [Section:General]
    Valuecm^2,cm^2
    Defaultcm^2,cm^2
    TypeString
    Options/
    Instructionaxis_units_y: Set the unit of the Y-axis (for the Overview-plot).
    ElaborationFormat: '[German Text],[English Text]'. Replace a field with "/" to skip it
    +
    +
    +

    axis_units_y_Daily

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameteraxis_units_y_Daily [Section:General]
    Valuecm^2,cm^2
    Defaultcm^2,cm^2
    TypeString
    Options/
    Instructionaxis_units_y_Daily: Set the unit of the Y-axis (for the daily plots).
    ElaborationFormat: '[German Text],[English Text]'. Replace a field with "/" to skip it
    +
    +
    +

    BreakStepSize

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterBreakStepSize [Section:Experiment]
    Value25
    Default25
    Typenumber
    Options/
    InstructionBreakStepSize: Set the spacing between numbered breaks on the Y-Axis. Requires ForceAxes=T
    Elaboration
    +
    +
    +

    figure_date_format

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameterfigure_date_format [Section:Experiment]
    Value%d.%m.%Y
    Default%d.%m.%Y
    TypeString
    Options%d.%m.%Y||%Y-%m-%d
    Instructionfigure_date_format: Select the date format for dates on the x-axis or in titles. Editing allowed
    Elaboration[RelativeColNames==TRUE]\nDoes not take effect\n\n\n[RelativeColNames==FALSE]\nSet the format for dates on the x-axis\n\nDoes not control the date format for the saved files. For that, see option 'filename_date_format'.
    +
    +
    +

    ForceAxes

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterForceAxes [Section:Experiment]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionForceAxes: Do you want to force the Y-Axis scaling? This requires setting 'YLimits'
    Elaboration
    +
    +
    +

    RelativeColnames

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterRelativeColnames [Section:General]
    ValueTRUE
    Default1
    Typeboolean
    OptionsTRUE/FALSE
    InstructionRelativeColnames: Do you want to display the X-positions as 'days since T0'?
    Elaboration
    +
    +
    +

    ShowBothColnames

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowBothColnames [Section:General]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionShowBothColnames: Do you want to display the X-positions as 'days since T0 - date'?
    Elaboration
    +
    +
    +

    XLabel

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterXLabel [Section:Experiment]
    ValueTime since repotting
    DefaultTime since repotting
    TypeString
    Options/
    InstructionXLabel: Set the xlabel-string for the summary plot.
    Elaboration
    +
    +
    +

    XLabel_Daily

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterXLabel_Daily [Section:Experiment]
    ValueTreatment Groups
    DefaultTreatment Groups
    TypeString
    Options/
    InstructionXLabel_Daily: Set the xlabel-string for the daily analyses.
    Elaboration
    +
    +
    +

    YLabel

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterYLabel [Section:Experiment]
    Valuegreen plant area
    Defaultgreen plant area
    TypeString
    Options/
    InstructionYLabel: Set the ylabel-string for the summary plot and daily analyses.
    Elaboration
    +
    +
    +

    YLimits

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterYLimits [Section:Experiment]
    Value0,150
    Default0,150
    TypeString
    Options/
    InstructionYLimits: Set the minimum and maximum limit for the Y-Axis. Does not take effect if 'ForceAxes' is false. Used for all plots
    Elaboration
    +
    +
    +
    +

    1.4.5 5. Statistics and its displaying

    +
    +

    PlotSampleSize

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterPlotSampleSize [Section:General]
    ValueTRUE
    Default1
    Typeboolean
    OptionsTRUE/FALSE
    InstructionPlotSampleSize: Do you want to plot the sample size of each group's boxplots?
    Elaboration
    +
    +
    +

    ShowNAtallboxplots

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowNAtallboxplots [Section:General]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionShowNAtallboxplots: Do you want to print 'n=XX' above every boxplot in the daily plots?
    Elaboration[ShowNAtallboxplot==TRUE]:\nThe Sample size is printed above every day.\nThis is generally not recommended as it will become cluttered with increasing number of days.\n\n[ShowNAtallboxplot==FALSE]\nDo not print sample sizes above every day. Sample size is displayed via the plot_subtitle element instead (but only if you enable rr)
    +
    +
    +

    ShowOnlyIrregularN

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowOnlyIrregularN [Section:General]
    ValueTRUE
    Default1
    Typeboolean
    OptionsTRUE/FALSE
    InstructionShowOnlyIrregularN: Do you want to only plot sample sizes which differ from 'PotsPerGroup'?
    ElaborationRequires also ticking 'PlotSampleSize'
    +
    +
    +
    +

    1.4.6 6. Fontsizes

    +
    +

    Fontsize_PValue

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterFontsize_PValue [Section:Fontsizes]
    Value2.500000
    Default2.5
    Typenumber
    Options/
    InstructionFontsize_PValue: Set the fontsize for the p-values in the daily plots
    ElaborationNote that the zeros can be omitted in principle, but are a side-effect of the validation used. You can ignore them.
    +
    +
    +

    Fontsize_SampleSize

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterFontsize_SampleSize [Section:Fontsizes]
    Value2.500000
    Default2.5
    Typenumber
    Options/
    InstructionFontsize_SampleSize: Set the fontsize for the sample size in the daily plots
    ElaborationNote that the zeros can be omitted in principle, but are a side-effect of the validation used. You can ignore them.
    +
    +
    +
    +

    1.4.7 7. Titles

    +
    +

    DebugText

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterDebugText [Section:General]
    Value"Setting [DEBUG==TRUE]" in section '2. General Configuration' will overwrite any settings made in this section"
    Default"Setting [DEBUG==TRUE]" in section '2. General Configuration' will overwrite any settings made in this section"
    Typetext
    Options/
    InstructionSetting [DEBUG==TRUE] in section '2. General Configuration' will overwrite any settings made in this section
    Elaboration
    +
    +
    +

    ShowTitle

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowTitle [Section:General]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionShowTitle: Do you want to show the title above the summary plot?
    Elaboration
    +
    +
    +

    ShowTitle_Daily

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowTitle_Daily [Section:General]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionShowTitle_Daily: Do you want to show the title above the daily plots?
    Elaboration
    +
    +
    +

    ShowTitleDateWhere

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowTitleDateWhere [Section:General]
    ValueSubTitle
    DefaultSubTitle
    TypeString
    OptionsTitle|SubTitle||nowhere
    InstructionShowTitleDateWhere: Select if the date (range) should be appended to the end of the title- or subtitle-element.
    ElaborationFor date-format, see key 'figure_date_format' under section '4. Axes'\n\n[ShowTitle==FALSE]\nNo effect.
    +
    +
    +

    ShowTitleSub

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowTitleSub [Section:General]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionShowTitleSub: Do you want to show the sub-title above the summary plot?
    Elaboration
    +
    +
    +

    ShowTitleSub_Daily

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterShowTitleSub_Daily [Section:General]
    ValueFALSE
    Default0
    Typeboolean
    OptionsTRUE/FALSE
    InstructionShowTitleSub_Daily: Do you want to show the sub-title above the daily plots?
    Elaboration
    +
    +
    +

    Title

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterTitle [Section:General]
    Value/
    Default/
    TypeString
    Options/
    InstructionTitle: Enter the title you want to use for the summary plot. Leave empty to use the default title.
    ElaborationNote that the respective days' date is appended to either the title or subtitle, depending on what you choose under 'ShowTitleDateWhere'.
    +
    +
    +

    Title_Daily

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterTitle_Daily [Section:General]
    Value/
    Default/
    TypeString
    Options/
    InstructionTitle_Daily: Enter the title you want to use for the daily plots. Leave empty to use the default title.
    ElaborationNote that the respective days' date is appended to either the title or subtitle, depending on what you choose under 'ShowTitleDateWhere'.
    +
    +
    +

    TitleSub

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterTitleSub [Section:General]
    Value/
    Default/
    TypeString
    Options/
    InstructionTitleSub: Enter the sub-title you want to use for the summary plot. Leave empty to use the default sub-title.
    ElaborationNote that the respective days' date is appended to either the title or subtitle, depending on what you choose under 'ShowTitleDateWhere'.
    +
    +
    +

    TitleSub_Daily

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterTitleSub_Daily [Section:General]
    Value/
    Default/
    TypeString
    Options/
    InstructionTitleSub_Daily: Enter the sub-title you want to use for the daily plots. Leave empty to use the default sub-title.
    ElaborationNote that the respective days' date is appended to either the title or subtitle, depending on what you choose under 'ShowTitleDateWhereA'.
    +
    +
    +
    +
    +
    +

    2 GFA_Evaluation.R

    +
    +

    2.1 Setup

    +

    The script can also be used without the configurator explained so far.

    +
    +
    +
    +
    +

    +
    Example folder structure. The names of the folders do not matter. Note the file ‘GFA_conf.ini’ in the directory. This configures the behaviour of the script and is necessary to run the script.
    +
    +
    +
    +
    +

    Below you will find an example script

    +
    +
    +Code +
    # do not run, show
    +get_os <- function(){
    +    sysinf <- Sys.info()
    +    if (!is.null(sysinf)){
    +        os <- sysinf['sysname']
    +        if (os == 'Darwin')
    +            os <- "osx"
    +    } else { ## mystery machine
    +        os <- .Platform$OS.type
    +        if (grepl("^darwin", R.version$os))
    +            os <- "osx"
    +        if (grepl("linux-gnu", R.version$os))
    +            os <- "linux"
    +    }
    +    return(tolower(os))
    +}
    +source("D:/Dokumente neu/Repositories/Grünflächen-Utilities/GFA_Evaluation.R")
    +if (isTRUE(as.logical(get_os()=='windows'))) { # this is an optimistic approach to the problem, I won't try to anticipate all possible OS-names # WINDOWS:
    +    GFA_2 <- GFA_main(folder_path = r"(D:\Dokumente neu\Obsidian NoteTaking\The Universe\200 University\06 Interns and Unis\BE28 Internship Report\assets\Exp2.3\GFA\GFA_conf.ini)",returnDays = 0,saveFigures = 0,saveExcel = 0,saveRDATA = 0)
    +} else {    # MAC:
    +    GFA_2 <- GFA_main(folder_path = r"(D:\Dokumente neu\Obsidian NoteTaking\The Universe\200 University\06 Interns and Unis\BE28 Internship Report\assets\Exp2.3\GFA\GFA_conf.ini)",returnDays = 0,saveFigures = 0,saveExcel = 0,saveRDATA = 0)
    +}
    +## do not clear your workspace between the calls to `source()` and `GFA_main()`. If you absolutely MUST, only clear your worspace after GFA_main() has returned its output and you no longer need its results, or selectively clear variables. Clearing the workspace inbetween these two points will render the script useless.
    +
    +
    +

    Which results in the following plot

    +
    +
    +
    +
    +

    +
    Experiment 2: Plant-area development for different drought stress periods and field capacities, 07 - 63 days post repotting. The determined area consists of green and yellow pixels. The solid black line marks the begin of the stress differentiation and the end of the initial drought stress period. Dotted lines mark the end of the stress differentiation period and the return to a supply of 90% FC for the respective stress group. (n=8)
    +
    +
    +
    +
    +
    +
    +

    2.2 Error Handling and restrictions

    +

    Most aspects of the R-Script are handled on a trust-first basis, but certain things are validated as required. If checks are not passed, the script will stop by throwing a distinct error-message (red text in Console). In this case, the issue must be resolved to allow the script to function.
    +There are also notifications which are displayed as warnings (yellow text). These contain information on internal deviations to the given configurations, or generally inform the user that something might behave different than the settings would indicate. The difference here is that they are performed automatically, are conservative and usually required to obtain acceptable results.

    +
    +
    +Code +
    Error: GFA_main() [user-defined]: Task: loading configuration from ini-file,1
    +The configuration file ('C:\Users\Claudius Main\Desktop\TempTemporal\Exp2.3_GFA_fixedValuesfor1007\GFA_conf.ini')
    +could not be loaded. The best assumption for its file-encoding is UTF-16LE, but using this returned an empty object.
    +Please double-check the encoding of the configuration-file
    +
    +
    +

    Beyond this, by functionality this script does not deviate from the steps taken in the original script this was derived from.

    +
    +
    +
    +

    3 Requirements

    +

    Full functionality requires:

    +
      +
    • GFA-Grünflächen-Configurator: +
    • +
    • csv2xlsx: Requires installation of Microsoft Excel. Will not function instead. +
        +
      • as a submodule of the above-mentioned configurator, it requires the same access rights.
      • +
    • +
    • GFA_Evaluation.R Installation of R, and respectively required packages (will be loaded by the R-script via library) - usable on any operating system
    • +
    +
    +
    +

    4 License

    +

    See accompanying license file. License of used code can be found in dist\res\CombinedLicenses.txt, as best as could be retrieved.

    +
    + + +

    Reuse

    MIT License \n\n\r\rCopyright (c) 2023 Gewerd Strauss \n\n\r\rPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: \n\n\r\rThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. \n\n\r\rTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    + + +
    + + + + \ No newline at end of file