Простая задача – сложное решение?

0 голосов
спросил 01 Фев, 05 от womak (1,780 баллов) в категории Программные продукты Esri
Простая задача – сложное решение?

Есть координатная сетка с разграфкой 1:200000 масштаба на листы К-52 и К-53 и береговая черта. Все это построено в Сёрфере и экспортировано в шейп-файлы: сетка и берег.
Есть набор бумажных карт (полистно)1:200000 масштаба уменьшенных до 1:500000 (еще в прошлом веке), генерализованных и отсканированированных.
Задача. Собрать все листы в единую карту 1:500000, оцифровать и работать далее.

Решение. Подгружаем шейпы в аркгис, проецируем в 22 зону, экспортируем в векторном формате в корел. Там под полученный берег подгоняем растры. Серию растров экспортируем в единый растр вместе с берегом и сеткой и цифруем в векторизаторе, привязывая растр по сетке. Тоже самое проделываем с растрами из 23 зоны.
Привязывать каждый растр отдельно не представляется возможным, так как исходные карты были потерты временем, а их еще и уменьшили и нарисовали чего-то. Только берег и остался.

Проблема. При проецировании линии сетки «гуляют» до минуты. Это видно на глаз даже на этом маленьком рисунке. Хотя в исходном состоянии все как положено «перпендикулярно - параллельно». Берег совпадает с берегом растров удовлетворительно. В чем причина? Может я не правильно проецирую?
image

9 Ответы

0 голосов
ответил 01 Фев, 05 от Leo_SS (6,820 баллов)
Проецируете правильно устанавливая параметры проекции, но где в Серфере Вы видели установку проекции? И зачем такие сложные манипуляции с растрами. Часть векторизовать в Серфере, затем Корел, потом аркгис. Правильнее, вязать все в аркгис, предварительно установив проекцию растра. То что Вы создали в Серфере (уже в проекции), а он конвертировал "на прямую" - считая их десятичными градусами, поэтому сетка и "гуляет". Т.е. Вы спроецировали в аркгис, уже спроецированные объекты (координаты в метрах), а не объекты в десятичных градусах.
0 голосов
ответил 01 Фев, 05 от womak (1,780 баллов)
Вы спроецировали в аркгис, уже спроецированные объекты (координаты в метрах), а не объекты в десятичных градусах. Они не спроецированны, они в десятичных градусах.

Так в том то и дело, что Серфер строит карты в декартовых координатах, используя десятичные градусы. Экспортируем в шейп, аркгис понимает этот шейп и отображает аналогично Серферу, без проекции. Трапеции листов выглядят как прямоугольники, что и естественно. В свойствах темы написано про проекцию следующее:

Horizontal Datum Name: North American Datum of 1927
Ellipsoid Name: Clarke 1866
Semi-major Axis: 6378206.400000
Denominator of Flattening Ratio: 294.978698


Я создаю пустой проект и ставлю эту проекцию, затем добавляю шейпы. Все отлично! Аркмэп не ругается. Затем меняю проекцию. Все плохо. Причем в арквью 3.2 сетка проецируется правильно, но там экспорт в корелл хуже.

