<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.gis-lab.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Uavdon</id>
	<title>GIS-Lab - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.gis-lab.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Uavdon"/>
	<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/w/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Uavdon"/>
	<updated>2026-06-22T11:20:49Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D1%85_%D1%81%D0%B5%D1%82%D0%BE%D0%BA_%D0%B2_QGIS&amp;diff=21853</id>
		<title>Создание регулярных сеток в QGIS</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D1%85_%D1%81%D0%B5%D1%82%D0%BE%D0%BA_%D0%B2_QGIS&amp;diff=21853"/>
		<updated>2015-04-14T06:53:15Z</updated>

		<summary type="html">&lt;p&gt;Uavdon: Поправил битую ссылку&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Опубликована|grids-qgis}}&lt;br /&gt;
{{Аннотация|В статье рассматриваются алгоритмы создания градусной и метрической полигональных сеток с помощью QGIS. Отдельно затрагивается вопрос оформления градусной сетки нанесенной на спроецированные данные.}}&lt;br /&gt;
&lt;br /&gt;
== Создание регулярных сеток в QGIS ==&lt;br /&gt;
&lt;br /&gt;
Существует ряд задач для решения которых необходимо построить регулярную сетку с заданным шагом, например, подсчет чего-либо на ячейку или наложение координатной сетки на карту.&lt;br /&gt;
&lt;br /&gt;
QGIS позволяет строить 3 типа регулярных сеток: &lt;br /&gt;
*'''градусная сетка''' (длина и ширина полигона равна заданному количеству градусов широты и долготы), &lt;br /&gt;
*'''метрическая сетка''' (длина и ширина полигонов задается в метрах)&lt;br /&gt;
*'''гексагональная''' регулярная сетка в виде сотовых ячеек (модуль MMQGIS).&lt;br /&gt;
&lt;br /&gt;
[[Файл:00_regular_grids.png|700px|thumb|center|Пример использования регулярной полигональной метрической сетки 100*100 км для визуализация расчетов абсорбции метана почвами в килотоннах в год на ячейку.]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:15_regular_grids.png|700px|thumb|center|Пример использования регулярной линейной градусной сетки для создания шаблона карты.]]&lt;br /&gt;
&lt;br /&gt;
'''Важно''': тип размерности сетки (градусы или метры) зависит от проекции вида: чтобы построить градусную сетку необходимо, чтобы вид находился в географической системе координат (ГСК), и, напротив, при построении метрических сеток, необходимо, чтобы вид находился в какой-либо прямоугольной проекции.&lt;br /&gt;
&lt;br /&gt;
Алгоритмы построения разных типов сеток различаются, рассмотрим каждый из них в отдельности.&lt;br /&gt;
&lt;br /&gt;
===Создание полигональной метрической сетки===&lt;br /&gt;
&lt;br /&gt;
Допустим, перед нами стоит задача разбить территорию административного субъекта (в нашем случае Ханты-Мансийского автономного округа) на квадраты 20*20 км для обобщения каких-либо количественных данных, например, для учета биоразнообразия в каждом таком квадрате.&lt;br /&gt;
&lt;br /&gt;
Воспользуемся [http://beryllium.gis-lab.info/project/osmshp/ данными OpenStreetMap в формате Shape] в качестве базовых данных. Откроем слой с границами ХМАО и зададим проекту коническую равновеликую проекцию Альберса для ХМАО. Для этого, зайдем в меню создания пользовательских систем координат: '''Установки → Ввод системы координат'''.&lt;br /&gt;
&lt;br /&gt;
В диалоговом окне определения пользовательской системы координат нажмем кнопку [[Файл:mIconNew.png]] - создать новую систему координат. В графе '''«Имя»''' напишем узнаваемое имя, например «Albers HMAO». В графу '''«Параметры»''' скопируем следующий код для проекции:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;+proj=aea +lat_1=60 +lat_2=64 +lat_0=0 +lon_0=72 +x_0=18500000 +y_0=0 +ellps=krass +units=m +towgs84=28,-130,-95,0,0,0,0 +no_defs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл:18_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
Сохраним созданную проекцию Нажав кнопку [[Файл:mActionFileSave.png]].&lt;br /&gt;
&lt;br /&gt;
Теперь зададим созданную нами проекцию проекту: Установки → Свойства проекта. Во вкладке &amp;quot;Система координат&amp;quot; в графу фильтр введем название нашей проекции: «Albers HMAO», выберем ее из списка и нажмем &amp;quot;ОК&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:19_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
Сохраним слой границ ХМАО в СК проекта, т.е. в проекции Альберса. Для этого в менеджере слоев щелкнем правой кнопкой мыши по нему и выберем пункт «Сохранить как».&lt;br /&gt;
&lt;br /&gt;
В открывшемся диалоговом окне в графе '''«Система координат»''' выберем '''«Система координат проекта»'''. Поскольку ранее мы установили в качестве системы координат проекта проекцию Альберса, то она и будет задана для нового слоя.&lt;br /&gt;
&lt;br /&gt;
Построим необходимую нам сетку 200*200 км, для этого выполним: '''Вектор → Выборка → Регулярная сетка'''. В случае, если это меню недоступно, убедитесь, что у вас активирован модуль fTools ('''Модули→Управление модулями''').&lt;br /&gt;
&lt;br /&gt;
[[Файл:01_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
В открывшемся диалоговом окне нажмем на кнопку '''«Получить из слоя»'''.&lt;br /&gt;
В параметрах укажем размер ячейки в метрах, поскольку теперь слой спроецирован: 200000.&lt;br /&gt;
&lt;br /&gt;
[[Файл:02_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
В результате получим такую сетку:&lt;br /&gt;
&lt;br /&gt;
[[Файл:03_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
Теперь можно убрать «лишние» не захватывающие территорию РФ ячейки. Для этого выполним: '''Вектор → Пространственный запрос → Пространственный запрос''' (Если эта функция не активна, убедитесь, что в меню '''Модули → Управление модулями''' у вас активирован модуль «Пространственные запросы».&lt;br /&gt;
&lt;br /&gt;
В открывшемся диалоговом окне: &lt;br /&gt;
в графе «Выбрать объекты в слое» укажем слой сетки&lt;br /&gt;
в графе «Где объект» выберем пункт «Пересекает»&lt;br /&gt;
в графе «Объекты слоя» выберем слой границ РФ&lt;br /&gt;
&lt;br /&gt;
[[Файл:04_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
Сохраним полученное выделение в виде отдельного слоя: в менеджере слоев щелкнем правой кнопкой мыши по слою сетки и выберем пункт '''«Сохранить выделение как»'''.&lt;br /&gt;
В результате имеем:&lt;br /&gt;
&lt;br /&gt;
[[Файл:05_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=== Создание линий градусной сетки ===&lt;br /&gt;
&lt;br /&gt;
Теперь построим на этот же регион (ХМАО) градусную сетку.&lt;br /&gt;
&lt;br /&gt;
'''Важно:''' убедимся, что проект находится в ГСК: '''Установки→Свойства проекта→Система координат'''. В графе системы координат выберем необходимую ГСК, например WGS84.&lt;br /&gt;
&lt;br /&gt;
В основном меню QGIS выполняем '''Вектор→Выборка→Регулярная сетка'''. &lt;br /&gt;
&lt;br /&gt;
Охват сетки возьмем с большим запасом, чтобы при последующем перепроецировании, вся карта была покрыта сеткой (для этого можно предварительно оценить охват спроецированной карты с помощью '''модуля захвата координат''').&lt;br /&gt;
&lt;br /&gt;
В графе '''«Параметры»''' зададим размер ячейки 3 градуса по долготе и 2 градуса по широте (для этого надо снять галочку «Зафиксировать соотношение сторон 1:1»&lt;br /&gt;
&lt;br /&gt;
Укажем тип сетки: в то время как полигональные сетки нужны для статистических расчетов, для построения координатной сетки удобнее использовать '''линии''':&lt;br /&gt;
&lt;br /&gt;
[[Файл:06_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Нажмем OK и дождемся окончания процесса построения сетки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:07_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
На первый взгляд все идеально, но попробуем поменять проекцию вида на любую, где широтные линии градусной сетки преобразуются в дуги, например в использованную ранее проекцию Альберса для ХМАО:&lt;br /&gt;
Видно, что широты, которые должны были стать плавными дугами, так и остались прямыми. &lt;br /&gt;
&lt;br /&gt;
[[Файл:08_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
Это связано с особенностью механизма перепроецирования многих современных ГИС: дуга представляет из себя кривую с изломами в узлах (на рисунке узлы сетки помечены красными крестиками). После создания сетки промежуточных узлов нет, поэтому линии широт «не изгибаются».&lt;br /&gt;
&lt;br /&gt;
Исправить эту ситуацию можно добавив в сегменты линий (или полигонов) дополнительные узлы с помощью инструмента '''Добавить вершины'''.&lt;br /&gt;
&lt;br /&gt;
Добавим по 10 вершин на сегмент по широте таким образом, чтобы дополнительные узлы встали точно в местах пересечения широт и долгот. Если в нашем случае сетка  включает 14 3-х градусных сегментов, получаем 14*10-1=139 дополнительных узла): '''Вектор→Обработка геометрии→Добавить вершины'''.&lt;br /&gt;
&lt;br /&gt;
Выберем из выпадающего списка файл с полученной нами сеткой и добавим 139 дополнительных узлов в каждый долготный сегмент сетки.&lt;br /&gt;
&lt;br /&gt;
'''Рекомендация''': добавлять узлы не в существующий файл, а создавать новый, это позволит избежать как своих ошибок, так и программных сбоев. Итак, заполненное диалоговое окно примет вид:&lt;br /&gt;
&lt;br /&gt;
[[Файл:09_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
В атрибутивной таблице слоя сетки присутствует поле «COORD» в нем содержится координаты долгот для долготных линий и координаты широт для широтных линий. После подписывания слоя по полю «COORD» и наложения новой сетки на карту в проекции Альберса получаем вполне пристойный результат:&lt;br /&gt;
&lt;br /&gt;
[[Файл:11_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=== Оформление градусной сетки ===&lt;br /&gt;
&lt;br /&gt;
В настоящий момент в макетах карт QGIS возможность накладывать градусную сетку на спроецированные данные отсутствует. Тем не менее, существуют различные способы наложения и последующего оформления градусных сеток вручную. Рассмотрим один из таких способов.&lt;br /&gt;
&lt;br /&gt;
Сохраним полученную сетку с дополнительными узлами в той СК, которая предполагается для использования в окончательном макете карты. В нашем случае это проекция Альберса для ХМАО.&lt;br /&gt;
&lt;br /&gt;
С помощью модуля «Improved Polygon Capturing» создадим полигон – рамку будущей карты, вдоль которой будем выстраивать подписи. Для этого создадим новый полигональный слой с именем '''map_border''' в проекции Альберса для ХМАО и включим режим редактирования.&lt;br /&gt;
&lt;br /&gt;
После активации режима редактирования станет доступной панель модуля «Improved Polygon Capturing». Выберем инструмент рисования прямоугольника от угла (Rectangle by Extent [[Файл:12_regular_grids.png]]) и обведем рамку нашей будущей карты.&lt;br /&gt;
Конвертируем полученную рамку карты (слой '''map_border''') в линейный слой: '''Вектор → Обработка геометрии → Преобразовать полигоны в линии'''. Назовем полученный линейный слой '''map_border_line'''.&lt;br /&gt;
&lt;br /&gt;
Создадим точечный слой пересечений линий координатной сетки и полученной на предыдущем шаге линии рамки карты: '''Вектор → Анализ → Пересечения линий'''. &lt;br /&gt;
&lt;br /&gt;
Поля «Исходный признак классификации» и «Признак классификации пересечений» - атрибутивные поля исходных линейных слоев которые будут добавлены в атрибутивную таблицу результирующего точечного слоя пересечений. Для дальнейшей работы нам понадобятся координаты сетки, по этому в качестве '''исходного признака классификации''' выберем поле координат «COORD» исходного слоя градусных линий.&lt;br /&gt;
&lt;br /&gt;
[[Файл:13_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
Результатом выполнения этой операции является точечный шейп-файл с координатами линий сетки. &lt;br /&gt;
&lt;br /&gt;
[[Файл:14_regular_grids.png|700px|thumb|center]] &lt;br /&gt;
&lt;br /&gt;
Сделаем точки невидимыми, например, уменьшив их размер до нуля. Подпишем точки созданного файла, добавив значок градуса. Воспользуемся инструментом '''подписи [[Файл:mActionLabeling.png]] → выражение''':&lt;br /&gt;
&lt;br /&gt;
[[Файл:16_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
В графе «'''Выражение'''» пропишем:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;COORD_1&amp;quot; || 'º'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
* «COORD_1» - название поля координат&lt;br /&gt;
* «||» - оператор конкатенации (объединения)&lt;br /&gt;
* &amp;quot;º&amp;quot; - символ градуса&lt;br /&gt;
&lt;br /&gt;
[[Файл:17_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
В результате получим:&lt;br /&gt;
&lt;br /&gt;
[[Файл:20_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
В дальнейшем можно также сделать невидимой область за рамкой карты. Для этого можно воспользоваться модулем '''Mask''''. Установим этот модуль. Выделим инструментом выделения полигон '''map_border''' созданный ранее с помощью модуля «Improved Polygon Capturing». Нажмем на кнопку [[Файл:aeag_mask.png|22px]]. В появившемся диалоговом окне выберем нашу проекцию Альберса для ХМАО. При этом в памяти создается виртуальный полигональный слой размером установленного охвата экрана и дыркой по размеру выделенного полигона. К сожалению, модуль давно не обновлялся и использует старую символику. Для корректного отображения маскировочного слоя, нужно в свойствах слоя, во вкладке «Стиль» выбрать новую символику и выбрать для заливки и обводки полигона белые цвет:&lt;br /&gt;
&lt;br /&gt;
[[Файл:21_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
Для дальнейшего использования маскировочный слой нужно сохранить как отдельный шейп-файл.&lt;br /&gt;
Создим новый макет карты '''&amp;quot;Файл → Макет карты&amp;quot;''' и подгоним рамку макета под необходимый нам масштаб (подробнее о работе с макетами карт см. [http://gis-lab.info/docs/qgis/user_guide/qgis-1.7.0_user_guide_ru.pdf Руководство пользователя QGIS. Версия 1.7.0 'Wroclaw', Раздел 10. Компоновщик карты]:&lt;br /&gt;
&lt;br /&gt;
[[Файл:22_regular_grids.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
Теперь сохраним настроенные стили для линий сетки, точек с подписями и слоя маски в файлы *.qml для использования в других проектах ('''Слой → Свойства слоя → Кнопка &amp;quot;Сохранить стиль&amp;quot;''') с теми же именами, что и сами исходные слои.&lt;br /&gt;
&lt;br /&gt;
В дальнейшем, при добавления этих слоев подписей на карту все установленные настройки подписей и цветового оформления слоев будут загружены автоматически.&lt;br /&gt;
&lt;br /&gt;
Созданную таким образом сетку удобно хранить в отдельной папке, содержащей: &lt;br /&gt;
* линейный шейп-файл с линиями сетки&lt;br /&gt;
* точечный шейп-файл с подписями&lt;br /&gt;
* слой маски&lt;br /&gt;
* файлы настроек для линий, подписей и слоя маски&lt;/div&gt;</summary>
		<author><name>Uavdon</name></author>
	</entry>
</feed>