[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