Как в GDAL внести набор данных lat/lon
-
- Участник
- Сообщения: 93
- Зарегистрирован: 04 дек 2013, 02:14
- Репутация: 1
Как в GDAL внести набор данных lat/lon
Есть изображение (не приведенное в какую-либо проекцию) где для каждого пикселя известны широта/долгота. Как эти данные внести в GDAL, чтобы потом перепроецировать в нужную проекцию. Подскажите API пожалуйста.
Последний раз редактировалось wowka1319 06 фев 2015, 01:26, всего редактировалось 1 раз.
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Как в GDAL внести набор данных lat/lon
Если известны для каждого пикселя, то известны и для всех четырех углов. А дальше - по аналогии http://gis.stackexchange.com/questions/ ... gdal-tools (ну только правильный EPSG выбирайте для своей системы координат).
-
- Участник
- Сообщения: 93
- Зарегистрирован: 04 дек 2013, 02:14
- Репутация: 1
Re: Как в GDAL внести набор данных lat/lon
Так в этом то и дело, что у изображения нет никакой системы координат, потомучто это снимок со спутника.
Вопрос остался.
Вопрос остался.
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Как в GDAL внести набор данных lat/lon
у вас они на столько не регулярные эти пиксели, что за растр с его прямоугольной структурой не сойдут?
-
- Участник
- Сообщения: 93
- Зарегистрирован: 04 дек 2013, 02:14
- Репутация: 1
Re: Как в GDAL внести набор данных lat/lon
Я не понимаю. Что вы предлагаете?
Уточню: у меня растр 2048 X 4500 с разрешением 1км, т.е. он покрывает кусок земной поверхности 2048км на 4500км. Я знаю lat/long каждого пикселя. Как мне занести/скормить эти данные (и растр, и lat/long) библиотеке GDAL, чтобы дальше с ним работать средствами этой библиотеки (спроецировать в UTM и сохранить как GeoTiff)?
Если не знаете, тогда скажите, как скормить уже трансформированный в UTM растр GDAL'у? На руках у меня растр, координаты и данные, что это WGS84/UTM(№зоны) ?
Другими словами: у меня на руках "разобранный" геотиф. Так вот как мне, не копаясь в спеках формата геотиф засунуть эти данные в GDAL?
Заранее спасибо.
Уточню: у меня растр 2048 X 4500 с разрешением 1км, т.е. он покрывает кусок земной поверхности 2048км на 4500км. Я знаю lat/long каждого пикселя. Как мне занести/скормить эти данные (и растр, и lat/long) библиотеке GDAL, чтобы дальше с ним работать средствами этой библиотеки (спроецировать в UTM и сохранить как GeoTiff)?
Если не знаете, тогда скажите, как скормить уже трансформированный в UTM растр GDAL'у? На руках у меня растр, координаты и данные, что это WGS84/UTM(№зоны) ?
Другими словами: у меня на руках "разобранный" геотиф. Так вот как мне, не копаясь в спеках формата геотиф засунуть эти данные в GDAL?
Заранее спасибо.
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Как в GDAL внести набор данных lat/lon
Ну вот теперь ваша задача понятна. А дальше идут детали.
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.
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.
-
- Участник
- Сообщения: 93
- Зарегистрирован: 04 дек 2013, 02:14
- Репутация: 1
Re: Как в GDAL внести набор данных lat/lon
Ответ: вот API для задания точек привязки: GDALDataset::SetGCPs(...).wowka1319 писал(а):Есть изображение (не приведенное в какую-либо проекцию) где для каждого пикселя известны широта/долгота. Как эти данные внести в GDAL, чтобы потом перепроецировать в нужную проекцию. Подскажите API пожалуйста.
wowka1319, если еще есть проблемы - обращайтесь))
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 21 гость