d.shadedmap.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #!/usr/bin/env python
  2. #
  3. ############################################################################
  4. #
  5. # MODULE: d.shadedmap
  6. # AUTHOR(S): Unknown; updated to GRASS 5.7 by Michael Barton
  7. # Converted to Python by Glynn Clements
  8. # PURPOSE: Uses d.his to drape a color raster over a shaded relief map
  9. # COPYRIGHT: (C) 2004-2013 by the GRASS Development Team
  10. #
  11. # This program is free software under the GNU General Public
  12. # License (>=v2). Read the file COPYING that comes with GRASS
  13. # for details.
  14. #
  15. #############################################################################
  16. #%module
  17. #% description: Drapes a color raster over a shaded relief map.
  18. #% keywords: display
  19. #% keywords: elevation
  20. #%end
  21. #%option G_OPT_R_INPUT
  22. #% key: reliefmap
  23. #% description: Name of shaded relief or aspect raster map
  24. #%end
  25. #%option G_OPT_R_INPUT
  26. #% key: drapemap
  27. #% description: Name of raster to drape over relief raster map
  28. #%end
  29. #%option
  30. #% key: brighten
  31. #% type: integer
  32. #% description: Percent to brighten
  33. #% options: -99-99
  34. #% answer: 0
  35. #%end
  36. #%option G_OPT_R_OUTPUT
  37. #% description: Create raster map from result (optional)
  38. #% required: no
  39. #%end
  40. import os
  41. import sys
  42. from grass.script import core as grass
  43. from grass.exceptions import CalledModuleError
  44. def main():
  45. drape_map = options['drapemap']
  46. relief_map = options['reliefmap']
  47. brighten = options['brighten']
  48. output_map = options['output']
  49. if output_map:
  50. tmp_base = "tmp_drape.%d" % os.getpid()
  51. tmp_r = tmp_base + '.r'
  52. tmp_g = tmp_base + '.g'
  53. tmp_b = tmp_base + '.b'
  54. grass.run_command('r.his', h_map = drape_map, i_map = relief_map,
  55. r_map = tmp_r, g_map = tmp_g, b_map = tmp_b)
  56. grass.run_command('r.composite', red = tmp_r, green = tmp_g,
  57. blue = tmp_b, output = output_map)
  58. grass.run_command('g.remove', quiet=True, flags='f',
  59. type='rast', name='%s,%s,%s' % (tmp_r, tmp_g, tmp_b))
  60. ret = 0
  61. try:
  62. grass.run_command('d.his', h_map=drape_map, i_map=relief_map,
  63. brighten=brighten)
  64. except CalledModuleError:
  65. ret = 1
  66. sys.exit(ret)
  67. if __name__ == "__main__":
  68. options, flags = grass.parser()
  69. main()