Skip to Content

r.in.rgb

  1. #!/usr/bin/env python
  2. # encoding: utf-8
  3. #****************************************************************
  4. #*
  5. #* MODULE: r.in.rgb
  6. #*
  7. #* AUTHOR(S): Martin Laloux
  8. #*
  9. #* PURPOSE: Charge directement le raster en couleur en éliminant les bandes RGB = r.in.gdal + r.composite + g.remove
  10. #*
  11. #* COPYRIGHT: (C) 2012 Martin Laloux
  12. #* Louvain-la-Neuve, Belgique
  13. #*
  14. #*
  15. #* First Version: 2012/04/16
  16. #*
  17. #*
  18. #* This program is free software under the
  19. #* GNU General Public License (>=v2).
  20. #* Read the file COPYING that comes with GRASS
  21. #* for details.
  22. #*
  23. #****************************************************************
  24.  
  25. #%module
  26. #% description: Charge directement un raster couleur (RGB)
  27. #% keywords: raster
  28. #%end
  29. #%option
  30. #% key: input
  31. #% type: string
  32. #% gisprompt: oldfile,file,dsn
  33. #% answer: .
  34. #% description: Input file
  35. #% required : yes
  36. #%end
  37. #%option
  38. #% key: output
  39. #% type: string
  40. #% gisprompt: oldraster,raster
  41. #% description: Output raster base name
  42. #% required : yes
  43. #%end
  44. #%flag
  45. #% key: o
  46. #% description: Override projection check
  47. #%end
  48.  
  49. import sys, time
  50. import grass.script as grass
  51. def main():
  52. # valeurs provenant de l'interface
  53. entree = options['input']
  54. sortie = options['output']
  55. #drap = flags['o'] -> non utilisé ici
  56.  
  57. # charge le fichier en entrée, entree, vers la couche sortie
  58. grass.run_command('r.in.gdal',flags='o', input=entree, output=sortie)
  59.  
  60. # recomposition du raster original: r.composite à partie de sortie.red, etc.
  61. mapred = sortie+".red"
  62. mapgreen = sortie+".green"
  63. mapblue = sortie+".blue"
  64. # fixation de la région sur une des couches couleurs
  65. grass.run_command('g.region',rast=mapred)
  66. grass.run_command('r.composite', red=mapred, green=mapgreen, blue=mapblue, output=sortie)
  67.  
  68. # élimination des couches red, green, blue
  69. [grass.run_command('g.remove',rast=i) for i in [mapred,mapgreen,mapblue]]
  70.  
  71. # exécution
  72. if __name__ == "__main__":
  73. options, flags = grass.parser()
  74. main()