как создать .tab для растра

MapInfo, MapBasic
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: как создать .tab для растра

Сообщение Дмитрий Барышников »

Boris писал(а): 1/ программно - это в смысле с использованием библиотеки через собственное приложение или скрипт?
Для этого служит функция GDALGCPsToGeoTransform (http://www.gdal.org/gdal_8h.html#ae6bc0 ... 7431c8db07).
Как ее вызвать из программы не на С/С++ я не разбирался.
Boris писал(а): 2/ иногда есть и для меня очень большой - надо что бы растр лежал в нужном месте в другом софте, естественно не со 100% точностью, скорее для оценки положения и ситуации, но обрабатывать его надо ДО искажения в пикселях
Для этого служит формат VRT. Ничего кодить не надо - пишите себе правильный vrt(xml) файл и получайте результат.
Хоть 6 параметров запихните в него, хоть кучу точек GCP. Подробности: http://www.gdal.org/gdal_vrttut.html
Формат поддерживается и QGIS и ArcGIS.
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: как создать .tab для растра

Сообщение Boris »

Я уже заранее боюсь, что тема пойдет по накатанному пути разговора обо всем.
Как не печально, но ни Мапинфо, ни еще с сотня других ГИС и неГИС продуктов VRT не поддерживают (надо будет проверить поддерживает ли его ScanEx Image Processor, который использует библиотеки GDAL). Не все из них и geoTIFF умеют прочитать, а world-file, как не крути, но стандарт пространственной привязки, пусть и от ESRI.
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: как создать .tab для растра

Сообщение Boris »

ecolog писал(а):А как насчет обратного преобразования? Есть куча растров (штук 200) с привязкой .tab, а нужно получить с привязкой .world. Конечно способ через Scanex IP никто не отменял, но растров уж очень много, и они объемные...
А как сделать в Scanex IP, что бы привязку TAB, перевести в привязку в .world ?
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: как создать .tab для растра

Сообщение Дмитрий Барышников »

Boris писал(а):Я уже заранее боюсь, что тема пойдет по накатанному пути разговора обо всем.
Как не печально, но ни Мапинфо, ни еще с сотня других ГИС и неГИС продуктов VRT не поддерживают (надо будет проверить поддерживает ли его ScanEx Image Processor, который использует библиотеки GDAL). Не все из них и geoTIFF умеют прочитать, а world-file, как не крути, но стандарт пространственной привязки, пусть и от ESRI.
"...для оценки положения и ситуации..." можно и в QGIS посмотреть, а уж потом трансформировать при помощи того же gdal_warp и продолжить работать в MI. Тем более, это уже не пространственная привязка, а, при более 6 опорных точек, сложное трансформирование.
lam
Гуру
Сообщения: 1018
Зарегистрирован: 01 авг 2012, 13:55
Репутация: 241

Re: как создать .tab для растра

Сообщение lam »

Boris писал(а):
ecolog писал(а):А как насчет обратного преобразования? Есть куча растров (штук 200) с привязкой .tab, а нужно получить с привязкой .world. Конечно способ через Scanex IP никто не отменял, но растров уж очень много, и они объемные. Пакетно эту задачу никак не решить?
Могу выложить программу на VB.NET (может потребовать скачивания NET FrameWork не помню какого номера), которая берет TAB файл с растром, находит секцию с точками и для них параметры вычисляет аффинного преобразования, которые потом пишет в world файл. Если точек больше 3-х, то производится вычисление параметров методом наименьших квадратов.
Программа "оконная" - все файлы TAB надо открыть - добавить в окно, потом запустить конвертацию. Наличие растров при файлах не проверяется, но world файл создается с именем, привязанным к имени растра , записанном в TAB-е.

PS
gdal для случая 4-точки и более не создает (ну мне не удалось) world файл, т.к. говорит, что привязка файла задана контрольными точками, а не параметрами.
Уважаемый Boris, выложите, пожалуйста, вышеуказанную программу на VB.NET. На форуме ее не нашел. Большое спасибо.
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: как создать .tab для растра

Сообщение Boris »

lam писал(а): Уважаемый Boris, выложите, пожалуйста, вышеуказанную программу на VB.NET. На форуме ее не нашел. Большое спасибо.
Вот архив с установочным файлом. Запускать Setup.exe
Вложения
app.publish.rar
(203.24 КБ) 285 скачиваний
Аватара пользователя
Игорь Лебедь
Завсегдатай
Сообщения: 452
Зарегистрирован: 24 апр 2010, 19:47
Репутация: 101
Откуда: Город в клёнах и акациях
Контактная информация:

Re: как создать .tab для растра

Сообщение Игорь Лебедь »

Boris писал(а):
ecolog писал(а):А как насчет обратного преобразования? Есть куча растров (штук 200) с привязкой .tab, а нужно получить с привязкой .world. Конечно способ через Scanex IP никто не отменял, но растров уж очень много, и они объемные...
А как сделать в Scanex IP, что бы привязку TAB, перевести в привязку в .world ?
Создаем пустую карту в аркмэп.
Вид - свойства фрейма данных - выбираем нужную проекцию, в которой будут загружаемые растры, например Пулково-42-ГК-зона-8.
Открываем карты с привязкой таб в аркмэп, в окне пространственной привязки для каждого растра можем просмотреть таблицу связей (контрольные точки по-мапинфовски), там видим все погрешности.
Арктулбокс - управление данными - проекции и преобразования - define projection (batch - пакетно) - назначаем нашим растрам нужную проекцию, там у них создается xml.
В арктулбоксе "Управление данными" - "Растр" - "Свойства растра" - "Экспорт ворлд-файла" (batch - пакетно).
Моя делать так, для трансформированных файлов прокатывает хорошо.
Ответить

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей