source: TI02-CSML/trunk/services/3rdParty/pywps-1.0.0/pywps/processes/spearpath.py @ 2194

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI02-CSML/trunk/services/3rdParty/pywps-1.0.0/pywps/processes/spearpath.py@2194
Revision 2194, 3.5 KB checked in by lawrence, 13 years ago (diff)

Adding various specs and 3rd party code of interest for the CSML
services development.

Line 
1#!/usr/bin/python
2
3import os,time,string,sys,shutil
4
5class Process:
6    def __init__(self):
7        self.Identifier = "spearpath"
8        self.processVersion = "0.1"
9        self.storeSupported = "true"
10        self.Title="Find the shortes path on the roads map on Spearfish dataset"
11        self.grassLocation="/var/www/wps/spearfish60/"
12        self.Inputs = [
13                    {
14                        'Identifier': 'x1',
15                        'Title': 'Start x coordinate',
16                        'LiteralData': {
17                            'values':["*"],
18                            },
19                        'dataType': type(0.0),
20                        'value': None
21                    },
22                    {
23                        'Identifier': 'y1',
24                        'Title': 'Start y coordinate',
25                        'LiteralData': {
26                            'values':["*"],
27                        },
28                        'dataType': type(0.0),
29                        'value': None
30                    },
31                    {
32                        'Identifier': 'x2',
33                        'Title': 'End x coordinate',
34                        'LiteralData': {
35                            'values':["*"],
36                        },
37                        'dataType': type(0.0),
38                        'value': None
39                    },
40                    {
41                        'Identifier': 'y2',
42                        'Title': 'End y coordinate',
43                        'LiteralData': {
44                            'values':["*"],
45                        },
46                        'dataType': type(0.0),
47                        'value': None
48                    }
49                ]
50        self.Outputs = [
51                    {
52                        'Identifier': 'outputReference',
53                        'Title': 'Resulting output map',
54                        'ComplexValueReference': {'Formats':["text/xml"]},
55                        'value': None
56                    },
57                    {
58                        'Identifier': 'outputData',
59                        'Title': 'Resulting output map',
60                        'ComplexValue': {'Formats':["text/xml"]},
61                        'value': None
62                    },
63                ]
64
65    # --------------------------------------------------------------------
66    def execute(self):
67        """
68        This function serves like simple GRASS - python script
69
70        It returns None, if process succeed or String if process failed
71        """
72
73        os.system("g.region -d")
74        # FIXME: the program does print "Building topology to STDOUT!!
75        print  "echo '0 %s %s %s %s' | v.net.path in=roads out=path 1>&2" % \
76                (self.Inputs[0]['value'],
77                self.Inputs[1]['value'],
78                self.Inputs[2]['value'],
79                self.Inputs[3]['value'])
80
81        os.system(
82            "echo '0 %s %s %s %s' | v.net.path in=roads out=path 1>&2" % \
83            (self.Inputs[0]['value'],
84                self.Inputs[1]['value'],
85                self.Inputs[2]['value'],
86                self.Inputs[3]['value']))
87        os.system("v.out.ogr format=GML input=path dsn=out.xml  olayer=path.xml 1>&2")
88
89        if "out.xml" in os.listdir(os.curdir):
90            shutil.copy("out.xml","out2.xml")
91            self.Outputs[0]['value'] = "out.xml"
92            self.Outputs[1]['value'] = "out2.xml"
93            return
94        else:
95            return "Ouput file not created!"
Note: See TracBrowser for help on using the repository browser.