brndel / surviz

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SurViz

SurViz is a tool for better visualizing stated choice surveys.

Usage

Tip

See notes/User_guide or Help window for detailed explanation

Supported file types

Input

Simulation data

Icons

  • .png
  • .svg

Output

  • .png (whole situation or individual options)
  • .html for Unipark

Internal Configuration

ImageGenerator

The layout of the generated images can further be configured by changing the values in image_generator.properties.

Warning

Changes to these values can lead to distorted images and improper functioning of the program.

The layout is based per single option in a situation. The general layout of an option is as follows:

General layout

Green and blue area are representing the single value/timeline section. Further layout of those areas is explained in corresponding sections.

Nr. Identifier/Calculation Description Unit
1 set by user; default=situation_default_width width px
2 situation_height height px
3 border_padding border padding px
4 $2 \times$ column_padding padding around divider line px
5 $max($ single_value_min_width $,count(single values) \times$ single_value_size $)$ width of single value section px
6 $\text{width}-2\times$ border_padding $-2\times$ column_padding $-\text{width of single value section}$ width of timeline section px

Other general adjustments that can be made:

Identifier Description Unit
background_color background color ARGB value in hex
divider_weight thickness of divider line pt
divider_color color of divider line ARGB value in hex

Single value section

Single value layout

Nr. Identifier/Calculation Description Unit
7 single_value_size size of each single value column px
8 single_value_y_offset middle offset from center line px
9 single_value_text_padding padding between center line and top pixel of text px
10 single_value_icon_padding padding between center line and icon px

Other adjustments that can be made:

Identifier Description Unit
single_value_alpha alpha value of single values with value $0$ float between 0-1

Other identifiers

Nr. Description
11 Icon
12 Text

Timeline section

Timeline layout

Nr. Identifier/Calculation Description Unit
13 timeline_y_offset offset from center line px
14 timeline_divider_height height of divider between timeline sections px
15 timeline_padding padding of text and icons from timeline px
16 timeline_icon_size width and height of icon px
17 $\text{value of section}\times \text{timeline scaling}$; default=timeline_default_scaling length of timeline section px

Other adjustments that can be made:

Identifier Description Unit
timeline_weight line thickness of timeline pt

Adding features

Importer

To add an Importer to support a new file type simply create a class that implements the Importer interface. For the new Importer to be recognized by the rest of the program add YourImporter to ImporterVariant:

enum class ImporterVariant(private val importer: Importer) {
	Ngene(NgeneImporter),
	//....
	YourFileFormat(YourImporter),
	//....
}

Exporter

Similar to adding an Importer, you just have to implement the Exporter interface. With getFields() the exporter can request inputs from the user for configuration. export, as the name implies, is called when the user wants to export. For the exporter to be shown in the UI, simply add YourExporter to ExporterVariant:

enum class ExporterVariant(private val exporter: Exporter) {
	//....
	YourExporterName(YourExporter),
}

About

License:GNU General Public License v3.0


Languages

Language:Kotlin 100.0%