Hi Mohammed,
Thanks for your answer. However, when I tried to run your python script I get errors. I run GRASS 6.4.0 on a Mac, downloaded the file wx.path.py, changed permissions. This is what I get:
Welcome to GRASS 6.4.0 (2010)
GRASS homepage: http://grass.osgeo.org/
This version running thru: Bash Shell (/bin/bash)
Help is available with the command: g.manual -i
See the licence terms with: g.version -c
Start the GUI with: g.gui wxpython
When ready to quit enter: exit
GRASS 6.4.0 (spearfish60):~ > ls -l wx.path.py
-rwxr-xr-x@ 1 robbie staff 12384 18 sep 10:38 wx.path.py
GRASS 6.4.0 (spearfish60):~ > g.gisenv
GISDBASE=/Users/robbie/grassdata
LOCATION_NAME=spearfish60
MAPSET=PERMANENT
GRASS_GUI=text
GRASS 6.4.0 (spearfish60):~ > python wx.path.py
Traceback (most recent call last):
File “wx.path.py”, line 371, in
path_app = PathApp(0)
File “/Users/Shared/unix/wxpython-snow/lib/python2.6/site-packages/wx-2.8-mac-unicode/wx/_core.py”, line 7978, in init
File “/Users/Shared/unix/wxpython-snow/lib/python2.6/site-packages/wx-2.8-mac-unicode/wx/_core.py”, line 7552, in _BootstrapApp
File “wx.path.py”, line 361, in OnInit
size=globalvar.MAP_WINDOW_SIZE)
File “wx.path.py”, line 131, in init
self.AddToolbar(toolb)
File “wx.path.py”, line 336, in AddToolbar
self.toolbars[‘map’] = toolbars.MapToolbar(self, self.Map)
File “/Applications/GRASS-6.4.app/Contents/MacOS/etc/wxpython/gui_modules/toolbars.py”, line 165, in init
log = self.parent.gismanager.goutput
AttributeError: ‘NoneType’ object has no attribute ‘goutput’
So, I tried to run an example from http://grass.osgeo.org/wiki/GRASS_and_Python.
I created a new text-file with following code, saved it to regnrowcol.py, changed permissions,…
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#
############################################################################
#
# MODULE: g.region.resolution
# AUTHOR(S): based on a post at GRASS-USER mailing list [1]
# PURPOSE: Parses "g.region -g", prints out number of rows, cols
# COPYLEFT: ;-)
# COMMENT: ...a lot of comments to be easy-to-read for/by beginners
#
#############################################################################
#
#%Module
#% description: Print number of rows, cols of current geographic region
#% keywords: region
#%end
# importing required modules
import sys # the sys module [2]
from grass.script import core as grass # the core module [3]
# information about imported modules can be obtained using the dir() function
# e.g.: dir(sys)
# define the "main" function: get number of rows, cols of region
def main():
# #######################################################################
# the following commented code works but is kept only for learning purposes
## assigning the output of the command "g.region -g" in a string called "return_rows_x_cols"
# return_rows_x_cols = grass.read_command('g.region', flags = 'g')
## parsing arguments of interest (rows, cols) in a dictionary named "rows_x_cols"
# rows_x_cols = grass.parse_key_val(return_rows_x_cols)
## selectively print rows, cols from the dictionary "rows_x_cols"
# print 'rows=%d \ncols=%d' % (int(rows_x_cols['rows']), int(rows_x_cols['cols']))
# #######################################################################
# faster/ easier way: use of the "grass.region()" function
gregion = grass.region()
rows = gregion['rows']
cols = gregion['cols']
# print rows, cols properly formated
print 'rows=%d \ncols=%d' % (rows, cols)
# this "if" condition instructs execution of code contained in this script, *only* if the script is being executed directly
if __name__ == "__main__": # this allows the script to be used as a module in other scripts or as a standalone script
options, flags = grass.parser() #
sys.exit(main()) #
This is also not working:
GRASS 6.4.0 (spearfish60):~ > ls -l regnrowcol.py
-rw-r–r–@ 1 robbie wheel 1839 19 sep 21:01 regnrowcol.py
GRASS 6.4.0 (spearfish60):~ > chmod a+x regnrowcol.py
GRASS 6.4.0 (spearfish60):~ > ls -l regnrowcol.py
-rwxr-xr-x@ 1 robbie wheel 1839 19 sep 21:01 regnrowcol.py
GRASS 6.4.0 (spearfish60):~ > g.region -p
projection: 1 (UTM)
zone: 13
datum: nad27
ellipsoid: clark66
north: 4928000
south: 4914000
west: 590000
east: 609000
nsres: 100
ewres: 100
rows: 140
cols: 190
cells: 26600
GRASS 6.4.0 (spearfish60):~ > python regnrowcol.py
Line too long or missing newline at line 54
What can be the problem? Apparently, I’m missing a clue to run python scripts (on my Mac).
Robbie
2010/9/18 Mohammed Rashad <mohammedrashadkm@gmail.com>
try
wx.path python version.
but it will not fulfil your needs but more interactive than v.net.path
now it only support spearfish dataset
will extend to use any data if anyone needs
http://svn.osgeo.org/grass/grass-addons/gui/wxpython/wx.path/wx.path.py
On Fri, Sep 17, 2010 at 7:01 PM, Robbie Heremans <robbie.heremans@gmail.com> wrote:
Starting from a file with start and end positions (x_start, y_start, x_stop, y_stop) and a vector map of roads, I have to find places on the roads where most people pass, assuming they will use the shortest path or path with the least cost.
Is there a command in Grass that can do this (ic v.net.path for each record and summary map of these shortest paths)?
Any suggestions/examples?
Robbie
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
–
Rashad