Есть ли в QGIS автоматическая функция для упаковки всех файлов в проекте для передачи?

35

В моем проекте я использую много геоданных из разных каталогов. Теперь я хочу передать проект QGIS коллеге (например, на компакт-диске).

Можно ли автоматически копировать фигуры из разных каталогов в один каталог?

Хендрик Пехлке
источник
1
С 2016-02-05 плагин QConsolidate корректно работает с шейп-файлами, растрами TIF ​​и (!) Покрытиями дуг. Однако классы объектов файловой базы геоданных (в виде точек) не копируются в выходную папку.
Стю Смит

Ответы:

44

Вы ищете плагин QConsolidate , который работает очень хорошо. Он перенесет все в один каталог и перепишет файл проекта .QGS (файл XML), чтобы указать на новые исходные местоположения.


QConsolidate все еще указан как экспериментальный - вам нужно включить «Показать также экспериментальные плагины» в диалоге настроек.

Однако - это работает очень хорошо. Заметки:

  • Вы должны сохранить проект, над которым работаете, прежде чем пытаться объединить его в другом месте;
  • Выходным форматом будет файл проекта (.QGS), вместе с папкой «слои», которая (удивительно!) Содержит слои;
  • QConsolidate преобразует слои базы данных в шейп-файлы и перепишет файл проекта для ссылки на новый шейп-файл;
  • Хотя часто вы можете захотеть поделиться консолидированным проектом на внешнем жестком диске, сначала сохраните его на локальном жестком диске, так как выполнение многих операций записи действительно замедлит процесс, если вы попытаетесь консолидировать напрямую на медленный носитель.
Simbamangu
источник
Большое спасибо. QConsolidate это именно то, что я искал.
Хендрик Пелке,
1
Просто искал ответ на ту же проблему. Я думаю, что с плагинами Qconsolidate и relocator тема может рассматриваться как ответная. НО: я действительно надеюсь, что разработка relocator ускорится, потому что QConsolidate кажется почти мертвым :( Ни одного коммита за 2 года на странице github.
martin
20

Я только что протестировал три плагина, которые пытаются сделать то, что вы просите, в файле проекта с различными форматами на основе файлов. Вот результаты:

Проверенные плагины были:

  • QConsolidate 0.2.1
  • QPackage 1.3
  • локатор 0,9

Тесты были выполнены на QGIS 2.18.14 64bit на Windows 10

Все три плагина обрабатывали шейп-файлы без проблем, перемещали данные в целевой каталог и создавали проект, который ссылался на локальные копии наборов данных.

QConsolidate

  • Файл GDB: не скопирован или не переведен (потеря данных). Файл проекта все еще ссылается на слой
  • Spatialite: переведено в SHP
  • Геопакет: скопировано без перевода
  • GeoTiff: скопировано без изменений

QPackage

  • FileGDB: переведено в SHP
  • Spatialite: переведено в SHP
  • Геопакет: переведено в SHP
  • GeoTiff: скопировано без изменений

средства перемещения

  • FileGDB: переведено в SHP, неверный путь в файле проекта
  • Spatialite: переведено в SHP, неверный путь в файле проекта
  • Геопакет: переведено в SHP, неверный путь в файле проекта
  • GeoTiff: скопировано без изменений

QPackage, похоже, работал лучше всех. Соединения с базой данных и слои веб-сервисов не тестировались.

Энди Харфут
источник
Отличный ответ - думал об обновлении моего аналогично и нашел это. Какой у вас опыт переписанного самого файла .QGS? Мой последний опыт работы с QConsolidate некоторое время назад заключался в предоставлении искаженных каталогов данных и файла QGS.
Симбамангу
Честно говоря, я не использую плагины, но при необходимости внесу изменения в копию файла QGS. Этот ответ был основан на некотором тестировании для клиента, которое, по моему мнению, принесло бы большую пользу.
Энди Харфут
Я использовал QPackage, и он работает довольно хорошо. Я выберу другой вариант, но сейчас я доволен этим решением ...
Пауло Мартинью
6

Я не знаю, как это сделать в самом QGIS, но файл проекта (.qgs) - это просто текстовый файл. Поэтому примитивным, но эффективным способом было бы скопировать все вручную в один каталог, а затем изменить <datasource></datasource>теги в файле .qgs либо с помощью поиска и замены, либо с помощью регулярного выражения, указывающего на новый каталог.

Если у вас много разных файлов / каталогов, одним из вариантов будет автоматизировать его в python, выполнив поиск каждого тега в файле .qgs, скопировав каждый связанный файл с этим именем в каталог, а затем заменив .qgs. пометить с новым каталогом.

Stev_k
источник
4

Теперь есть также новый плагин relocator . (также помечен как экспериментальный в данный момент). Дает вам возможность сохранить все слои с файлом проекта в один каталог или даже в zip-файл.

Бернд В.
источник