Qgis скорость загрузки как слоев так и проекта

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
FAQ
Интересующийся
Сообщения: 27
Зарегистрирован: 09 окт 2019, 08:57
Репутация: 0
Откуда: Петропавловск-Камчатский

Qgis скорость загрузки как слоев так и проекта

Сообщение FAQ » 30 авг 2023, 03:14

Просьба опытных участников поделиться информацией как можно измерить скорость загрузки каждого слоя/растра в проекте (как то ранее находил это, возможно в более старых версиях). Данная инфа необходима для анализа загрузки растров с разной степенью сжатости. Также интересует возможность любого ускорения загрузки и работы проекта с множеством растровых и векторных слоев (общераспространенные желательно не обсуждать - индексирование, тайлы, железо - из расчета что все на ssd), так как загрузка проекта бывает длится более 5 мин. Вместе с тем иногда приходится пересоздавать проект, так как он сильно "разбухает", путем обычного перетаскивания в чистый шаблон всех слоев из 180 мб старого проекта создаю такой же новый размером 3-5 мб (возможно в другой теме придется обсуждать)

konst555
Активный участник
Сообщения: 212
Зарегистрирован: 11 авг 2015, 16:13
Репутация: 45

Re: Qgis скорость загрузки как слоев так и проекта

Сообщение konst555 » 30 авг 2023, 08:51

Заинтересовал факт "разбухания" проекта от 5 до 180 Мб.
Вы проверяли, что конкретно там так сильно увеличивается?
Например, просто распаковать файл проекта (это обычный zip) и посмотреть что там добавилось?

По скорости загрузки и оптимизации работы сейчас не готов ответить, но QGIS очень прозрачная система. В настройках есть даже Advanced Setting, если уже поняли схему работы QGIS и обсуждать железо, индексирование тайлы и т.д. нет необходимости.

По железу. Вы забыли про графические ускорители. Никакой SSD тут не поможет. При плохой графической карте или если ее возможности не используются, все будет отображаться очень медленно, т.к. обработка пикселей экрана ляжет на основной процессор. Это я уже неоднократно проверил. Если у вас хорошая карта, то попробуйте Enable OpenCL acceleration.

Еще фактор железа. Где у вас хранятся временные файлы QGIS. Некоторые ставят быстрые диски для данных, а про это забывают.

Тем не менее, если вы не выключили показ начальной картинки при загрузке, обратите внимание на строчку внизу этой картинки. Если присоединено много плагинов, то они очень долго будут загружаться. Система проверяет и активирует каждый плагин. Чтобы долго проект не грузился, оставьте необходимый минимум, остальные отключите.

