[Gvsig_usuarios] Libreria gvpy

Oscar Martinez omartinez en gvsig.com
Vie Mar 24 14:30:35 CET 2017


Buenas,


Los algortimos gvSIG-* funcionan de manera algo diferente. Por ahora, 
siempre que ejecutes uno de estos algoritmos tienes que especificar el 
path que quieres usar. En gvpy se especifica añadiendo un parámetro 
PATH. Para esto ya teníamos una función preparada en gvSIG llamada 
getTempFile("nombre", "extension", "carpeta destino"), siendo el último 
parámetro opcional. Esto imita el funcionamiento que tienen el resto de 
geoprocesos.


También ten en cuenta que este geoproceso reproject especifica y crea 
tres capas de salida, aunque luego solo vayas a usar una, hay que 
indicar los paths.


Te adjunto un ejemplo de todo esto.


Espero te sirva de ayuda, cualquier cosa nos comentas.


Saludos


https://gist.github.com/oscar9/43523df6c76056cbde97f4a23f967ffe


# encoding: utf-8

import gvsig

from gvsig import *

from gvsig.libs import gvpy

reload(gvpy)

import os

def main(*args):

     

     gvpy.algHelp("gvSIG-reproject")

     """

     * Algorithm help:  Reproyección

     * Usage: runalg( "gvSIG-reproject",

                                   LAYER[Vector Layer],

                                   SELECTED_GEOM[Boolean],

                                   DST_PROJECTION[String],

                                   RESULT_POL[output vector layer],

                                   RESULT_LINE[output vector layer],

                                   RESULT_POINT[output vector layer],

                                   );

     """

     #Funtion tempfile

     n1 = getTempFile("new", ".shp")

     print n1

     #C:\Users\Versus\AppData\Local\Temp\/tmp-andami\new-58d51c6267b.shp

     

     n2 = getTempFile("new", ".shp", r"C:\resultados")

     print n2

     #C:\resultados\new-58d51c62686.shp

     

     # Ejemplo

     shp1 = gvpy.runalg("randomvector",10,0)

     shp2 = gvpy.runalg("gvSIG-reproject", shp1, "false", "EPSG:25829", PATH=[getTempFile("new1", ".shp"),getTempFile("new2", ".shp"),getTempFile("new3", ".shp")])

     print shp2

     

     # Salida multiple en forma de lista: [new1-58d51c7f20ed, new2-58d51c7f20ed, new3-58d51c7f20ed]

     print shp2[0].getGeometryType().getName()

     print shp2[1].getGeometryType().getName()

     print shp2[2].getGeometryType().getName()

     pass



El 24/03/2017 a las 13:00, Ovidio Ribeira escribió:
>
> Hola, usando la libreria gvpy en un script y al ejecutarlo la segunda 
> vez me da el error de que el fichero de salida existe, utilizando el 
> siguente comando:
>
> gvpy.runalg("gvSIG-reproject", "Area", "false", "EPSG:25829", "#", 
> "#", "#",)
>
> Con esta outra linea funciona sin problemas creando varios ficheros 
> temporales: gvpy.runalg("randomvector",10,0),
>
> Tambien necesito ayuda para capturar solo la capa de polígonos del 
> geoproceso  gvsig-reproject.
>
> Gracias y saludos.
>
>
>
>
> _______________________________________________
> gvSIG_usuarios mailing list
> gvSIG_usuarios en listserv.gva.es
>
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección:
>
> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listserv.gva.es/pipermail/gvsig_usuarios/attachments/20170324/0b75ed34/attachment.html>


Más información sobre la lista de distribución gvSIG_usuarios