Showing posts with label qGIS. Show all posts
Showing posts with label qGIS. Show all posts

22/02/2024

Дайджест ссылок

Горнопромышленная гидрогеология. Что-то расплодилось окологидрогеологических телеграмм-каналов и сообществ. Вот еще одно. Хорошее.
QGIS для начинающих. Видеоуроки от Василия Швалева. Вот прямо азы, зато бесплатно, а за настоящим «Qgis кунг-фу» — добро пожаловать на его платные курсы. Рекомендую — специалист хороший, берет недорого.
Открытый курс на котором научитесь основам работы в QGIS, даже если только сегодня открыли программу
Getting Started with MODFLOW. Книга под авторством Richard B. Winston, посвященная моделированию в Modflow с помощью ModelMuse. Надо отметить, что благодаря этой книге я почти перестал бояться интерфейса ModelMuse.
Numerical modeling of groundwater flow systems was once accessible only to modeling specialists in the hydrogeological community. Software such as MODFLOW—the most frequently used groundwater modeling program in the world—and associated graphical user interfaces (GUIs) have made modeling possible for most groundwater scientists. This book provides the bridge from understanding to implementing models by introducing the basics of MODFLOW version 6 and providing readers who have a working knowledge of groundwater flow with a guide through construction of their first groundwater model.
Несколько полезных для гидрогеологов библиотек на python: pastas, ttim и timml.

01/12/2023

Установка последней версии SagaGIS в QGIS

В профильном сообществе попросили написать гайд по установке актуальной версии SagaGIS в QGIS. Исполняю обещание. В принципе, в составе QGIS SagaGIS уже включён, но во-первых, это временное явление (вроде как в новых версиях решили исключить SagaGIS из ядра), а во-вторых, в составе установочного пакета QGIS поставляется какая-то уж очень древняя версия Saga — кажется 7-я, тогда как актуальная версия на момент написания заметки — 9.2. 
По пунктам, кратенько. Потом постараюсь добавить подробностей, когда будет больше свободного времени. 
  1. Скачиваем последнюю версию SagaGIS
  2. Распаковываем скачанный архив в какую-нибудь папку. Я предпочитаю OSGeo4W64\apps\, но можно любую другую.
  3. В QGIS отключаем плагин ядра SAGA GIS provider и скачиваем Processing Saga NextGen Provider. В Настройках последнего указываем путь к SagaGIS — куда мы его распаковали на предыдущем шаге. Закрываем QGIS. 
  4. В папке с SagaGIS лежит архив saga4qgis.zip, внутри которого есть инструкция, что надо делать с содержимым этого архива. Не буду повторять её, но суть такова: содержимое архива надо распаковать (удалив предварительно уже существующее) в папку     C:\Users\...\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\processing_saga_nextgen 
    Только не делайте это «в лоб», сперва найдите где конкретно лежит файл SagaNameDecorator.py и папка \description\ — удалите их и скопируйте на их место содержимое архива.
  5. В принципе всё готово, можно запускать QGIS и радоваться возможности работать с последней версией SagaGIS. Но есть еще одна маленькая хитрость, сильно облегчающая работу. Надо открыть файл SagaAlgorithm.py и заменить
elif isinstance(param, (QgsProcessingParameterString, QgsProcessingParameterField)):
                command += ' -{} "{}"'.format(param.name(), self.parameterAsString(parameters, param.name(), context))
на
elif isinstance(param, (QgsProcessingParameterString, QgsProcessingParameterField)):
                command += ' -{} "{:.10}"'.format(param.name(), self.parameterAsString(parameters, param.name(), context))
