Довольно часто бывает нужно подготовить данные для построения сеток (grid) в различных ГИС-пакетах для создания интерполированных поверхностей (типа Vertical Mapper, см. здесь или Surfer, см. тут). Обычно, под описанную задачу необходимо располагать массивом точек (другой используемый термин — «матрица высот») в виде триады координат XYZ. X/Y — это пространственные координаты, а Z — значение параметра в точке с координатами X/Y. В качестве параметра Z может быть всё, что угодно: высота, температура, плотность радиоактивного загрязнения, численность населения и т.д. Для построения тематических картограмм в агрохимических службах это могут быть значение агрохимических показателей: pH, P2O5, K2O, содержание гумуса и т.д.
Как правило, в организациях агрохимического обслуживания такие данные привязаны не к точкам, а к площадным объектам , т.е. известны значения какого-то агрохимического показателя на конкретном контуре или элементарном участке. Иначе говоря, для построения сетки встаёт задача получения массива точек из уже оцифрованного материала в виде слоя полигонов, ну скажем, в ГИС MapInfo.
На сайте http://glab2007.narod.ru вроде бы есть утилита «развала» пространственных объектов MapInfo на узлы под названием Nodex. Но, к сожалению, на компьютере с операционной системой Windows Vista и MapInfo 9.5 она выдаёт аварийное сообщение — не работает 🙁
Для выполнения такой процедуры (развала объектов на точки) предлагается воспользоваться одной из функций набора утилит Utilities, которые можно Просмотреть здесь. Далее алгоритм действий следующий.
Загружаем в ГИС MapInfo нужный слой, содержащий в атрибутивных данных значение интересующего нас параметра, например pH. Если этот слой является полигональным, то его необходимо отконвертировать в полилинии. Этот слой необходимо, кроме того, сделать редактируемым и выделить все его объекты: меню Запрос>Выбрать полностью. Загружаем набор утилит Utilities : Программы>Запустить программу MapBasic. Далее Utilities>MifConverter
Исходная картинка может выглядеть приблизительно так:

Здесь в качестве параметра Z мы выбираем значения pH. После отработки указанной функции эта программка создает текстовый файл с координатами узлов и значением указанного параметра, разделённых пробелами.
Следующий шаг — загрузка данных из этого файла: Файл>Открыть (тип файла — ASCII c разделителями .txt). Появляется следующее диалоговое окно:
| Здесь обязательно ставим переключатель «Другой» и в поле справа ставим пробел. |
В результате создается таблица с указанным вами именем с тремя колонками по умолчанию:
![]() |
Здесь в колонке _COL1 храниться координата X, в колонке _Col2 координата Y, а в колонке _Col3 — значение параметра pH. |
Теперь на основании этих данных можно получить массив точек. Для этого идём Таблица> Создать точечные объекты. Появляется следующее диалоговое окно:

Жмём на кнопку Проекции и видим следующее окошко:

Необходимые значения минимальных/максимальных координат для этой формы можно получить так: Запрос>Статистика колонки. После заполнения всех полей формы жмём кнопку OK и программа создаст на основании ваших данных слой точек. Его можно просмотреть по меню Окно>Новая карта. Если всё сделано правильно , то результирующая картинка может выглядеть следующим образом:

Теперь эти данные можно использовать для построения различных сеток (grids).
В качестве идеи. Произведённую манипуляцию по ‘развалу’ полилиний на узлы можно, наверно, осуществить используя утилиту Feature Vertices To Point из набора инструментов ArcToolbox в ArcGIS. Эту информацию можно посмотреть на нашем сайте здесь (правда, для начала придётся отконвертировать ваши данные в shape-файл).
Ремарка к статье (25.03.2011) Нашёл более изящное решение задачи ‘развала’ слоя полилиний на узлы с сохранением параметра Z с помощью утилиты P2P, которую обнаружил недавно на дружественном сайте: http://glab2007.narod.ru. Более подробно эту информацию можно посмотреть на нашем сайте здесь
Есть ещё одно решение этой задачи с помощью модуля Vertical Mapper. Эту информацию вы можете найти по сл. ссылке.
©Simashkov.2010