[GRASS-SVN] r34625 - grass/trunk/imagery/i.ifft

svn_grass at osgeo.org svn_grass at osgeo.org
Sat Nov 29 12:42:59 EST 2008


Author: martinl
Date: 2008-11-29 12:42:59 -0500 (Sat, 29 Nov 2008)
New Revision: 34625

Modified:
   grass/trunk/imagery/i.ifft/main.c
Log:
i.ifft: use standardized options
       message standardization


Modified: grass/trunk/imagery/i.ifft/main.c
===================================================================
--- grass/trunk/imagery/i.ifft/main.c	2008-11-29 17:31:02 UTC (rev 34624)
+++ grass/trunk/imagery/i.ifft/main.c	2008-11-29 17:42:59 UTC (rev 34625)
@@ -1,3 +1,21 @@
+
+/****************************************************************************
+ *
+ * MODULE:       i.ifft
+ * AUTHOR(S):    David B. Satnik and Ali R. Vali (original contributors),
+ *               Markus Neteler <neteler itc.it>
+ *               Bernhard Reiter <bernhard intevation.de>, 
+ *               Brad Douglas <rez touchofmadness.com>, 
+ *               Glynn Clements <glynn gclements.plus.com>
+ * PURPOSE:      processes the real and imaginary Fourier
+ *               components in frequency space and constract raster map
+ * COPYRIGHT:    (C) 1999-2008 by the GRASS Development Team
+ *
+ *               This program is free software under the GNU General Public
+ *               License (>=v2). Read the file COPYING that comes with GRASS
+ *               for details.
+ *
+ *****************************************************************************/
 /*
    Central Washington University GIS Laboratory
    Programmer: David B. Satnik
@@ -55,35 +73,23 @@
 
     /* Set description */
     module = G_define_module();
-    module->keywords = _("imagery");
+    module->keywords = _("imagery, FFT");
     module->description =
 	_("Inverse Fast Fourier Transform (IFFT) for image processing.");
 
     /* define options */
-    opt.real = G_define_option();
+    opt.real = G_define_standard_option(G_OPT_R_INPUT);
     opt.real->key = "real_image";
-    opt.real->type = TYPE_STRING;
-    opt.real->required = YES;
-    opt.real->multiple = NO;
-    opt.real->gisprompt = "old,cell,raster";
-    opt.real->description = _("Input raster map (image fft, real part)");
+    opt.real->description = _("Name of input raster map (image fft, real part)");
 
-    opt.imag = G_define_option();
+    opt.imag = G_define_standard_option(G_OPT_R_INPUT);
     opt.imag->key = "imaginary_image";
-    opt.imag->type = TYPE_STRING;
-    opt.imag->required = YES;
-    opt.imag->multiple = NO;
-    opt.imag->gisprompt = "old,cell,raster";
-    opt.imag->description = _("Input raster map (image fft, imaginary part");
+    opt.imag->description = _("Name of input raster map (image fft, imaginary part");
 
-    opt.orig = G_define_option();
+    opt.orig = G_define_standard_option(G_OPT_R_OUTPUT);
     opt.orig->key = "output_image";
-    opt.orig->type = TYPE_STRING;
-    opt.orig->required = YES;
-    opt.orig->multiple = NO;
-    opt.orig->gisprompt = "new,cell,raster";
-    opt.orig->description = _("Output inverse raster map after IFFT");
-
+    opt.orig->description = _("Name for output raster map");
+    
     /*call parser */
     if (G_parser(argc, argv))
 	exit(EXIT_FAILURE);
@@ -95,11 +101,13 @@
     /* open input raster map */
     realfd = G_open_cell_old(Cellmap_real, "");
     if (realfd < 0)
-	G_fatal_error(_("Unable to open real input map <%s>"), Cellmap_real);
+	G_fatal_error(_("Unable to open raster map <%s>"),
+		      Cellmap_real);
 
     imagfd = G_open_cell_old(Cellmap_imag, "");
