pygrass.gis package

Submodules

pygrass.gis.region module

Created on Fri May 25 12:57:10 2012

@author: Pietro Zambelli

class pygrass.gis.region.Region(default=False)[source]

Bases: object

This class is design to easily access and modify GRASS computational region.

>>> r = Region()
>>> r.north
40.0
>>> r.south
0.0
>>> r.east
40.0
>>> r.west
0.0
>>> r.cols
20
>>> r.rows
20
>>> r.nsres
2.0
>>> r.ewres
2.0

>>> r.north = 100
>>> r.east = 100
>>> r.adjust(rows=True, cols=True)
>>> r.nsres
5.0
>>> r.ewres
5.0
>>> r.cols
20
>>> r.rows
20

>>> r.read()
>>> r.north = 100
>>> r.east = 100
>>> r.adjust(rows=False, cols=True)
>>> r.nsres
2.0
>>> r.ewres
5.0
>>> r.cols
20
>>> r.rows
50

>>> r.read()
>>> r.north = 100
>>> r.east = 100
>>> r.adjust(rows=True, cols=False)
>>> r.nsres
5.0
>>> r.ewres
2.0
>>> r.cols
50
>>> r.rows
20

>>> r.read()
>>> r.north = 100
>>> r.east = 100
>>> r.adjust(rows=False, cols=False)
>>> r.nsres
2.0
>>> r.ewres
2.0
>>> r.cols
50
>>> r.rows
50

>>> r.read()
>>> r.cols = 1000
>>> r.ewres
0.04
>>> r.rows = 1000
>>> r.nsres
0.04
adjust(rows=False, cols=False)[source]

Adjust rows and cols number according with the nsres and ewres resolutions. If rows or cols parameters are True, the adjust method update nsres and ewres according with the rows and cols numbers.

align(raster_name)[source]

Adjust region cells to cleanly align with this raster map

Warning: This will change the user GRASS region settings

Parameters:raster_name (str) – the name of raster
bottom

Set and obtain bottom value

byref()[source]

Return the internal region representation as pointer

cells

Return the number of cells

cols

Set and obtain number of columns

depths

Set and obtain number of depths

east

Set and obtain east coordinate

ewres

Set and obtain east-west resolution value

from_rast(raster_name)[source]

Set the region from the computational region of a raster map layer.

Parameters:
  • raster_name (str) – the name of raster
  • mapset (str) – the mapset of raster

call C function Rast_get_cellhd

Example

>>> reg = Region()
>>> reg.from_rast(test_raster_name)
>>> reg.get_bbox()

Bbox(50.0, 0.0, 60.0, 0.0) >>> reg.read() >>> reg.get_bbox() Bbox(40.0, 0.0, 40.0, 0.0)

from_vect(vector_name)[source]

Adjust bounding box of region using a vector

Parameters:vector_name (str) – the name of vector

Example

>>> reg = Region()
>>> reg.from_vect(test_vector_name)
>>> reg.get_bbox()

Bbox(6.0, 0.0, 14.0, 0.0) >>> reg.read() >>> reg.get_bbox() Bbox(40.0, 0.0, 40.0, 0.0)

get_bbox()[source]

Return a Bbox object with the extension of the region.

>>> reg = Region()
>>> reg.get_bbox()
Bbox(40.0, 0.0, 40.0, 0.0)
get_current()[source]

Get the current working region of this process and store it into this Region object

Previous calls to set_current() affects values returned by this function. Previous calls to read() affects values returned by this function only if the current working region is not initialized.

Example:

>>> r = Region()
>>> r.north
40.0
>>> r.north = 30
>>> r.north
30.0
>>> r.get_current()
>>> r.north
40.0
items()[source]

Return a list of tuple with key and value.

keys()[source]

Return a list of valid keys.

>>> reg = Region()
>>> reg.keys()                               
['proj', 'zone', ..., 'cols', 'cells']
north

Set and obtain north coordinate

nsres

Set and obtain north-south resolution value

proj

Return a code for projection

read(force_read=True)[source]

Read the region into this region object

Reads the region as stored in the WIND file in the user’s current mapset into region.

3D values are set to defaults if not available in WIND file. An error message is printed and exit() is called if there is a problem reading the region.

<b>Note:</b> GRASS applications that read or write raster maps should not use this routine since its use implies that the active module region will not be used. Programs that read or write raster map data (or vector data) can query the active module region using Rast_window_rows() and Rast_window_cols().

Parameters:force_read (boolean) – If True the WIND file of the current mapset is re-readed, otherwise the initial region set at process start will be loaded from the internal static variables.
read_default()[source]

Get the default region

Reads the default region for the location in this Region object. 3D values are set to defaults if not available in WIND file.

An error message is printed and exit() is called if there is a problem reading the default region.

rows

Set and obtain number of rows

set_bbox(bbox)[source]

Set region extent from Bbox

Parameters:bbox (Bbox object) – a Bbox object to set the extent
>>> from grass.pygrass.vector.basic import Bbox
>>> b = Bbox(230963.640878, 212125.562878, 645837.437393, 628769.374393)
>>> reg = Region()
>>> reg.set_bbox(b)
>>> reg.get_bbox()
Bbox(230963.640878, 212125.562878, 645837.437393, 628769.374393)
>>> reg.get_current()
set_current()[source]

Set the current working region from this region object

This function adjusts the values before setting the region so you don’t have to call G_adjust_Cell_head().

Attention: Only the current process is affected.
The GRASS computational region is not affected.

Example:

>>> r = Region()
>>> r.north