Как я в Серфере частично оцифрую, если он не поддерживает проекции, а растры спроецированы? И на растрах частично отсутствуют рамки и координатная сетка. Только берег можно уверенно совмещать.
0 голосов
ответил 02 Фев, 05 от Leo_SS (6,820 баллов)
Что бы было понятно, сделайте следующее. В Серфере нарисуйте квадрат (1смХ1см) -> экспорт в шейп-файл -> откройте в аркгис этот шейп, поставьте проекцию и померьте линейкой стороны квадрата. Когда Вы рисовали квадрат, считайте что он векторизовался с растра карты (этот квадрат, например 1кмХ1км, нарисован на карте, какой-то проекции и масштаба)
0 голосов
ответил 02 Фев, 05 от womak (1,780 баллов)
Действия с квадратами окончательно завели меня в тупик.
Сформулирую вопрос по другому.
Есть сетка (шейп файл, десятичные градусы), можно ее спроектировать в 22 зону ГК?
Сетка
0 голосов
ответил 02 Фев, 05 от Leo_SS (6,820 баллов)
Конечно можно. Я ее посмотрел - это линейная 50 000 сетка. Только не забывайте, у Вас стык двух 6-тиградусных зон, по 132 градусу, а у кажой зоны свой центральный меридиан (соответственно 129, 135). Лучше сделать не линейную, а полигональную сетку этого масштаба. В атрибутивную таблицу вбить номенклатуру листов, вот тогда это будет нормальный слой.
0 голосов
ответил 03 Фев, 05 от womak (1,780 баллов)
Спасибо. Значит она проецируется и горизонтали не «плавают»? Хотелось бы узнать последовательность действий.
Мои действия:
ArcMap—A new empty map—Add Data—Setka.shp
Layers—Data Frame Properties—Coordinate System—Pulkovo_1942_GK_Zone_22N

Предупреждение о том, что используется система отличная от системы использующейся на карте. И как итог «плавающие» параллели.
0 голосов
ответил 03 Фев, 05 от Гость (210,080 баллов)
сначала надо установить проекцию вида по первому шейпу затем добавить шейп, создать автоматически градуснуюсетку убедиться что она совпадает с шейпом также как на растре,
если нет, то добиться совпадения подобрав нужный меридиан и затем экспортировать шейп в проекции data frame. То же самое со следующим шейпом. Так создатся файл с информацией о проекции, (которая у вас и вылетела при переходе из surfer'a) либо сделать его(их) вручную. А уж потом argis все "спроецирует на лету", то есть отобразит шейпы в разных зонах или проекциях в проекции data frame.
Ну и наверное сетку лучше добавить один раз. Ведь данные еще в растре. она разместится удовлетворительно и береговая линия пройдет как надо, создать новый прямоугольный грид с заданным шагом как на растре и все привязывать к нему...Использовать корел имея arcgis - это апофиозм идиотизма какой-то....
0 голосов
ответил 03 Фев, 05 от Leo_SS (6,820 баллов)
Maxval, к сожалению не могу подсказать последовательность действий по причине, того что я работаю в 3.2а. У нас есть и "восьмерка", но переходить на нее мы не собираемся, хотя ведем все ГРР на уголь по всей России и имеем картографический банк информации организованный на "тройке", которая вполне удовлетворяет, с запасом возможностей и простоты. Мы в свое время то же сталкивались с аналогичной проблемой - в чем вектроризовать, перепробовали кучу программ, толку - "0". Пришли к выводу - вектроризовать лучше и проще в ГИС.
0 голосов
ответил 04 Фев, 05 от womak (1,780 баллов)
Спасибо за советы.
Задание я выполнил, не прибегая, к сожалению, к услугам ГИС, а используя старый, добрый и надежный «апофиоз идиотизма».
Последовательность такая. В Серфере рассчитал сетку в проекции ГК на 22 и 23 зоны по формулам. Экспортировал ее вместе с береговой линией в корелл, затем туда же подтянул растры и «подложил» под сетку. Полученную мозаику экспортировал в один растр для каждой зоны, и привязал их в Easy Trace. Причем ошибка составила не более 50 м, что совсем не плохо, по моему мнению, для схемы 1:500000 масштаба. А потом просто из спортивного интереса добавил эти растры (по очереди конечно) в Global Mapper и создал GeoTiff в «плоской географической проекции». Затем объединил их в один. Теперь полученный растр читает как ГИС, так и Серфер.
Вот только «плавающие» горизонтали остались не понятыми. Из за чего это происходит? Насколько я знаю «правильный» шейп хранит информацию о точках, линиях или полигонах в десятичных градусах. А проецирует эти данные уже ГИС. Поэтому объяснение «потеря проекции при экспорте из серфера» и «спроецировать спроецированное» не подходят, а что тогда остается?
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...