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

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 быстрее). В общем, рекомендую всеми руками и ногами.