Per aspera ad astra.

Главная страница | Методики | Карты | Программы | Справка | Проекты | Ссылки
  • Как отсканировать топографическую карту или, почему 508 — число круглое.
  • Как отсканировать тематическую карту.
  • Тематическое цветоделение. Что это такое и как делается.
  • Как построить градусную координатную сетку.
  • Как построить километровую сетку.
  • Некоторые способы оценки воздействия.
  • Как компенсировать разницу освещённости северных и южных склонов.
  • Как выровнять яркостные характеристики двух изображений.
  • Как получить схему покрытия снимков Terra/Aster и отобрать наилучшие снимки.
  • Как получить производные спутниковых снимков Terra/Aster (TerraLook).
  • Как построить градусную координатную сетку.

    Difficile est proprie communia dicere.

    Хорошо выразить общеизвестные истины трудно. (Гораций)

    Теория.

    При активном использовании растровой топоосновы очень сильно облегчают жизнь cтандартные разграфки топографических карт (градусные координатные сетки). Некоторые примеры можно найти среди навигационных слоёв на территорию России здесь. Они прежде всего нужны для навигации, быстрой ориентации в районе исследований, отбора нужного картографического материала. Такие сетки также оказываются совершенно необходимы для ведения каталогов картографических данных различных масштабов. Без них также нельзя обойтись при регистрации топокарт в проекцию для проверки точности привязки. Организовав стандартную систему хранения данных на компьютере (имеется в виду система директорий и названий файлов), заведя дополнительное поле и настроив должным образом hotlink, можно организовать автоматическую загрузку в проект нужных слоёв. Наконец, градусные сетки можно использовать для оформления конечных проектов, для распечатки плана местности в случае, если необходима ориентация на местности с помощью приборов глобального позиционирования. Места на диске такие сетки занимают немного и поэтому имеет смысл постоянно хранить на винчестере и всегда иметь под рукой.
    Градусные сетки имеет смысл создавать в геодезических координатах (единица измерений — градусы и их десятичные доли), когда по оси OX откладывается долгота, а по оси OY — широта. Имея такую сетку, можно проецировать её в различные проекции (методом On-The-Fly в ArcView или с помощью команды project в ArcInfo). Построить такую сетку можно несколькими способами. Так, в системе ArcInfo имеется команда generate, позволяющая строить простейшие элементы в том числе и сетки (подкоманда fishnet).
    До недавнего времени довольно актуально стояла проблема округления периодической дроби. Например, протяжённость топографического листа 1 : 200 000 в широтном направлении составляет 40 минут. Или, если выражать в десятичных градусах, 0.666667 градуса. Если быть точным, то здесь должна быть периодическая дробь (6 в периоде). Но, поскольку данные обычно хранятся с ограниченной точностью, то для них отводится определённое количество разрядов. В данном случае 6. Теперь попробуйте умножить 0.666667 на количество рядов, которое вам нужно получить. Даже в сетке с двенадцатью рядами мы получаем конечную координату 8.000004 вместо 8.000000. С увеличением числа рядов возрастает и ошибка. Можно, конечно перейти в двойную точность (precision double double), но таким образом проблему можно обойти только до определённого уровня — до тех пор, пока число рядов и колонок не превысит некоторое критическое значение, при котором накопленная ошибка станет заметна.
    К счастью, с выходом ArcInfo 8 эта проблема была полностью снята. В команде generate появилась возможность задавать противоположный угол сетки и количество рядов и колонок. Высота и ширина ячейки будут при этом рассчитаны автоматически.
    Ещё одна особенность градусных сеток, которую нельзя не учитывать, это тот факт, что при их перепроецировании отрезки, отображаемые прямыми линиями в геодезических координатах, часто в проекции должны быть изогнуты в дуги. Это будет невозможно, если вершины в линиях-границах ячеек будут проставлены только в узлах сетки. Поэтому, при построении сеток необходимо проставить дополнительные вершины. Так, в градусной сетке для карт масштаба 1 : 200 000 дополнительные вершины были проставлены с интервалом 0° 15' в долготном направлении и 0° 10' в широтном направлении. Если этого не сделать, то после проецирования мы получаем ошибку более 100 метров для 2 км топокарт. Интервалы выбираются в соответствии с координатными засечками, изображёнными на топокартах данного масштаба.
    Для регистрации топографических карт очень полезным может оказаться слой с тиками — точками с известными координатами. Для того, чтобы минимизировать ошибку, регистрировать топокарты приходится не только по угловым координатам, но и по другим координатным засечкам. Именно эти засечки удобно иметь в отдельном слое.
    Для решения всех этих задач была написана программа fishnet.exe, позволяющая строить сетки в геодезических координатах любого масштаба с двойной точностью. Программа сама проставит дополнительные вершины в линиях-границах ячеек и создаст дополнительный слой с точками-тиками в соответствии с заданными вами интервалами. В ней также решена проблема округления периодической дроби (по крайней мере при построении сетки масштаба 1 : 50 000 на весь мир, проблема не возникала). Программуля DOS'овская со всеми вытекающими отсюда последствиями. Тем не менее, в своё время она позволила решить возникающие проблемы. И до сих пор некоторые вещи оказывается сделать с её помощью быстрее.

    Практика.

    Итак, для работы нам понадобится.

    1. совсем не мощный компьютер.
    2. программа для построения сеток, которую можно скачать здесь (4 865 байт).
    3. ArcInfo WorkStation.

    Ход работы.

    1. Запустить программулю — fishnet.exe.
      Элементы сетки
      Рисунок 1. Элементы сетки. (6194 байт).


    2. На вопрос "Grid Name: " введите 8-символьное имя покрытия ArcInfo, которое будет содержать собственно сетку. Например, grid2km.
    3. На вопрос "Fishnet Origin Coordinate (X Y): " введите координаты левого нижнего угла сетки через пробел (рис. 1). Например, 18 40.
    4. На вопрос "Cell Size (Width Height): " введите размеры ячейки — ширина и высота через пробел (рис. 1). Например, 1 0.6666666666666666666667
    5. На вопрос "Number of Rows Columns: " введите количество рядов и колонок в сетке. Например, 162 66.
    6. На вопрос "Fuzzy tolerance (0X 0Y): " введите через пробел интервалы по осям 0X и 0Y, через которые следует добавлять дополнительные вершины. Через такие же интервалы будут проставлены и тики в точечном слое (рис. 1). Например, 0.25 0.1666666666666666666667
    7. Программа создаст три файла — grid2km.gen, grid2km.gpn и grid2km.aml. и на этом свою работу закончит. Теперь просто запустите aml'ку: arc &run grid2km.aml. В результате получаем два покрытия — GRID2KM (полигональное с собственно координатной сеткой) и GRID2KMTIC (точечное с тиками для привязки).
    О проекте | Копирайт | E-mail