[GRASS-SVN] r70175 - in grass-addons/grass7/raster/r.green/r.green.hydro: . r.green.hydro.planning

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Dec 29 13:20:33 PST 2016


Author: Giulia
Date: 2016-12-29 13:20:33 -0800 (Thu, 29 Dec 2016)
New Revision: 70175

Added:
   grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/
   grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/Makefile
   grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r.green.hydro.planning.html
   grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r.green.hydro.planning.py
   grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r_green_hydro_planning_input.png
   grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r_green_hydro_planning_input_PNAM.png
   grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r_green_hydro_planning_output_PNAM3.png
   grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r_green_hydro_planning_output_park.png
   grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r_green_hydro_planning_output_points.png
Log:
r.green.hydro.planning: renamed

Added: grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/Makefile
===================================================================
--- grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/Makefile	                        (rev 0)
+++ grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/Makefile	2016-12-29 21:20:33 UTC (rev 70175)
@@ -0,0 +1,7 @@
+MODULE_TOPDIR = ../../../..
+
+PGM = r.green.hydro.planning
+
+include $(MODULE_TOPDIR)/include/Make/Script.make
+
+default: script

Added: grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r.green.hydro.planning.html
===================================================================
--- grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r.green.hydro.planning.html	                        (rev 0)
+++ grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r.green.hydro.planning.html	2016-12-29 21:20:33 UTC (rev 70175)
@@ -0,0 +1,225 @@
+<h2>DESCRIPTION</h2>
+<em>r.green.hydro.planning</em> detects the position of the potential hydropower plants including legal or ecological constraints and the user's recommendations that can limit the technical potential to a more sustainable one. <br>
+Deciding the range of plant length, the distance between plants, the legal discharge we can exploit and the areas we want to exclude from the calculation (ex. protected areas and the ones according to user's recommendations), the module returns two different vector files with planning available river segments, optimal position of the plants with their powers and their intakes and restitutions. <br>
+
+<h2>NOTES</h2>
+
+The difference between this module and r.green.hydro.optimal is that here we can consider a legal discharge and add areas which will be deleted from the considered streams map used to compute the potential plants. <br><br>
+
+<h2>Explanation of Parameters</h2>
+
+<blockquote>-<b> elevation</b>=name [required] <br> 
+raster map, to calculate the gross head <br><br>
+
+-<b> river</b>=name [required] <br>
+vector on which the potential plants will be computed <br><br>
+
+-<b> efficiency</b>=double [required] <br>
+efficiency of the plant <br><br>
+
+-<b> len_plant</b>=double [required] <br>
+maximum length of the plant <br><br>
+
+-<b> len_min</b>=double [required] <br>
+minimum plant length <br><br>
+
+-<b> distance</b>=double [required] <br>
+minimum distance among the plants <br><br>
+
+-<b> output_plant</b>=name [required] <br>
+name of the output vector with the potential segments <br><br>
+
+-<b> discharge_current</b>=name [required] <br>
+current discharge; raster for each point of these rivers or raster map with the legal discharge <br>
+
+<blockquote>[required (only if discharge_current=currentdischarge)]<br><br>-<b> mfd</b>=name <br>
+minimum amount of water to remain in the river to preserve the ecosystem <br>
+In this case, the discharge considered in the calculation will be the current discharge minus the MFD read in your input raster map.<br> 
+The module r.green.hydro.discharge can compute the raster map of the MFD according to the legislation of some regions.<br><br>
+
+<u><b>or</b></u><br><br>
+
+-<b> discharge_natural</b>=name <br>
+discharge of the river without considering the structures exploiting the water <br>
+-<b> percentage</b>=double <br>
+percentage used to calculate the MFD as an amount of the natural discharge <br>
+
+</blockquote>
+
+-<b> area</b>=name [optional] <br>
+areas to exclude from the planning of hydropower stations; only the rivers outside these excluded areas will be considered to compute the potential plants<br><br>
+
+-<b> buff</b>=double [optional] <br>
+buffer around the excluded areas <br><br> 
+
+-<b> points_view</b>=name [optional] <br>
+input vector map with points of interest <br><br> 
+
+-<b> visibility_resolution</b>=float [optional] <br>
+vision from the points of interest <br>
+An area corresponding to the fields of vision from the points of interest is computed, the latter correspond to visibility zones. <br> 
+You can choose to exclude these areas or the areas where several visibility zones are superimposed. <br><br>  
+
+-<b> n_points</b>=integer [optional] <br>
+number of points for the visibility corresponding to the number of visibility zones which are superimposed <br> 
+For example, if this number is 3, the areas where two or less visibility zones are superimposed will be excluded. <br><br>
+
+-<b> output_vis</b>=name [optional] <br>
+name of the output vector with the viewed areas <br><br> 
+
+-<b> p_min</b>=double [optional] <br>
+minimum mean power of the plant <br><br></blockquote>
+
+The power (kW) is defined as:<br>
+
+<center>P=η * ρ * g * Q * Δh</center>
+
+<blockquote>where η is the efficiency of the plant <br>
+ρ the density of water (1000 kg/m<sup>3</sup>) <br>
+g the gravity term (9,81 m/s<sup>2</sup>) <br>
+Q the discharge of the river (m<sup>3</sup>/s) <br>
+Δh the gross head of the considered segment (m) </blockquote><br>
+
+The module maximizes the power over a given range by a brute-force search in order to examine all possible arrangements of Q and Δh. Thus, the potential segments can be shorter than the maximum plant length chosen because it depends on the maximization of the product  Q * Δh. For each potential segment, the potential power is given in kW in attribute.<br><br>
+
+<h2>EXAMPLES</h2>
+
+<b>EXAMPLE 1</b><br><br> 
+
+This example is based on the case-study of the Gesso and Vermenagna valleys located in the Piedmont Region, in South-West Italy, close to the Italian and French border.<br><br>
+
+In the map below you can see the file availablestreams of the considered streams. The river segments already exploited by an existing plant do not appear in the file.<br>
+
+This example is based on the case-study of Gesso and Vermenagna valleys in the Natural Park of the Maritime Alps, Piedmont, Italy.<br><br>
+
+<center><br>
+<img src="r_green_hydro_planning_input_PNAM.png" alt="input"><br>
+input vector map availablestreams
+</center><br><br>
+
+First of all reset the region settings with g.region making them match the map elevation.<br>
+<br>
+
+To create the map of this example, you can type in the following code in the command console or if you prefer you can only type in the main function names like r.green.hydro.planning, d.vect or v.buffer in the console and specify the other parameters of the code like elevation or efficiency by using the graphical user interface.<br>
+<div class="code"><pre>
+r.green.hydro.planning              \ 
+    elevation=elevation                \
+    river=availablestreams             \
+    efficiency=0.9                     \
+    len_plant=200                      \
+    len_min=10                         \
+    distance=100                       \
+    output_plant=output_plant          \
+    discharge_current=currentdischarge \
+    mfd=mvf                            \
+    area=nationalparks                 \
+    buff=100                           \ 
+    p_min=20                                     
+                                                     
+d.vect map=output_plant color=blue
+
+v.buffer input=nationalparks output=buff_park distance=100
+
+d.vect map=buff_park7 color=0:128:0 fill_color=144:238:144 width=1
+</pre></div><br>
+
+As you can see in the output map below, this code calculates the energy potential for a range of plant length from 10 to 200 m and a distance between the plants of 100 m. The areas with the national park and a buffer of 100 m around it are excluded. The discharge considered here is the current discharge of rivers reduced by 30% of the Minimum Flow Discharge.<br><br>
+
+<center>
+<img src="r_green_hydro_planning_output_PNAM3.png" alt="output park"><br><br>
+output vector map: superimposition of the potential segments vector file (potentialplants, in blue) and the excluded national park (in green) and the buffer (in dark green)
+</center><br><br>
+
+<b><br>EXAMPLE 2</b><br><br>
+
+The second example is based on the case-study of Mis valley in Belluno province, Veneto, Italy.<br><br>
+
+Here is the vector file availablestreams of the considered streams. The river segments already exploited by an existing plant do not appear in the file.<br>
+In superimposition, there are the vector map (in grey) of the national park we want to exclude and the points of interest (in green) used to create the visibility zones. These points were placed according to experts' recommendations during a focus group made in Veneto region.
+
+<center>
+<img src="r_green_hydro_planning_input.png" alt="input"><br>
+input vector map availablestreams with the national park and points of interest
+</center><br><br>
+
+Points of interest are placed in the park so two different cases are presented here:<br>
+1) The national park and a buffer of 200 m around it are excluded<br>
+2) The visibility zones from points of interest is excluded<br><br>
+
+<blockquote>1) In the first case, the code used is:<br>
+<div class="code"><pre>
+r.green.hydro.planning              \
+    discharge_current=currentdischarge \
+    discharge_natural=naturaldischarge \
+    percentage=25.00                   \
+    river=availablestreams             \
+    elevation=elevation                \
+    efficiency=0.8                     \
+    len_plant=400                      \
+    len_min=10                         \
+    distance=150                       \
+    area=nationalparks                 \
+    buff=200                           \
+    output_plant=potentialplants       
+
+d.vect map=potentialplants color=blue
+
+v.buffer input=nationalparks output=buff_park distance=200
+
+d.vect map=buff_park color=255:179:179 fill_color=255:179:179 width=1
+</pre></div><br>
+
+This command calculates the energy potential for a range of plant length from 10 to 400 m and a distance between plants of 150 m. The areas with the national park and a buffer of 200 m around it are excluded. The discharge considered here is the current discharge of rivers subtracted by 25% of the natural discharge (the latter corresponds to the MFD).<br><br>
+
+<center>
+<img src="r_green_hydro_planning_output_park.png" alt="output park"><br>
+output vector map: superimposition of the potential segments vector file (potentialplants, in blue), the excluded national park (in grey) and the buffer (in light red)
+</center><br><br>
+
+2) In the second case, the code used is:<br>
+<div class="code"><pre>
+r.green.hydro.planning                \
+    discharge_current=currentdischarge   \
+    mfd=mfd                              \
+    river=availablestreams               \
+    elevation=elevation                  \
+    efficiency=0.8                       \
+    len_plant=400                        \
+    len_min=10                           \
+    distance=150                         \
+    points_view=pointsinterest           \
+    n_points=1                           \
+    output_plant=potentialplants         \
+    output_vis=vis                      
+
+d.vect map= potentialpoints color=red
+
+d.vect map= potentialplants color=blue
+
+d.vect map= pointsinterest color=green
+
+d.vect map= vis color=144:224:144 fill_color=144:224:144 width=1
+</pre></div><br>
+
+This command calculates the energy potential for a plant length range from 10 to 400 m and a distance between plants of 150 m. The visibility zones from each point of interest are excluded. The discharge considered here is the current discharge of rivers subtracted by the MFD. The MFD was calculated previously and computed in a raster map.<br><br>
+
+<center>
+<img src="r_green_hydro_planning_output_points.png" alt="output points"><br>
+output vector map: superimposition of the potential segments vector file (potentialplants, in blue), the points of interest (in green) and the visibility zones (in light green)
+</center></blockquote>
+
+<h2>SEE ALSO</h2>
+<em>
+<a href="r.green.hydro.discharge.html">r.green.hydro.discharge</a><br>
+<a href="r.green.hydro.delplants.html">r.green.hydro.delplants</a><br>
+<a href="r.green.hydro.theoretical.html">r.green.hydro.theoretical</a><br>
+<a href="r.green.hydro.optimal.html">r.green.hydro.optimal</a><br>
+<a href="r.green.hydro.structure.html">r.green.hydro.structure</a><br>
+<a href="r.green.hydro.technical.html">r.green.hydro.technical</a><br>
+<a href="r.green.hydro.financial.html">r.green.hydro.financial</a><br>
+</em>
+
+<h2>AUTHORS</h2>
+Giulia Garegnani (Eurac Research, Bolzano, Italy), Manual written by Julie Gros.<br>
+Last changed: $Date: 2015-07-08 14:46 GMT+1$
+

