Страница 1 из 1

Помогите привязать карту Китая

Добавлено: 26 июл 2013, 03:38
kazakov.gis
Привет всем. Люди добрые помогите выбрать проекцию для привязки тематической мелкомасштабной карты Китая.
Ссылка на карту http://www.asia-business.ru/karta/.
перебрал все конические и равноугольные проекции в MapInfo не одна не дает корректной привязки. Как быть не знаю. Весь инет уже перерыл.

Re: Помогите привязать карту Китая

Добавлено: 26 июл 2013, 04:12
Sibit
Выбираете проекцию Долглта-Широта, вроде должно получиться. А что именно не так?

Re: Помогите привязать карту Китая

Добавлено: 26 июл 2013, 05:40
kazakov.gis
Карта при привязке по сетке не ложиться на исходные вектора, точнее ложиться но не так точно как хотелось бы. Как я понимаю Долгота Широта здесь не пойдет ведь это мелкомасштабная карта и здесь должна быть либо равноугольная либо коническая проекция. Минимальные искажения которых мне удалось добиться (20, 30, 40 пик в окне привязки MapInfo) как не странно получаются при привязке в равноугольной проекции США. Вот я ниче и не пойму. Как так!!

Re: Помогите привязать карту Китая

Добавлено: 26 июл 2013, 06:59
gamm
kazakov.gis писал(а):в окне привязки MapInfo
в Мапинфо лучше такие вещи не делать. Нужно снять сетку пересечений в градусах и единицах карты (хоть в пикселях, которыек по масштабу пересчитать в метры),и запустить скрипт по подбору проекции через PROG4 (например, в R), с шагом примерно градус - полградуса, и разными вариантами проекций. За часок найдете, средний меридиан похоже 100 или около. Минимизировать нужно дисперсию невязок, получите параметры с точностью до линейного сдвига, потом пересчитаете по одной точке.

Re: Помогите привязать карту Китая

Добавлено: 26 июл 2013, 11:53
rhot
gamm писал(а):Нужно снять сетку пересечений в градусах и единицах карты (хоть в пикселях, которыек по масштабу пересчитать в метры),и запустить скрипт по подбору проекции через PROG4 (например, в R), с шагом примерно градус - полградуса, и разными вариантами проекций. За часок найдете, средний меридиан похоже 100 или около. Минимизировать нужно дисперсию невязок, получите параметры с точностью до линейного сдвига, потом пересчитаете по одной точке.
Интересный подход. А подходит для векторных данных с неизвестной проекцией, если известно что система координат прямоугольная и имеются точные уже привязанные данные в таких же границах?

Re: Помогите привязать карту Китая

Добавлено: 26 июл 2013, 12:34
paleogis
Вы зачем-то создали такой же топик в разделе координаты и привязка ( я его удалил :evil: ).Из раздела общие вопросы перенес этот топик в раздел координаты и привязка. По существу вопроса см здесь. Привязывайте изображение как неизвестную проекцию, сажайте побольше точек на координатную сетку, гидрографию, береговые линии.

Re: Помогите привязать карту Китая

Добавлено: 26 июл 2013, 23:59
Игорь Белов
Раз есть координатная сетка, проекцию можно проанализировать.

Начинаете с привязки. В проекции "Долгота/Широта" регистрируете изображение по всем пересечениям меридианов и параллелей. Очень внимательно и аккуратно. На невязки не обращаете внимания.

Затем переходите собственно к анализу. Инструменты — математическая картография и вычислительные средства. Исходные данные — долготы/широты и координаты растра из файла привязки.
kazakov.gis писал(а):здесь должна быть либо равноугольная либо коническая проекция.
Анализ показывает, что проекция сразу и равноугольная, и коническая. А именно коническая равноугольная проекция Гаусса-Ламберта. Выходные данные анализа — параметры проекции: средний меридиан 102,21° и параллель касания 36,87°. MapInfo не умеет работать с параллелью касания, поэтому придётся подобрать эквивалентную пару стандартных параллелей. 24,49° и 48,59° — годный вариант. И вот готова строка проекции:

Код: Выделить всё

CoordSys Earth Projection 3, 1001, "m", 102.2140576355, 30, 24.4936967166, 48.5929519332, 0, 0
Заменим ею предложение CoordSys в файле привязки. Можно также добавить проекцию в файл MAPINFO.PRJ:

Код: Выделить всё

