[GRASS-SVN] r43178 - grass/branches/develbranch_6/doc/python

svn_grass at osgeo.org svn_grass at osgeo.org
Sat Aug 21 08:14:52 EDT 2010


Author: hamish
Date: 2010-08-21 12:14:52 +0000 (Sat, 21 Aug 2010)
New Revision: 43178

Added:
   grass/branches/develbranch_6/doc/python/raster_example_ctypes.py
Removed:
   grass/branches/develbranch_6/doc/python/example_ctypes.py
Log:
rename to make room for more examples

Deleted: grass/branches/develbranch_6/doc/python/example_ctypes.py
===================================================================
--- grass/branches/develbranch_6/doc/python/example_ctypes.py	2010-08-21 12:08:08 UTC (rev 43177)
+++ grass/branches/develbranch_6/doc/python/example_ctypes.py	2010-08-21 12:14:52 UTC (rev 43178)
@@ -1,94 +0,0 @@
-#!/usr/bin/env python
-
-"""
-This is an example of how to use "ctypes" to access GRASS's C API from
-within a Python script. See the GRASS Programmer's manual for details
-on the e.g. G_*() functions in the GRASS C libraries (libgis et al.).
-
-USAGE:  example_ctypes.py [Raster map name]
-        If a raster map name is not given it will prompt you for one.
-	This raster map is then opened, read, and data values printed
-	to stdout. You may wish to use 'g.region' to set the rows x
-	columns to something small (say 10 x 5) to avoid overwhelming
-	yourself: `g.region rows=10 cols=5`
-"""
-
-
-# FIXME: as an example it should make extensive use of code comments and document
-#  each and every step along the way.  (e.g. explain c_char_p().value memory pointer
-#  to string conversion for Python programmers not familar with C pointers)
-#
-#  FIXME: explain at a basic level what ctypes is & does.
-
-import os, sys, subprocess
-# actiavate ctypes
-from ctypes import *
-
-# check if GRASS is running or not
-if not os.environ.has_key("GISBASE"):
-    print "You must be in GRASS GIS to run this program."
-    sys.exit(1)
-
-# load in the main GRASS C library
-grass = CDLL("libgrass_gis.so")
-
-# parse command line arguements, prompt user for a raster map name if one wasn't given
-if len(sys.argv)==2:
-  input = sys.argv[1]
-else:
-  input = raw_input("Raster Map Name? ")
-
-# initialize the C library
-s = subprocess.Popen(['g.version','-r'], stdout=subprocess.PIPE).communicate()[0]
-for line in s.splitlines():
-    if line.startswith('Revision:'):
-        version = '$' + line + '$'
-grass.G__gisinit(version, '')
-
-
-# find map in search path
-mapset = grass.G_find_cell2(input, '')
-mapset = c_char_p(mapset).value
-
-if not mapset:
-    print "Raster map <%s> not found." % input
-    sys.exit(1)
-
-
-# determine the inputmap type (CELL/FCELL/DCELL)
-data_type = grass.G_raster_map_type(input, mapset)
-
-if data_type == 0:
-    ptype = POINTER(c_int)
-    type_name = 'CELL'
-elif data_type == 1:
-    ptype = POINTER(c_float)
-    type_name = 'FCELL'
-elif data_type == 2:
-    ptype = POINTER(c_double)
-    type_name = 'DCELL'
-
-print "Raster map <%s> contains data type %s." % (input, type_name)
-
-in_fd = grass.G_open_cell_old(input, mapset)
-in_rast = grass.G_allocate_raster_buf(data_type)
-in_rast = cast(c_void_p(in_rast), ptype)
-
-rows = grass.G_window_rows()
-cols = grass.G_window_cols()
-print "Current region is %d rows x %d columns.\n" % (rows, cols)
-
-# iterate through map rows
-print "Map data:"
-for row_n in xrange(rows):
-    # read a row of raster data into memory, then print it
-    grass.G_get_raster_row(in_fd, in_rast, row_n, data_type)
-    print row_n, in_rast[0:cols]
-
-#TODO: NULL -> NaN
-
-
-# closed map and cleanup memory allocation
-grass.G_close_cell(in_fd)
-grass.G_free(in_rast)
-

