Как в GDAL внести набор данных lat/lon

Ответить
wowka1319
Участник
Сообщения: 93
Зарегистрирован: 04 дек 2013, 02:14
Репутация: 1

Как в GDAL внести набор данных lat/lon

Сообщение wowka1319 » 02 фев 2015, 07:41

Есть изображение (не приведенное в какую-либо проекцию) где для каждого пикселя известны широта/долгота. Как эти данные внести в GDAL, чтобы потом перепроецировать в нужную проекцию. Подскажите API пожалуйста.
Последний раз редактировалось wowka1319 06 фев 2015, 01:26, всего редактировалось 1 раз.

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

Re: Как в GDAL внести набор данных lat/lon

Сообщение ericsson » 02 фев 2015, 09:16

Если известны для каждого пикселя, то известны и для всех четырех углов. А дальше - по аналогии http://gis.stackexchange.com/questions/ ... gdal-tools (ну только правильный EPSG выбирайте для своей системы координат).

wowka1319
Участник
Сообщения: 93
Зарегистрирован: 04 дек 2013, 02:14
Репутация: 1

Re: Как в GDAL внести набор данных lat/lon

Сообщение wowka1319 » 02 фев 2015, 10:04

Так в этом то и дело, что у изображения нет никакой системы координат, потомучто это снимок со спутника.
Вопрос остался.

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

Re: Как в GDAL внести набор данных lat/lon

Сообщение Boris » 03 фев 2015, 02:16

у вас они на столько не регулярные эти пиксели, что за растр с его прямоугольной структурой не сойдут?

wowka1319
Участник
Сообщения: 93
Зарегистрирован: 04 дек 2013, 02:14
Репутация: 1

Re: Как в GDAL внести набор данных lat/lon

Сообщение wowka1319 » 03 фев 2015, 04:50

Я не понимаю. Что вы предлагаете?
Уточню: у меня растр 2048 X 4500 с разрешением 1км, т.е. он покрывает кусок земной поверхности 2048км на 4500км. Я знаю lat/long каждого пикселя. Как мне занести/скормить эти данные (и растр, и lat/long) библиотеке GDAL, чтобы дальше с ним работать средствами этой библиотеки (спроецировать в UTM и сохранить как GeoTiff)?

Если не знаете, тогда скажите, как скормить уже трансформированный в UTM растр GDAL'у? На руках у меня растр, координаты и данные, что это WGS84/UTM(№зоны) ?
Другими словами: у меня на руках "разобранный" геотиф. Так вот как мне, не копаясь в спеках формата геотиф засунуть эти данные в GDAL?

Заранее спасибо.

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

Re: Как в GDAL внести набор данных lat/lon

Сообщение Boris » 03 фев 2015, 05:24

Ну вот теперь ваша задача понятна. А дальше идут детали.
1) под кусок такого размера необходима проекция отличная от UTM. UTM создан для 6 или 3 градусных зон. За пределами соседней зоны он дает ощутимые искажения.
2) весь кусок соответственно то же имеет ощутимые искажения.
3) разумное решение разрезать его на фрагменты и раз известны координаты каждого пикселя, присвоить небольшим участкам координаты углов. после трансформации в нужную проекцию собрать его для тех участков, что будут иметь совпадение проекций. Разобрать лучше с перехлестом, что бы дыры не полезли.
4) советов на уровне питона и т.п. я вам давать не буду, т.к. не разбираюсь в кишках GDAL, но есть формат, который gdal понимает в консольных утилитах - это Mapinfo TAB, где привязка задается именно точками - соотнесением пикселя к координате. При количестве точек более 3 (или 4), GDAL понимает такой растр, как привязанный с помощью матрицы координат. Может он и еще какую привязку так читает, но я сталкивался в Mapinfo TAB и за это отвечаю. Точек привязки в такой таблице я как то видел около 200 - Mapinfo их спокойно съел. Съест ли GDAL - я не пробовал. На меньшем количестве gdal_warp у меня отработал по пересчету в проекцию UTM. Я бы попробовал так. Тем более, что TAB - текстовый формат и создается за 2 минуты для любого растра руками, если известны соотношения координат.
5) На сколько я знаю GeoTIFF, то стандартно он содержит привязку аналогичную World File, т.е. 6 параметров аффинного преобразования координат растра в координаты проекции. TFW с правильными параметрами его успешно заменит. Если вам "повезло" и у вас "продвинутый" GeoTIFF, который задан как вы писали выше множеством точек, то тут совет будет тем же - запихните их TAB. Если есть Mapinfo под рукой, то он(или оно) в окне привязке покажет вам все внесенные точки и какую погрешность аффинной трансформации они вам дают в зависимости от выбранной проекции (выбирается там же в окне). Не исключено, что подберете ту, что вас устроит и без трансформации, или такую, что сделает трансформацию наименее болезненной для растра.
PS
Я не знаю как заданы ваши координаты растра, но учтите, что Mapinfo берет координаты центра пикселя, а не левый верхний угол, как например ArcGIS. В своих привязках я вынужден был сдвигать расчет координат на полпикселя, когда вычислял привязку от TFW к TAB.

wowka1319
Участник
Сообщения: 93
Зарегистрирован: 04 дек 2013, 02:14
Репутация: 1

Re: Как в GDAL внести набор данных lat/lon

Сообщение wowka1319 » 06 фев 2015, 01:25

wowka1319 писал(а):Есть изображение (не приведенное в какую-либо проекцию) где для каждого пикселя известны широта/долгота. Как эти данные внести в GDAL, чтобы потом перепроецировать в нужную проекцию. Подскажите API пожалуйста.
Ответ: вот API для задания точек привязки: GDALDataset::SetGCPs(...).
wowka1319, если еще есть проблемы - обращайтесь))

Ответить

Вернуться в «GDAL/OGR»

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

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