[Gvsig_usuarios] Libreria gvpy

Ovidio Ribeira alboredos en hotmail.es
Lun Mar 27 08:29:00 CEST 2017


Buenos días Oscar, gracias por tu ayuda y tu tiempo, con tus explicaciones conseguí lo que quería, pero para mejorar el script so lo me faltaría,: poder eliminar de la TOC una capa que ya no me interesa, lo que hice fue ponerla como no visible,. Tampoco consigo renombrar la capa de salida del geoproceso reproyectar, aquí lo que hago es no añadir ninguna con el geoproceso y despues anadir a la TOC la n.º 0. Me seria bueno poder añadir una simbología y un etiquetado por selección a la nueva capa desde el script. Para seleccionar una capa uso:   currentLayer().setActive(False)  y   s1.setActive(True)  pero si al principio no hay ninguna capa activa me da un error, como se puede saber si hay alguna capa activa. Y por último la capa de salida en el geoproceso intersección cambia el nombre de los campos, hay alguna manera de que no lo haga.

Saludos y si puedes la ayudar será muy bien venida .




________________________________
De: gvsig_usuarios-bounces en listserv.gva.es <gvsig_usuarios-bounces en listserv.gva.es> en nombre de Oscar Martinez <omartinez en gvsig.com>
Enviado: viernes, 24 de marzo de 2017 14:30
Para: gvsig_usuarios en listserv.gva.es
Asunto: Re: [Gvsig_usuarios] Libreria gvpy


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<mailto: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/20170327/a2e294d3/attachment.html>


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