Растр из MapInfo в AutoCAD

MapInfo, MapBasic
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Растр из MapInfo в AutoCAD

Сообщение Boris » 31 май 2010, 20:50

не сходится с таблицей построенной самой MapInfo:
1. имя файла. если имеются национальные символы, то MI переводит их в кодировку Windows из исходного имени в кодировке DOS. Все как при использовании DIR в командной строке - кодировка имен файлов = DOS, если открывать те же файлы через проводник, то там кодировка = Win.
2. MI строит на основе World File 3 точки привязки растра. Программа - 4. Может она это делает и правильнее, но все же...
3. Строка СК содержит числовое обозначение единиц измерения в СК (7 в этом примере)
CoordSys Earth Projection 8, 1001, 7, 15, 0, 1, 3500000, 0
а должно быть буквенное:
CoordSys Earth Projection 8, 1001, "m", 15, 0, 1, 3500000, 0
4. В конце файла указываются единицы измерения растра
Units "m"
5. размерность растра считается от 0, поэтому последние пиксели имеют номер на единицу меньше, чем размерность растра.

-- теперь целиком оба файла в кодировке Windows:
TAB из MI

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

!table
!version 300
!charset WindowsCyrillic

Definition Table
  File "_4863о.tif"
  Type "RASTER"
  (3277985.800962213,6086406.6149833659) (0,0) Label "Pt 1",
  (3282016.0888987188,6086406.6076476993) (4734,0) Label "Pt 2",
  (3277985.8117749877,6081742.1493528001) (0,5479) Label "Pt 3"
  CoordSys Earth Projection 8, 1001, "m", 15, 0, 1, 3500000, 0
  Units "m"
TAB из wld2tab

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

!table
!version 300
!charset WindowsCyrillic
Definition Table
File "_4863Р_.tif"
Type "RASTER"
(3277985.80096221,6086406.61498337) (0,0) Label "A",
(3282016.94024809,6086406.61498337) (4735,0) Label "B",
(3277985.80096221,6081741.29801759) (0,5480) Label "C",
(3282016.94024809,6081741.29801759) (4735,5480) Label "D"
CoordSys Earth Projection  8, 1001, 7, 15, 0, 1, 3500000, 0
1.rar
те же файлы + исходные tif & twf
(38.47 КБ) 493 скачивания

Mitrich
Активный участник
Сообщения: 184
Зарегистрирован: 15 сен 2006, 16:15
Репутация: 10
Откуда: Москва

Re: Растр из MapInfo в AutoCAD

Сообщение Mitrich » 01 июн 2010, 09:40

Борис, большое спасибо!
буду разбираться.
А можно попросить сделать файл привязки для растра из 1 пикселя. Как там "правые" координаты будут записаны.
чую, придется МИ скачивать :)

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Растр из MapInfo в AutoCAD

Сообщение Boris » 01 июн 2010, 13:05

Как просили, попробовал привязать растр в 1 пиксель - не получилось. Все 3 точки установились в (0; 0) и растр не открылся, хотя таблица по файлу tfw создалась - MI сказал - "Все точки лежат на одной прямой".
Вот данные для растров 1х1 и 2х2
2x2.rar
(7.21 КБ) 486 скачиваний

Mitrich
Активный участник
Сообщения: 184
Зарегистрирован: 15 сен 2006, 16:15
Репутация: 10
Откуда: Москва

Re: Растр из MapInfo в AutoCAD

Сообщение Mitrich » 01 июн 2010, 13:34

