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

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

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

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

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

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

Добавлено: 02 фев 2015, 10:04
wowka1319
Так в этом то и дело, что у изображения нет никакой системы координат, потомучто это снимок со спутника.
Вопрос остался.

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

Добавлено: 03 фев 2015, 02:16
Boris
у вас они на столько не регулярные эти пиксели, что за растр с его прямоугольной структурой не сойдут?

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

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

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

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

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

Добавлено: 03 фев 2015, 05:24
Boris
Ну вот теперь ваша задача понятна. А дальше идут детали.
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.

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

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