Add an existing shape file to the view. Returns Layer shape file
Parámetros: |
|
---|---|
Type : | shpFile: string |
Devuelve: | shape |
Add an existing raster file to the view. Returns Layer Raster file.
Parámetros: |
|
---|---|
Devuelve: | raster layer |
Parámetros: | filename (str) – absolute file path to the DBF file |
---|---|
Devuelve: | dbf |
En muchas ocasiones es necesario hacer referencia a ficheros que tengamos dentro de nuestro módulo, es decir, obtener la ruta completa de un fichero a partir de la ruta relativa en la que se encuentre nuestro script, independientemente de donde este instalado o del sistema. Para ello nos ayudamos de la función getResource(__file__) que devuelve la ruta de la carpeta de nuestro script en ejecución.
Esta constante debe de ser usada siempre usando la función getResource para que obtenga correctamente su ruta.
En este caso, nos devuelve la ruta del script en ejecución:
import gvsig
def main(*args):
print getResource(__file__)
En mi caso la ruta es:
/home/osc/gvsig-devel/master_scripts/testing_getResource.py
Con la función lo que hacemos es sacar el directorio donde se encuentra el script. Ejemplo de uso:
# encoding: utf-8
import os
import gvsig
def main(*args):
"""Obtener ruta absoluta de ficheros en la carpeta de ejecucion del script"""
path_script = getResource(__file__)
print "Path script: ", path_script
print "Ruta relativa: data/fichero.xx"
print "Ruta absoluta: ", getResource(__file__, "data", "fichero.xx")
Salida por consola será:
Path script: c:\gvdevel\gvsig\gvSIG-desktop-2.3.0-2441-RC2-win-x86_64\home\gvSIG\plugins\org.gvsig.scripting.app.mainplugin\scripts
Ruta relativa: data/fichero.xx
Ruta absoluta: c:\gvdevel\gvsig\gvSIG-desktop-2.3.0-2441-RC2-win-x86_64\home\gvSIG\plugins\org.gvsig.scripting.app.mainplugin\scripts\data\fichero.xx
De esta forma estaríamos accediendo a la carpeta /datos/ dentro de nuestro módulo.
Por ejemplo:
# encoding: utf-8
import gvsig
def main(*args):
x = gvsig.getResource(__file__,"testing.py")
print "path: ", x
print "type: ", type(x)
Podemos comparar la ruta por consola:
path: /home/osc/gvsig-devel/master_scripts/testing.py
type: <type 'unicode'>
Pudiendo añadirle tantos parámetros como carpetas sea necesario recorrer:
# encoding: utf-8
import gvsig
def main(*args):
x = gvsig.getResource(__file__,"Game","data","testing.py")
print "path: ", x
print "type: ", type(x)
Muestra por consola la ruta:
path: /home/osc/gvsig-devel/master_scripts/Game/data/testing.py
type: <type 'unicode'>
Podemos usar la función para otro tipo de rutas asegurándonos que será correcta independientemente del sistema:
import gvsig
def main(*args):
x = gvsig.getResource("/home/osc/temp/","test1.dbf")
print "path: ", x
print "type: ", type(x)
Las funciones posteriores se apoyan todas en una función principal denominada loadLayer.
Ejemplo de uso para un fichero raster:
layer = loadLayer('Gdal Store', crs=getCRS("EPSG:3042"),uri=File(r"C:\temp\mdt20_3_etrs89.tif").toURI(),gvViewName=currentView())
Para cargar capas vectoriales usaremos la función loadShapeFile(). Esta es una función de apoyo que llama a la función createLayer() más genérica.
Ejemplo:
from gvsig import *
from java.io import File
def main(*args):
# Get resource path
shape_path = getResource(__file__,"data","jaen.shp")
# loadShapeFile function
s1 = loadShapeFile(shape_path)
# LoadLayer function
s2 = loadLayer("Shape", shpFile=xfile, CRS="EPSG:25830")
Para cargar capas raster usaremos la función loadRasterFile(). Esta es una función de apoyo que llama a la función createLayer() más genérica.
Si necesitamos transformar una ruta a formato uri podemos hacerlo apoyándonos en la clase de Java: java.io.File:
Ejemplo:
from gvsig import *
from java.io import File
def main(*args):
# Load Raster File
raster_path = getResource(__file__,"data","mdt_jaen.tif")
r1 = loadRasterFile(raster_path)
raster_uri = File(getResource(__file__,"data","fichero.xx")).toURI()
r2 = loadLayer("Gdal Store", uri=raster_uri)
Para trabajar con la creación y carga de ficheros DBF existen las funciones createDBF(schema) y loadDBF(dbfFile). Siendo un objecto DefaultFeatureStore
Ejemplo de uso:
from gvsig import *
def main(*args):
schema = createSchema()
schema.append("ID", "INTEGER")
dbf = createDBF(schema, prefixname="summary")
print dbf, type(dbf)
path = dbf.getFullName()
loadDBF(path)