Оптимизация и ускорение проекта - это дело ваших рук. Скорее всего он у вас неправильно организован.
Возьмите известный проект и посмотрите как он организован (например, https://www.naturalearthdata.com/)
Отображаться должны слои соответствующего масштаба. Т.е. если у вас векторный (да и растровый тоже) слой для масштаба 1:5000, а ваше окно имеет масштаб 1:500000, то грузиться будет даже не 5 минут, а гораздо дольше. Но если вы дублируете эти же слои и загрубите их хотябы до 1:50000 и при этих масштабах будут отображаться именно они (там есть такой параметр), то загрузка будет проходить почти в 10 раз быстрее. В то же время, при масштабе окна 1:5000 будет подгружаться только небольшие куски этого масштаба. Вы же про тайлы все знаете и уже нарезали огромные гриды на соответствующие масштабу плитки.

Часто мы не делаем такие вещи не потому, что не знаем как или лень это делать, а потому что есть другие задачи и мы готовы мириться со скоростью загрузки до конечного оформления.

konst555
Активный участник
Сообщения: 212
Зарегистрирован: 11 авг 2015, 16:13
Репутация: 45

Re: Qgis скорость загрузки как слоев так и проекта

Сообщение konst555 » 30 авг 2023, 08:51

Заинтересовал факт "разбухания" проекта от 5 до 180 Мб.
Вы проверяли, что конкретно там так сильно увеличивается?
Например, просто распаковать файл проекта (это обычный zip) и посмотреть что там добавилось?

По скорости загрузки и оптимизации работы сейчас не готов ответить, но QGIS очень прозрачная система. В настройках есть даже Advanced Setting, если уже поняли схему работы QGIS и обсуждать железо, индексирование тайлы и т.д. нет необходимости.

По железу. Вы забыли про графические ускорители. Никакой SSD тут не поможет. При плохой графической карте или если ее возможности не используются, все будет отображаться очень медленно, т.к. обработка пикселей экрана ляжет на основной процессор. Это я уже неоднократно проверил. Если у вас хорошая карта, то попробуйте Enable OpenCL acceleration.

Еще фактор железа. Где у вас хранятся временные файлы QGIS. Некоторые ставят быстрые диски для данных, а про это забывают.

Тем не менее, если вы не выключили показ начальной картинки при загрузке, обратите внимание на строчку внизу этой картинки. Если присоединено много плагинов, то они очень долго будут загружаться. Система проверяет и активирует каждый плагин. Чтобы долго проект не грузился, оставьте необходимый минимум, остальные отключите.

Оптимизация и ускорение проекта - это дело ваших рук. Скорее всего он у вас неправильно организован.
Возьмите известный проект и посмотрите как он организован (например, https://www.naturalearthdata.com/)
Отображаться должны слои соответствующего масштаба. Т.е. если у вас векторный (да и растровый тоже) слой для масштаба 1:5000, а ваше окно имеет масштаб 1:500000, то грузиться будет даже не 5 минут, а гораздо дольше. Но если вы дублируете эти же слои и загрубите их хотябы до 1:50000 и при этих масштабах будут отображаться именно они (там есть такой параметр), то загрузка будет проходить почти в 10 раз быстрее. В то же время, при масштабе окна 1:5000 будет подгружаться только небольшие куски этого масштаба. Вы же про тайлы все знаете и уже нарезали огромные гриды на соответствующие масштабу плитки.

Часто мы не делаем такие вещи не потому, что не знаем как или лень это делать, а потому что есть другие задачи и мы готовы мириться со скоростью загрузки до конечного оформления.

FAQ
Интересующийся
Сообщения: 27
Зарегистрирован: 09 окт 2019, 08:57
Репутация: 0
Откуда: Петропавловск-Камчатский

Re: Qgis скорость загрузки как слоев так и проекта

Сообщение FAQ » 28 сен 2023, 02:23

konst555, Проект типа *.qgs он у меня не распаковывается, можно поискать конечно какую то программку для просмотра данного проекта, типо sql, однако некогда это изучать (я уверен что это не то что ни на 1 час, а даже не на 1 неделю). Про масштаб не совсем уловил суть, как она может повлиять на загрузку проекта в целом, на отображение последующее после загрузка - да, на сам проект мало вероятно, однако отвечу что проект сохраняется в масштабах отображения экрана не более 1:5000 потому как поработал, сохранил и вышел. Видяшка - 1060, не шик, но считаю что и она не влияет на загрузку, опять таки только на отображение. При загрузке, я практически каждый слой вижу (в основном векторный) как он загружается. Есть предположение: большое кол-во картинок идет с файлом привязки, который нужно открыть и перепривязать с изображением. Сделать из них 1 файл (огромного размера) не рассматривается, создать виртуальный растровый слой из-за этих самых файлов привязки не получается возможным, нужно сначала сделать геотиф для каждого растра, а потом объединять - как понятно очень долгая задача, а вместе с условием, что данные растры периодами обновляются, то не нужная трата времени. Все осталные растра геотиф естественно тайлами идут.

gamm
Гуру
Сообщения: 4057
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Qgis скорость загрузки как слоев так и проекта

Сообщение gamm » 28 сен 2023, 07:31

несколько вопросов:
1) что в основном тормозит, вектор или растр?
2) "растра геотиф естественно тайлами идут" - это о чем, тайлы (блоки) внутри GeoTIFF, или снаружи какой-то тайловый сервер?
3) в каком формате векторные слои хранятся?

AlexRomantsov
Завсегдатай
Сообщения: 316
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 137
Ваше звание: хм, сам не знал
Откуда: Томск

Re: Qgis скорость загрузки как слоев так и проекта

Сообщение AlexRomantsov » 28 сен 2023, 09:07

