g.gui.mapswipe.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #!/usr/bin/env python
  2. ############################################################################
  3. #
  4. # MODULE: Map Swipe
  5. # AUTHOR(S): Anna Kratochvilova
  6. # PURPOSE: The Map Swipe is a wxGUI component which allows the user to
  7. # interactively compare two maps
  8. # COPYRIGHT: (C) 2012 by Anna Kratochvilova, and the GRASS Development Team
  9. #
  10. # This program is free software; you can redistribute it and/or modify
  11. # it under the terms of the GNU General Public License as published by
  12. # the Free Software Foundation; either version 2 of the License, or
  13. # (at your option) any later version.
  14. #
  15. # This program is distributed in the hope that it will be useful,
  16. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. # GNU General Public License for more details.
  19. #
  20. ############################################################################
  21. #%module
  22. #% description: Interactively compares two maps by swiping a visibility bar.
  23. #% keyword: general
  24. #% keyword: GUI
  25. #% keyword: display
  26. #%end
  27. #%option G_OPT_R_INPUT
  28. #% key: first
  29. #% description: First (top/right) raster map
  30. #% required: no
  31. #%end
  32. #%option G_OPT_R_INPUT
  33. #% key: second
  34. #% description: Second (bottom/left) raster map
  35. #% required: no
  36. #%end
  37. #%option
  38. #% key: mode
  39. #% description: View mode
  40. #% options: swipe,mirror
  41. #% descriptions:swipe;swiping the upper map layer to show the map layer below ;mirror;synchronized maps side by side
  42. #% answer: swipe
  43. #% required: no
  44. #%end
  45. import os
  46. import wx
  47. import grass.script as grass
  48. from core.settings import UserSettings
  49. from core.globalvar import CheckWxVersion
  50. from core.giface import StandaloneGrassInterface
  51. from core.utils import _, GuiModuleMain
  52. from mapswipe.frame import SwipeMapFrame
  53. def main():
  54. driver = UserSettings.Get(group = 'display', key = 'driver', subkey = 'type')
  55. if driver == 'png':
  56. os.environ['GRASS_RENDER_IMMEDIATE'] = 'png'
  57. else:
  58. os.environ['GRASS_RENDER_IMMEDIATE'] = 'cairo'
  59. first = options['first']
  60. second = options['second']
  61. mode = options['mode']
  62. for mapName in [first, second]:
  63. if mapName:
  64. gfile = grass.find_file(name = mapName)
  65. if not gfile['name']:
  66. grass.fatal(_("Raster map <%s> not found") % mapName)
  67. app = wx.App()
  68. if not CheckWxVersion([2, 9]):
  69. wx.InitAllImageHandlers()
  70. frame = SwipeMapFrame(parent = None, giface = StandaloneGrassInterface())
  71. if first:
  72. frame.SetFirstRaster(first)
  73. if second:
  74. frame.SetSecondRaster(second)
  75. if first or second:
  76. frame.SetRasterNames()
  77. frame.SetViewMode(mode)
  78. frame.Show()
  79. app.MainLoop()
  80. if __name__ == '__main__':
  81. options, flags = grass.parser()
  82. GuiModuleMain(main)