Страница 1 из 1

Расширение SEG

Добавлено: 29 май 2014, 12:49
glkhramov
Помогите! Спасите! Неведомо откуда нашел ортофотопланы на нужную территорию. По два файла: растр bmp, второй файл seg. Чем открыть не знаю, а ОЧЕНЬ НАДО. Когда пытался добавить сюда появилась надпись "Расширение seg запрещено администратором

Re: Расширение SEG

Добавлено: 29 май 2014, 14:19
Максим Дубинин
заархивируйте и еще раз приложите

Re: Расширение SEG

Добавлено: 29 май 2014, 14:21
glkhramov
вот

Re: Расширение SEG

Добавлено: 29 май 2014, 15:14
Игорь Белов
В архиве файлы привязки.

P. S. Простите, я сделал в привязке детскую ошибку. Кто скачал, замените на новый выриант.

18:30 MSK

Re: Расширение SEG

Добавлено: 29 май 2014, 18:02
glkhramov
Превосходно!!!...Но как?)) У меня таких файлов куча!

Re: Расширение SEG

Добавлено: 29 май 2014, 19:38
gamm
glkhramov писал(а):Превосходно!!!...Но как?)) У меня таких файлов куча!
координаты углов лежат в формате float (4 байта) со смещением 4 байта от начала файла seg.

9681409.000000
6232936.000000
9685487.000000
6237741.000000

размеры можно получить из заголовка bmp-файла (формат описан), и посчитать привязку для всего списка. В какой-нибудь программке на языке С. Или R.

Re: Расширение SEG

Добавлено: 29 май 2014, 20:30
Игорь Белов
gamm прав, как всегда. Даже если найдётся программа, которая делает такие SEG'и, без программирования вряд ли удастся обойтись. Поэтому попробую дать более развёрнутый ответ.

Посмотрим поближе на файл 4563BG3.SEG:

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

00: 32 2E 30 00 01 BA 13 4B  D0 36 BE 4A EF C9 13 4B
10: 5A 5C BE 4A 2E 42 4D 50  00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00  00 00 03 00
Первые 4 байта — это, видимо, «волшебное слово» "2.0".
Дальше идут четыре числа одинарной точности:

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

9681409 6232936 9685487 6237741
Затем строка ".BMP" и нулевые байты до конца, где ещё какая-то тройка.

Четыре действительных числа похожи на координаты. Предположим, это Xmin, Ymin, Xmax, Ymax, ограничивающие стороны изображения. Для полноценной привязки не хватает размеров растра в пикселах W × H и информации о координатной системе.
Размеры придётся спросить у самого растра. 4563BG3.BMP оказался 3727 × 4392. Координатную систему, к счастью, удалось угадать: подошла СК-42 зона 9.
Остался ещё один вопрос. Неясно, относятся координаты к центрам пикселов или к краям. Впрочем, это мелочь.

Файл привязки для ArcView 4563BG3.BPW

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

1.0941776228 = (Xmax − Xmin) / W
0
0
-1.0940346084 = (Ymin - Ymax) / H
9681409 = Xmin
6237741 = Ymax
Файл привязки для MapInfo 4563BG3.TAB

С ним, по-моему, не должно быть вопросов, откуда что берётся.

Re: Расширение SEG

Добавлено: 29 май 2014, 20:43
glkhramov
эх, был бы я хоть чуточку поумнее.. ничего не смыслю в программировании. нельзя-ли великодушно какое-нибудь готовое решение? :oops:

Re: Расширение SEG

Добавлено: 29 май 2014, 21:45
Максим Дубинин
ErnieBoyd крутой

glkhramov, имхо вы перебарщиваете с добротой здешних экспертов, вам все разложили по полочкам, потрудитесь найти программиста что ли, примерная стоимость его работы - 300р с запасом.

Re: Расширение SEG

Добавлено: 29 май 2014, 22:02
glkhramov
каюсь, грешен

Re: Расширение SEG

Добавлено: 30 май 2014, 05:16
Denis Rykov
Вот пример вычисления координат углов и размера растра на Python:

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

from functools import partial
from struct import unpack
from PIL import Image
unpackf = partial(unpack, 'f')
seg = open('4563BG3.SEG', 'rb')
bmp = Image.open('4563BG3.BMP')
seg.seek(4)
bbox = tuple(unpackf(seg.read(4))[0] for i in range(4))
print bbox, bmp.size
# (9681409.0, 6232936.0, 9685487.0, 6237741.0) (3727, 4392)

Re: Расширение SEG

Добавлено: 30 май 2014, 07:15
Донецков
Далее заменяйте наименование файлов и получите все координаты...

Re: Расширение SEG

Добавлено: 14 дек 2014, 21:08
glkhramov
простое до безумия элегантное решение чешский топол

Re: Расширение SEG

Добавлено: 15 дек 2014, 14:19
Донецков
Только Topol не у всех есть... :)

Re: Расширение SEG

Добавлено: 15 дек 2014, 14:50
trir