exp.py

Óscar Martínez, 11/26/2019 04:51 PM

Download (1.33 KB)

 
1
# encoding: utf-8
2

    
3
import gvsig
4
from org.gvsig.expressionevaluator.spi import AbstractFunction
5
from org.gvsig.expressionevaluator import ExpressionEvaluatorLocator
6
from org.apache.commons.lang3 import Range
7
from java.lang import Integer
8
class PixelXFunc(AbstractFunction):
9
  def __init__(self, pixelx):
10
    self.pixelx = pixelx
11
    AbstractFunction.__init__(
12
                    self,
13
                    "Kernel Algorithm",
14
                    "pixelx",
15
                    Range.is(Integer(0)),
16
                    "Return the pixel coordinate x",
17
                    "pixelx()",
18
                    None,
19
                    "Double"
20
    )
21

    
22
  def call(self, interpreter, args):
23
    return self.pixelx
24

    
25
from org.gvsig.expressionevaluator.spi import AbstractSymbolTable
26
from org.gvsig.fmap.dal import DataManager
27
class KernelSymbolTable(AbstractSymbolTable):
28
    def __init__(self, x):
29
        AbstractSymbolTable.__init__(self, DataManager.DAL_SYMBOL_TABLE)
30
        self.pixelx = x
31
        self.addFunction(PixelXFunc(self.pixelx))
32
    def setX(self, x):
33
      self.pixelx= x
34

    
35
def main(*args):
36
  manager = ExpressionEvaluatorLocator.getManager()
37
  exp = manager.createExpression()
38
  exp.setPhrase("pixelx()")
39

    
40
  symbol = KernelSymbolTable(15)
41
  ev = exp.execute(symbol)
42
  print ev #muestra 15
43
  symbol.setX(5)
44
  ev = exp.execute(symbol)
45
  print ev #muestra 15
46