Для чего нужен последний пункт: дело в том, что инструменты SagaGIS, работающие с векторными исходниками, на входе принимают только shape файлы SHP. А те, в свою очередь, согласно стандарту не поддерживают имена полей длиннее 10 символов. Поэтому если вы попробуете подсунуть в SagaGIS на вход какой-нибудь Geopackage с именем поля 11 символов и больше, то в исходном варианте SagaAlgorithm.py вы получите ошибку. Мой же код автоматически обрезает имя поля по 10 символу и в результате формируется правильный shape-файл. 
К слову сказать, похожие улучшения можно вставлять и в другие Processing Provider плагины — они все сделаны более или менее похожим образом. Однако важно понимать, что если вы ухитрились создать в Geopackage несколько столбцов (полей) длинными именами, первые 10 символов которых побуквенно совпадают, то готовьтесь к удивительным глюкам.

28/06/2023

Дайджест ссылок

List of Links to Educational Videos in Groundwater Project Books. Подборка обучающих видео на дружественном ресурсе gw-project.org.
The Groundwater Project now has a list of these videos available on the site in both spreadsheet and PDF format. Instructors are welcome to download it and add or delete lines to customize the list for individual courses.
20 трюков и приемов QGIS для начинающих (2021). Хороший канал. Рекомендую.
Кьюгисовцы, планирую активно развивать канал и записывать по 2 ролика в неделю на интересные темы: рецепты создания карт, подборки инструментов, гайды, ответы на вопросы.
Переводы инструкций по PEST. Впечатляющий труд от уважаемого коллеги, моё почтение.
Коллеги! Многие захотели изучить возможности ПО PEST. Поэтому публикую свои переводы инструкций, а то лежат пылятся в папках Надеюсь, кому-нибудь они пригодятся и будут полезны. Успехов в освоении! P.S. Переводил с помощью Гугла и после корректировал под себя, поэтому могут быть нюансы) Всегда есть первоисточник.

04/01/2023

Генерация пользовательской СК QGIS

В рамках семинара для коллег по основам работы в QGIS «родилась» вот такая утилитка для генерации пользовательской СК в формате строки "proj.4" на основе уже существующей СК и высчитанных сдвижек по осям X и Y.
Задача традиционная: нам прислали какой-то там DXF в «левых» метровых координатах (далее пусть будет СК-X) с нулём координат у местной водокачки и надо худо-бедно положить его на спутниковую  (или любую другую в общеупотребимой СК) подложку в QGIS. Сразу хочу предупредить, что если вы не можете похвастаться отменным везением, то результат будет именно что «худо и бедно», но хоть как-то.
Простейший вариант решения проблемы: сместить карту прямо в автокаде так, что б общие точки на на карте и подложке более или менее совпадали. Вариант хороший и рабочий, но если вам начнут присылать другие данные в этой «левой» СК-X, то придется и их смещать вручную.
Я предлагаю подойти к решению этой проблемы с другого бока: взять одну из общеупотребимых  спроецированных метровых СК (далее СК-А) и на её основе сгенерировать новую пользовательскую СК (СК-Б - иными словами, это та же СК-X, но с известными параметрами), подобрав для неё смещения по X и Y так, чтоб DXF с присвоенной СК-Б совмещался с подложкой. Тут самое сложное: найти такую СК-А, чтоб угол совпадал с СК-X. По опыту, в 90% случаев подходит либо одна из 3-градусных зон Pulkovo 42, либо соответствующая региональная МСК (частенько эта таинственная СК-X и вовсе является какой-нибудь «МСК-59 зона 2»). Ну а дальше всё просто: «скалываем» координаты общей точки в СК-X (в автокаде, к примеру) и в СК-А (для этого можно использовать один из множества плагинов в QGIS, не забыв сделать СК-А системой координат проекта), копируем их в соответствующие ячейки моей таблицы, потом вставляем строку proj.4 от СК-А и строкой ниже получаем новую строку proj.4 уже для нашей новой кастомной СК-Б. Теперь эту строку можно добавить в качестве пользовательской проекции к QGIS и открывать в ней наш DXF, каталоги скважин и прочие данные.
Отлично понимаю, что с точки зрения тру топографов, географов и картографов все эти ужимки - жуткая ересь, прошу отнестись снисходительно.
P.S.: Добавил усреднение по нескольким общим точкам с проверкой на несовпадение угла поворота.

27/09/2021

Как выудить в точки рельеф из SRTM или AW3D30

