Держу в руках официальный атлас области. Омская картографическая фабрика, 2002. Вполне себе обозначены колейность и электрифицированность железных дорог, магистральные линии электропередач, магистральные нефтепроводы...колейность, электрифицированность железных дорог
Картографический портал. Версия ArcGis
Модератор: Tolik
Re: Картографический портал. Версия ArcGis
Немножко офигеваю от этого приказа. По нему, нельзя публиковать даже часть того, что свободно публиковалось с советских времен. Шизофрения в эпоху "современных возможностей дешифрирования объектов местности по открытым космическим снимкам" здравствует и побеждает.
-
PavelML
- Заслуженный тролль ресурса
- Сообщения: 104
- Зарегистрирован: 20 фев 2010, 17:29
- Поблагодарили: 6 раз
Re: Картографический портал. Версия ArcGis
Практические решения есть, но нужно понимать, что они непростые.Nik писал(а):С точки зрения теории это, конечно, интересно, тем более что с адреса, указанного на известном сайте, ответ получить не удалось. Но есть ли простые практические рекомендации, позволяющие хотя бы частично компенсировать влияние названных факторов при привязке карт GGC с помощью Ozi?
Необходимо подобрать параметры преобразования под каждую карту. И это нужно делать либо вручную, либо в полуавтоматическом режиме, например в Excel, имея в модулях на VBA функции на основе формул ГОСТ Р 51794-2008. Выносим все параметры преобразования, их около 10, изнутри функции в лист (то есть функция их должна считывать с рабочего листа Excel), рядом на этом же листе располагаем координаты точек привязки - в каждой строке пара координат в WGS-84 и пара координат в той системе, к которой подбирается "ключик", если это растр, то видимо номер пикселя по горизонтали и номер пикселя по вертикали. Но для большей универсальности подобранного датума лучше эти координаты иметь в метрах - тогда можно работать с другими растрами в той же системе координат.
В соседних колонках от пар координат вставляем формулы пересчета, которые у нас в VBA, беря входные данные из той пары координат, которая в WGS-84. И в следующих колонках - разность между результатом вычислений (отдельно по X и отдельно по Y) и кординатами по привязке. Вот эта разница и будет той ошибкой которую нужно "минимизировать".
Для достаточно точного подбора хватит пяти точек привязки - по углам карты и в центре. По центральной точке мы подбираем величину постоянных смещений по X и Y, по разнице ошибок по широте между западными и восточными координатами определяем долготу центрального меридиана (исходя из того что она может быть либо "зональной" - кратной 3 или 6 градусам от гринвича - либо зональной со смещением, в котором могут быть "целые минуты", мельче целых минут знаков быть вроде не должно). По разнице ошибок по долготе между западными и восточными точками подбираем множитель. Окончательно догоняем выбором параметров эллипсоида из трех общепринятых.
Формулы преобразования координат проекций Гаусса-Крюгера всегда работают только в одну сторону - из UTM в Гаусса-Крюгера. В обратную сторону применяется приблизительное вычисление с итерацией с применением прямого вычисления. Впрочем, по вышеупомянутому госту если формула обратного вычисления набрана без ошибок, то уже на первом вычислении ошибка будет совсем небольшой - десятые доли метра. Кстати, должен сказать... в официальных источниках в тексте госта в формулах имеются опечатки... 8)))
Короче... если интересно поковыряться, то возьмите этот файл и поковыряйтесь в васике: http://85.95.172.46/253/wgs.zip
Далее... если параметры преобразования подобраны - их можно забить в описатели для программ, которые умеют делать трансформацию растра. Для Global Mapper это файлы PRJ.
Я могу сказать как выглядит трансформация из WGS-84 в прямоугольную метрическуую систем координат. В обратную видимо аналогично.
1. Выгружаем растр из источника с файлом привязки (ну скажем TAB) в системе координат WGS-84.
2. Открываем этот растр (выбирая именно растр, а не файл привязки) в Global Mapper. На экране появляется растр прямоугольной формы.
3. Далее - меню -> инструменты -> настройка -> проекция -> загрузить - выбираем файл PRJ с нашим подобранным датумом - щелкаем "применить"
4. Форма растра тут же меняется с прямоугольной на искривленную, для небольших размеров поверхности просто становится слегка повернутой.
5. Выбираем меню - файл - экспорт данных растра и высот - JPG - в окне выбираем нужный нам тип файла привязки и рамкой выбираем часть растра, чтобы края были прямоугольными, далее экпортируем. И вот тогда он реально начинает трансформировать растр - в файл.
Программистам проще написать свою процедуру попиксельного трансформирования, чем пользоваться сторонним софтом.
Если какие-то отдельные объекты и элементы не отображаются - это не является искажением карты, это немножко другая тема 8)Papazol писал(а):ПЕРЕЧЕНЬ ОБЪЕКТОВ МЕСТНОСТИ И ЭЛЕМЕНТОВ СОДЕРЖАНИЯ ТОПОГРАФИЧЕСКИХ КАРТ И ПЛАНОВ, ЗАПРЕЩЕННЫХ ДЛЯ ОТКРЫТОГО ОПУБЛИКОВАНИЯ уже отменён? Возьмите книжку-атлас какой-нибудь области, проверьте, если знаете местность, всё ли там отображено
Я думаю что это был единственный способ сделать карту общедоступной - убрать эти объекты. В конце концов - мы ведь сами выбирали депутатов, которые принимали закон о гостайне, верно? Вот и давайте на себя ругаться...
vasketsov писал(а):Не пугайте народ. Приказ роскартографии статуса закона не имеет. Любые ограничения в правах возможны только посредством принятия федерального закона. Так что нанести точно объект лично Васе Пупкину никакой приказ Роскартографии запретить не может. Фактически Приказ применяется только к официальным картам.topograf писал(а):и то вне закона
- скрытый текст: показать
Re: Картографический портал. Версия ArcGis
Получил ответ на вопрос об искажениях карт GGC и их привязках. Привожу его полностью.
------------------------------------------------------------------------------------------------------------------
Частично на вопрос про привязки я отвечал здесь:
http://www.gps-forum.ru/cgi-bin/forum/s ... Post131820
Теперь про искажения.
Привязки для базового архива и обновления изначально делались так:
Принимаем за аксиомы
1. Листы выполнены в проекции Гаусса-Крюгера, т.е. в поперечном меркаторе на эллипсоиде Крассовского, центральные меридианы определяются номенклатурой.
2. Масштаб по X и Y одинаковый, как у любой нормальной карты.
Географические координаты углов карты известны из номенклатуры.
Просмотрев -дцать листов видим, что на любом листе минимальное расстояние от края растра до рамки -- 5 пикселей -- либо слева и справа (для широких листов), либо сверху и снизу (для высоких), отсюда получаем либо X либо Y координаты двух точек рамки. Поскольку пиксельные и географические координаты связаны масштабом и смещением, то решая простенькое уравнение, получаем пиксельные координаты углов.
Получается более-менее приличный результат.
При генерации привязок для обновления выяснилось, что рамки соседних листов расходятся на 0-4 пикселов, т.к. масштаб по X и Y разный. Причину не знаю -- может ошибка ребят из госгисцентра, может намеренное искажение, может перепроецирование в другую СК. Обнаружено, что искажение зависит от соотношения вертикального и горизонтального размера листа. Зависимость более-менее линейная, коэффициент подобрал эмпирически.
Поскольку ошибка небольшая, считаем искажение линейным.
Итого:
* искажения были в графических файлах, в привязках они учтены.
* при ручной привязке в ози по трём и более точкам эти искажения автоматически учитываются.
* В базовом архиве искажения, похоже были, но в пределах 1-2 пикселей, может и меньше.
* Гарантированно автоматически сделать точную привязку для всех листов не получится, о причине я написал на gps-forum по ссылке. Единственный вариант -- заняться распознаванием углов рамки.
Если интерес на гислабе ещё не угас, то это письмо можно свободно копировать/цитировать.
------------------------------------------------------------------------------------------------------------------
Частично на вопрос про привязки я отвечал здесь:
http://www.gps-forum.ru/cgi-bin/forum/s ... Post131820
Теперь про искажения.
Привязки для базового архива и обновления изначально делались так:
Принимаем за аксиомы
1. Листы выполнены в проекции Гаусса-Крюгера, т.е. в поперечном меркаторе на эллипсоиде Крассовского, центральные меридианы определяются номенклатурой.
2. Масштаб по X и Y одинаковый, как у любой нормальной карты.
Географические координаты углов карты известны из номенклатуры.
Просмотрев -дцать листов видим, что на любом листе минимальное расстояние от края растра до рамки -- 5 пикселей -- либо слева и справа (для широких листов), либо сверху и снизу (для высоких), отсюда получаем либо X либо Y координаты двух точек рамки. Поскольку пиксельные и географические координаты связаны масштабом и смещением, то решая простенькое уравнение, получаем пиксельные координаты углов.
Получается более-менее приличный результат.
При генерации привязок для обновления выяснилось, что рамки соседних листов расходятся на 0-4 пикселов, т.к. масштаб по X и Y разный. Причину не знаю -- может ошибка ребят из госгисцентра, может намеренное искажение, может перепроецирование в другую СК. Обнаружено, что искажение зависит от соотношения вертикального и горизонтального размера листа. Зависимость более-менее линейная, коэффициент подобрал эмпирически.
Поскольку ошибка небольшая, считаем искажение линейным.
Итого:
* искажения были в графических файлах, в привязках они учтены.
* при ручной привязке в ози по трём и более точкам эти искажения автоматически учитываются.
* В базовом архиве искажения, похоже были, но в пределах 1-2 пикселей, может и меньше.
* Гарантированно автоматически сделать точную привязку для всех листов не получится, о причине я написал на gps-forum по ссылке. Единственный вариант -- заняться распознаванием углов рамки.
Если интерес на гислабе ещё не угас, то это письмо можно свободно копировать/цитировать.
- DJ VK
- Гуру
- Сообщения: 1468
- Зарегистрирован: 16 апр 2009, 13:57
- Откуда: 8 км. от МКАД
- Благодарил (а): 80 раз
- Поблагодарили: 314 раз
Re: Картографический портал. Версия ArcGis
Так я же три раза писал как распознать рамку и приводил исходный код.Nik писал(а): * Гарантированно автоматически сделать точную привязку для всех листов не получится, о причине я написал на gps-forum по ссылке. Единственный вариант -- заняться распознаванием углов рамки.
http://sasgis.org/forum/viewtopic.php?f=2&t=1754#p23691
Лучше скажите как высчитать и сделать правильную привязку.
Сейчас использую вот такую.
Код: Выделить всё
GLOBAL_MAPPER_SCRIPT VERSION="1.00" FILENAME="N-36-011-A-a_Scale3.gmw"
DEFINE_PROJ PROJ_NAME="GEO_S-42_PULKOVO_1942"
Projection GEOGRAPHIC
Datum PULKOVO
Zunits NO
Units DD
Xshift 0.000000
Yshift 0.000000
Parameters
0 0 0.000 /* longitude of center of projection
END_DEFINE_PROJ
DEFINE_SHAPE SHAPE_NAME="AUTO_CROP_POLY"
35.0000000000,56.0000000000
35.1250000000,56.0000000000
35.1250000000,55.9166666667
35.0000000000,55.9166666667
END_DEFINE_SHAPE
IMPORT FILENAME="N-36-011-A-a_Scale3.png" TYPE="PNG" PROJ_NAME="GEO_S-42_PULKOVO_1942" \
RECTIFY="Automatic" SAMPLING_METHOD="BILINEAR" \
GCP="POINT01,312.0000000,105.0000000,35.0000000,56.0000000" \
GCP="POINT02,3661.0000000,4.0000000,35.1250000,56.0000000" \
GCP="POINT03,3783.0000000,3990.0000000,35.1250000,55.9166667" \
GCP="POINT04,427.0000000,4090.0000000,35.0000000,55.9166667" \
CLIP_COLLAR="AUTO" CLIP_COLLAR_POLY_AUTO="AUTO_CROP_POLY" TEXTURE_MAP="NO"Поставил углы найденные своей программой в привязки из инета. Состыковалось ровно!!!!!
Поделитесь плиз вычислялкой метровых координат...
- Papazol
- Гуру
- Сообщения: 2069
- Зарегистрирован: 04 дек 2009, 01:39
- Откуда: Рязань
- Благодарил (а): 73 раза
- Поблагодарили: 647 раз
Re: Картографический портал. Версия ArcGis
Вот теперь стало более-менее ясно, о каких искажениях шла речь.
Надо отметить, что замечание о том, что при ручной привязке в Ozi эти искажения устраняются автоматически, является весьма ключевым. Я с самого начала привязывал всё вручную, и все листы сошлись весьма хорошо, только иногда видны рамки (вопрос одного пикселя?), но это в принципе не мешает. И для меня было непонятно, что за искажения имелись в виду, так как я смешал и старые, и новые карты, а всё равно они все чётко сошлись, и даже положения объектов, которые я проверял на разных картах и снимках, были правильными.
Если углы листа карты определены точно, неважно, вручную или автоматически, привязка будет правильной.
Надо отметить, что замечание о том, что при ручной привязке в Ozi эти искажения устраняются автоматически, является весьма ключевым. Я с самого начала привязывал всё вручную, и все листы сошлись весьма хорошо, только иногда видны рамки (вопрос одного пикселя?), но это в принципе не мешает. И для меня было непонятно, что за искажения имелись в виду, так как я смешал и старые, и новые карты, а всё равно они все чётко сошлись, и даже положения объектов, которые я проверял на разных картах и снимках, были правильными.
Если углы листа карты определены точно, неважно, вручную или автоматически, привязка будет правильной.
- DJ VK
- Гуру
- Сообщения: 1468
- Зарегистрирован: 16 апр 2009, 13:57
- Откуда: 8 км. от МКАД
- Благодарил (а): 80 раз
- Поблагодарили: 314 раз
Re: Картографический портал. Версия ArcGis
я написал конвертер, теперь для всех файлов *.corn ищется .gmw и подменяются имена файлов и координаты листа на полученные.
(только для 250к.)
(только для 250к.)
- скрытый текст: показать
-
PavelML
- Заслуженный тролль ресурса
- Сообщения: 104
- Зарегистрирован: 20 фев 2010, 17:29
- Поблагодарили: 6 раз
Re: Картографический портал. Версия ArcGis
Вы ставите знак равенства между проекцией Гаусса-Крюгера и поперечной проекцией Меркатора - и предлагаете это принять за аксиому? У меня нет слов 8)))Nik писал(а):Принимаем за аксиомы
1. Листы выполнены в проекции Гаусса-Крюгера, т.е. в поперечном меркаторе на эллипсоиде Крассовского, центральные меридианы определяются номенклатурой.
Что касается эллипсоида Красовского... к виду проекции он не имеет никакого отношения.
Вот смотрите:
Код: Выделить всё
' Эллипсоид Красовского
Const caP As Double = 6378245 ' Большая полуось
Const calP As Double = 1 / 298.3 ' Сжатие
Const ce2P As Double = 2 * calP - calP ^ 2 ' Квадрат эксцентриситета
' Эллипсоид WGS84 (GRS80, эти два эллипсоида сходны по большинству параметров)
Const caW As Double = 6378137 ' Большая полуось
Const calW As Double = 1 / 298.257223563 ' Сжатие
Const ce2W As Double = 2 * calW - calW ^ 2 ' Квадрат эксцентриситета
' Общеземной эллипсоид ПЗ-90 и ПЗ-90.02
Const aZ As Double = 6378136 ' Большая полуось
Const alZ As Double = 1 / 298.257839303 ' Сжатие
Const e2Z As Double = 2 * alZ - alZ ^ 2 ' Квадрат эксцентриситета
Давайте для простоты понимания так:
Поперечная проекция меркатора - линии меридианов вертикальные и прямые, линии параллелей горизонтальные и прямые, шкалы по вертикали и горизонтали - в равномерных (линейных) градусах. Поперечная проекция Меркатора поэтому называется "равноградусной".
Проекция Гаусса-Крюгера - линии метров/километров на "cевер" (направление условно, может отличаться от направления на полюс на несколько градусов) прямые и параллельные,
линии метров/километров на "восток" (направление условно, может быть непараллельным параллелям в пределах нескольких градусов), шкалы по вертикали и горизонтали - в равномерных (линейных) метрах. Проекция Гаусса-Крюгера поэтому называется "равнометрической".
Поперечная проекция Меркатора выражена в Градусах, поэтому не имеет погрешности отображения. Проекция Гаусса-Крюгера выражена в метрах, поэтому всегда однозначно имеет погрешность относительно исходных координат широты-долготы. Вопрос только в ее размере.
Если говорить о проекциях карт GGC - это все разные варианты проекций Гаусса-Крюгера. Все что используется в SAS.Planet - привязывается к поперечной проекции Меркатора. Задача трансформации растра из первого во второе - задача сложная, если нужно получить неискаженную картинку. А по точкам привязки можно получить искаженную, но видимо приемлемую для большинства людей.
Re: Картографический портал. Версия ArcGis
У вас тут так весело, что я тоже решил присоединиться (если что, то я автор безобразия на smtm2.tk).
Уважаемый PavelML, вы заблуждаетесь. Вы прекрасно описали обычную проекцию Меркатора, а проекцияя Гаусса-Крюгера это именно синимоним либо разновидность (в разных местах по-разному) поперечного Меркатора: http://en.wikipedia.org/wiki/Gauss-Krug ... ate_system, http://remotesensing.org/geotiff/proj_l ... cator.html. И вычисление координат в ней зависит от эллипсоида -- см. формулы по второй ссылке.
Теперь про вычисление прямоугольных координат (которые в метрах) из геодезических (которые в градусах). Я не заморачиваюсь и использую proj4. К ней есть байндинги для многих языков, есть утилита командной строки для преобразования координат. Эстеты могут самостоятельно написать преобразование по формулам от EPSG (опять же вторая ссылка, либо ищите канонический справочник).
Уважаемый PavelML, вы заблуждаетесь. Вы прекрасно описали обычную проекцию Меркатора, а проекцияя Гаусса-Крюгера это именно синимоним либо разновидность (в разных местах по-разному) поперечного Меркатора: http://en.wikipedia.org/wiki/Gauss-Krug ... ate_system, http://remotesensing.org/geotiff/proj_l ... cator.html. И вычисление координат в ней зависит от эллипсоида -- см. формулы по второй ссылке.
Теперь про вычисление прямоугольных координат (которые в метрах) из геодезических (которые в градусах). Я не заморачиваюсь и использую proj4. К ней есть байндинги для многих языков, есть утилита командной строки для преобразования координат. Эстеты могут самостоятельно написать преобразование по формулам от EPSG (опять же вторая ссылка, либо ищите канонический справочник).
- DJ VK
- Гуру
- Сообщения: 1468
- Зарегистрирован: 16 апр 2009, 13:57
- Откуда: 8 км. от МКАД
- Благодарил (а): 80 раз
- Поблагодарили: 314 раз
Re: Картографический портал. Версия ArcGis
Видно из никнейма.uzicyfob писал(а):если что, то я автор безобразия на smtm2.tk
Не обязательно заменять привязки, но сгенерить махом новые. Я то для себя сделал, теперь могу склеить кусочек, который хотел, не заморачиваясь; но у вас карт то намного больше.
Re: Картографический портал. Версия ArcGis
Важное выделено. Кому у нас "доверяется" по службе информация о войсковых частях?PavelML писал(а):Статья 283. Разглашение государственной тайны
1. Разглашение сведений, составляющих государственную тайну, лицом, которому она была доверена или стала известна по службе или работе
Передача, а равно собирание, похищение или хранение в целях передачи иностранному государству, иностранной организации или их представителям сведений