создание GDAL geolocation array руками

Ответить
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9049
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 718
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

создание GDAL geolocation array руками

Сообщение Максим Дубинин » 27 фев 2016, 16:14

Кто-нибудь сталкивался с созданием Geolocation array руками из регулярной кучи GCPs? Чтобы потом можно было сделать:

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

gdalwarp -geoloc
Обычно geoloc идет с данными, но в моём случае нет.

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

gamm
Гуру
Сообщения: 3039
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 712
Ваше звание: программист
Откуда: Казань

Re: создание GDAL geolocation array руками

Сообщение gamm » 27 фев 2016, 16:48

Максим Дубинин писал(а):Предупреждая вопрос, да, можно прописать GCP в растр, но -tps потом не использовать так как точек для него слишком много, а полиномы плохо подходят для таких преобразований, проверено.
мы делали подобное, используя MBA (R/SAGA, у нас - самопал), для которых миллионы точек на проблема. Нужно только задать начальную сетку погуще, если точки достаточно равномерно распределены по территории. Трансформировали растры высокого разрешения.

alexandr cherepanov
Гуру
Сообщения: 533
Зарегистрирован: 30 ноя 2006, 13:31
Статьи: 3
Проекты: 1
Репутация: 116
Откуда: Moscow

Re: создание GDAL geolocation array руками

Сообщение alexandr cherepanov » 27 фев 2016, 16:49

Может сделать растры для X,Y и засунуть их в VRT в блок GEOLOCATION?

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

<Metadata/>
<Metadata domain="GEOLOCATION">
<MDI key="X_DATASET">C:\X.vrt/MDI>
<MDI key="X_BAND">1</MDI>
<MDI key="Y_DATASET">C:\Y.vrt</MDI>
<MDI key="Y_BAND">1</MDI>
<MDI key="PIXEL_OFFSET">0</MDI>
<MDI key="PIXEL_STEP">8</MDI>
<MDI key="LINE_OFFSET">0</MDI>
<MDI key="LINE_STEP">8</MDI>
</Metadata>

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9049
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 718
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: создание GDAL geolocation array руками

Сообщение Максим Дубинин » 27 фев 2016, 18:35

alexandr cherepanov писал(а):сделать растры для X,Y и засунуть их в VRT в блок GEOLOCATION
да, это я читал, пока не придумал как растры такие создавать, через ASCII что ли
пристегивайтесь, турбулентность прямо по курсу

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Статьи: 3
Проекты: 5/1
Репутация: 787
Ваше звание: званий не имею
Откуда: Москва

Re: создание GDAL geolocation array руками

Сообщение Александр Мурый » 27 фев 2016, 18:57

Максим Дубинин писал(а): да, это я читал, пока не придумал как растры такие создавать, через ASCII что ли
Было бы интересно увидеть конкретный пример данных. Может быть, не только через ASCII можно, хотя это самый логичный способ.
Редактор материалов, модератор форума

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9049
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 718
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: создание GDAL geolocation array руками

Сообщение Максим Дубинин » 27 фев 2016, 19:13

разобрался, схема простая, на входе просто изображение и NxM точек GCP, так как использовать -tps или -order для привязки изображения в этом конкретном случае - отстойный подход, используем -geoloc. Делаем так:

1. извлекаем lat и lon компоненту в отдельные lat.asc и lon.asc, простой строкой
2. добавляем заголовок, главное - ncols,nrows, остальные значения могут быть от балды
3. формируем VRT для исходного растра (делать VRT для lat,lon не надо, напрямую их пользуем)

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

<VRTDataset rasterXSize="1568" rasterYSize="4280">
  <metadata domain="GEOLOCATION">  
     <mdi key="X_DATASET">c:\temp\lon.asc</mdi>  
     <mdi key="X_BAND">1</mdi>  
     <mdi key="Y_DATASET">c:\temp\lat.asc</mdi>  
     <mdi key="Y_BAND">1</mdi>  
     <mdi key="PIXEL_OFFSET">0</mdi>  
     <mdi key="LINE_OFFSET">0</mdi>  
     <mdi key="PIXEL_STEP">10</mdi>  
     <mdi key="LINE_STEP">10</mdi>  
   </metadata> 
  <VRTRasterBand dataType="Byte" band="1">
4. gdalwarp -geoloc -co COMPRESS=NONE -dstalpha test.vrt result2.tif

Вуаля.

Изображение
пристегивайтесь, турбулентность прямо по курсу

Ответить

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

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

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