SASGIS - SAS.Планета
View Issue Details
0000072SAS.Планета[All Projects] Хотелкаpublic25-08-2010 05:5412-06-2016 11:28
Propretor 
zed 
noneminoralways
resolvedfixed 
WindowsXPSP3
100707 
160707160707 
0000072: Склейка в формат GeoTiff
Очень хотелось бы иметь возможность выгрузки склеенных тайлов в формате GeoTIFF (сжатом без потерь) с привязкой внутри, естественно.
Очень напрягает промежуточная обработка больших объемов привязанных карт в GlobalMapper для получения GeoTIFF.
http://download.osgeo.org/geotiff/libgeotiff/
DLL - внутри geotiff_win32_devkit.zip
GeoTIFF, склейка, экспорт
has duplicate 0000441closed vdemidov Экспорт карт в GeoTIFF 
has duplicate 0001706closed vdemidov Склейка в формат GeoTiff 
related to 0000041closed zed Хочется иметь возможность склеивать в формат PNG 
Issue History
25-08-2010 05:54PropretorNew Issue
25-08-2010 05:54PropretorStatusnew => assigned
25-08-2010 05:54PropretorAssigned To => Garl
25-08-2010 06:35vdemidovCategoryДоработка файла карты (ZMP) => Хотелка
25-08-2010 06:35vdemidovAssigned ToGarl =>
25-08-2010 06:35vdemidovStatusassigned => acknowledged
25-08-2010 06:35vdemidovTarget Version => 40xxxx
26-08-2010 07:00PropretorNote Added: 0000139
26-08-2010 07:05vdemidovNote Added: 0000140
18-10-2010 05:16vdemidovRelationship addedrelated to 0000041
07-11-2010 19:45gpsMaxTag Attached: склейка
10-03-2011 19:20gpsMaxTag Attached: экспорт
09-04-2011 15:08gpsMaxTag Attached: GeoTIFF
09-04-2011 15:09gpsMaxRelationship addedhas duplicate 0000441
11-04-2011 07:11vdemidovStatusacknowledged => confirmed
06-06-2011 21:48gpsMaxPriorityhigh => none
06-06-2011 21:48gpsMaxSeveritymajor => minor
22-03-2012 08:12gpsMaxRelationship addedrelated to 0001201
22-03-2012 08:30vdemidovRelationship deletedrelated to 0001201
25-11-2012 11:41vdemidovRelationship addedhas duplicate 0001706
28-09-2013 06:47PropretorNote Added: 0012982
28-09-2013 07:57vasketsovNote Added: 0012983
28-09-2013 08:04vasketsovAdditional Information Updatedbug_revision_view_page.php?rev_id=5752#r5752
28-09-2013 08:17PropretorNote Added: 0012984
28-09-2013 11:37vasketsovNote Added: 0012985
28-09-2013 17:05zedNote Added: 0012986
28-09-2013 17:25zedNote Edited: 0012986bug_revision_view_page.php?bugnote_id=12986#r5754
28-09-2013 18:36PropretorNote Added: 0012987
28-09-2013 19:07vasketsovNote Added: 0012988
08-10-2015 13:03vdemidovSummaryПросьба создания выгрузки в формате GeoTIFF (сжатом без потерь) => Склейка в формат GeoTiff
13-10-2015 08:25vdemidovTarget Version40xxxx => 30xxxx.Vip
06-06-2016 13:18zedAssigned To => zed
06-06-2016 13:18zedStatusconfirmed => assigned
06-06-2016 13:19zedTarget Version30xxxx.Vip => 191221
08-06-2016 18:21zedNote Added: 0017314
08-06-2016 18:21zedStatusassigned => feedback
09-06-2016 06:05PropretorNote Added: 0017321
09-06-2016 06:05PropretorStatusfeedback => assigned
10-06-2016 08:34VMatveevNote Added: 0017327
10-06-2016 08:37vdemidovTarget Version191221 => 160707
10-06-2016 17:13zedNote Added: 0017332
11-06-2016 17:56vdemidovStatusassigned => feedback
11-06-2016 21:00VMatveevNote Added: 0017336
11-06-2016 21:17vdemidovStatusfeedback => resolved
11-06-2016 21:17vdemidovFixed in Version => 160707
11-06-2016 21:17vdemidovResolutionopen => fixed
11-06-2016 21:19vdemidovNote Added: 0017337
11-06-2016 21:21zedNote Added: 0017338
12-06-2016 07:23vdemidovNote Added: 0017340
12-06-2016 10:08zedNote Added: 0017341
12-06-2016 10:16zedNote Edited: 0017341bug_revision_view_page.php?bugnote_id=17341#r6954
12-06-2016 11:28vdemidovNote Added: 0017342

