5 votos

¿Cómo enlazo OGR con spatialite?

Problema Y Pruebas:
Estoy tratando de crear un spatialite archivo con el siguiente fragmento de código. Sin embargo, el outDataSource objeto se le asigna NoneType y todos los posteriores (unshown) código de falla. Estoy pensando que el problema es con el spatialite instalación por dos razones:

1) a la hora de elegir 'ESRI Shapefile' como el controlador y dejar las opciones a=['SPATIALITE=yes"] el outDataSource se crea correctamente y todos los posteriores códigos funciona según lo previsto.

2) Cuando dejo el conductor como 'SQLite' pero echa un vistazo a las opciones=['SPATIALITE=yes'], la no-espacial de tablas sqlite está creado de hecho. Así, cualquier idea en lo que me estoy perdiendo o podría haber hecho de forma incorrecta para establecer el vínculo entre la OGR y spatialite?

Medio ambiente:
Estoy desarrollando sobre Spyder 2.3.0 rc, con Python 2.7.7 32bits, Qt 4.8.6, PyQt4 (API v2) 4.10.4 en Windows, como el entregado por la Anaconda-2.0.1-Windows-x86 ejecutable. Además, el desarrollo de los comentarios al final del código de describir los pasos para instalar spatialite.

Código:

# standard modules
import os

# third party modules
from osgeo import ogr


##############################################################################
# create a new spatialite output file
##############################################################################

outputGridfn = os.path.join(os.getcwd(), 'grid.sqlite')
outDriver = ogr.GetDriverByName('SQLite')
outDataSource = outDriver.CreateDataSource(outputGridfn,
                                           options=['SPATIALITE=yes'])


##############################################################################
# Development notes
##############################################################################

# SPATIALITE functionality requires the following work
# Step 0: Download DLL's from
# latuviitta.org/documents/Spatialite_4.0_test_with_jre_1.6.zip
# Step 1: Unzip and copy the spatialite DLL into the Python DLL library

# Recompile the sqlite3 DLL from the amalgamation as follows
# Step 0: Add '#define SQLITE_ENABLE_RTREE' to the sqlite3.c file
# Step 1: gcc -c sqlite3.c
# Step 2: gcc -shared -o sqlite3.dll sqlite3.o
# Step 3: Place the DLL in the python DLL library

# Add libgeo-3-3-1.dll to python DLL library

1voto

znq Puntos 143

como @BradHards mencionado - es posible que la instalación de GDAL con anaconda carece de soporte para spatialite. este hilo del Grupo google indica que GDAL es una adición reciente a la repo de anaconda, posiblemente aún con algunos problemas. podría probar otra distro - o ir a una más ruta del manual reinstalar GDAL sin conda.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X