pygrass.modules.grid package¶
Submodules¶
pygrass.modules.grid.grid module¶
-
class
pygrass.modules.grid.grid.
GridModule
(cmd, width=None, height=None, overlap=0, processes=None, split=False, debug=False, region=None, move=None, log=False, start_row=0, start_col=0, out_prefix='', mapset_prefix=None, *args, **kargs)[source]¶ Bases:
object
Run GRASS raster commands in a multiprocessing mode.
Parameters: - cmd (str) – raster GRASS command, only command staring with r.* are valid.
- width (int) – width of the tile, in pixel
- height (int) – height of the tile, in pixel.
- overlap (int) – overlap between tiles, in pixel.
- processes – number of threads, default value is equal to the number of processor available.
- split (bool) – if True use r.tile to split all the inputs.
- mapset_prefix (str) – if specified created mapsets start with this prefix
- run (bool) – if False only instantiate the object
- args – give all the parameters to the command
- kargs – give all the parameters to the command
>>> grd = GridModule('r.slope.aspect', ... width=500, height=500, overlap=2, ... processes=None, split=False, ... elevation='elevation', ... slope='slope', aspect='aspect', overwrite=True) >>> grd.run()
-
clean_location
(location=None)[source]¶ Remove all created mapsets.
Parameters: location (Location object) – a Location instance where we are running the analysis
-
pygrass.modules.grid.grid.
cmd_exe
(args)[source]¶ Create a mapset, and execute a cmd inside.
Parameters: args (tuple) – is a tuple that contains several information see below Returns: None The puple has to contain:
- 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 split in several tiles.
- gisrc_src (str): path of the GISRC file from where we want to copy the groups.
- gisrc_dst (str): path of the GISRC file where the groups will be created.
- cmd (dict): 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.
-
pygrass.modules.grid.grid.
copy_groups
(groups, gisrc_src, gisrc_dst, region=None)[source]¶ 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 (str) – path of the GISRC file from where we want to copy the groups
- gisrc_dst (str) – path of the GISRC file where the groups will be created
- region (Region object 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
-
pygrass.modules.grid.grid.
copy_mapset
(mapset, path)[source]¶ Copy mapset to another place without copying raster and vector data.
Parameters: - mapset (Mapset object) – a Mapset instance to copy
- path (str) – path where the new mapset must be copied
Returns: the instance of the new Mapset.
>>> from grass.script.core import gisenv >>> mname = gisenv()['MAPSET'] >>> mset = Mapset() >>> mset.name == mname True >>> import tempfile as tmp >>> import os >>> path = os.path.join(tmp.gettempdir(), 'my_loc', 'my_mset') >>> copy_mapset(mset, path) # doctest: +ELLIPSIS Mapset(...) >>> sorted(os.listdir(path)) # doctest: +ELLIPSIS [...'PERMANENT'...] >>> sorted(os.listdir(os.path.join(path, 'PERMANENT'))) ['DEFAULT_WIND', 'PROJ_INFO', 'PROJ_UNITS', 'VAR', 'WIND'] >>> sorted(os.listdir(os.path.join(path, mname))) # doctest: +ELLIPSIS [...'SEARCH_PATH',...'WIND'] >>> import shutil >>> shutil.rmtree(path)
-
pygrass.modules.grid.grid.
copy_rasters
(rasters, gisrc_src, gisrc_dst, region=None)[source]¶ Copy rasters from one mapset to another, crop the raster to the region.
Parameters: - rasters (list) – a list of strings with the raster map that must be copied from a master to another.
- gisrc_src (str) – path of the GISRC file from where we want to copy the groups
- gisrc_dst (str) – path of the GISRC file where the groups will be created
- region (Region object 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
-
pygrass.modules.grid.grid.
copy_special_mapset_files
(path_src, path_dst)[source]¶ Copy all the special GRASS files that are contained in a mapset to another mapset
Parameters: - path_src (str) – the path to the original mapset
- path_dst (str) – the path to the new mapset
-
pygrass.modules.grid.grid.
copy_vectors
(vectors, gisrc_src, gisrc_dst)[source]¶ Copy vectors from one mapset to another, crop the raster to the region.
Parameters: - vectors (list) – a list of strings with the vector map that must be copied from a master to another.
- gisrc_src (str) – path of the GISRC file from where we want to copy the groups
- gisrc_dst (str) – path of the GISRC file where the groups will be created
Returns: None
-
pygrass.modules.grid.grid.
get_cmd
(cmdd)[source]¶ 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 >>> 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']
-
pygrass.modules.grid.grid.
get_mapset
(gisrc_src, gisrc_dst)[source]¶ Get mapset from a GISRC source to a GISRC destination.
Parameters: - gisrc_src (str) – path to the GISRC source
- gisrc_dst (str) – path to the GISRC destination
Returns: a tuple with Mapset(src), Mapset(dst)
-
pygrass.modules.grid.grid.
read_gisrc
(gisrc)[source]¶ Read a GISRC file and return a tuple with the mapset, location and gisdbase.
Parameters: gisrc (str) – the path to GISRC file Returns: a tuple with the mapset, location and gisdbase >>> import os >>> from grass.script.core import gisenv >>> genv = gisenv() >>> (read_gisrc(os.environ['GISRC']) == (genv['MAPSET'], ... genv['LOCATION_NAME'], ... genv['GISDBASE'])) True
-
pygrass.modules.grid.grid.
select
(parms, ptype)[source]¶ Select only a certain type of parameters.
Parameters: - parms (DictType parameters) – a DictType parameter with inputs or outputs of a Module class
- ptype (str) – 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.
>>> slp = Module('r.slope.aspect', ... elevation='ele', slope='slp', aspect='asp', ... run_=False) >>> for rast in select(slp.outputs, 'raster'): ... print(rast) ... slp asp
-
pygrass.modules.grid.grid.
set_region
(region, gisrc_src, gisrc_dst, env)[source]¶ Set a region into two different mapsets.
Parameters: - region (Region object or dictionary) – a region like object or a dictionary with the region parameters that will be used to crop the rasters of the groups
- gisrc_src (str) – path of the GISRC file from where we want to copy the groups
- gisrc_dst (str) – path of the GISRC file where the groups will be created
- env –
Returns: None
pygrass.modules.grid.patch module¶
Created on Tue Apr 2 18:57:42 2013
@author: pietro
-
pygrass.modules.grid.patch.
get_start_end_index
(bbox_list)[source]¶ Convert a Bounding Box to a list of the index of column start, end, row start and end
Parameters: bbox_list (list of BBox object) – a list of BBox object to convert
-
pygrass.modules.grid.patch.
rpatch_map
(raster, mapset, mset_str, bbox_list, overwrite=False, start_row=0, start_col=0, prefix='')[source]¶ Patch raster using a bounding box list to trim the raster.
Parameters: - raster (str) – the name of output raster
- mapset (str) – the name of mapset to use
- mset_str (str) –
- bbox_list (list of BBox object) – a list of BBox object to convert
- overwrite (bool) – overwrite existing raster
- start_row (int) – the starting row of original raster
- start_col (int) – the starting column of original raster
- prefix (str) – the prefix of output raster
pygrass.modules.grid.split module¶
Created on Tue Apr 2 19:00:15 2013
@author: pietro
-
pygrass.modules.grid.split.
get_bbox
(reg, row, col, width, height, overlap)[source]¶ Return a Bbox
Parameters: - reg (Region object) – a Region object to split
- row (int) – the number of row
- col (int) – the number of row
- width (int) – the width of tiles
- height (int) – the width of tiles
- overlap (int) – the value of overlap between tiles
-
pygrass.modules.grid.split.
get_overlap_region_tiles
(region=None, width=100, height=100, overlap=0)[source]¶ Get the Bbox of the overlapped region.
Parameters: - region (Region object) – a Region object to split
- width (int) – the width of tiles
- height (int) – the width of tiles
- overlap (int) – the value of overlap between tiles
-
pygrass.modules.grid.split.
split_region_tiles
(region=None, width=100, height=100, overlap=0)[source]¶ Spit a region into a list of Bbox.
Parameters: - region (Region object) – a Region object to split
- width (int) – the width of tiles
- height (int) – the width of tiles
- overlap (int) – the value of overlap between tiles
>>> reg = Region() >>> reg.north = 1350 >>> reg.south = 0 >>> reg.nsres = 1 >>> reg.east = 1500 >>> reg.west = 0 >>> reg.ewres = 1 >>> reg.cols 1500 >>> reg.rows 1350 >>> split_region_tiles(region=reg, width=1000, height=700, overlap=0) # doctest: +NORMALIZE_WHITESPACE [[Bbox(1350.0, 650.0, 1000.0, 0.0), Bbox(1350.0, 650.0, 1500.0, 1000.0)], [Bbox(650.0, 0.0, 1000.0, 0.0), Bbox(650.0, 0.0, 1500.0, 1000.0)]] >>> split_region_tiles(region=reg, width=1000, height=700, overlap=10) # doctest: +NORMALIZE_WHITESPACE [[Bbox(1350.0, 640.0, 1010.0, 0.0), Bbox(1350.0, 640.0, 1500.0, 990.0)], [Bbox(660.0, 0.0, 1010.0, 0.0), Bbox(660.0, 0.0, 1500.0, 990.0)]]