Added: grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r.green.hydro.planning.py
===================================================================
--- grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r.green.hydro.planning.py	                        (rev 0)
+++ grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r.green.hydro.planning.py	2016-12-29 21:20:33 UTC (rev 70175)
@@ -0,0 +1,372 @@
+#!/usr/bin/env python
+# -- coding: utf-8 --
+#
+############################################################################
+#
+# MODULE:      r.green.hydro.recommended
+# AUTHOR(S):   Giulia Garegnani
+# PURPOSE:     Calculate the optimal position of a plant along a river
+#              following user's recommendations
+# COPYRIGHT:   (C) 2014 by the GRASS Development Team
+#
+#              This program is free software under the GNU General Public
+#              License (>=v2). Read the file COPYING that comes with GRASS
+#              for details.
+#
+#############################################################################
+#
+
+#%module
+#% description: Calculate hydropower energy potential with user's recommendations
+#% keywords: raster
+#%end
+
+##
+## REQUIRED INPUTS
+##
+#%option G_OPT_R_ELEV
+#% required: yes
+#%end
+#%option G_OPT_V_INPUT
+#% key: river
+#% label: Name of vector map with interesting segments of rivers
+#% description: Vector map with the segments of the river that will be analysed
+#% required: yes
+#%end
+
+##
+## OPTIONAL INPUTS
+##
+#%option
+#% key: efficiency
+#% type: double
+#% key_desc: double
+#% description: Efficiency [0-1]
+#% required: yes
+#% options: 0-1
+#% answer: 1
+#%end
+#%option
+#% key: len_plant
+#% type: double
+#% key_desc: double
+#% description: Maximum plant length [m]
+#% required: yes
+#% answer: 100
+#%end
+#%option
+#% key: len_min
+#% type: double
+#% key_desc: double
+#% description: Minimum plant length [m]
+#% required: yes
+#% answer: 10
+#%end
+#%option
+#% key: distance
+#% type: double
+#% key_desc: double
+#% description: Minimum distance among plants [m]
+#% required: yes
+#% answer: 0.5
+#%end
+#%option
+#% key: p_min
+#% type: double
+#% key_desc: double
+#% description: Minimum mean power [kW]
+#% answer: 10.0
+#% required: no
+#%end
+#%option
+#% key: n
+#% type: double
+#% description: Number of operative hours per year [hours/year]
+#% required: no
+#% answer: 3392
+#%end
+
+##
+## OPTIONAL INPUTS: LEGAL DISCHARGE
+##
+#%option G_OPT_R_INPUT
+#% key: discharge_current
+#% label: Current discharge [m3/s]
+#% required: yes
+#% guisection: Legal Discharge
+#%end
+#%option G_OPT_R_INPUT
+#% key: mfd
+#% label: Minimum Flow Discharge (MFD) [m3/s]
+#% required: no
+#% guisection: Legal Discharge
+#%end
+#%option G_OPT_R_INPUT
+#% key: discharge_natural
+#% label: Natural discharge [m3/s]
+#% required: no
+#% guisection: Legal Discharge
+#%end
+#%option
+#% key: percentage
+#% type: double
+#% key_desc: double
+#% description: MFD as percentage of natural discharge [%]
+#% options: 0-100
+#% required: no
+#% guisection: Legal Discharge
+#%end
+
+##
+## OPTIONAL INPUTS: AREAS TO EXCLUDE
+##
+#%option G_OPT_V_INPUT
+#% key: area
+#% label: Areas to exclude
+#% description: Vector map with the areas that must be excluded (e.g. Parks)
+#% required: no
+#% guisection: Areas to exclude
+#%end
+#%option
+#% key: buff
+#% type: double
+#% key_desc: double
+#% description: Buffer for areas to exclude [m]
+#% required: no
+#% answer: 0
+#% guisection: Areas to exclude
+#%end
+#%option G_OPT_V_INPUT
+#% key: points_view
+#% label: Vector points of viewing position to exclude
+#% description: Vector with the points that are used to compute the visibility
+#% required: no
+#% guisection: Areas to exclude
+#%end
+#%option
+#% key: visibility_resolution
+#% type: double
+#% description: Resolution of the visibility map computation
+#% required: no
+#% guisection: Areas to exclude
+#%end
+#%option
+#% key: n_points
+#% type: integer
+#% description: Number of points for the visibility
+#% required: no
+#% guisection: Areas to exclude
+#%end
+
+##
+## OUTPUTS
+##
+#%option G_OPT_V_OUTPUT
+#% key: output_plant
+#% description: Name of output vector with potential segments
+#% required: yes
+#%end
+#%option G_OPT_V_OUTPUT
+#% key: output_vis
+#% description: Name of output vector with viewed areas
+#% required: no
+#% guisection: Areas to exclude
+#%end
+
+##
+## FLAGS
+##
+#%flag
+#% key: d
+#% description: Debug with intermediate maps
+#%end
+#%flag
+#% key: c
+#% description: Clean vector lines
+#%end
+
+#%rules
+#%exclusive: mfd, discharge_natural 
+#%exclusive: mfd, percentage 
+#%requires: discharge_natural, percentage 
+#%end
+
+# import system libraries
+from __future__ import print_function
+import os
+import sys
+import atexit
+
+# import grass libraries
+from grass.script import core as gcore
+from grass.pygrass.utils import set_path
+from grass.pygrass.messages import get_msgr
+from grass.pygrass.vector import VectorTopo
+from grass.script import mapcalc
+
+
+try:
+    # set python path to the shared r.green libraries
+    set_path('r.green', 'libhydro', '..')
+    set_path('r.green', 'libgreen', os.path.join('..', '..'))
+    from libgreen.utils import cleanup
+    from libhydro.plant import power2energy
+except ImportError:
+    try:
+        set_path('r.green', 'libhydro', os.path.join('..', 'etc', 'r.green'))
+        set_path('r.green', 'libgreen', os.path.join('..', 'etc', 'r.green'))
+        from libgreen.utils import cleanup
+        from libhydro.plant import power2energy
+    except ImportError:
+        gcore.warning('libgreen and libhydro not in the python path!')
+
+
+if "GISBASE" not in os.environ:
+    print("You must be in GRASS GIS to run this program.")
+    sys.exit(1)
+
+
+def set_new_region(new_region):
+    gcore.run_command('g.region', res=new_region)
+    return
+
+
+def set_old_region(info):
+    gcore.run_command('g.region', rows=info['rows'], e=info['e'],
+                      cols=info['cols'], n=info['n'],
+                      s=info['s'], w=info['w'], ewres=info['ewres'],
+                      nsres=info['nsres'])
+    return
+
+
+def main(opts, flgs):
+    TMPRAST, TMPVECT, DEBUG = [], [], flgs['d']
+    atexit.register(cleanup, raster=TMPRAST, vector=TMPVECT, debug=DEBUG)
+    OVW = gcore.overwrite()
+
+    dtm = options['elevation']
+    river = options['river']  # raster
+    discharge_current = options['discharge_current']  # vec
+    discharge_natural = options['discharge_natural']  # vec
+    mfd = options['mfd']
+    len_plant = options['len_plant']
+    len_min = options['len_min']
+    distance = options['distance']
+    output_plant = options['output_plant']
+    area = options['area']
+    buff = options['buff']
+    efficiency = options['efficiency']
+    DEBUG = flags['d']
+    points_view = options['points_view']
+    new_region = options['visibility_resolution']
+    final_vis = options['output_vis']
+    n_points = options['n_points']
+    p_min = options['p_min']
+    percentage = options['percentage']
+    msgr = get_msgr()
+
+    # set the region
+    info = gcore.parse_command('g.region', flags='m')
+    if (info['nsres'] == 0) or (info['ewres'] == 0):
+        msgr.warning("set region to elevation raster")
+        gcore.run_command('g.region', raster=dtm)
+
+    pid = os.getpid()
+
+    if area:
+        if float(buff):
+            area_tmp = 'tmp_buff_area_%05d' % pid
+            gcore.run_command('v.buffer',
+                              input=area,
+                              output=area_tmp,
+                              distance=buff, overwrite=OVW)
+            area = area_tmp
+            TMPVECT.append(area)
+        oriver = 'tmp_river_%05d' % pid
+        gcore.run_command('v.overlay', flags='t',
+                          ainput=river,
+                          binput=area,
+                          operator='not',
+                          output=oriver, overwrite=OVW)
+        river = oriver
+        TMPVECT.append(oriver)
+
+    if points_view:
+        info_old = gcore.parse_command('g.region', flags='pg')
+        set_new_region(new_region)
+        pl, mset = points_view.split('@') if '@' in points_view else (points_view, '')
+        vec = VectorTopo(pl, mapset=mset, mode='r')
+        vec.open("r")
+        string = '0'
+        for i, point in enumerate(vec):
+            out = 'tmp_visual_%05d_%03d' % (pid, i)
+            gcore.run_command('r.viewshed', input=dtm, output=out,
+                              coordinates=point.coords(), overwrite=OVW,
+                              memory=1000, flags='b', max_distance=4000,
+                              )
+            TMPRAST.append(out)
+            # we use 4 km sice it the human limit
+            string = string + ('+%s' % out)
+        #import pdb; pdb.set_trace()
+
+        tmp_final_vis = 'tmp_final_vis_%05d' % pid
+        formula = '%s = %s' % (tmp_final_vis, string)
+        TMPRAST.append(tmp_final_vis)
+        mapcalc(formula, overwrite=OVW)
+        # change to old region
+        set_old_region(info_old)
+        TMPVECT.append(tmp_final_vis)
+        gcore.run_command('r.to.vect', flags='v', overwrite=OVW,
+                          input=tmp_final_vis, output=tmp_final_vis,
+                          type='area')
+        if int(n_points) > 0:
+            where = 'cat<%s' % (n_points)
+        else:
+            where = 'cat=0'
+        gcore.run_command('v.db.droprow', input=tmp_final_vis,
+                          where=where, output=final_vis, overwrite=OVW)
+        tmp_river = 'tmp_river2_%05d' % pid
+        gcore.run_command('v.overlay', flags='t',
+                          ainput=river,
+                          binput=final_vis,
+                          operator='not',
+                          output=tmp_river, overwrite=OVW)
+        river = tmp_river
+        TMPVECT.append(tmp_river)
+
+        #import pdb; pdb.set_trace()
+
+    tmp_disch = 'tmp_discharge_%05d' % pid
+    if mfd:
+        formula = '%s=%s-%s' % (tmp_disch, discharge_current, mfd)
+        mapcalc(formula, overwrite=OVW)
+        TMPRAST.append(tmp_disch)
+        discharge_current = tmp_disch
+
+    elif discharge_natural:
+        formula = '%s=%s-%s*%s/100.0' % (tmp_disch, discharge_current,
+                                         discharge_natural,
+                                         percentage)
+        mapcalc(formula, overwrite=OVW)
+        formula = '%s=if(%s>0, %s, 0)' % (tmp_disch, tmp_disch, tmp_disch)
+        mapcalc(formula, overwrite=True)
+        TMPRAST.append(tmp_disch)
+        discharge_current = tmp_disch
+
+    gcore.run_command('r.green.hydro.optimal',
+                      flags='c',
+                      discharge=discharge_current,
+                      river=river,
+                      elevation=dtm,
+                      len_plant=len_plant,
+                      output_plant=output_plant,
+                      distance=distance,
+                      len_min=len_min,
+                      efficiency=efficiency,
+                      p_min=p_min)
+    power2energy(output_plant, 'pot_power', float(options['n']))
+    print('r.green.hydro.recommended completed!')
+
+if __name__ == "__main__":
+    options, flags = gcore.parser()
+    sys.exit(main(options, flags))

Added: grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r_green_hydro_planning_input.png
===================================================================
(Binary files differ)


Property changes on: grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r_green_hydro_planning_input.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r_green_hydro_planning_input_PNAM.png
===================================================================
(Binary files differ)


Property changes on: grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r_green_hydro_planning_input_PNAM.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r_green_hydro_planning_output_PNAM3.png
===================================================================
(Binary files differ)


Property changes on: grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r_green_hydro_planning_output_PNAM3.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r_green_hydro_planning_output_park.png
===================================================================
(Binary files differ)


Property changes on: grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r_green_hydro_planning_output_park.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r_green_hydro_planning_output_points.png
===================================================================
(Binary files differ)


Property changes on: grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.planning/r_green_hydro_planning_output_points.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream



More information about the grass-commit mailing list