[GRASS-SVN] r58040 - grass/trunk/lib/python/pygrass/modules/grid
svn_grass at osgeo.org
svn_grass at osgeo.org
Fri Oct 18 01:49:11 PDT 2013
Author: zarch
Date: 2013-10-18 01:49:11 -0700 (Fri, 18 Oct 2013)
New Revision: 58040
Modified:
grass/trunk/lib/python/pygrass/modules/grid/grid.py
Log:
Improving docstring
Modified: grass/trunk/lib/python/pygrass/modules/grid/grid.py
===================================================================
--- grass/trunk/lib/python/pygrass/modules/grid/grid.py 2013-10-18 08:40:16 UTC (rev 58039)
+++ grass/trunk/lib/python/pygrass/modules/grid/grid.py 2013-10-18 08:49:11 UTC (rev 58040)
@@ -21,8 +21,29 @@
def select(parms, ptype):
- """Select only a certain type of parameters. ::
+ """Select only a certain type of parameters.
+ Parameters
+ ----------
+
+ params : DictType parameters
+ A DictType parameter with inputs or outputs of a Module class.
+ ptype : string
+ String define the type of parameter that we want to select,
+ valid ptype are: 'raster', 'vector', 'group'
+
+
+ Returns
+ -------
+
+ An iterator with the value of the parameter.
+
+
+ Examples
+ --------
+
+ ::
+
>>> slp = Module('r.slope.aspect',
... elevation='ele', slope='slp', aspect='asp',
... run_=False)
@@ -52,6 +73,44 @@
def copy_mapset(mapset, path):
"""Copy mapset to another place without copying raster and vector data.
+
+ Parameters
+ ----------
+
+ mapset : mapset_like
+ A Mapset instance.
+ path : string
+ Path where the new mapset must be copied.
+
+
+ Returns
+ -------
+
+ The instance of the new Mapset.
+
+
+ Examples
+ --------
+
+ ::
+
+ >>> mset = Mapset()
+ >>> mset.name
+ 'user1'
+ >>> import tempfile as tmp
+ >>> import os
+ >>> path = os.path.join(tmp.gettempdir(), 'my_loc', 'my_mset')
+ >>> copy_mapset(mset, path)
+ Mapset('user1')
+ >>> sorted(os.listdir(path))
+ ['PERMANENT', 'user1']
+ >>> sorted(os.listdir(os.path.join(path, 'PERMANENT')))
+ ['DEFAULT_WIND', 'PROJ_INFO', 'PROJ_UNITS', 'VAR', 'WIND']
+ >>> sorted(os.listdir(os.path.join(path, 'user1')))
+ ['CURGROUP', 'SEARCH_PATH', 'VAR', 'WIND']
+ >>> import shutil
+ >>> shutil.rmtree(path)
+
"""
per_old = os.path.join(mapset.gisdbase, mapset.location, 'PERMANENT')
per_new = os.path.join(path, 'PERMANENT')
@@ -70,6 +129,15 @@
def read_gisrc(gisrc):
"""Read a GISRC file and return a tuple with the mapset, location
and gisdbase.
+
+ Examples
+ --------
+
+ ::
+
+ >>> import os
+ >>> read_gisrc(os.environ['GISRC']) # doctest: +ELLIPSIS
+ ('user1', ...)
"""
with open(gisrc, 'r') as gfile:
gis = dict([(k.strip(), v.strip())
@@ -78,7 +146,22 @@
def get_mapset(gisrc_src, gisrc_dst):
- """Get mapset from a GISRC source to a GISRC destination."""
+ """Get mapset from a GISRC source to a GISRC destination.
+
+ Parameters
+ ----------
+
+ gisrc_src : path to the GISRC source
+
+ gisrc_dst : path to the GISRC destination
+
+
+ Returns
+ -------
+
+ A tuple with Mapset(src), Mapset(dst)
+
+ """
msrc, lsrc, gsrc = read_gisrc(gisrc_src)
mdst, ldst, gdst = read_gisrc(gisrc_dst)
path_src = os.path.join(gsrc, lsrc, msrc)
@@ -94,6 +177,27 @@
def copy_groups(groups, gisrc_src, gisrc_dst, region=None):
"""Copy group from one mapset to another, crop the raster to the region.
+
+ Parameters
+ ----------
+
+ groups : list of strings
+ A list of strings with the group that must be copied
+ from a master to another.
+ gisrc_src : path to the GISRC source
+ Path of the GISRC file from where we want to copy the groups.
+ gisrc_dst : path to the GISRC destination
+ Path of the GISRC file where the groups will be created.
+ region : region_like or dictionary
+ A region like object or a dictionary with the region parameters that
+ will be used to crop the rasters of the groups.
+
+
+ Returns
+ -------
+
+ None.
+
"""
env = os.environ.copy()
@@ -116,7 +220,27 @@
def set_region(region, gisrc_src, gisrc_dst, env):
- """Set a region into two different mapsets."""
+ """Set a region into two different mapsets.
+
+ Parameters
+ ----------
+
+ region : region_like or dictionary
+ A region like object or a dictionary with the region parameters that
+ will be used to crop the rasters.
+ gisrc_src : path to the GISRC source
+ Path of the GISRC file from where we want to copy the rasters.
+ gisrc_dst : path to the GISRC destination
+ Path of the GISRC file where the rasters will be created.
+ region : dictionary
+ A dictionary with the variable environment to use.
+
+
+ Returns
+ -------
+
+ None.
+ """
reg_str = "g.region n=%(north)r s=%(south)r " \
"e=%(east)r w=%(west)r " \
"nsres=%(nsres)r ewres=%(ewres)r"
@@ -129,6 +253,26 @@
def copy_rasters(rasters, gisrc_src, gisrc_dst, region=None):
"""Copy rasters from one mapset to another, crop the raster to the region.
+
+ Parameters
+ ----------
+
+ rasters : list of strings
+ A list of strings with the raster map that must be copied
+ from a master to another.
+ gisrc_src : path to the GISRC source
+ Path of the GISRC file from where we want to copy the rasters.
+ gisrc_dst : path to the GISRC destination
+ Path of the GISRC file where the rasters will be created.
+ region : region_like or dictionary
+ A region like object or a dictionary with the region parameters that
+ will be used to crop the rasters.
+
+
+ Returns
+ -------
+
+ None.
"""
env = os.environ.copy()
if region:
@@ -160,6 +304,22 @@
def copy_vectors(vectors, gisrc_src, gisrc_dst):
"""Copy vectors from one mapset to another, crop the raster to the region.
+
+ Parameters
+ ----------
+
+ vectors : list of strings
+ A list of strings with the raster map that must be copied
+ from a master to another.
+ gisrc_src : path to the GISRC source
+ Path of the GISRC file from where we want to copy the vectors.
+ gisrc_dst : path to the GISRC destination
+ Path of the GISRC file where the vectors will be created.
+
+ Returns
+ -------
+
+ None.
"""
env = os.environ.copy()
path_dst = os.path.join(*read_gisrc(gisrc_dst))
@@ -184,7 +344,28 @@
def get_cmd(cmdd):
- """Transform a cmd dictionary to a list of parameters"""
+ """Transform a cmd dictionary to a list of parameters. It is useful to
+ pickle a Module class and cnvert into a string that can be used with
+ `Popen(get_cmd(cmdd), shell=True)`.
+
+ Parameters
+ ----------
+
+ cmdd : dict
+ A module dictionary with all the parameters.
+
+ Examples
+ --------
+
+ ::
+
+ >>> slp = Module('r.slope.aspect',
+ ... elevation='ele', slope='slp', aspect='asp',
+ ... overwrite=True, run_=False)
+ >>> get_cmd(slp.get_dict()) # doctest: +ELLIPSIS
+ ['r.slope.aspect', 'elevation=ele', 'format=degrees', ..., '--o']
+
+ """
cmd = [cmdd['name'], ]
cmd.extend(("%s=%s" % (k, v) for k, v in cmdd['inputs']
if not isinstance(v, list)))
@@ -202,7 +383,33 @@
def cmd_exe(args):
- """Create a mapset, and execute a cmd inside."""
+ """Create a mapset, and execute a cmd inside.
+
+ Parameters
+ ----------
+
+ `args` is a tuple that contains:
+
+ bbox : dict
+ A dict with the region parameters (n, s, e, w, etc.)
+ that we want to set before to apply the command.
+ mapnames : dict
+ A dictionary to substitute the input if the domain has
+ been splitted in several tiles.
+ gisrc_src : path to the GISRC source
+ Path of the GISRC file from where we want to copy the groups.
+ gisrc_dst : path to the GISRC destination
+ Path of the GISRC file where the groups will be created.
+ cmd : dictionary
+ A dictionary with all the parameter of a GRASS module.
+ groups: list
+ A list of strings with the groups that we want to copy in the mapset.
+
+ Returns
+ -------
+
+ None.
+ """
bbox, mapnames, gisrc_src, gisrc_dst, cmd, groups = args
get_mapset(gisrc_src, gisrc_dst)
env = os.environ.copy()
@@ -258,7 +465,7 @@
>>> grd = GridModule('r.slope.aspect',
... width=500, height=500, overlap=2,
- ... processes=None, split=True,
+ ... processes=None, split=False,
... elevation='elevation',
... slope='slope', aspect='aspect', overwrite=True)
>>> grd.run()
More information about the grass-commit
mailing list