9 votos

¿Buscando la función de purga para eliminar las capas del archivo qgs que no están presentes en el panel de capas de QGIS?

Tengo algunos proyectos de QGIS que he estado utilizando durante mucho tiempo, añadiendo y eliminando capas, actualizando la referencia a archivos eliminados o movidos, etc.

Al abrir el archivo qgs con un editor de texto veo que contiene numerosas referencias a diferentes archivos, y estas referencias no se muestran en el panel del árbol de capas.

Tengo tres casos diferentes: referencias a archivos existentes, referencias a archivos que faltan, referencias a conexiones de bases de datos. Me di cuenta de esto cuando abrí mi proyecto en otra máquina, y QGIS informó de una conexión de base de datos que falta a las tablas de vectores que no están presentes en la vista de árbol de capas.

Borrar manualmente las referencias del archivo qgs solucionó el problema, pero estoy gestionando proyectos enormes y es casi imposible comprobar manualmente la consistencia del proyecto. He probado el plugin "Eliminar capas vacías", pero las que intento eliminar no son capas vacías.

¿Hay alguna forma de "purgar" el archivo qgis?

0 votos

¿Comprobó almacenando las rutas relativas en el archivo .qgs? Está en Setting--> Project Properties-->save paths-->relative Salud N

0 votos

¿Qué pasa con "Guardar como..." en un nuevo archivo de proyecto?

0 votos

Ya estoy usando rutas relativas...

7voto

Michael Puntos 11

Las capas en cuestión están en el registro de capas pero no en el leyenda .

El siguiente python script elimina todas las capas que se cargan, pero que no se muestran en la leyenda.

Quitando las capas:

registryLayers = QgsMapLayerRegistry.instance().mapLayers().keys()
legendLayers = [ layer.id() for layer in iface.legendInterface().layers() ]
layersToRemove = set( registryLayers ) - set( legendLayers )
QgsMapLayerRegistry.instance().removeMapLayers( list( layersToRemove ) )

Se debe ejecutar desde la consola de python dentro de QGIS. Después de aplicarlo puedes verificar la operación comprobando que las capas han desaparecido de Archivo (Proyecto en 2.0) \=> Propiedades del proyecto \=> Capas identificables . Los cambios no se guardan automáticamente

Añadiendo la siguiente línea al final, los cambios también se guardarán automáticamente.

iface.actionSaveProject().trigger()

Por favor, haga una copia de seguridad de su archivo de proyecto (.qgs) antes de sobrescribir su archivo de proyecto después de aplicar este script.

Para QGIS 1.8 es necesario ejecutar inicialmente la siguiente línea:

iface = qgis.utils.iface

0 votos

Ok estoy recibiendo errores cuando lo introduzco. Traceback (most recent call last): File "<input>", line 1, in <module> NameError: name 'legendLayerNames' is not defined

1 votos

QGIS 1.8 requiere otra forma de acceder a iface. La respuesta se actualiza para reflejar esto.

1 votos

Creo que lo tienes aquí. Bueno, en mi caso funcionó. Y como resultado hizo que QGIS Cloud funcione mejor también ya que es capaz de cargar las capas ahora. Excelente.

1voto

aditya Puntos 111

Además de muchas otras funciones útiles, el plugin llamado " Junta de capas " (disponible en el instalador del plugin) tiene un botón incorporado para "Eliminar capas fantasma" que resuelve este problema.

Además del botón de 1 clic para eliminar capas fantasma, también permite ver y eliminar capas individuales en una bonita interfaz gráfica de usuario que enumera cada capa y sus propiedades. Puede seleccionar cualquiera de estas capas individuales de la tabla y hacer clic en el botón "Eliminar capa" para resolver cada problema individualmente, si así lo desea.

En mi caso, la posibilidad de eliminar las referencias individuales a las capas era muy importante, porque tenía algunas "capas fantasma" que tenían el mismo nombre pero a las que se hacía referencia 2-3 veces en el registro. Utilicé el tablero de capas para eliminar las entradas correctas individualmente y volver a la referencia correcta de una sola capa.

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