7 votos

¿Existen módulos de código abierto de Python compatibles con arcpy que permitan consultas SQL complejas?

Estoy tratando de manejar la cadena (no de la geometría), se duplica en una gran tabla de atributos de un archivo shapefile sin tener que convertir a gdb y hacia atrás, o conectarse a un postgres db. Necesito ser capaz de utilizar una función de recuento por mi consulta. Prefiero no crear un archivo de salida, sino que, simplemente, actualizar el fichero en sí. He mirado en los cursores pero no me parece para lograr lo que necesito para con ellos. Esencialmente me necesita para obtener un recuento de los duplicados, para hacer una comparación, y como consecuencia anexar los valores de un campo con los valores de otro campo.

5voto

Greg Puntos 1756

Si los duplicados que desea hacer algo acerca de a través de las filas me gustaría ver a , specifcally ogr sql.

Si OGR no hace lo que quiere y los datos que desea cambiar son a través de las columnas (campos) y no filas (registros) con el cuidado apropiado puede utilizar cualquier herramienta que entiende DBF, que debe cualquier db herramienta que vale la pena es la sal, incluyendo Access/Excel. Algo para ver, especialmente con Excel, son silenciosas cambio de formato de los campos de fecha y hora, y el truncamiento del total de registros (Excel tiene max límite de fila, y puede o no puede decir algo al respecto). Siempre trabajar en una copia, validar los resultados, y nunca eliminar, añadir o cambiar el orden de las filas cuando el uso de un no-espacial dbf herramienta.

3voto

djq Puntos 7670

(Este no usa python ni ArcGIS , pero podría ser un enfoque útil.)

Un enfoque alternativo podría ser la lectura de la dbf parte de la shapfile en R (utilizando el foreign paquete). A continuación, instale y cargue el paquete sqldf, el cual ofrece una completa funcionalidad SQL. Así que mientras no te reorganizar o cambiar el número de filas que usted puede escribir un nuevo dbf fichero que se va a trabajar^ con su shapefile.

↑ aunque me imagino que es posible romper el shapefile en ciertas circunstancias no he hecho esto sin embargo, con este enfoque.

0voto

Monroecheeseman Puntos 825

Si instala pywin32, puede consultar sus archivos .dbf con cualquier consulta SQL compatible con Jet y acceder a los resultados en un RecordSet desde Python. Puede ejecutar una función de agregado como count, consulta anidada, consulta de actualización, etc o salida a otro dbf. En mi experiencia, el nombre de archivo dbf debe ser 8.3 compiant.

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