-    if (imagfd < 0)
-	G_fatal_error(_("Unable to open imaginary input map <%s>"), Cellmap_imag);
+    if (imagfd < 0)	
+	G_fatal_error(_("Unable to open raster map <%s>"),
+		      Cellmap_imag);
 
     /* get and compare the original window data */
     G_get_cellhd(Cellmap_real, "", &realhead);
@@ -113,7 +121,7 @@
 	realhead.west   != imaghead.west   ||
 	realhead.ew_res != imaghead.ew_res ||
 	realhead.ns_res != imaghead.ns_res)
-	G_fatal_error(_("The real and imaginary original windows did not match."));
+	G_fatal_error(_("The real and imaginary original windows did not match"));
 
     G_set_window(&realhead);	/* set the window to the whole cell map */
 
@@ -135,16 +143,19 @@
 #define C(i, j) ((i) * cols + (j))
 
     /* Read in cell map values */
-    G_message(_("Reading the raster maps..."));
+    G_message(_("Reading raster maps..."));
     for (i = 0; i < rows; i++) {
 	if (G_get_d_raster_row(realfd, cell_real, i) < 0)
-	    G_fatal_error(_("Error while reading real input raster map."));
+	    G_fatal_error(_("Unable to read raster map <%s> row %d"),
+			  Cellmap_real, i);
 	if (G_get_d_raster_row(imagfd, cell_imag, i) < 0)
-	    G_fatal_error(_("Error while reading imaginary input raster map."));
+	    G_fatal_error(_("Unable to read raster map <%s> row %d"),
+			  Cellmap_imag, i);
 	for (j = 0; j < cols; j++) {
 	    data[C(i, j)][0] = cell_real[j];
 	    data[C(i, j)][1] = cell_imag[j];
 	}
+	G_percent(i+1, rows, 2);
     }
 
     /* close input cell maps */
@@ -152,7 +163,7 @@
     G_close_cell(imagfd);
 
     /* Read in cell map values */
-    G_message(_("Masking the raster maps..."));
+    G_message(_("Masking raster maps..."));
     maskfd = G_maskfd();
     if (maskfd >= 0) {
 	maskbuf = G_allocate_cell_buf();
@@ -165,6 +176,7 @@
 		    data[C(i, j)][1] = 0.0;
 		}
 	    }
+	    G_percent(i+1, rows, 2);
 	}
 
 	G_close_cell(maskfd);
@@ -185,7 +197,7 @@
     } while (0)
 
     /* rotate the data array for standard display */
-    G_message(_("Rotating data arrays..."));
+    G_message(_("Rotating data..."));
     for (i = 0; i < rows; i++)
 	for (j = 0; j < cols / 2; j++)
 	    SWAP2(C(i, j), C(i, j + cols / 2));
@@ -196,18 +208,22 @@
     /* perform inverse FFT */
     G_message(_("Starting Inverse FFT..."));
     fft2(1, data, totsize, cols, rows);
-    G_message(_("Inverse FFT completed..."));
 
     /* open the output cell map */
     if ((outputfd = G_open_fp_cell_new(Cellmap_orig)) < 0)
-	G_fatal_error(_("Unable to open output map <%s>"), Cellmap_orig);
+	G_fatal_error(_("Unable to create raster map <%s>"),
+		      Cellmap_orig);
 
+
     /* Write out result to a new cell map */
-    G_message(_("Writing output map..."));
+    G_message(_("Writing raster map <%s>..."),
+	      Cellmap_orig);
     for (i = 0; i < rows; i++) {
 	for (j = 0; j < cols; j++)
 	    cell_real[j] = data[C(i, j)][0];
 	G_put_d_raster_row(outputfd, cell_real);
+
+	G_percent(i+1, rows, 2);
     }
 
     G_close_cell(outputfd);
@@ -220,7 +236,7 @@
     /* Release memory resources */
     G_free(data);
 
-    G_done_msg(_("Transform successful."));
+    G_done_msg(" ");
 
     exit(EXIT_SUCCESS);
 }



More information about the grass-commit mailing list