ага! это мапинфо создал Tab файл такой.
вот я и думал, что N-1 не должно пройти для N=1.
в Вашем первом файле значения в точке (кроме первой) были меньше на величину разрешения растра и номер пикселя тоже был на 1 меньше. соответственно на привязку это не влияет, кроме граничных значений.
Update: не работает :(
поставил таки, МИ.
Вложения
refer_1pix.png
refer_1pix.png (22.95 КБ) 11229 просмотров

Mitrich
Активный участник
Сообщения: 184
Зарегистрирован: 15 сен 2006, 16:15
Репутация: 10
Откуда: Москва

Re: Растр из MapInfo в AutoCAD

Сообщение Mitrich » 01 июн 2010, 16:50

обновил тут
исправил:
1.имена координатных систем в списках
2.имя файла с русскими символами. Надо бы проверить на англоязычных Виндах.
3. заменил номер единицы измерения на буквенное обозначение, хотя МИ и так, кажется понимает.
4.Добавил строку Units. значение берется из параметра коорд.системы. т.е. совпадает. надо дать возможность выбора? на первый взгляд кажется лишнее для этой задачи.
5. привязку оставил по 4-м точкам и со значениями пиксел, равным размерности растра. Получаются "кресты" точно по углам. Так кажется лучше. Ошибка - "все точки на одной прямой" - возникает, если большие метровые величины загнать в систему координат с десятичными градусами. Вообщем, поле для тестирования еще разок.
6. поддержка русскоязычных и "битых" mapinfow.PRJ файлов.
Вложения
refer_wld2tab.png
refer_wld2tab.png (35.48 КБ) 11224 просмотра

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Растр из MapInfo в AutoCAD

Сообщение Boris » 02 июн 2010, 02:22

спасибо. посмотрим, что получилось.
п 5. Точки для новых версий - очень хорошо, но World file он же линейный. Что 3, что 4 должно быть без разницы.

Ошибка "все точки на одной прямой" получилась для растра в 1 пиксель. Дура MapInfo привязку рассчитала для точки (0;0) и для точек (максимумX-1; максимумY-1), естественно получилось опять же (0;0) - все три точки одинаковые. Но такой проверки в нее видимо не вставили, а вставили проверку на то, что все точки на одной линии. С точки зрения геометрии 3 совпадающие точки, абсолютно верно, расположены на одной прямой ;)
---
Если не секрет на чем программа? А то у меня завалялась схожего интерфейса программа пакетной конвертации в обратную сторону TAB -> World File. Видимо пришло время в ней ошибки доправить, в том числе и эти полпикселя учесть :)

Mitrich
Активный участник
Сообщения: 184
Зарегистрирован: 15 сен 2006, 16:15
Репутация: 10
Откуда: Москва

Re: Растр из MapInfo в AutoCAD

Сообщение Mitrich » 02 июн 2010, 09:38

Буду признателен за тестирование. программа на vb.net
Вообще говоря, если есть потребность, можно добавить и обратную конвертацию.
Это проще, не нужна проекция. только деление на 0 проверить
Xres=(XmMax-XmMin)/ (XpixMax-XpixMin)
0
0
Yres=-(YmMax-YmMin)/ (YpixMax-YpixMin)
XmMin-Xres/2
YmMin-Yres/2

может еще для OZI нужно?

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Растр из MapInfo в AutoCAD

Сообщение Boris » 02 июн 2010, 16:33

нет обратное совершенно другого порядка. Конвертация TAB в World File использует 3 или 4 точки только в простейшем случае. В общем виде, MapInfo хранит все точки, поставленные при регистрации растра. Их может быть много больше 4-х, мне один приходил файл. в котором их было около 150.
Так, что для получения коэффициентов надо найти аппроксимирующую аффинную трансформацию.

Mitrich
Активный участник
Сообщения: 184
Зарегистрирован: 15 сен 2006, 16:15
Репутация: 10
Откуда: Москва

Re: Растр из MapInfo в AutoCAD

Сообщение Mitrich » 02 июн 2010, 19:23

правда Ваша!

Донецков
Гуру
Сообщения: 3058
Зарегистрирован: 19 май 2010, 19:44
Репутация: 189

Re: Растр из MapInfo в AutoCAD

Сообщение Донецков » 05 июн 2010, 12:20

Для редактирования файлов привязки посмотри - http://glab2007.narod.ru/d/mu.html#perikov

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot] и 1 гость