Сталкивался с медленной загрузкой проектов в QGIS, в проектах с сотнями и тысячами тяжелых растров (ортофотопланов). Действительно, очень долгая загрузка, даже с оптимизацией данных: в растрах созданы пирамиды, настроена видимость при разных масштабах и т.п. Проблема - при открытии проекта заканчивается свободная оперативная память в системе. Поскольку проекты нужны были именно для обработки растров (разовые операции) - делил поляну на лоты (несколько проектов).
Векторные слои не так сильно влияют, и там больше способов оптимизировать.
С растрами же наиболее оптимальные варианты:
- преобразовывать в тайловые форматы (тайлы XYZ, каталог или MBTiles), и в проект добавлять тайловую версию (например, как Добавить тайловый слой XYZ, URL- file:///z:/raster/{z}/{x}/{y}.png)
- хранить растры в Postgres, или на веб-Geoserver, и подключать их в проект через сервисы Postgres или WMS/WMS-T.
Правда, для таких вариантов нужны корректно-настроенные системы координат в проекте/карте/слоях.

konst555
Активный участник
Сообщения: 212
Зарегистрирован: 11 авг 2015, 16:13
Репутация: 45

Re: Qgis скорость загрузки как слоев так и проекта

Сообщение konst555 » 29 сен 2023, 08:39

FAQ писал(а):
28 сен 2023, 02:23
konst555, Проект типа *.qgs он у меня не распаковывается, можно поискать конечно какую то программку для просмотра данного проекта, типо sql, однако некогда это изучать (я уверен что это не то что ни на 1 час, а даже не на 1 неделю).
Ничего изучать и писать не надо. Все уже давно написано. Файл проекта *.qgs - это обычный XML файл. Это вы легко увидите в любом текстовом просмотре или в браузере, или редакторе. Можно открыть в специальном XML редакторе, которых сейчас очень много.
Вот пример начала этого файла:

<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis saveDateTime="2023-09-29T08:15:32" version="3.30.1-'s-Hertogenbosch" saveUserFull="ХХХХХХХ" saveUser="puzankov" projectname="">
<homePath path=""/>
<title></title>
<transaction mode="Disabled"/>
<projectFlags set=""/>
<projectCrs>
<spatialrefsys nativeFormat="Wkt">
<wkt>PROJCRS["World_Mercator",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World_Mercator",METHOD["Mercator (variant B)",ID["EPSG",9805]],PARAMETER["Latitude of 1st standard parallel",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Not known."],AREA["World."],BBOX[-90,-180,90,180]],ID["ESRI",54004]]</wkt>
<proj4>+proj=merc +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs</proj4>

konst555
Активный участник
Сообщения: 212
Зарегистрирован: 11 авг 2015, 16:13
Репутация: 45

Re: Qgis скорость загрузки как слоев так и проекта

Сообщение konst555 » 29 сен 2023, 08:40

FAQ писал(а):
28 сен 2023, 02:23
konst555, Проект типа *.qgs он у меня не распаковывается, можно поискать конечно какую то программку для просмотра данного проекта, типо sql, однако некогда это изучать (я уверен что это не то что ни на 1 час, а даже не на 1 неделю).
Ничего изучать и писать не надо. Все уже давно написано. Файл проекта *.qgs - это обычный XML файл. Это вы легко увидите в любом текстовом просмотре или в браузере, или редакторе. Можно открыть в специальном XML редакторе, которых сейчас очень много.
Вот пример начала этого файла:

<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis saveDateTime="2023-09-29T08:15:32" version="3.30.1-'s-Hertogenbosch" saveUserFull="ХХХХХХХ" saveUser="puzankov" projectname="">
<homePath path=""/>
<title></title>
<transaction mode="Disabled"/>
<projectFlags set=""/>
<projectCrs>
<spatialrefsys nativeFormat="Wkt">
<wkt>PROJCRS["World_Mercator",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World_Mercator",METHOD["Mercator (variant B)",ID["EPSG",9805]],PARAMETER["Latitude of 1st standard parallel",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Not known."],AREA["World."],BBOX[-90,-180,90,180]],ID["ESRI",54004]]</wkt>
<proj4>+proj=merc +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs</proj4>

konst555
Активный участник
Сообщения: 212
Зарегистрирован: 11 авг 2015, 16:13
Репутация: 45

Re: Qgis скорость загрузки как слоев так и проекта

Сообщение konst555 » 29 сен 2023, 09:05

По поводу растров уже хорошо ответил " AlexRomantsov » Вчера, 10:07 ".
Сколько имеешь оперативной памяти - такой объем можешь загружать.
По своему опыту могу добавить: если у вас действительно большие или сложные проекты, то работайте в Linux.
Причем, не в виртуалке, а с нормальной двойной загрузкой. У меня проекты лежат на отдельном диске (NTFS), а обе операционки на другом диске. Если нужно работать в ArcGIS, то это под Win10 или 11, а если в QGIS, то в Linux, а проекты лежат рядом и пересекаются по файлам. В Linux грузится быстрее и памяти может использовать больше. Это факт.
Конечно, при использовании базы данных ее желательно держать на отдельной машине - это будет надежнее и безопасно.