Notes
(0000139)
Propretor   
26-08-2010 07:00   
Если я правильно понял, это будет сделано? Если да, то скоро ли?
(0000140)
vdemidov   
26-08-2010 07:05   
Смотрите страничку RoadMap http://sasgis.org/mantis/roadmap_page.php
(0012982)
Propretor   
28-09-2013 06:47   
Уважаемые разработчики!
Прошло более 3-х лет. Нельзя ли ускорить процесс выпуска версии с сохранением результата в GeoTIFF?
Очень неудобно сохранять результат в промежуточный файл в формате ECW, который сохраняется со сжатием с потерей качества, то есть не lossless.
(0012983)
vasketsov   
28-09-2013 07:57   
Приаттачьте что ли примеры разных результирующих тайлов (область выделения = 1 тайл) для разных проекций, чтобы понять, что надо сделать и какие тэги надо заполнять как в каком случае. Ответ "сделать как через ECW и GlobalMapper" очевидно не прокатит. Может кто и заинтересуется.
(0012984)
Propretor   
28-09-2013 08:17   
Я не понял вопроса? GeoTIFF - это открытый стандарт, документированный, и вот как раз в него и нужно сохранять данные, а не только в ECW, в котором также привязка сохраняется. Что естественно.
(0012985)
vasketsov   
28-09-2013 11:37   
>Я не понял вопроса?
Ничего страшного в этом нет. Признание - первый шаг. Попробуйте ещё раз прочитать. Какое из слов в сообщении Вам было непонятно?

Нужен референсный результат, или какой Вы считаете референсным. Чтобы потом не было плача, что какой-то тэг не заполнен, или проекция не та (одну и ту же проекцию можно задать разными способами). Скажем, для гугла и для яндекса - наверное будет достаточно.
(0012986)
zed   
28-09-2013 17:05   
(edited on: 28-09-2013 17:25)
>ECW, который сохраняется со сжатием с потерей качества, то есть не lossless
На заметку: можете сохранять в jpeg2000 с качеством 100% - будет именно lossless.

По поводу TIFF: какое сжатие предлагается сделать по-молчанию? LZW? Формат tiff, на самом деле имеет ограничения на размер (4Gb), в отличии от того же ecw или jpeg2000. И если хотелка про сжатие без потерь, то вы уверены, что этот формат окажется удобнее того же png? Я имею ввиду, какое максимальное разрешение картинки может в итоге получиться в сжатом без потерь tiff, и сильно ли оно отличается от 65k*65k, что доступно в png?

Да, tiff вообще навороченный формат, поэтому vasketsov и просит пример готового файла, который вас полностью устраивает. Там, к примеру можно писать построчно (stripped) или тайлами (tiled), может использоваться несколько цветовых пространств и качество цвета и т.д. Понятно, что в SAS нам все эти плюшки особо не нужны - достаточно один раз определиться с какими настройками проще/лучше делать, чтобы устраивало в большинстве случаев и открывалось в той программе, для которой вы готовите эти тифы.

(0012987)
Propretor   
28-09-2013 18:36   
vasketsov
"Ничего страшного в этом нет. Признание - первый шаг. Попробуйте ещё раз прочитать. Какое из слов в сообщении Вам было непонятно?","Чтобы потом не было плача" - если хамство и высокомерие есть плата за призрачное исполнение функционала, делающего программу полноценной, то тогда я выхожу из числа лиц, дающих советы по улучшению программы.

zed
У меня нет желания обсуждать функционал в присутствии vasketsov. Я не привык, чтобы на корректное вежливое обращение мне так отвечали без последствий. Но здесь форум и словесная перепалка с одним из хозяев бесмысслена...
(0012988)
vasketsov   
28-09-2013 19:07   
>Чтобы потом не было плача
Уважаемый, тут никто ничего не начнёт делать, покуда от вас или кого другого не будет однозначного и внятного желаемого результата. Пока что хотелка сформулирована чуть менее расплывчато, чем "сделайте мне хорошо". И потом 146% будет "поправьте тут, а лучше вот так, а можно чтобы,..."

>если хамство и высокомерие
Вы уверены, что правильно понимаете значение этих слов?

>делающего программу полноценной
Вы уверены, что после прикручивании LocationAPI программа осталась неполноценной? )))) Как вы иногда удивляете, нервные, делаешь-делаешь, а вам всё неполноценно, носители тайных знаний о полноценности.....

>выхожу из числа лиц, дающих советы по улучшению программы
Желаете тему закрыть?

>нет желания обсуждать функционал в присутствии vasketsov
Если это будет делать zed - Вы можете попробовать обратиться к нему в личку. Если нет - ищите кто будет делать, и обсуждайте с ним.

