Растры с world файлами в geotiff

Не знаете, где задать вопрос? Задавайте здесь.
Disabledg
Новоприбывший
Сообщения: 7
Зарегистрирован: 01 фев 2018, 10:12
Репутация: 0
Откуда: Россия

Растры с world файлами в geotiff

Сообщение Disabledg » 01 фев 2018, 10:33

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

Имеется следующая задача. Есть растры в формате tif и файлы привязки ( world файлы ) к ним. Растры громадные ( от 500 мб до 10гб ). Встала задача сжать эти данные что бы из растров выходил GeoTiff меньшего размера. Ранее использовался формат ecw но на текущий момент он увы не подходит.

Для попыток реализации было испробовано:
1). Global Mapper - импорт всех растров и привязок ( привязки вносились в формате ASCII Text со стандартными настройками ). Результат работы - geotiff 70мб из 500мб растров. Всё вроде бы и хорошо но получаемый geotiff был смещён по координатам по сравнению с оригиналами растров. Победить так и не удалось.
2). qGis - Растр - Прочее - Объединение. В результате какая то ересь. По завершению на выходе 1 geotiff файл содержащий 1 кусок растра ( хотя при выборе объединения были выбраны все ). При импорте в геомедию ругается на отсутствие геопривязки.

Ч.я.д.н.т.?
я пришёл сюда зарегистрироваться и задавать тупые вопросы. как видишь я уже зарегистрировался.

alexandr cherepanov
Гуру
Сообщения: 506
Зарегистрирован: 30 ноя 2006, 13:31
Статьи: 3
Проекты: 1
Репутация: 84
Откуда: Moscow

Re: Растры с world файлами в geotiff

Сообщение alexandr cherepanov » 01 фев 2018, 14:37

Сдвиг надо полагать 0.5 или 1 пиксела изображения?

Посмотрите в сторону библиотеки Gdal
Например команда:
gdal_translate -co compress=lzw -co predictor=2 input_filename output_filename

Disabledg
Новоприбывший
Сообщения: 7
Зарегистрирован: 01 фев 2018, 10:12
Репутация: 0
Откуда: Россия

Re: Растры с world файлами в geotiff

Сообщение Disabledg » 01 фев 2018, 17:18

К сожалению не могу сказать точно. Не настолько пока разбираюсь. По расстоянию - 100 км если мне память не изменяет. По ворлд файлу пиксель - 0.200 .

Попробовал Ваш вариант - перегнать все тифы гдалом. Увы геомедия отвратительно работает с получившимся тифами после их ужатия и подгрузки. Время обновления окна карты выросло минимум в 2 раза.
я пришёл сюда зарегистрироваться и задавать тупые вопросы. как видишь я уже зарегистрировался.

alexandr cherepanov
Гуру
Сообщения: 506
Зарегистрирован: 30 ноя 2006, 13:31
Статьи: 3
Проекты: 1
Репутация: 84
Откуда: Moscow

Re: Растры с world файлами в geotiff

Сообщение alexandr cherepanov » 02 фев 2018, 09:32

Для скорости работы можно сделать Tiled TIff и добавить пирамиду, тоже со сжатием

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

gdal_translate -co compress=lzw -co predictor=2 -co tiled=yes input_filename output_filename

gdaladdo -r gauss --config COMPRESS_OVERVIEW JPEG --config JPEG_QUALITY_OVERVIEW 85 output_filename 2 4 8 16 32 64

Disabledg
Новоприбывший
Сообщения: 7
Зарегистрирован: 01 фев 2018, 10:12
Репутация: 0
Откуда: Россия

Re: Растры с world файлами в geotiff

Сообщение Disabledg » 08 фев 2018, 16:41

C пережимкой используя gdaladdo -r gauss работает так же как оригиналы. Размер при этом в 2 раза меньше.

Но всё равно хотелось бы сделать из этой кучи 1 нормальный GeoTiff файл.

Гугл выдал следующее:

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

