gdal_rasterize помогите понять

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

gdal_rasterize помогите понять

Сообщение Boris » 30 авг 2011, 04:16

Я пытаюсь понять, что написано в документации к gdal_rasterize и добиться того, что мне хотелось бы, но получается у меня плохо. Текст в начале:
This program burns vector geometries (points, lines and polygons) into the raster band(s) of a raster image.
Vectors are read from OGR supported vector formats.
Note that the vector data must in the same coordinate system as the raster data; on the fly reprojection is not
provided.
Since GDAL 1.8.0, the target GDAL file can be created by gdal_rasterize. One of -tr or -ts option must be
used in that case.
Я интерпретирую как
а) раз растр и вектор должны быть в одной СК, то как-то можно совместить УЖЕ имеющийся растр с уже имеющимся вектором?
б) с версии 1.8.0 можно по вектору создать НОВЫЙ растр. Значит в предыдущих версиях можно было использовать имеющийся растр в качестве шаблона ?
---
Что я пытаюсь добиться от этой программы:
Есть геокодированный растр (далее А). Я хочу в него "впечатать" значения из вектора.
В простейшем случае - взять пустой растр (только NoData) размера и привязки равный исходному растру А, и на основе векторных данных создать маску для растра А.
---
Я мог бы прогнать растр через GDALWarp с использованием векторного шаблона, но GDALWarp портит исходный файл, т.к. пересчитывает его. А я не имею достаточной статистики, что бы сказать - "он (GDALWarp ) портит только файл привязки (не значительно), что в общем не критично, НО не портит размерность (обратное - уже критично)".

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

Re: gdal_rasterize помогите понять

Сообщение gamm » 30 авг 2011, 05:28

Boris писал(а): а) раз растр и вектор должны быть в одной СК, то как-то можно совместить УЖЕ имеющийся растр с уже имеющимся вектором?
б) с версии 1.8.0 можно по вектору создать НОВЫЙ растр. Значит в предыдущих версиях можно было использовать имеющийся растр в качестве шаблона ?
а) что мешает перепроецировать вектор в проекцию растра? при этом ничего не попортится ...
б) судя по документации, точки, линии и полигоны просто "рисуются" на растре, и в соотвествующие пиксели записывается заданное значение. Раньше растр должен был быть готовым, теперь его можно предварительно создать по заданным размерам.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: gdal_rasterize помогите понять

Сообщение Voltron » 30 авг 2011, 12:08

Boris писал(а):а) раз растр и вектор должны быть в одной СК, то как-то можно совместить УЖЕ имеющийся растр с уже имеющимся вектором?
Так для этого gdal_rasterize и предназначена, в новый или имеющийся растр «впечатываются» объекты из вектора.
Boris писал(а):б) с версии 1.8.0 можно по вектору создать НОВЫЙ растр. Значит в предыдущих версиях можно было использовать имеющийся растр в качестве шаблона?
Все правильно, раньше необходимо было указывать существующий растр. Сейчас можно как создавать новый, так и использовать существующий.
Boris писал(а):Есть геокодированный растр (далее А). Я хочу в него "впечатать" значения из вектора.
В простейшем случае - взять пустой растр (только NoData) размера и привязки равный исходному растру А, и на основе векторных данных создать маску для растра А.

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

gdal_rasterize -a value -l poly ~/samples/poly.shp ~/samples/proba.tif

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

Re: gdal_rasterize помогите понять

Сообщение Boris » 30 авг 2011, 21:58

Всем спасибо за ответы!
В своих экспериментах я проявил избыточное рвение. Вместо:

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

gdal_rasterize -l "cut_lines_buff" -b 1 -at -burn 255 -where "txt4='179021'" cut_lines_buff.MIF "out.tif"
для существующего растра набил все параметры, которые подвернулись под руку:
gdal_rasterize -l "cut_lines_buff" -b 1 -at -burn 255 -where "txt4='179021'" -a_nodata 0 -ot Byte -of GTiff -co TFW=YES -co NBITS=1 -co COMPRESS=CCITTFAX4 -co TFW=YES cut_lines_buff.MIF "out.tif"
Что заставило программу думать, что я создаю новый растр, и она от меня требовала указания размерностей.

Ответить

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

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

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