"Китай asia-business", 3, 1001, 7, 102.2140576355, 30, 24.4936967166, 48.5929519332, 0, 0
Карта сшита в фотошопе из сканов, и невязки достигают 8 пикселов. По хорошему её нужно трансформировать. Но это уже не к MapInfo.

Прилагаю файл привязки для собранного растра kitay.jpg 6750×5760 px.

Re: Помогите привязать карту Китая

Добавлено: 29 июл 2013, 17:23
kazakov.gis
Спасибо Вам огромное. А подскажите, что касается растра ( kitay.jpg 6750×5760 px) - это получается что бы заработал Ваш файл привязки мне свой надо так же назвать и подогнать под указанный размер. Ведь так???

Re: Помогите привязать карту Китая

Добавлено: 29 июл 2013, 18:37
Игорь Белов
kazakov.gis писал(а):что бы заработал Ваш файл привязки мне свой надо подогнать под указанный размер?
Я предполагаю, что Вы создаёте растр из тайлов без изменения их размеров. Это достигается средствами различных графических программ. Предположим распространённый случай с каким-нибудь фотошопом (GIMP годится). Изображение состоит из одинаковых тайлов 750×720 px, расположенных в виде матрицы 9×8. Вычисляем размер общего растрового поля: ширина 750 ⋅ 9 = 6750, высота 720 ⋅ 8 = 5760. Создаём новое полноцветное изображение размером 6750×5760 px, добавляем тайлы по одному встык, сплавляем слои, сохраняем JPEG.

Интересен вариант с ImageMagic: утилита montage сама вычисляет размеры конечного растра при сборке тайлов.
kazakov.gis писал(а):что бы заработал Ваш файл привязки мне свой надо так же назвать?
Да, это проще всего.
Впрочем, имя растра может быть любым. Оно даже не обязано совпадать с именем файла привязки. Более того, растр может быть вообще в другой папке. Если это Ваш случай, откройте файл привязки в текстовом редакторе, найдите имя растра и поменяйте его на правильный путь.

В качестве альтернативы можно создать для каждого тайла индивидуальный файл привязки.

Re: Помогите привязать карту Китая

Добавлено: 29 июл 2013, 19:05
gamm
rhot писал(а):Интересный подход. А подходит для векторных данных с неизвестной проекцией, если известно что система координат прямоугольная и имеются точные уже привязанные данные в таких же границах?
для всего подходит, работает как часы (я догадываюсь, о чем вы :D ).

Re: Помогите привязать карту Китая

Добавлено: 29 июл 2013, 19:39
rhot
gamm писал(а):
rhot писал(а):Интересный подход. А подходит для векторных данных с неизвестной проекцией, если известно что система координат прямоугольная и имеются точные уже привязанные данные в таких же границах?
для всего подходит, работает как часы (я догадываюсь, о чем вы :D ).
поделитесь рецептом :D
Расхождение в с UTM/WGS84 по ординате около 6000 км на юг, а по абсциссе порядка 180 км на запад.

Re: Помогите привязать карту Китая

Добавлено: 29 июл 2013, 19:50
gamm
rhot писал(а):поделитесь рецептом
рецепта особого нет, целевая функция пишется под задачу, перебор тоже. Для оптимизации используется R, функция optim(). Проекция - пакет rgdal, функция spTransform(), что принципиально, иначе игнорируется датум.
Целевая примерно такая:

Код: Выделить всё

f.proj<- "+proj= ... далее по вскусу
prm - параметры проекции
my.fun1<-function(prm) {
  s.proj<-sprintf(f.proj,prm[1],prm[2],prm[3],prm[4],prm[5])
  p.m2<-spTransform(p.m1,CRS=CRS(s.proj))
  sqrt(mean(rowSums((p.m2@coords-p.sk1)^2)))
}
смещение по X, Y вычисляется потом из преобразования с минимальной дисперсией

Re: Помогите привязать карту Китая

Добавлено: 29 июл 2013, 19:58
rhot
Спасибо большое! Пошёл пробовать :)

Re: Помогите привязать карту Китая

Добавлено: 30 июл 2013, 05:30
kazakov.gis
ErnieBoyd писал(а):Раз есть координатная сетка, проекцию можно проанализировать.
Спасибо Вам огромное. Следуя всем вашим советам все получилось!!! :D :D Ну вот еще один вопрос остается не понятным как вы так четко смогли определить параметры проекции и саму проекцию??? Если нетрудно наставьте на путь познания !!! Посоветуйте какую литературу почитать?? :D