A little while ago, Darwin Darakananda contributed an implementation of a 
contouring algorithm to Gadfly 
<https://github.com/dcjones/Gadfly.jl/issues/293#issuecomment-45709799>, to 
facilitate plotting contour lines similar to MATLAB’s or PyPlot’s contour 
routines. Since I had use for this functionality outside of plotting, I 
suggested we’d package the algorithm separately - said and done 
<https://github.com/tlycken/Contour.jl>.

However, before we release this package officially and add it to METADATA, 
there’s a decision that needs to be made where we want some input from the 
community:

*What is the best convention for the function data matrix in a contouring 
method?*

Basically, the problem is to represent 2D-data f(x,y) given two iterables x 
and y with the coordinates on the grid points, and a matrix z with the 
corresponding values of f(x,y), and there are two co-existing conventions 
for this in the wild today:

1) z[xi, yi] = f(x,y), used by e.g. CoordInterpGrid in Grid.jl 
<https://github.com/timholy/Grid.jl>

2) z[yi, xi] = f(x,y), used by e.g. contouring routines in MATLAB and 
Python.

Personally, I’ve always found the second convention confusing, and I almost 
always have to transpose my data matrices to get the plots to look right. 
But I realize that doing something different than what other languages do 
might be equally confusing for others.

*(We have thought a little about cache-friendliness, but the current 
implementation of the algorithm doesn’t traverse the matrix in a way that’s 
possible to make cache-friendly anyway, so that’s not an argument for or 
against either convention at the moment.)* 

Please, voice your opinions here or on Github 
<https://github.com/tlycken/Contour.jl/issues/2>. We’ll make a decision as 
soon as there seems to be consensus (or if consensus seems unlikely, we’ll 
make one anyway…).

// Tomas
​

Reply via email to