gdalbuildvrt -input_file_list my_list.txt mosaic.vrt
gdal_translate mosaic.vrt mosaic.tif
Но при конвертации теряются файлы привязки :(.
Пробовал добавлять .tab и .tfw файлы в my_list.txt но gdal сразу ругается на не корректный формат: 0...10..ERROR 4: `D:\testA.tab' not recognized as a supported file format.

Как следствие кусок улетает на координаты содержащиеся в тифах. Может есть какие то варианты ч.я.д.н.т.?
я пришёл сюда зарегистрироваться и задавать тупые вопросы. как видишь я уже зарегистрировался.

Disabledg
Новоприбывший
Сообщения: 7
Зарегистрирован: 01 фев 2018, 10:12
Репутация: 0
Откуда: Россия

Re: Растры с world файлами в geotiff

Сообщение Disabledg » 12 фев 2018, 17:08

В общем лучший вариант оказался всё таки global mapper.
Импорт tif + tfw.
Экспорт GeoTiff + Generate World File.
Дальше gdal_translate, gdaldao ( а то экспорт гм весит от 2 до 50гб :-D ).

На выходе имеем 1 tif 1 tfw.
я пришёл сюда зарегистрироваться и задавать тупые вопросы. как видишь я уже зарегистрировался.

ericsson
Гуру
Сообщения: 3250
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 706
Ваше звание: Вредитель полей

Re: Растры с world файлами в geotiff

Сообщение ericsson » 12 фев 2018, 21:30

Решение из области шаманизма, потому что в GM можно задать и разрешение, и компрессию.

Игорь Белов
Гуру
Сообщения: 1507
Зарегистрирован: 04 янв 2011, 22:00
Статьи: 12
Проекты: 1
Репутация: 927
Откуда: Казань

Re: Растры с world файлами в geotiff

Сообщение Игорь Белов » 12 фев 2018, 21:37

Disabledg писал(а):
08 фев 2018, 16:41
при конвертации теряются файлы привязки
Файл TAB создаст нормальная версия MapInfo при открытии TIFF'а; иногда про СК спросит.
World-файл вытащит listgeo:

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

listgeo -tfw mosaic.tif

Disabledg
Новоприбывший
Сообщения: 7
Зарегистрирован: 01 фев 2018, 10:12
Репутация: 0
Откуда: Россия

Re: Растры с world файлами в geotiff

Сообщение Disabledg » 13 фев 2018, 16:00

Disabledg писал(а):
12 фев 2018, 17:08
На выходе имеем 1 tif 1 tfw.
Который ни грузится ни в MapInfo ни в ArcGis...

Собсно очередная проблема. Но решение уже близко :-D.
1. И так имеем набор данных растров который состоит из: tif, tfw, tab, map, id, dat, mif.
2. Делаем загрузку в Global Mapper - выбираем для того что не распознал тип ASCII.
3. Делаем Export-Raster выбираем 24 бита, Make Background Pixel Transparent, Generate tfw, prj, map.
4. На выходе имеем tif, tfw, map, prj.
5. Грузим в MapInfo - корректно создаётся tab файл вектор на растр лёг.
6. Грузим в АркГис - корректно увидел всё сошлось.
7. Грузим в GeoMedia - корректно подцепился tfw. upd. Ложь и не правда из за учёта mapinfo файлов отличается файл привязки tfw... Буду разбираться опосля.
8 тут начинается проблема. Дополнительная и немаловажная задача - автоматизировать это.
8. Пишем скрипт:

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

GLOBAL_MAPPER_SCRIPT VERSION=1.00
IMPORT FILENAME="D:\Converted\!GoodData\13.02.2018_85\155_A_Oformlenie.mif" TYPE=ARCASCIIGRID 
IMPORT FILENAME="D:\Converted\!GoodData\13.02.2018_85\155_A_Cetka.mif" TYPE=ARCASCIIGRID 
IMPORT FILENAME="D:\Converted\!GoodData\13.02.2018_85\155-A.TAB" TYPE=ARCASCIIGRID 
IMPORT FILENAME="D:\Converted\!GoodData\13.02.2018_85\155_A_Cetka.tab" TYPE=ARCASCIIGRID 
IMPORT FILENAME="D:\Converted\!GoodData\13.02.2018_85\155_A_Cetka.dat" TYPE=ARCASCIIGRID 
IMPORT FILENAME="D:\Converted\!GoodData\13.02.2018_85\155_A_Cetka.id" TYPE=ARCASCIIGRID 
IMPORT FILENAME="D:\Converted\!GoodData\13.02.2018_85\155_A_Cetka.map" TYPE=ARCASCIIGRID 
IMPORT FILENAME="D:\Converted\!GoodData\13.02.2018_85\155-A.tif" TYPE=AUTO PROJ=EPSG:4326
IMPORT FILENAME="D:\Converted\!GoodData\13.02.2018_85\155-A.tfw" TYPE=ARCASCIIGRID 
EXPORT_RASTER FILENAME="D:\Converted\!GoodData\13.02.2018_85\155-A.tif" TYPE=GEOTIFF GEN_WORLD_FILE=YES GEN_PRJ_FILE=YES GEN_OZI_MAP_FILE=YES BG_TRANSPARENT=YES BAND_BIT_DEPTH=24 FORCE_SQUARE_PIXELS=YES SAMPLING_METHOD=DEFAULT COMPRESSION=LZW
9. Запускаем... И GM просит подождать 2 месяца 14 дней до завершения экспорта.

Окно экспорта GM с которыми всё хорошо:
Изображение

Что я опять делаю не так? -_- ( помимо того что я всё делаю не так :-D )
я пришёл сюда зарегистрироваться и задавать тупые вопросы. как видишь я уже зарегистрировался.

Boris
Гуру
Сообщения: 4020
Зарегистрирован: 10 апр 2006, 22:34
Статьи: 3
Проекты: 1
Репутация: 381
Откуда: Париж

Re: Растры с world файлами в geotiff

Сообщение Boris » 13 фев 2018, 23:10

Я сильно запутался в ваших "грузим туда-сюда", поэтому про эту часть сказать не готов. На мой вкус, после освоения GDAL и командной строки, все остальные туда-сюда как-то очень странно видят. Как то сразу на ум приходит - "Наши руки не для скуки" и "Мы не ждем милостей от природы - все трудности мы создаем себе сами". Я бы вернулся к полному описанию задачи, а то начинали с "сжать", а закончили "в один TIF". Это две очень разные задачи. И мне не понятно, что вас не устроило в ECW раз его Geomedia читала нормально.
Странное событие, Geomedia и Global Mapper - оба, по крайней мере в некотором кругу моего общения, в сокращении идут как GM. Вы бы писали полное название программы. А то голова закручивается.
Не плохо было бы указать версию Geomedia и Global Mapper. Их есть много разных.
Может я плохо читал, но нигде нет указания на проекцию. У меня вот такое "почему так" с Geomedia обычно бывает если проекции WGS84 и российские смешаны в проекте, либо настроены не так как в других программах. И Geomedia не любит растров на сервере - с ними он работает раз в 20 дольше, чем с растрами на локальном диске.
А что до Global Mapper то, если вы засунули все в один растр или один виртуальный растр, то что удивительного в том, что он собрался так долго работать.
Еще меня смутил коэффициент сжатия в Global Mapper - для не JPEG сжатия, что то очень много растр ужался. И такое у меня то же было с Global Mapper, после этого я его использовать перестал:
1. сжал растр с черными полосами;
2. сбил привязку гораздо меньше чему вас, но бессистемно и не предсказуемо;
3. заменил на свой вкус МСК50 (глобус Красовского-1942) на МСК50 на основе WGS84, хотя выполнять замену проекции его никто не просил.
Так что лучше вернуться к задаче - лучшей автоматизации, чем GDAL в цикле, при множественной обработке растров, я еще ни в одной ГИС не видел. Те, что используют GDAL на "заднем фоне" дают убыль в производительности в 20%, те что не используют - 200% и больше.

ericsson
Гуру
Сообщения: 3250
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 706
Ваше звание: Вредитель полей

Re: Растры с world файлами в geotiff

Сообщение ericsson » 14 фев 2018, 00:30

Если вы хотите работать в GlobalMapper, то покажите содержимое метаданных ваших исходных растров (парочки).

И вообще, шаманизм без понимания происходящего продолжается.

Boris
Гуру
Сообщения: 4020
Зарегистрирован: 10 апр 2006, 22:34
Статьи: 3
Проекты: 1
Репутация: 381
Откуда: Париж

Re: Растры с world файлами в geotiff

Сообщение Boris » 14 фев 2018, 03:32

Disabledg писал(а):
13 фев 2018, 16:00
"D:\Converted\!GoodData\13.02.2018_85\155-A.tif" TYPE=AUTO PROJ=EPSG:4326
По моему, тут указана проекция файла WGS84 ? А выше в "хотелках" указана размерность растра 0.2 на 0.2 м.
... я потерял дар речи. Растр в WGS84? Я точно знаю,что так делать не надо. И в Geomedia не зависимо от проекции окна карты такие растры вставлять не стоит. Если вам повезло и окно в WGS84, то выйдет и долго и гадость, если же в окне все же есть проекция, то выйдет просто запредельно долго.
Disabledg писал(а):
13 фев 2018, 16:00
IMPORT FILENAME="D:\Converted\!GoodData\13.02.2018_85\155-A.tfw" TYPE=ARCASCIIGRID EXPORT_RASTER FILENAME="D:\Converted\!GoodData\13.02.2018_85\155-A.tif" TYPE=GEOTIFF GEN_WORLD_FILE=YES GEN_PRJ_FILE=YES GEN_OZI_MAP_FILE=YES BG_TRANSPARENT=YES BAND_BIT_DEPTH=24
Я не силен в Global Mapper, тем более "GLOBAL_MAPPER_SCRIPT", но так на вскидку по аналогии с другими языками:
а) привязка TFW импортирована как ESRI GRID. Не говорю, что это не правильно, но это странно.
б) чем тогда задана привязка растра? Указанием "TYPE=AUTO PROJ=EPSG:4326" ?
в) я долго вглядывался в буквы, но все же, по моему, написано, что входной раст пишется сам в себя. Обычно программы отказываются это делать. Но есть те, что позволяют и тогда процесс становиться бесконечным. Может GLOBAL_MAPPER не такой, но исходный растр, в любом случае, обычно, жалко убивать до получения 100% хорошего результата.
г) для чего MIF импортируется как "ARCASCIIGRID" я не знаю, возможно что оно так и надо, но ни одно из приложений, что я использовал не импортировало части таблиц Mapinfo отдельно (id, map, dat и tab). С учетом того, что "ARCASCIIGRID" по определению текстовый файл, а MAP/DAT/ID по определению бинарные.

Disabledg
Новоприбывший
Сообщения: 7
Зарегистрирован: 01 фев 2018, 10:12
Репутация: 0
Откуда: Россия

Re: Растры с world файлами в geotiff

Сообщение Disabledg » 14 фев 2018, 08:06

Boris писал(а):
13 фев 2018, 23:10
И мне не понятно, что вас не устроило в ECW раз его Geomedia читала нормально.
Вот как раз ECW geomedia и не читает.
ericsson писал(а):
14 фев 2018, 11:53
Мои настойчивые советы предъявить метаданные решено было проигнорировать.
Не очень понимаю при чём они тут.
Boris писал(а):
13 фев 2018, 23:10
А что до Global Mapper то, если вы засунули все в один растр или один виртуальный растр, то что удивительного в том, что он собрался так долго работать.
Дело в том что глобал маппер когда я делаю руками экспорт - делает всё на ура. А когда я делаю экспорт через скрипт - просит ожидать бесконечности.
Boris писал(а):
14 фев 2018, 03:32
Растр в WGS84? Я точно знаю,что так делать не надо.
Да вы всё верно поняли). Все растры в вгс 84 которые за счёт ворлд файлов используются в геомедии. В итоге работа происходит в вгс84 которая совпадает с мск системой. На мой взгляд логичнее если уже есть вгс84 - то и работать в ней а в случае данных которые требуют в мск - менять проекцию. Но... Как есть.
Boris писал(а):
14 фев 2018, 03:32
а) привязка TFW импортирована как ESRI GRID. Не говорю, что это не правильно, но это странно.
б) чем тогда задана привязка растра? Указанием "TYPE=AUTO PROJ=EPSG:4326" ?
Удивительно но так оно работает. На выходе корректный файл привязки с растром.
Boris писал(а):
14 фев 2018, 03:32
в) я долго вглядывался в буквы, но все же, по моему, написано, что входной раст пишется сам в себя.
Очепятка моя (:
Boris писал(а):
14 фев 2018, 03:32
для чего MIF импортируется как "ARCASCIIGRID" я не знаю
По логике map info нужно импортировать как mapinfo я не спорю. Но результат в любом случае тот же. Глобал маппер просит ждать вечность). Пытаюсь делать по аналогии с экспортом когда делаешь его сам.

Если подытожить.
Имеется куча растров ( > 1000 ) в виде мозаек. С файлами привязки .tfw для геомедии и .tab для мапинфо.
Идеальный вариант:
На выходе получить из каждой мозайки:
1 tif растр который будет:
1). Меньше по размеру в 2 раза.
2). Может быть подгружен в GeoMedia, MapInfo, ArcGis без смещения относительно оригинала.

На текущий момент "наши руки не для скуки" (с) дали мне следующие плоды:
1. Я могу сделать используя глобал маппер как раз то что нужно в итоге. Пережав потом выходной файл гдалом - я не теряю в производительности.
2. Я не могу это автоматизировать. А грузить каждую пачку руками - чёкнешься.

Так что на текущий момент моя чудаковатая задача состоит в том что бы написать правильный скрипт для Global Mapper который сделает это всё за меня. Но почему то скрипт который на мой взгляд дублирует окно экспорта - не выполняется корректно и просит как уже было сказано подождать вечность.

UPD
Сам дурак называется. TAB то ссылается на Tif файл. Значит я грузил 2 раза тифы. Отсюда и бесконечность. Сделал конвертации из одних табов - всё идеально сконвертировалось вставло куда надо и работает. Пойду придумаю ещё себе проблем :-D
Последний раз редактировалось Disabledg 14 фев 2018, 13:55, всего редактировалось 2 раза.
я пришёл сюда зарегистрироваться и задавать тупые вопросы. как видишь я уже зарегистрировался.

ericsson
Гуру
Сообщения: 3250
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 706
Ваше звание: Вредитель полей

Re: Растры с world файлами в geotiff

Сообщение ericsson » 14 фев 2018, 11:53

Мои настойчивые советы предъявить метаданные решено было проигнорировать. Ну чтож, ваше дело.

ericsson
Гуру
Сообщения: 3250
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 706
Ваше звание: Вредитель полей

Re: Растры с world файлами в geotiff

Сообщение ericsson » 14 фев 2018, 22:06

Да при том, что ваш вопрос с самого начала был недоформулирован, так как содержал весьма общее описание действий, но ничего не говорил о том, над чем они производятся. Это, в общем, базовое правило для получения эффективной помощи: описать точно, что делали, с чем делали, что должно было получиться, что получилось/не получилось.
Вы вот сейчас решили, что "все работает", а, на самом деле, настройки могут быть верны (в контексте используемых данных) только частично. Но лично для меня тащить из вас то, что нужно вам, а не мне - нет никакой мотивации.

Ответить

Вернуться в «Я новичок!»