40.0 >>> r.south 0.0

>>> r.north = 30
>>> r.south = 20
>>> r.set_current()
>>> r.north
30.0
>>> r.south
20.0
>>> r.get_current()
>>> r.north
30.0
>>> r.south
20.0
>>> r.read(force_read=False)
>>> r.north
40.0
>>> r.south
0.0
>>> r.read(force_read=True)
>>> r.north
40.0
>>> r.south
0.0
set_raster_region()[source]

Set the computational region (window) for all raster maps in the current process.

Attention: All raster objects must be closed or the
process will be terminated.

The Raster library C function Rast_set_window() is called.

south

Set and obtain south coordinate

tbres

Set and obtain top-bottom 3D value

top

Set and obtain top value

west

Set and obtain west coordinate

write()[source]

Writes the region from this region object

This function writes this region to the Region file (WIND) in the users current mapset. This function should be carefully used, since the user will ot notice if his region was changed and would expect that only g.region will do this.

Example

>>> from copy import deepcopy
>>> r = Region()
>>> rn = deepcopy(r)
>>> r.north = 20
>>> r.south = 10
>>> r.write()
>>> r.read()
>>> r.north
20.0
>>> r.south
10.0
>>> rn.write()
>>> r.read()
>>> r.north
40.0
>>> r.south
0.0
>>> r.read_default()
>>> r.write()
zone

Return the zone of projection

zoom(raster_name)[source]

Shrink region until it meets non-NULL data from this raster map

Warning: This will change the user GRASS region settings

Parameters:raster_name (str) – the name of raster

Module contents

class pygrass.gis.Gisdbase(gisdbase='')[source]

Bases: object

Return Gisdbase object.

>>> from grass.script.core import gisenv
>>> gisdbase = Gisdbase()
>>> gisdbase.name == gisenv()['GISDBASE']
True
locations()[source]

Return a list of locations that are available in the gisdbase:

>>> gisdbase = Gisdbase()
>>> gisdbase.locations()                     
[...]
name

Set or obtain the name of GISDBASE

new_location()[source]
class pygrass.gis.Location(location='', gisdbase='')[source]

Bases: object

Location object

>>> from grass.script.core import gisenv
>>> location = Location()
>>> location                                      
Location(...)
>>> location.gisdbase == gisenv()['GISDBASE']
True
>>> location.name == gisenv()['LOCATION_NAME']
True
gisdbase

Set or obtain the name of GISDBASE

mapsets(pattern=None, permissions=True)[source]

Return a list of the available mapsets.

Parameters:
  • pattern (str) – the pattern to filter the result
  • permissions (bool) – check the permission of mapset
Returns:

a list of mapset’s names

Return type:

list of strings

>>> location = Location()
>>> sorted(location.mapsets())                
[...]
name

Set or obtain the name of LOCATION

path()[source]

Return the complete path of the location

class pygrass.gis.Mapset(mapset='', location='', gisdbase='')[source]

Bases: object

Mapset

>>> from grass.script.core import gisenv
>>> genv = gisenv()
>>> mapset = Mapset()
>>> mapset                                        
Mapset(...)
>>> mapset.gisdbase == genv['GISDBASE']
True
>>> mapset.location == genv['LOCATION_NAME']
True
>>> mapset.name == genv['MAPSET']
True
current()[source]

Set the mapset as current

delete()[source]

Delete the mapset

gisdbase

Set or obtain the name of GISDBASE

glist(type, pattern=None)[source]

Return a list of grass types like:

  • ‘group’,
  • ‘label’,
  • ‘raster’,
  • ‘raster_3d’,
  • ‘region’,
  • ‘vector’,
Parameters:
  • type (str) – the type of element to query
  • pattern (str) – the pattern to filter the result
>>> mapset = Mapset()
>>> mapset.current()
>>> rast = mapset.glist('raster')
>>> test_raster_name in rast
True
>>> vect = mapset.glist('vector')
>>> test_vector_name in vect
True
is_current()[source]

Check if the MAPSET is the working MAPSET

location

Set or obtain the name of LOCATION

name

Set or obtain the name of MAPSET

path()[source]

Return the complete path of the mapset

class pygrass.gis.VisibleMapset(mapset, location='', gisdbase='')[source]

Bases: object

VisibleMapset object

add(mapset)[source]

Add a mapset to the search path

Parameters:mapset (str) – a mapset’s name
extend(mapsets)[source]

Add more mapsets to the search path

Parameters:mapsets (list) – a list of mapset’s names
read()[source]

Return the mapsets in the search path

remove(mapset)[source]

Remove mapset to the search path

Parameters:mapset (str) – a mapset’s name
reset()[source]

Reset to the original search path

pygrass.gis.is_valid(value, path, type)[source]

Private function to check the correctness of a value.

Parameters:
  • value (str) – Name of the directory
  • path (path) – Path where the directory is located
  • type (str) – it is a string defining the type that will e checked, valid types are: GISBASE, GISDBASE, LOCATION_NAME, MAPSET
Returns:

True if valid else False

Return type:

str

pygrass.gis.make_mapset(mapset, location=None, gisdbase=None)[source]

Create a new mapset

Parameters:
  • mapset – Name of the mapset
  • location (str) – Name of the location
  • gisdbase (str) – Name of the gisdbase
pygrass.gis.set_current_mapset(mapset, location=None, gisdbase=None)[source]

Set the current mapset as working area

Parameters:
  • mapset – Name of the mapset
  • location (str) – Name of the location
  • gisdbase (str) – Name of the gisdbase