[GRASS-SVN] r43089 - grass-addons/imagery/i.landsat.acca

svn_grass at osgeo.org svn_grass at osgeo.org
Fri Aug 13 06:34:28 EDT 2010


Author: martinl
Date: 2010-08-13 10:34:28 +0000 (Fri, 13 Aug 2010)
New Revision: 43089

Added:
   grass-addons/imagery/i.landsat.acca/grass7.patch
Log:
i.landsat.acca: patch for GRASS7


Added: grass-addons/imagery/i.landsat.acca/grass7.patch
===================================================================
--- grass-addons/imagery/i.landsat.acca/grass7.patch	                        (rev 0)
+++ grass-addons/imagery/i.landsat.acca/grass7.patch	2010-08-13 10:34:28 UTC (rev 43089)
@@ -0,0 +1,362 @@
+Index: tools.c
+===================================================================
+--- tools.c	(revision 43088)
++++ tools.c	(working copy)
+@@ -4,6 +4,7 @@
+ #include <math.h>
+ #include <unistd.h>
+ #include <grass/gis.h>
++#include <grass/raster.h>
+ #include <grass/glocale.h>
+ 
+ #include "local_proto.h"
+@@ -122,7 +123,7 @@
+ int pval(void * rast, int i)
+ {
+     void * ptr = (void *)((CELL *)rast + i);
+-    if( G_is_c_null_value(ptr) )
++    if( Rast_is_c_null_value(ptr) )
+         return 0;
+     else
+         return (int)((CELL *) rast)[i];
+@@ -138,26 +139,26 @@
+ 
+     Gfile tmp;
+ 
+-    nrows = G_window_rows();
+-    ncols = G_window_cols();
++    nrows = Rast_window_rows();
++    ncols = Rast_window_cols();
+ 
+     if( nrows < 3 || ncols < 3 )
+         return;
+ 
+     /* Open to read */
+-    mapset = G_find_cell2(out->name, "");
++    mapset = G_find_raster2(out->name, "");
+     if (mapset == NULL)
+         G_fatal_error("cell file [%s] not found", out->name);
+-    arast = G_allocate_raster_buf(CELL_TYPE);
+-    brast = G_allocate_raster_buf(CELL_TYPE);
+-    crast = G_allocate_raster_buf(CELL_TYPE);
+-    if ((out->fd = G_open_cell_old(out->name, mapset)) < 0)
++    arast = Rast_allocate_buf(CELL_TYPE);
++    brast = Rast_allocate_buf(CELL_TYPE);
++    crast = Rast_allocate_buf(CELL_TYPE);
++    if ((out->fd = Rast_open_old(out->name, mapset)) < 0)
+         G_fatal_error("Cannot open cell file [%s]", out->name);
+ 
+     /* Open to write */
+     sprintf(tmp.name, "_%d.BBB", getpid()) ;
+-    tmp.rast = G_allocate_raster_buf(CELL_TYPE);
+-    if ((tmp.fd = G_open_raster_new(tmp.name, CELL_TYPE)) < 0)
++    tmp.rast = Rast_allocate_buf(CELL_TYPE);
++    if ((tmp.fd = Rast_open_new(tmp.name, CELL_TYPE)) < 0)
+         G_fatal_error(_("Could not open <%s>"), tmp.name);
+ 
+     fprintf(stdout, "Filling cloud holes ... \n");
+@@ -172,17 +173,12 @@
+         /* Read row values */
+         if (row != 0)
+         {
+-            if (G_get_c_raster_row(out->fd, arast, row - 1) < 0)
+-                G_fatal_error(_("Could not read from <%s>"), out->name);
++	    Rast_get_c_row(out->fd, arast, row - 1);
+         }
+-        if (G_get_c_raster_row(out->fd, brast, row) < 0)
+-        {
+-            G_fatal_error(_("Could not read from <%s>"), out->name);
+-        }
++        Rast_get_c_row(out->fd, brast, row);
+         if (row != (nrows - 1))
+         {
+-            if (G_get_c_raster_row(out->fd, crast, row + 1) < 0)
+-                G_fatal_error(_("Could not read from <%s>"), out->name);
++	    Rast_get_c_row(out->fd, crast, row + 1);
+         }
+         /* Analysis of all pixels */
+         for (col = 0; col < ncols; col++)
+@@ -322,22 +318,19 @@
+             }
+             else
+             {
+-                G_set_c_null_value((CELL *) tmp.rast + col, 1);
++                Rast_set_c_null_value((CELL *) tmp.rast + col, 1);
+             }
+         }
+-        if (G_put_raster_row(tmp.fd, tmp.rast, CELL_TYPE) < 0)
+-        {
+-            G_fatal_error(_("Cannot write to <%s>"), tmp.name);
+-        }
++        Rast_put_row(tmp.fd, tmp.rast, CELL_TYPE);
+     }
+ 
+     G_free(arast);
+     G_free(brast);
+     G_free(crast);
+-    G_close_cell(out->fd);
++    Rast_close(out->fd);
+ 
+     G_free(tmp.rast);
+-    G_close_cell(tmp.fd);
++    Rast_close(tmp.fd);
+ 
+     G_remove("cats", out->name);
+     G_remove("cell", out->name);
+Index: main.c
+===================================================================
+--- main.c	(revision 43088)
++++ main.c	(working copy)
+@@ -19,6 +19,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <grass/gis.h>
++#include <grass/raster.h>
+ #include <grass/glocale.h>
+ 
+ #include "local_proto.h"
+@@ -53,7 +54,7 @@
+     int raster_fd;
+     char *mapset;
+ 
+-    mapset = G_find_cell2(raster_name, "");
++    mapset = G_find_raster2(raster_name, "");
+     if (mapset == NULL) {
+         G_message("cell file [%s] not found", raster_name);
+         return -1;
+@@ -62,19 +63,13 @@
+         G_message("[%s] is an illegal name", raster_name);
+         return -1;
+     }
+-    if ((raster_fd = G_open_cell_old(raster_name, mapset)) < 0) {
++    if ((raster_fd = Rast_open_old(raster_name, mapset)) < 0) {
+         G_message("Cannot open cell file [%s]", raster_name);
+         return -1;
+     }
+-    if (G_get_cellhd(raster_name, mapset, &cellhd) < 0) {
+-        G_message("Cannot read file header of [%s]", raster_name);
+-        return -1;
+-    }
+-    if (G_set_window(&cellhd) < 0) {
+-        G_message("Unable to set region");
+-        return -1;
+-    }
+-    if ((map_type = G_raster_map_type(raster_name, mapset)) != DCELL_TYPE) {
++    Rast_get_cellhd(raster_name, mapset, &cellhd);
++    G_set_window(&cellhd);
++    if ((map_type = Rast_map_type(raster_name, mapset)) != DCELL_TYPE) {
+         G_message("Map is not of DCELL_TYPE");
+         return -1;
+     }
+@@ -166,7 +161,7 @@
+         {
+             G_fatal_error(_("Error in filename [%s]!"), band[i].name);
+         }
+-        band[i].rast = G_allocate_raster_buf(DCELL_TYPE);
++        band[i].rast = Rast_allocate_buf(DCELL_TYPE);
+     }
+ 
+     out_name = output->answer;
+@@ -192,16 +187,16 @@
+     for (i = BAND2; i <= BAND6; i++)
+     {
+         G_free(band[i].rast);
+-        G_close_cell(band[i].fd);
++        Rast_close(band[i].fd);
+     }
+ 
+ //      struct Categories cats;
+ //      G_read_raster_cats(out.name, char *mapset, cats)
+ //      G_write_raster_cats(out.name, &cats);
+ 
+-    G_short_history(out.name, "raster", &history);
+-    G_command_history(&history);
+-    G_write_history(out.name, &history);
++    Rast_short_history(out.name, "raster", &history);
++    Rast_command_history(&history);
++    Rast_write_history(out.name, &history);
+ 
+     exit(EXIT_SUCCESS);
+ }
+Index: algorithm.c
+===================================================================
+--- algorithm.c	(revision 43088)
++++ algorithm.c	(working copy)
+@@ -4,6 +4,7 @@
+ #include <math.h>
+ #include <unistd.h>
+ #include <grass/gis.h>
++#include <grass/raster.h>
+ #include <grass/glocale.h>
+ 
+ #include "local_proto.h"
+@@ -217,8 +218,8 @@
+     double pixel[5], nsdi, rat56, rat45;
+ 
+     /* Creation of output file */
+-    out->rast = G_allocate_raster_buf(CELL_TYPE);
+-    if ((out->fd = G_open_raster_new(out->name, CELL_TYPE)) < 0)
++    out->rast = Rast_allocate_buf(CELL_TYPE);
++    if ((out->fd = Rast_open_new(out->name, CELL_TYPE)) < 0)
+         G_fatal_error(_("Could not open <%s>"), out->name);
+ 
+     /* ----- ----- */
+@@ -229,8 +230,8 @@
+     stats[KMAX] = 0.;
+     stats[KMIN] = 10000.;
+ 
+-    nrows = G_window_rows();
+-    ncols = G_window_cols();
++    nrows = Rast_window_rows();
++    ncols = Rast_window_cols();
+ 
+     for (row = 0; row < nrows; row++)
+     {
+@@ -240,8 +241,7 @@
+         }
+         for (i = BAND2; i <= BAND6; i++)
+         {
+-            if (G_get_d_raster_row(band[i].fd, band[i].rast, row) < 0)
+-                G_fatal_error(_("Could not read row from <%s>"), band[i].name);
++	    Rast_get_d_row(band[i].fd, band[i].rast, row);
+         }
+         for (col = 0; col < ncols; col++)
+         {
+@@ -249,7 +249,7 @@
+             /* Null when null pixel in any band */
+             for ( i = BAND2; i <= BAND6; i++ )
+             {
+-                if (G_is_d_null_value((void *)((DCELL *) band[i].rast + col)))
++                if (Rast_is_d_null_value((void *)((DCELL *) band[i].rast + col)))
+                 {
+                     code = NO_CLOUD;
+                     break;
+@@ -326,22 +326,19 @@
+             }
+             if (code == NO_CLOUD)
+             {
+-                G_set_c_null_value((CELL *) out->rast + col, 1);
++                Rast_set_c_null_value((CELL *) out->rast + col, 1);
+             }
+             else
+             {
+                 ((CELL *) out->rast)[col] = code;
+             }
+         }
+-        if (G_put_raster_row(out->fd, out->rast, CELL_TYPE) < 0)
+-        {
+-            G_fatal_error(_("Cannot write row to <%s>"), out->name);
+-        }
++        Rast_put_row(out->fd, out->rast, CELL_TYPE);
+     }
+     /* ----- ----- */
+ 
+     G_free(out->rast);
+-    G_close_cell(out->fd);
++    Rast_close(out->fd);
+ 
+     return;
+ }
+@@ -358,17 +355,17 @@
+     Gfile tmp;
+ 
+     /* Open to read */
+-    mapset = G_find_cell2(out->name, "");
++    mapset = G_find_raster2(out->name, "");
+     if (mapset == NULL)
+         G_fatal_error("cell file [%s] not found", out->name);
+-    out->rast = G_allocate_raster_buf(CELL_TYPE);
+-    if ((out->fd = G_open_cell_old(out->name, mapset)) < 0)
++    out->rast = Rast_allocate_buf(CELL_TYPE);
++    if ((out->fd = Rast_open_old(out->name, mapset)) < 0)
+         G_fatal_error("Cannot open cell file [%s]", out->name);
+ 
+     /* Open to write */
+     sprintf(tmp.name, "_%d.BBB", getpid()) ;
+-    tmp.rast = G_allocate_raster_buf(CELL_TYPE);
+-    if ((tmp.fd = G_open_raster_new(tmp.name, CELL_TYPE)) < 0)
++    tmp.rast = Rast_allocate_buf(CELL_TYPE);
++    if ((tmp.fd = Rast_open_new(tmp.name, CELL_TYPE)) < 0)
+         G_fatal_error(_("Could not open <%s>"), tmp.name);
+ 
+     if (upper == 0.)
+@@ -376,8 +373,8 @@
+     else
+         fprintf(stdout, "Pass two processing ... \n");
+ 
+-    nrows = G_window_rows();
+-    ncols = G_window_cols();
++    nrows = Rast_window_rows();
++    ncols = Rast_window_cols();
+ 
+     for (row = 0; row < nrows; row++)
+     {
+@@ -385,16 +382,14 @@
+         {
+             G_percent(row, nrows, 2);
+         }
+-        if (G_get_d_raster_row(band.fd, band.rast, row) < 0)
+-            G_fatal_error(_("Could not read from <%s>"), band.name);
+-        if (G_get_c_raster_row(out->fd, out->rast, row) < 0)
+-            G_fatal_error(_("Could not read from <%s>"), out->name);
+-
++        Rast_get_d_row(band.fd, band.rast, row);
++        Rast_get_c_row(out->fd, out->rast, row);
++	
+         for (col = 0; col < ncols; col++)
+         {
+-            if (G_is_c_null_value((void *)((CELL *) out->rast + col)))
++            if (Rast_is_c_null_value((void *)((CELL *) out->rast + col)))
+             {
+-                G_set_c_null_value((CELL *) tmp.rast + col, 1);
++                Rast_set_c_null_value((CELL *) tmp.rast + col, 1);
+             }
+             else
+             {
+@@ -406,7 +401,7 @@
+                     temp = (double)((DCELL *) band.rast)[col];
+                     if (temp > upper)
+                     {
+-                        G_set_c_null_value((CELL *) tmp.rast + col, 1);
++                        Rast_set_c_null_value((CELL *) tmp.rast + col, 1);
+                     }
+                     else
+                     {
+@@ -427,19 +422,16 @@
+                     ((CELL *) tmp.rast)[col] = IS_SHADOW;
+             }
+         }
+-        if (G_put_raster_row(tmp.fd, tmp.rast, CELL_TYPE) < 0)
+-        {
+-            G_fatal_error(_("Cannot write to <%s>"), tmp.name);
+-        }
++        Rast_put_row(tmp.fd, tmp.rast, CELL_TYPE);
+     }
+ 
+     /* Finalización */
+ 
+     G_free(tmp.rast);
+-    G_close_cell(tmp.fd);
++    Rast_close(tmp.fd);
+ 
+     G_free(out->rast);
+-    G_close_cell(out->fd);
++    Rast_close(out->fd);
+ 
+     G_remove("cats", out->name);
+     G_remove("cell", out->name);
+Index: Makefile
+===================================================================
+--- Makefile	(revision 43088)
++++ Makefile	(working copy)
+@@ -2,8 +2,8 @@
+ 
+ PGM = i.landsat.acca
+ 
+-LIBES = $(GISLIB)
+-DEPENDENCIES = $(GISDEP)
++LIBES = $(GISLIB) $(RASTERLIB)
++DEPENDENCIES = $(GISDEP) $(RASTERDEP)
+ 
+ include $(MODULE_TOPDIR)/include/Make/Module.make
+ 



More information about the grass-commit mailing list