rasteraccess.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/usr/bin/env python
  2. """
  3. Run within GRASS session
  4. Run this before starting python to append module search path:
  5. @code
  6. export PYTHONPATH=/usr/src/grass70/swig/python
  7. @endcode
  8. Check with "import sys; sys.path"
  9. or:
  10. @code
  11. sys.path.append("/usr/src/grass70/swig/python")
  12. @endcode
  13. \todo install the grass bindings in $GISBASE/lib/ ?
  14. """
  15. import os, sys
  16. from grass.lib import grass
  17. if not os.environ.has_key("GISBASE"):
  18. print "You must be in GRASS GIS to run this program."
  19. sys.exit(1)
  20. if len(sys.argv)==2:
  21. input = sys.argv[1]
  22. else:
  23. input = raw_input("Raster Map Name? ")
  24. # initialize
  25. grass.G_gisinit('')
  26. # find map in search path
  27. mapset = grass.G_find_cell2(input, '')
  28. # determine the inputmap type (CELL/FCELL/DCELL) */
  29. data_type = grass.G_raster_map_type(input, mapset)
  30. infd = grass.G_open_cell_old(input, mapset)
  31. inrast = grass.G_allocate_raster_buf(data_type)
  32. rown = 0
  33. while True:
  34. myrow = grass.G_get_raster_row(infd, inrast, rown, data_type)
  35. print rown, myrow[0:10]
  36. rown += 1
  37. if rown == 476:
  38. break
  39. grass.G_close_cell(inrast)
  40. grass.G_free(cell)