mrclean

package module
v0.0.0-...-3f2acf5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 31, 2014 License: BSD-2-Clause Imports: 9 Imported by: 18

README

mrclean

Visualization is a key step in scientific analysis and understanding in many fields. Scientific studies often require development of software that produces visualizations. However, as a study proceeds, the software evolves, and both developers and expert users have to periodically ascertain how code modifications affect visualization output and hence the results of the study. To our knowledge, no current visualization framework enables tracking and comparison of the lineage of scientific visualizations. We describe an approach for comparing and maintaining the code for scientific analysis and modeling through interactive comparison of visualization output. We have realized this approach in a tool called Mr. Clean. This tool provides a framework for combining different visualization tools, interaction devices, and display middleware for visual comparisons on highresolution displays. Mr. Clean also provides user-configurable interactions supported by many devices. We provide use cases and a requirement analysis for our approach, and we describe the design and implementation of Mr. Clean.

Mr. Clean docs here

Documentation

Overview

mrclean is a library and tool to show images on the Tromsø display wall for the purpose of data cleaning.

The code is divide in a library, mrclean, and few executables that are the Mr. Clean components. The components must start in the right order: chronicle, core, display and gesture. All the components need a config file, default is config.json, to be properly configured. Using different configurations for the different components will break things. Running all the components form the same directory will, by default, use the same configuration. The mrcrun executable find in the cmd directory is a convenience tool to run all the components in the right order.

The mrcrun tool is still a WIP and uses some dirty timing hacks: USE AT YOUR OWN RISK!!

Different examples of config.json are in the repository. In the cmd/gesture dir there is one with some gesture configuration examples. The config file is a key/value storage. So far there are only two element stored layers, and circles. Layers represent the depth of the watch directory and the name of the metadata assigned by the user. It has to be a string containing the metaata concatenated by a path separator, on unix systems "/". Circles represents the circle gestures recognized by the gesture component. The value of the circles key object is a list of objects containig the parameter of the circles to be recognized, for example:

	{
		"clockwise": true,
		"rounds": 2,
		"layout": "Group",
		"order": "number/color/shape/name"
    }

The layout can be for now only Group or Sort. The order has to be a combination of the layers.

Index

Constants

View Source
const (
	MInput = "input"
	MCmd   = "command"
)

messgae type

View Source
const (
	ImageMsg = "ImageData"
	SortMsg  = "SortData"
)
View Source
const (
	CoreAddr      string = ":32123"
	ChronicleAddr string = ":32124"
	DisplayAddr   string = ":32125"
)

ports for the components

Variables

View Source
var (
	LB *net.UDPAddr = &net.UDPAddr{

		IP:   net.ParseIP("127.0.0.1"),
		Port: 32123,
	}
	Mcast *net.UDPAddr = &net.UDPAddr{

		IP:   net.ParseIP("224.0.0.3"),
		Port: 32123,
	}
	//Mcast          string = "224.0.0.3:32123"
	DisplayCloudWS = "ws://10.1.255.77:8088/ws_rpc_events"
)

Functions

func JoinMcast

func JoinMcast(group net.IP) (*net.UDPConn, error)

func McastInterfaces

func McastInterfaces() ([]net.Interface, error)

func ReadConfig

func ReadConfig(fname string) (map[string]interface{}, error)

Types

type ByApproach

type ByApproach struct{ Images }

sort by Approach

func (ByApproach) Less

func (n ByApproach) Less(i, j int) bool

type ByIteration

type ByIteration struct{ Images }

sort by Iteration

func (ByIteration) Less

func (n ByIteration) Less(i, j int) bool

type ByMethod

type ByMethod struct{ Images }

sort by Method

func (ByMethod) Less

func (n ByMethod) Less(i, j int) bool

type ByName

type ByName struct{ Images }

sort by name

func (ByName) Less

func (n ByName) Less(i, j int) bool

type CmdMessage

type CmdMessage struct {
	NewImage *ImageData //*string
	Sort     *SortData
}

type Gesture

type Gesture struct {
	ID    int
	Name  string
	Param []string
}

A Gestue is a gesture performed by a user.

type ImageData

type ImageData struct {
	Name string
	Size [2]int
	URL  string
	//Meta []string
	MetaData
}

type Images

type Images []*ImageData

sorting interface stuff

func (Images) Len

func (i Images) Len() int

partial implementationn of sort.Interface the rest is implementes in the other types

func (Images) Swap

func (i Images) Swap(p, q int)

type InMessage

type InMessage struct {
	Header  string //so fat just a string indicating the kind of message
	Content json.RawMessage
}

type MetaData

type MetaData struct {
	Task      string
	Approach  string
	Iteration string //int
	Method    string
}

func (*MetaData) Parse

func (m *MetaData) Parse(info string) error

func (*MetaData) String

func (m *MetaData) String() string

type OutMessage

type OutMessage struct {
	Header  string      //so fat just a string indicating the kind of message
	Content interface{} //json.RawMessage
}

type SortData

type SortData struct {
	Order []string //int
}

type Visual

type Visual struct {
	//The id of the visual
	ID int
	// The name of the visual
	Name string
	//The rectangle holding proportion and size for the visual in pixels
	Rectangle image.Rectangle
	//The url specifiyng where to find the hvisual
	URL string
	//commit number
	Commit string
	//Metadata associated with the visual
	Meta []string
	//Origin is the handle to move teh Visual
	Origin []float64 //`json:"omitempty"`
	//Size represent the size on screen
	Size []float64 //`json:"omitempty"`
}

Visual represents a visual object to be displaied.

type VisualOrigins

type VisualOrigins struct {
	Vids    []int
	Origins [][]float64
}

func NewVisualOrigins

func NewVisualOrigins() *VisualOrigins

Directories

Path Synopsis
cmd
chronicle
Chronicle is a aomponent that monitors a directory in the file sysems and provide a chronicle of the changes in it.
Chronicle is a aomponent that monitors a directory in the file sysems and provide a chronicle of the changes in it.
cmdsend
send text to cloudgui
send text to cloudgui
core
The core component is the central node managing the other components.
The core component is the central node managing the other components.
display
The display component is a proxy for the technology used to display the images, at this point only DisplayCloud is supported.
The display component is a proxy for the technology used to display the images, at this point only DisplayCloud is supported.
displaycloud provides basic functionality to interact with the DisplayCloud "middleware".
displaycloud provides basic functionality to interact with the DisplayCloud "middleware".
test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL