SASGIS - SAS.Планета
View Issue Details
0002581SAS.Планета[All Projects] Багpublic16-12-2014 19:1110-06-2016 09:45
xcage 
zed 
lowmajoralways
resolvedfixed 
WindowsWindows Pro 8.1х64
141212 
160707160707 
0002581: выворачивает склеенные растры в формате jpeg2000
При склейке снимка "Bing Maps - спутник" в формате jpeg2000 и последующем открытии в ArcMap 10.1, растр непонятным образом выворачивает.
Пробовал менять проекцию при склеивании снимка - не помогает.

Привязка слетает только с jpeg2000 и не со всеми сервисами, например "ТопоКарта (маршруты.ру)" в jpeg2000 садится нормально..

На другой машине с Windows 7 x64, приходит то же самое..
ECW, глюк в библиотеке
jpg 2.jpg (390,057) 16-12-2014 19:11
https://bugtracker.sasgis.org/file_download.php?file_id=1806&type=bug
png GM15_JP2_perepodvypodvert.PNG (290,216) 02-06-2016 13:17
https://bugtracker.sasgis.org/file_download.php?file_id=2067&type=bug
png GM15_JP2problem.PNG (694,548) 02-06-2016 18:18
https://bugtracker.sasgis.org/file_download.php?file_id=2068&type=bug
Issue History
16-12-2014 19:11xcageNew Issue
16-12-2014 19:11xcageFile Added: 2.jpg
17-12-2014 09:22vdemidovNote Added: 0015051
17-12-2014 09:22vdemidovStatusnew => feedback
03-08-2015 08:16vdemidovPriorityhigh => low
02-06-2016 13:17VMatveevFile Added: GM15_JP2_perepodvypodvert.PNG
02-06-2016 13:21VMatveevNote Added: 0017288
02-06-2016 13:48zedNote Added: 0017289
02-06-2016 18:17VMatveevNote Added: 0017295
02-06-2016 18:18VMatveevFile Added: GM15_JP2problem.PNG
02-06-2016 19:54vdemidovNote Added: 0017296
02-06-2016 21:54zedNote Added: 0017297
02-06-2016 21:57zedTag Attached: ECW
02-06-2016 21:57zedTag Attached: глюк в библиотеке
02-06-2016 21:58zedNote Added: 0017298
02-06-2016 21:58zedAssigned To => zed
02-06-2016 21:58zedStatusfeedback => confirmed
02-06-2016 21:59zedTarget Version => 160606
02-06-2016 21:59zedAssigned Tozed =>
03-06-2016 07:59zedNote Added: 0017302
03-06-2016 08:58vdemidovNote Added: 0017303
03-06-2016 09:17zedNote Added: 0017304
03-06-2016 11:01vdemidovNote Added: 0017305
03-06-2016 11:01vdemidovTarget Version160606 => 29xxxx
06-06-2016 18:58zedNote Added: 0017311
06-06-2016 18:58zedAssigned To => zed
06-06-2016 18:58zedStatusconfirmed => assigned
06-06-2016 19:24zedNote Added: 0017312
06-06-2016 19:25zedNote Edited: 0017312bug_revision_view_page.php?bugnote_id=17312#r6945
08-06-2016 09:51zedNote Added: 0017313
08-06-2016 09:51zedStatusassigned => feedback
08-06-2016 09:51zedTarget Version29xxxx => 191221
08-06-2016 18:31VMatveevNote Added: 0017315
08-06-2016 18:34zedNote Added: 0017316
08-06-2016 18:38zedNote Added: 0017317
08-06-2016 18:57VMatveevNote Added: 0017318
08-06-2016 19:09zedNote Added: 0017319
08-06-2016 19:10zedNote Edited: 0017319bug_revision_view_page.php?bugnote_id=17319#r6947
08-06-2016 21:52zedNote Added: 0017320
10-06-2016 08:37vdemidovTarget Version191221 => 160707
10-06-2016 09:05VMatveevNote Added: 0017329
10-06-2016 09:45zedStatusfeedback => resolved
10-06-2016 09:45zedFixed in Version => 160707
10-06-2016 09:45zedResolutionopen => fixed