Иногда данных о рельефе территории исследования так мало, что приходится прибегать к помощи космических технологий. Точность у этой информации, прямо скажем, не ахти, особенно на  застроенных или лесистых территориях, но уж что есть —  дарёному коню, как говорится. Знаю, уже есть алгоритмы, которые с помощью нейросетей умеют удалять с этих массивов дома и небольшие лесочки, но пока не встречал их в открытом доступе, пригодном к тому же для использования неквалифицированному пользователю.
Конечной целью предполагается получение CSV файла вида X, Y, Z.  Потребуется следующий инструментарий:
  1. QGIS
  2. Плагины к нему:
    • Какой-нибудь плагин для подгрузки подложек типа QuickMapServices. Ну или загрузить их вручную через XYZ Connections.
    • SRTM-Downloader
    • Point sampling tool
  3. Аккаунты как минимум на одном из сайтов с рельефом со спутников:
Сразу предупрежу, что выудить данные с японского сайта — тот еще квест, но в детали вдаваться не буду. В сети есть инструкции. С NASA возни гораздо меньше, особенно если вам повезло и SRTM-Downloader работает как надо.
Итак, алгоритм следующий:
  1. В QGIS любым известным способом открываем картографическую подложку. Это не обязательно, но как правило сильно облегчает работу.
  2. Создаем временный слой типа Polygon. Рисуем в нем полигон по контуру территории, для которой нам нужен рельеф. Зуммируемся так, чтоб нарисованный полигон занимал большую часть экрана (Zoom to Layer).
  3. С помощью строенного в QGIS инструмента Vector/Random points in polygons генерируем достаточное количество точек в пределах нарисованного в предыдущем пункте полигона. При этом создается новый временный слой с точками.
  4. С помощью SRTM-Downloader скачиваем растры с рельефом для области, показанной на экране. Для чего жмём последовательно Set Canvas Extend и Download. Для данных ALOS придется скачивать данные через сайт и подгружать в QGIS вручную.
  5. Запускаем Point sampling tool, указываем слой с точками из пункта 3 в качестве Layer containing sampling points, а в качестве Layers with fields/bands to get values from — растры (можно указать сразу несколько) из пункта 4. Тут важно отметить, что точки и растры должны быть в одной системе координат (WGS 84 -  EPSG 4326 в случае если мы работаем с SRTM). 
  6. На выходе получаем векторный слой с точками с атрибутами в виде значений рельефа. Если область интереса попадает сразу на несколько растров, то столбцов с атрибутами будет несколько. Надеюсь, не надо рассказывать, как из нескольких столбцов получить один — это можно сделать как через Field Calculator в самом QGIS, так и в Excel или любом другом табличном редакторе.
  7. Пересохраняем полученный точечный слой в виде CSV, не забывая выбрать нужную нам систему координат (если не выбирать, то по умолчанию  координаты будут представлены в виде градусов) и указать, что GEOMETRY сохраняется в виде AS_XY.

21/01/2021

Дайджест ссылок

1st Groundwater Project Event. Скоро должна начаться первая онлайновая конференция от Groundwater Project. Спешите записаться.
The first ever Groundwater Project Event will be 100% online between the 3rd and 26th of February 2021. A series of meetings and discussions will be promoted, addressing relevant and innovative themes presented by the best references in hydrogeology in the world. The event will be broadcasted on the Groundwater Project YouTube channel and the public will be able to interact with the speakers through the live chat. All presentations will be broadcasted in English or with English subtitles.
https://courses.gisopencourseware.org/. Курсы по ГИС. В основном речь идет о qGIS.