Copied: grass/branches/develbranch_6/doc/python/raster_example_ctypes.py (from rev 43177, grass/branches/develbranch_6/doc/python/example_ctypes.py)
===================================================================
--- grass/branches/develbranch_6/doc/python/raster_example_ctypes.py	                        (rev 0)
+++ grass/branches/develbranch_6/doc/python/raster_example_ctypes.py	2010-08-21 12:14:52 UTC (rev 43178)
@@ -0,0 +1,94 @@
+#!/usr/bin/env python
+
+"""
+This is an example of how to use "ctypes" to access GRASS's C API from
+within a Python script. See the GRASS Programmer's manual for details
+on the e.g. G_*() functions in the GRASS C libraries (libgis et al.).
+
+USAGE:  example_ctypes.py [Raster map name]
+        If a raster map name is not given it will prompt you for one.
+	This raster map is then opened, read, and data values printed
+	to stdout. You may wish to use 'g.region' to set the rows x
+	columns to something small (say 10 x 5) to avoid overwhelming
+	yourself: `g.region rows=10 cols=5`
+"""
+
+
+# FIXME: as an example it should make extensive use of code comments and document
+#  each and every step along the way.  (e.g. explain c_char_p().value memory pointer
+#  to string conversion for Python programmers not familar with C pointers)
+#
+#  FIXME: explain at a basic level what ctypes is & does.
+
+import os, sys, subprocess
+# actiavate ctypes
+from ctypes import *
+
+# check if GRASS is running or not
+if not os.environ.has_key("GISBASE"):
+    print "You must be in GRASS GIS to run this program."
+    sys.exit(1)
+
+# load in the main GRASS C library
+grass = CDLL("libgrass_gis.so")
+
+# parse command line arguements, prompt user for a raster map name if one wasn't given
+if len(sys.argv)==2:
+  input = sys.argv[1]
+else:
+  input = raw_input("Raster Map Name? ")
+
+# initialize the C library
+s = subprocess.Popen(['g.version','-r'], stdout=subprocess.PIPE).communicate()[0]
+for line in s.splitlines():
+    if line.startswith('Revision:'):
+        version = '$' + line + '$'
+grass.G__gisinit(version, '')
+
+
+# find map in search path
+mapset = grass.G_find_cell2(input, '')
+mapset = c_char_p(mapset).value
+
+if not mapset:
+    print "Raster map <%s> not found." % input
+    sys.exit(1)
+
+
+# determine the inputmap type (CELL/FCELL/DCELL)
+data_type = grass.G_raster_map_type(input, mapset)
+
+if data_type == 0:
+    ptype = POINTER(c_int)
+    type_name = 'CELL'
+elif data_type == 1:
+    ptype = POINTER(c_float)
+    type_name = 'FCELL'
+elif data_type == 2:
+    ptype = POINTER(c_double)
+    type_name = 'DCELL'
+
+print "Raster map <%s> contains data type %s." % (input, type_name)
+
+in_fd = grass.G_open_cell_old(input, mapset)
+in_rast = grass.G_allocate_raster_buf(data_type)
+in_rast = cast(c_void_p(in_rast), ptype)
+
+rows = grass.G_window_rows()
+cols = grass.G_window_cols()
+print "Current region is %d rows x %d columns.\n" % (rows, cols)
+
+# iterate through map rows
+print "Map data:"
+for row_n in xrange(rows):
+    # read a row of raster data into memory, then print it
+    grass.G_get_raster_row(in_fd, in_rast, row_n, data_type)
+    print row_n, in_rast[0:cols]
+
+#TODO: NULL -> NaN
+
+
+# closed map and cleanup memory allocation
+grass.G_close_cell(in_fd)
+grass.G_free(in_rast)
+


Property changes on: grass/branches/develbranch_6/doc/python/raster_example_ctypes.py
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/x-python
Added: svn:mergeinfo
   + 
Added: svn:eol-style
   + native



More information about the grass-commit mailing list