|
From: Philipp K. J. <ja...@ie...> - 2007-10-24 23:02:21
|
On Wednesday 24 October 2007 12:10, you wrote: > Philipp K. Janert wrote: > > Now, the real question is, what are the relative > > advantages for different choices of w(d)? > > Well, the primary advantage of the current choice is that it _is_ the > current choice. dgrid3d must have been in gnuplot for over a decade > now. Changing it now would require careful consideration to ensure > backward compatibility. That's a good point. What kind of things do are you thinking of that depend on the current implementation? Changing the weight function does not seem to break any existing code, as far as I can see. The best way forward might be to put the choice into the hands of the USER anyway. We can add an option to dgrid3d which selects the filter, defaulting to the current one (this would guarantee that the behaviour of existing gnuplot scripts does not change. > > > What > > I am missing most strongly in the current > > implementation is a way to control the radius > > over which data points are averaged to form > > the smooth approximation - control over the > > "band width" of the low pass filter. > > Well, as I said before, there is no such radius, thus nothing to be > controlled. OTOH, that's how the algorithm manages to work without > knowing anything about the data. Yes, that's true. But I think that's exactly what would be nice to have - to put the ability to control the range into the hands of users, who DO know their data! For example, if I know that my data is very smooth, but not on a grid, I might want to use dgrid3d with a small averaging range, just to get a surface drawn. But when I know my data to be noisy, I might want to have a wide averaging range, to get some of the noise out. The point is that putting control into the hands of the user allows the user to get more value out of the tool. (We can still provide the current behaviour as default, so there is no change unless requested.) > I.e. the algorithm is invariant under > some rescaling of the input. The surface generated by dgrid3d for > > splot 'data' using ($1*s_xy):($2*s_xy):($3*s_z) > > looks the same for any s_xy and s_z (setting aside different choices by > the autoscaling algorithm). Only if you scale x and y differently, the > result changes. One aspect where this helps is that you don't have to > adjust the settings for every plot. > > Maybe it's the wording in the documentation that's misleading here. > dgrid3d is a kind of low pass filter, but it's a rather different kind > than you're used to. It's sort of an auto-adjusting low-pass filter. > It has no predefined limiting frequency. |