A comprehensive list of specific Python packages for hydrogeology and groundwater modeling. Список утилит на Python-е для решения прикладных задач в гидрогеологии и геофильтрационного моделирования.
Development of open source software brings amazing new tools in all fields. In hydrogeology and groundwater modeling there is an increasing number of specific open source software and programming packages. We wanted to compile the latest libraries for Python related to hydrogeology, we asked for references and researched over the web to provide you the following list.
Lecture Notes. Лекции по гидрогеологии, геогидродинамике и геомиграции.
Some of the figures in these lecture notes are adapted from or inspired by illustrations in Dingman, S. Lawrence. Physical Hydrology. 2nd edition. Prentice-Hall, 2002.
Estimation of optimal complexity in groundwater models using cross-validation methods. Очень любопытная статья, в которой в частности идет речь об очень забавном феномене, который я сам неоднократно наблюдал на своем опыте (но никогда не пытался подвести под него теоретическую базу — да и куда мне, я больше практик): по мере увеличения сложности и «комплексности» модели, точность прогнозов, сделанных на её основе, сначала закономерно повышается, а потом начинает почему-то снижаться. Там приведен очень наглядный пример со степенными и линейными аппроксимациями в экселе.
The level of complexity that a groundwater model should have is an important and recurrent question for hydrogeologists. A few weeks ago an interesting discussion about this topic occurred on LinkedIn, with one of the main conclusions being that the optimal complexity should minimize predictive error/uncertainty by improving the fit to the existing observations, without overfitting them, as described in Figure 1. Understanding the meaning and implications of this figure is key for the modelling process. In that sense, I decided to implement two sets of models to illustrate how different degrees of complexity affect predictive error. We will also see how to estimate the optimal level of complexity in groundwater models utilizing cross-validation techniques commonly used by data scientists.
ModelMuse Videos. Видеоуроки по работе с ModelMuse (бесплатный пост-препроцессор для MODFLOW, если кто не знал). Программа очень мощная, но learning curve у нее просто запредельная.

31/12/2020

О консультациях

Коллеги, кто со мной общался, знают, что обычно я не отказываю в добром совете. Иногда мне пишут студенты — им я особенно люблю помогать. Сегодня объяснял магистранту РУДН из Йемена, как сделать тестовую задачку по QGIS (оказывается, в РУДН есть спецкурс по этой программе). Задачка была простая, но с небольшой закавыкой: надо было совместить на карте две таблицы со скважинами с координатами в разных проекциях и выполнить некоторые простейшие манипуляции. На решение этой задачи у меня ушло примерно 5 минут (в том или ином виде я похожие задачки решаю регулярно), еще 2 часа ушло на объяснение студенту, как он может это сделать самостоятельно (у него небольшие проблемы с русским языком, поэтому некоторые вещи приходилось объяснять дважды, но другими фразами).
Времени конечно немного жалко, но я поставил себя на место преподавателя — мне было бы досадно, если бы мои домашние задания за учеников делал кто-то другой. Поэтому 2 часа, а не 5 минут. Можно сказать, это моя принципиальная позиция в подобных вопросах, имейте её в своем виду, когда просите у меня помощи.

04/05/2017

Модуль для моделирования MODFLOW для qGIS

Благодаря записи An overview of Freewat, the new MODFLOW interfase in QGIS в гидрогеологическом блоге Hatari labs узнал о существовании такой замечательной штуке, как Freewat, а это ни много ни мало — целый препроцессор для создания и визуализации моделей MODFLOW-2005, MODFLOW-NWT, MODFLOW-OWHM, MODPATH, MT3DMS, MT3D-USGS, MODPATH, SEAWAT, UCODE-2014 в мощнейшем ГИС-комплексе qGIS.
И что самое главное: что qGIS, что Freewat — свободное программное обеспечение, распространяемое бесплатно.
Кстати о qGIS, я буквально недавно практически пинками заставил себя изучить базовую функциональность этого комплекса и остался весьма впечатлен. Он немного глючный (но не более, чем тот-же MapInfo, впрочем), но возможности у него просто безграничны. После перевода своего workflow под этот ГИС я уменьшил сроки подготовки графического материала для отчетов примерно в два раза. И это с учетом того, что я и 10% возможностей не изучил и процесс подготовки карт для отчета сопровождался отладкой этого workflow (т.е. последующие проекты будут готовиться еще процентов на 30 быстрее). В общем, рекомендую всеми руками и ногами.