>не привык, чтобы на корректное вежливое обращение
А я например привык, чтобы время того, кого кто-то о чём-то просит, ценилось БОЛЬШЕ чем собственное, иначе это не просьба, а приказ. И если что-то просят для того, чтобы что-то сделать из запрощенного, надо хотя бы минимально попробовать понять, а не задавать странные вопросы, правильно ли понят вопрос. Где Вы вообще увидели вопрос в моём сообщении?

>словесная перепалка
Попробуйте приаттачить запрошенное, лишних слов и перепаляться как раз никто не просил. Вы можете это сделать, или нет? Или Вам и со второго раза что-то непонятно в написанном? Или Вы надеетесь, что кто-то сделать это без чёткого примера ожидаемого результата?

>с одним из хозяев
Вы неправы.
(0017314)
zed   
08-06-2016 18:21   
Сделал склейку в GeoTiff:

- поддерживает сжатие LZW, ZIP (Deflate), JPEG и Без сжатия;
- поддерживает форматы Tiff и BigTiff. В режиме Auto пытается спрогнозировать итоговый размер файла и если он превышает 4 Гб, то создаёт BigTiff, иначе создаётся обычный Tiff.

Максимальная ширина картинки при склейке ограничена в 1 миллион пикселей. Высота практически не ограничена. Ограничение по ширине связано с потреблением памяти в SAS для подготовки строк пикселей для записи в Tiff.

На больших размерах не тестировал, на малых - всё ОК. Формат BigTiff тестировал на GlobalMapper 16.

Как ночнушка выйдет, жду отзывов по результатам тестов.
(0017321)
Propretor   
09-06-2016 06:05   
zed
Спасибо, что не забыли мою просьбу. Туристы, пользующие навигаторы DeLorme будут очень благодарны. С удовольствием испытаю, когда будет возможно проверить в деле.
(0017327)
VMatveev   
10-06-2016 08:34   
Потестил склейку в последней ночнушке — в обычном TIFF больше 2 Гб не пишет. Старый известный баг в tifflib, уже всем до смерти надоевший. :( Если принудительно выбрать BigTIFF без сжатия, то склейка обрывается на 3.99 Гб Клеил растр 131072х65536 пикселей
SASPlanet.Debug.exe молчит как рыба, в .elf ничего не пишет.
(0017332)
zed   
10-06-2016 17:13   
Пофиксил, тестируйте следующую ночнушку.
(0017336)
VMatveev   
11-06-2016 21:00   
Вот теперь в Tiff клеит отлично. Тестировал BigTiff, без сжатия и с LZW-сжатием, растр 131072х65536 (весь мир в z10), проекция lat/lon, без сжатия получился файл объемом 24 Гб. Склейка в обычный Tiff тоже работает корректно, вплоть до лимита в 4 Гб. Погонял получившиеся растры в GlobalMapper 15 - всё нормально, проблем с привязкой и дефектов склеивания не обнаружил. Спасибо.
(0017337)
vdemidov   
11-06-2016 21:19   
Кстати, я кажется догадываюсь почему оно глючило. Но склеивать 4 гига для проверки мне лень, да и возможности сейчас нету.
(0017338)
zed   
11-06-2016 21:21   
А просто озвучить решение слабо?
(0017340)
vdemidov   
12-06-2016 07:23   
Насколько я помню, seek у стрима для Integer и Int64 , а у тебя параметр UInt64. И оно судя по всему конвертит его в простой инт, а не в Int64. Нужно попробовать явно конвертировать в Int64 при вызове.
(0017341)
zed   
12-06-2016 10:08   
(edited on: 12-06-2016 10:16)
Нет, не помогает. С конвертированием всё в порядке:

libtiff.pas.474: Result := TStream(Fd).Seek(Int64(Off), MoveMethod);
00448EB8 668B4DF6 mov cx,[ebp-$0a]
00448EBC 8B550C mov edx,[ebp+$0c]
00448EBF 8B4508 mov eax,[ebp+$08]
00448EC2 8B18 mov ebx,[eax]
00448EC4 FF5314 call dword ptr [ebx+$14]
00448EC7 99 cdq
00448EC8 8945F8 mov [ebp-$08],eax
00448ECB 8955FC mov [ebp-$04],edx

libtiff.pas.474: Result := TStream(Fd).Seek(Off, MoveMethod);
00448EB8 668B4DF6 mov cx,[ebp-$0a]
00448EBC 8B550C mov edx,[ebp+$0c]
00448EBF 8B4508 mov eax,[ebp+$08]
00448EC2 8B18 mov ebx,[eax]
00448EC4 FF5314 call dword ptr [ebx+$14]
00448EC7 99 cdq
00448EC8 8945F8 mov [ebp-$08],eax
00448ECB 8955FC mov [ebp-$04],edx


(0017342)
vdemidov   
12-06-2016 11:28   
Значит не угадал. Но больше подозрительных мест я там не вижу. Разве что уже в самой либе.