123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- #!/usr/bin/env python3
- ############################################################################
- #
- # MODULE: Map Swipe
- # AUTHOR(S): Anna Kratochvilova
- # PURPOSE: The Map Swipe is a wxGUI component which allows the user to
- # interactively compare two maps
- # COPYRIGHT: (C) 2012 by Anna Kratochvilova, and the GRASS Development Team
- #
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 2 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- ############################################################################
- # %module
- # % description: Interactively compares two maps by swiping a visibility bar.
- # % keyword: general
- # % keyword: GUI
- # % keyword: display
- # %end
- # %option G_OPT_R_INPUT
- # % key: first
- # % description: First (top/right) raster map
- # % required: no
- # %end
- # %option G_OPT_R_INPUT
- # % key: second
- # % description: Second (bottom/left) raster map
- # % required: no
- # %end
- # %option
- # % key: mode
- # % description: View mode
- # % options: swipe,mirror
- # % descriptions:swipe;swiping the upper map layer to show the map layer below ;mirror;synchronized maps side by side
- # % answer: swipe
- # % required: no
- # %end
- import os
- import grass.script as gscript
- def main():
- options, flags = gscript.parser()
- import wx
- from grass.script.setup import set_gui_path
- set_gui_path()
- from core.settings import UserSettings
- from core.giface import StandaloneGrassInterface
- from core import globalvar
- from mapswipe.frame import SwipeMapDisplay
- driver = UserSettings.Get(group="display", key="driver", subkey="type")
- if driver == "png":
- os.environ["GRASS_RENDER_IMMEDIATE"] = "png"
- else:
- os.environ["GRASS_RENDER_IMMEDIATE"] = "cairo"
- first = options["first"]
- second = options["second"]
- mode = options["mode"]
- for mapName in [first, second]:
- if mapName:
- gfile = gscript.find_file(name=mapName)
- if not gfile["name"]:
- gscript.fatal(_("Raster map <%s> not found") % mapName)
- app = wx.App()
- # show main frame
- frame = wx.Frame(
- parent=None,
- size=globalvar.MAP_WINDOW_SIZE,
- title=_("Map Swipe Tool - GRASS GIS"),
- )
- frame = SwipeMapDisplay(
- parent=frame,
- giface=StandaloneGrassInterface(),
- )
- if first:
- frame.SetFirstRaster(first)
- if second:
- frame.SetSecondRaster(second)
- if first or second:
- frame.SetRasterNames()
- frame.SetViewMode(mode)
- frame.Show()
- app.MainLoop()
- if __name__ == "__main__":
- main()
|