On Tue, Sep 16, 2014 at 08:51:12AM +0200, Mathias Müller wrote:
>
> I tried so, but it still doesn't show up with an image center at (0,0). The
> same data shows a center at (0,0) in the fft module.
>
> thats how I fetch real data and generate the fft data and display them:
>
>
> [code]
> gwy_app_data_browser_get_current(GWY_APP_DATA_FIELD, &data_field, 0);
>
> data_field_fft_r = gwy_data_field_new_alike(data_field, FALSE);
> gwy_data_field_2dfft(data_field,NULL,data_field_fft_r,data_field_fft_i,GWY_WINDOWING_NONE,GWY_TRANSFORM_DIRECTION_FORWARD,GWY_INTERPOLATION_ROUND,TRUE,1)
> ;
> gwy_data_field_fft_postprocess(data_field_fft_r,TRUE) ;
> gwy_data_field_data_changed(data_field_fft_r);
>
> data[1] = gwy_container_new();
> data_view[1] = GWY_DATA_VIEW(gwy_data_view_new(data[1]));
> gwy_data_view_set_data_prefix(data_view[1], "/0/data");
> gwy_container_set_boolean_by_name(data[1], "/0/data/realsquare", TRUE);
> gwy_container_set_int32_by_name(data[1], "/0/base/range-type",
> GWY_LAYER_BASIC_RANGE_FIXED);
> gdouble min, max ;
> gwy_data_field_get_min_max (data_field_fft_r,&min,&max);
> gwy_container_set_double_by_name(data[1], "/0/base/min", 0.1*max);
> gwy_container_set_double_by_name(data[1], "/0/base/max", 0.2*max);
>
>
> g_assert( widget = GTK_WIDGET(gtk_builder_get_object(builder, "viewport2")) );
> gtk_container_add(GTK_CONTAINER(widget), GTK_WIDGET(data_view[1]));
> [/code]
I attach compilable module that shows the 0,0 frequency origin in the
centre for me. I have no idea what you may be doing differently.
Regards,
Yeti
#include <libgwyddion/gwymacros.h>
#include <libprocess/gwyprocess.h>
#include <libgwydgets/gwydgets.h>
#include <libgwymodule/gwymodule-process.h>
#include <app/gwyapp.h>
static gboolean module_register(void);
static void fft_test (GwyContainer *container,
GwyRunType mode);
static GwyModuleInfo module_info = {
GWY_MODULE_ABI_VERSION,
&module_register,
"FFT postprocess test",
"X",
"0.0",
"X",
"2014",
};
GWY_MODULE_QUERY(module_info)
static gboolean
module_register(void)
{
gwy_process_func_register("fft_test",
(GwyProcessFunc)&fft_test,
"/_Test/_FFT Test",
NULL,
GWY_RUN_IMMEDIATE,
GWY_MENU_FLAG_DATA,
"X");
return TRUE;
}
static void
fft_test(GwyContainer *data, GwyRunType run)
{
GtkWidget *window;
GwyDataField *data_field, *data_field_fft_r, *data_field_fft_i;
GwyPixmapLayer *layer;
gdouble min, max;
GwyDataView *data_view;
GwyContainer *mydata;
gwy_app_data_browser_get_current(GWY_APP_DATA_FIELD, &data_field, 0);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
data_field_fft_r = gwy_data_field_new_alike(data_field, FALSE);
data_field_fft_i = gwy_data_field_new_alike(data_field, FALSE);
gwy_data_field_2dfft(data_field, NULL, data_field_fft_r, data_field_fft_i,
GWY_WINDOWING_NONE, GWY_TRANSFORM_DIRECTION_FORWARD,
GWY_INTERPOLATION_ROUND, TRUE, 1);
gwy_data_field_fft_postprocess(data_field_fft_r, TRUE);
gwy_data_field_data_changed(data_field_fft_r);
mydata = gwy_container_new();
gwy_container_set_object_by_name(mydata, "/0/data", data_field_fft_r);
data_view = GWY_DATA_VIEW(gwy_data_view_new(mydata));
gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(data_view));
g_object_unref(mydata);
gwy_data_view_set_data_prefix(data_view, "/0/data");
gwy_container_set_boolean_by_name(mydata, "/0/data/realsquare", TRUE);
layer = gwy_layer_basic_new();
gwy_data_view_set_base_layer(GWY_DATA_VIEW(data_view), layer);
gwy_pixmap_layer_set_data_key(layer, "/0/data");
/* Not necessary for test.
gwy_layer_basic_set_min_max_key(GWY_LAYER_BASIC(layer), "/0/base");
gwy_layer_basic_set_range_type_key(GWY_LAYER_BASIC(layer),
"/0/base/range-type");
gwy_container_set_int32_by_name(mydata, "/0/base/range-type",
GWY_LAYER_BASIC_RANGE_FIXED);
gwy_data_field_get_min_max(data_field_fft_r, &min, &max);
gwy_container_set_double_by_name(mydata, "/0/base/min", 0.1 * max);
gwy_container_set_double_by_name(mydata, "/0/base/max", 0.2 * max);
*/
g_object_unref(data_field_fft_r);
g_object_unref(data_field_fft_i);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_widget_show_all(window);
}
/* vim: set cin et ts=4 sw=4 cino=>1s,e0,n0,f0,{0,}0,^0,\:1s,=0,g1s,h0,t0,+1s,c3,(0,u0 : */
------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce.
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
Gwyddion-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gwyddion-users