Notes
(0015051)
vdemidov   
17-12-2014 09:22   
Для начала советую выяснить у людей знающих хоть что-то про ArcMap чем же ему конкретные файлы не нравятся и сообщить сюда результаты. Советую заняться этим если вас интересует результат, так как я ArcMap никогда не видел и ставить что бы разобраться не собираюсь.
(0017288)
VMatveev   
02-06-2016 13:21   
О, меня тоже замучила эта проблема с некорректной привязкой JP2-файлов, склеенных САС-ом. Global Mapper тоже открывает их с переподвыподвёртом каким-то... :(
Скриншот прикрепил.
(0017289)
zed   
02-06-2016 13:48   
В чём заключается некорректность привязки? Проблема была всегда или появилась в какой-то момент (какой)?
(0017295)
VMatveev   
02-06-2016 18:17   
В чём заключается некорректность привязки? Проблема была всегда или появилась в какой-то момент (какой)?

В том, что JPEG2000 из САС-а криво ложатся на карту мира. Остальные форматы,типа ECW, отображаются нормально. Думаю, дело в некорректном заполнении метаданных, в теле JP2-файла, поскольку сопутствующие файлы привязки, типа*.map или *.w совершенно корректны. И эта проблема была всегда и во всех версиях САС, которыми я пользовался. Откопал версию 101206 — так JP2-файлы из неё пусть и не "гнутся" причудливым образом, но поворачивается на некоторый угол. Прикрепляю ещё скрин, со всем этим безобразием.
Повторюсь: с другими форматами таких проблем нет.
(0017296)
vdemidov   
02-06-2016 19:54   
>Остальные форматы,типа ECW, отображаются нормально
Очень интересно. В САС экспорт в JPEG2000 сделан при помощи библиотек экспорта в ECW. Там, насколько я помню, только расширение создаваемого файла отличается, а все остальное абсолютно одинаково.
(0017297)
zed   
02-06-2016 21:54   
GlobalMapper 9 при открытии файла пишет, что ему не удаётся распознать датум и проекцию и просит указать руками, после чего отображает картинку абсолютно нормально. А вот новые версии (тестил на 14) распознают проекцию автоматом, но картинка кривая.

Заметил, что GM9 использует ECW версии 3.3.0.188, в составе GM14 лежит аж 2 версии: 3.1.0.350 и 4.2.1.128.

А вот в SAS какая-то чертовщина:
- NCScnet и NCSUtil версии 1.0.0.1
- NCSEcw версии 3.1.0.350
- NCSEcwC без версии, но в хидерах сгенерированного jp2 записано, что версия компрессора 3.3.0.116

Заменил в SAS все ECW либы на версию 3.3.0.188 из GM9 и баг пропал!

Вот что пишется в хидеры сейчас:

<gml:coordinates>3828302.7344421418000,5753917.3905314533000</gml:coordinates>
<gml:offsetVector gml:id="p1">-0.9411437541010,-0.7353020875558,0.0000000000000</gml:offsetVector>
<gml:offsetVector gml:id="p2">0.7353020875557,-0.9411437541011,0.0000000000000</gml:offsetVector>

fOriginX: 3827488.645095
fOriginY: 5753281.354226
fCellIncrementX: 1.194329
fCellIncrementY: -1.194329
fCWRotationDegrees: -52.000000
szProjection: EPSG:3785
szDatum: EPSG:6055


А вот, что стало после замены либ ECW:

<gml:coordinates>3827488.6450948445000,5754314.4484361345000</gml:coordinates>
<gml:offsetVector gml:id="p1">0.0000000000000,-1.1943285669561,0.0000000000000</gml:offsetVector>
<gml:offsetVector gml:id="p2">1.1943285669560,0.0000000000000,0.0000000000000</gml:offsetVector>

fOriginX: 3827488.645095
fOriginY: 5753281.354226
fCellIncrementX: 1.194329
fCellIncrementY: -1.194329
fCWRotationDegrees: 0.000000
szProjection: EPSG:3785
szDatum: EPSG:6055
(0017298)
zed   
02-06-2016 21:58   
Заменить либы до релиза 160606 или после?
(0017302)
zed   
03-06-2016 07:59   
А нет, заменять нельзя. У нас лежат патченные либы ECW, без ограничений на размер растра, а если взять от GM9, то оно не даёт склеить большие растры (вываливается ошибка 54).
(0017303)
vdemidov   
03-06-2016 08:58   
Ну, тогда откладываем это в долгий ящик. Если вдруг найдутся патченные длл более поздней версии, тогда и поменяем.
(0017304)
zed   
03-06-2016 09:17   
Как вариант, после создания растра можно либо вырезать из него всю геопривязку, либо исправить её (там GeoTiff + дублирование в xml).
(0017305)
vdemidov   
03-06-2016 11:01   
В любом случае это не на ближайший релиз.
(0017311)
zed   
06-06-2016 18:58   
Нашёл сорцы ecw, в них нашёл баг, пофиксил его и пересобрал либы. Баг жил в NCSEcwC.dll (была упущена инициализация поля структуры).

Можно было ограничиться пересборкой только этой либы, но под рукой не было 2003-й студии, поэтому пересобрал всё в 2008-й. Если багов не будет (с ECW и JPEG2000), то ОК, в противном случае могу вернуть старые либы, пересобрав только NCSEcwC.

Тестируйте следующую ночнушку.
(0017312)
zed   
06-06-2016 19:24   
(edited on: 06-06-2016 19:25)
А вообще, чё ждать? Вот тут пересобранные либы: https://yadi.sk/d/e8uCYP3QsJP6U - распаковать в папку с SAS и можно тестировать.

(0017313)
zed   
08-06-2016 09:51   
Жду хоть какого-нибудь отзыва. На малых размерах я протестировал, проверьте какое поведение будет при склейке огромных растров?
(0017315)
VMatveev   
08-06-2016 18:31   
Склеил в JP2 растр размерами 131072х131072, весь мир в z10, в меркаторской проекции (EPSG:3875) — он ложится нормально, разрешение указано корректно.
А вот с проекцией широта-долгота (EPSG:4326) хоть и склеивает в JP2 любых размеров, но привязка опять неверная. Скорее всего неправильно указано разрешение: оно неправдоподобно велико, и одинаковое вне зависимости от масштаба склейки.
ECW "садится" правильно в любой проекции, но разрешение тоже неверное.

Версия программы 131111.7624, с обновленными либами.

Вот хидер JP2 склеенного на z6, размеры растра 8192х4096:

<gml:coordinates>-180.0000000000000,270.0000000000000</gml:coordinates>
<gml:offsetVector gml:id="p1">0.0000000000000,-0.0439453125000,0.0000000000000</gml:offsetVector>
<gml:offsetVector gml:id="p2">0.0439453125000,0.0000000000000,0.0000000000000</gml:offsetVector>


fOriginX: -180.000000
fOriginY: 90.000000
fCellIncrementX: 0.043945
fCellIncrementY: -0.043945
fCWRotationDegrees: 0.000000
szProjection: EPSG:4326
szDatum: EPSG:6326
(0017316)
zed   
08-06-2016 18:34   
> Версия программы 131111
Обновитесь.

И не понятно, если "садится" правильно, то в чём проблема?

Что записывается в world файл, если включить его создание? Там, по-идее, должно быть то же самое.
(0017317)
zed   
08-06-2016 18:38   
И ещё: в географической проекции юниты в градусах, а у меркатора в метрах. Естественно, будет отличие в порядке величин.
(0017318)
VMatveev   
08-06-2016 18:57   
И не понятно, если "садится" правильно, то в чём проблема?
В lat/lon правильно "садится" только ECW.

А JP2, склеенный в lat/lon, "улетает" куда-то в точку с нулевыми координатами.


Что записывается в world файл, если включить его создание? Там, по-идее, должно быть то же самое.

В world-файле прописывается всё то же самое, да.
(0017319)
zed   
08-06-2016 19:09   
(edited on: 08-06-2016 19:10)
Да, какая-то фигня. При открытии в GlobalMapper jp2 в lat/lon он пишет, что там юниты метры. Похоже на ещё один баг в либах ECW, теперь с привязкой при записи GeoTiff. Я на такое, кстати, только что при экспорте в Tiff наступил. Тоже поначалу метры записал.

Вот что там в GeoTiff (который в хидерах jp2) залетает:

Exif Byte Order : Little-endian (Intel, II)
Photometric Interpretation : BlackIsZero
Strip Offsets : 929
Rows Per Strip : 1
Strip Byte Counts : 1
X Resolution : 1
Y Resolution : 1
Resolution Unit : None
Pixel Scale : 1.07288360595703e-005 1.07288360595703e-005 0
Model Tie Point : 0 0 0 34.3829154968262 45.8308303356171 0
Geo Tiff Version : 1.1.0
GT Model Type : Projected
GT Raster Type : Pixel Is Area
Warning : Missing string data for GTCitation
Projected CS Type : Unknown (4326)
Proj Linear Units : Linear Meter
Image Size : 1621x603

тут строчка "Proj Linear Units : Linear Meter" совсем не к месту.

Придётся опять либу пересобирать :(

(0017320)
zed   
08-06-2016 21:52   
Пофиксил. Обошлось изменениями в SAS, так что тестируйте ночнушку.
(0017329)
VMatveev   
10-06-2016 09:05   
Потестил ночнушку. Теперь JP2, склеенный в lat/lon, открывается и "садится" в GM совершенно корректно. Крупные растры создаются вроде нормально.
Спасибо!