123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368 |
- #!/usr/bin/env python
- ############################################################################
- #
- # MODULE: p.vect
- # AUTHOR(S): Jachym Cepicky, Hamish Bowman
- # Converted to Python by Huidae Cho
- # PURPOSE: Displays vector map layer in the active map display window.
- # COPYRIGHT: (C) 2009 by 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: Displays vector map layer in the active map display window.
- #% keywords: display, vector
- #%end
- #%flag
- #% key: a
- #% description: Get colors from map table column (of form RRR:GGG:BBB)
- #% guisection: Colors
- #%end
- #%flag
- #% key: c
- #% description: Random colors according to category number (or layer number if 'layer=-1' is given)
- #% guisection: Colors
- #%end
- #%flag
- #% key: i
- #% description: Use values from 'cats' option as feature id
- #% guisection: Selection
- #%end
- #%flag
- #% key: z
- #% description: Colorize polygons according to z height
- #%end
- #%option
- #% key: map
- #% type: string
- #% required: yes
- #% multiple: no
- #% key_desc: name
- #% description: Name of input vector map
- #% gisprompt: old,vector,vector
- #%end
- #%option
- #% key: display
- #% type: string
- #% required: no
- #% multiple: yes
- #% options: shape,cat,topo,dir,attr,zcoor
- #% description: Display
- #% answer: shape
- #%end
- #%option
- #% key: type
- #% type: string
- #% required: no
- #% multiple: yes
- #% options: point,line,boundary,centroid,area,face
- #% description: Feature type
- #% answer: point,line,boundary,centroid,area,face
- #% guisection: Selection
- #%end
- #%option
- #% key: layer
- #% type: string
- #% required: no
- #% multiple: no
- #% label: Layer number (if -1, all layers are displayed)
- #% description: A single vector map can be connected to multiple database tables. This number determines which table to use.
- #% answer: 1
- #% gisprompt: old_layer,layer,layer_all
- #% guisection: Selection
- #%end
- #%option
- #% key: cats
- #% type: string
- #% required: no
- #% multiple: no
- #% key_desc: range
- #% label: Category values
- #% description: Example: 1,3,7-9,13
- #% guisection: Selection
- #%end
- #%option
- #% key: where
- #% type: string
- #% required: no
- #% multiple: no
- #% key_desc: sql_query
- #% label: WHERE conditions of SQL statement without 'where' keyword
- #% description: Example: income < 1000 and inhab >= 10000
- #% guisection: Selection
- #%end
- #%option
- #% key: color
- #% type: string
- #% required: no
- #% multiple: no
- #% label: Line color
- #% description: Either a standard GRASS color, R:G:B triplet, or "none"
- #% answer: black
- #% gisprompt: old_color,color,color_none
- #% guisection: Colors
- #%end
- #%option
- #% key: fcolor
- #% type: string
- #% required: no
- #% multiple: no
- #% label: Area fill color
- #% description: Either a standard GRASS color, R:G:B triplet, or "none"
- #% answer: 200:200:200
- #% gisprompt: old_color,color,color_none
- #% guisection: Colors
- #%end
- #%option
- #% key: rgb_column
- #% type: string
- #% required: no
- #% multiple: no
- #% key_desc: name
- #% description: Name of color definition column (for use with -a flag)
- #% answer: GRASSRGB
- #% gisprompt: old_dbcolumn,dbcolumn,dbcolumn
- #% guisection: Colors
- #%end
- #%option
- #% key: zcolor
- #% type: string
- #% required: no
- #% multiple: no
- #% key_desc: style
- #% description: Type of color table (for use with -z flag)
- #% answer: terrain
- #% guisection: Colors
- #%end
- #%option
- #% key: width
- #% type: integer
- #% required: no
- #% multiple: no
- #% description: Line width
- #% answer: 0
- #% guisection: Lines
- #%end
- #%option
- #% key: wcolumn
- #% type: string
- #% required: no
- #% multiple: no
- #% key_desc: name
- #% description: Name of column for line widths (these values will be scaled by wscale)
- #% gisprompt: old_dbcolumn,dbcolumn,dbcolumn
- #% guisection: Lines
- #%end
- #%option
- #% key: wscale
- #% type: double
- #% required: no
- #% multiple: no
- #% description: Scale factor for wcolumn
- #% answer: 1
- #% guisection: Lines
- #%end
- #%option
- #% key: icon
- #% type: string
- #% required: no
- #% multiple: no
- #% options: basic/marker,basic/circle,basic/arrow1,basic/star,basic/point,basic/triangle,basic/box,basic/arrow2,basic/octagon,basic/cross2,basic/pushpin,basic/diamond,basic/cross1,basic/x,demo/smrk,demo/muchomurka,extra/dive_flag,extra/half-box,extra/bridge,extra/fiducial,extra/ping,extra/offbox_ne,extra/adcp,extra/alpha_flag,extra/4pt_star,extra/half-circle,extra/offbox_nw,extra/fancy_compass,extra/airport,extra/compass,extra/offbox_se,extra/fish,extra/target,extra/offbox_sw,extra/n_arrow1,extra/pentagon,extra/n_arrow2,geology/strike_circle,geology/strike_box,geology/strike_line,geology/strike_triangle
- #% description: Point and centroid symbol
- #% answer: basic/x
- #% guisection: Symbols
- #%end
- #%option
- #% key: size
- #% type: integer
- #% required: no
- #% multiple: no
- #% description: Symbol size
- #% answer: 5
- #% guisection: Symbols
- #%end
- #%option
- #% key: size_column
- #% type: string
- #% required: no
- #% multiple: no
- #% key_desc: name
- #% description: Name of numeric column containing symbol size
- #% gisprompt: old_dbcolumn,dbcolumn,dbcolumn
- #% guisection: Symbols
- #%end
- #%option
- #% key: rot_column
- #% type: string
- #% required: no
- #% multiple: no
- #% key_desc: name
- #% label: Name of numeric column containing symbol rotation angle
- #% description: Measured in degrees CCW from east
- #% gisprompt: old_dbcolumn,dbcolumn,dbcolumn
- #% guisection: Symbols
- #%end
- #%option
- #% key: llayer
- #% type: string
- #% required: no
- #% multiple: no
- #% label: Layer number or name
- #% description: Layer number for labels (default: the given layer number)
- #% answer: 1
- #% gisprompt: old_layer,layer,layer
- #% guisection: Labels
- #%end
- #%option
- #% key: attrcol
- #% type: string
- #% required: no
- #% multiple: no
- #% key_desc: name
- #% description: Name of column to be displayed
- #% gisprompt: old_dbcolumn,dbcolumn,dbcolumn
- #% guisection: Labels
- #%end
- #%option
- #% key: lcolor
- #% type: string
- #% required: no
- #% multiple: no
- #% label: Label color
- #% description: Either a standard color name or R:G:B triplet
- #% answer: red
- #% gisprompt: old_color,color,color
- #% guisection: Labels
- #%end
- #%option
- #% key: bgcolor
- #% type: string
- #% required: no
- #% multiple: no
- #% label: Label background color
- #% description: Either a standard GRASS color, R:G:B triplet, or "none"
- #% answer: none
- #% gisprompt: old_color,color,color_none
- #% guisection: Labels
- #%end
- #%option
- #% key: bcolor
- #% type: string
- #% required: no
- #% multiple: no
- #% label: Label border color
- #% description: Either a standard GRASS color, R:G:B triplet, or "none"
- #% answer: none
- #% gisprompt: old_color,color,color_none
- #% guisection: Labels
- #%end
- #%option
- #% key: lsize
- #% type: integer
- #% required: no
- #% multiple: no
- #% description: Label size (pixels)
- #% answer: 8
- #% guisection: Labels
- #%end
- #%option
- #% key: font
- #% type: string
- #% required: no
- #% multiple: no
- #% description: Font name
- #% guisection: Labels
- #%end
- #%option
- #% key: encoding
- #% type: string
- #% required: no
- #% multiple: no
- #% description: Text encoding
- #% guisection: Labels
- #%end
- #%option
- #% key: xref
- #% type: string
- #% required: no
- #% multiple: no
- #% options: left,center,right
- #% description: Label horizontal justification
- #% answer: left
- #% guisection: Labels
- #%end
- #%option
- #% key: yref
- #% type: string
- #% required: no
- #% multiple: no
- #% options: top,center,bottom
- #% description: Label vertical justification
- #% answer: center
- #% guisection: Labels
- #%end
- #%option
- #% key: minreg
- #% type: double
- #% required: no
- #% multiple: no
- #% description: Minimum region size (average from height and width) when map is displayed
- #%end
- #%option
- #% key: maxreg
- #% type: double
- #% required: no
- #% multiple: no
- #% description: Maximum region size (average from height and width) when map is displayed
- #%end
- #%option
- #% key: opacity
- #% type: string
- #% required: no
- #% multiple: no
- #% key_desc: val
- #% answer: 100
- #% description: Set opacity between 0-100%
- #%end
- import sys
- import os
- import grass.script as grass
- def construct_command(cmd):
- line = cmd
- for key, val in options.iteritems():
- if val != "":
- line += " %s=%s" % (key, val)
- for key, val in flags.iteritems():
- if val == True:
- line += " -%s" % key
- return line
- def main():
- cmd_file = grass.gisenv()["GRASS_PYCMDFILE"]
- if cmd_file == "" or os.path.exists(cmd_file) == False:
- grass.message(_("GRASS_PYCMDFILE - File not found. Run p.mon."), "e")
- return
- cmd = construct_command("d"+os.path.basename(sys.argv[0])[1:-3])
- fp = open(cmd_file, "a")
- fp.write("%s\n" % cmd)
- fp.close()
- if __name__ == "__main__":
- options, flags = grass.parser()
- main()
|