FAQ
Интересующийся
Сообщения: 27
Зарегистрирован: 09 окт 2019, 08:57
Репутация: 0
Откуда: Петропавловск-Камчатский

Re: Qgis скорость загрузки как слоев так и проекта

Сообщение FAQ » 04 окт 2023, 04:45

AlexRomantsov, Спасибо за совет очень интересно, ни когда не рассматривал вариант загрузки файлов через тайловый слой или каталог, сохраню вариант чтобы на досуге попробовать применить где-либо, вот только остался вопрос в каталоге должна быть группа геотифов (с привязкой) или 1 большой геотиф. Если 2-ое то не вариант писал ранее, что часть тайлов обновляется, а если группа, то можно будет задуматься и поэкспериментировать, однако мне кажется, что загрузка через тайловый слой по времени может получится на деле еще дольше чем каждый раз qgis будет читать файл привязки. На вопрос что именно грузиться дольше - конечно растры, с векторами практически нет проблем (если они не с доп параметрами оцифровки - тень и прочее). konst555, По поводу xml - скачал несколько, попробовал онлайн (ранее я через notepad пробовал до создания темы посмотреть "что там") как итог не открывает, через конструкторы/текстовики - "битая" кодировка, через он-лайн ошибка (в приложении, проект так же приложил для примера, это не тот который "бухнет")
Вложения
Проект.rar
(59.25 КБ) 752 скачивания
изображение_2023-10-04_134524635.png
изображение_2023-10-04_134524635.png (7.37 КБ) 2564 просмотра

AlexRomantsov
Завсегдатай
Сообщения: 316
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 137
Ваше звание: хм, сам не знал
Откуда: Томск

Re: Qgis скорость загрузки как слоев так и проекта

Сообщение AlexRomantsov » 04 окт 2023, 05:55

Максимально комфортно работать с тысячами растров (космоснимки, ортофотопланы) десяткам пользователей (потребителей растров) в варианте, когда растры хранятся в СУБД (например в Oracle Spatial, Postgres/PostGIS). Очень быстро, практически не зависит от количества и веса растров, от количества активных пользователей. Просто попробуйте на досуге, установите локально Postgres/PostGIS, импортируйте в его базу самый(е) тяжелый(е) растр(ы), и подключите как слой в проект QGIS.
Для облаков лидарных точек тоже справедливо.
Но заморачиваться этим имеет смысл в больших корпоративных проектах с десятками потребителей, для одного себя - хлопотно. Требуются ресурсы (сервер, админ и все такое)

konst555
Активный участник
Сообщения: 212
Зарегистрирован: 11 авг 2015, 16:13
Репутация: 45

Re: Qgis скорость загрузки как слоев так и проекта

Сообщение konst555 » 10 окт 2023, 15:54

FAQ писал(а):
04 окт 2023, 04:45
По

Все странно. Ваш файл распаковал. Получил .qgz
Переименовал в .zip Распаковал получил .qgs Переименовал в .xml . Это вполне текстовый файл с макро тэгами. Читают все текстовые редакторы.
Если у вас только MS блокнот, то переименуйте .xml в .html Ваш браузер сразу его откроет. Только не покажет тэги. Но можно попросить браузер показать исходник без попыток интерпретации.
Все это я легко проделал на телефоне.
Возможно ваш проект распухает от условных значков? Слишком длинные описания.
Надо будет посмотреть. Это интересно.
Удачи.

FAQ
Интересующийся
Сообщения: 27
Зарегистрирован: 09 окт 2019, 08:57
Репутация: 0
Откуда: Петропавловск-Камчатский

Re: Qgis скорость загрузки как слоев так и проекта

Сообщение FAQ » 11 окт 2023, 01:33

konst555, у меня багнутый zip архиватор был, поставил норм winrar и все получилось, код загрузки одного растрового слоя слишком велик как мне кажется, из-за этого он грузит его долго, а если учесть что всего строк 400к+ в самом маленьком проекте - получаем долгую загрузку, ну или как вариант сам загрузчик по каким то мне не известным причинам считывает и применяет эти настройки долго.

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей