Страница 2 из 3
Re: Обрезка растров по вектору
Добавлено: 02 авг 2010, 15:53
Juls
Здравствуйте
Помогите решить задачу обрезки растра по векторному слою. Растр чернобелый(формат*.jpg, или *.bmp). векторный слой - таблица mapinfo.
нашел информацию про команды
gdal_translate с параметром [-projwin ulx uly lrx lry]. Я так понимаю, что экстент выходного растра прямоугольник? а как поступить, если нужно обрезать по произвольноиу контуру?
попробовал gdal_rasterize,
Код: Выделить всё
gdal_rasterize -i -b 1-burn 255 -l crop crop.shp rastr.bmp
выходной файл был записан без изменений.
кроме того windows ругнулась на gdal_rasterize.exe.
можно ли как то использовать в этой команде не shp-файлы, а tab?
не воспринимаются русские буквы в имени файлов? можно это как-нибудь обойти?
большое спасибо
Re: Обрезка растров по вектору
Добавлено: 02 авг 2010, 17:59
Максим Дубинин
Да, охват - прямоугольник. Насчет кириллицы и tab - так переведите просто, чтобы без кириллицы и в shape. Вот еще два способа, попробуйте.
Способ 1 (возможно cutline поддерживает и tab, пробуйте)
gdal_translate -projwin ulx uly lrx lry rasterin.tif raster_clip.tif
gdalwarp -cutline shape_file raster_clip.tif raster_clip2.tif
Способ 2
http://trac.osgeo.org/gdal/wiki/FAQRast ... eGDAL1.8.0
Re: Обрезка растров по вектору
Добавлено: 03 авг 2010, 15:00
Juls
Большое спасибо за ответ
попробовал
gdalwarp -cutline shape_file raster_clip.tif raster_clip2.tif
tab принимает в обработку
но выходной растр пустой. и возникает предупреждение: vector layer has a srs, source rastr dataset does not.
это изза несовпадения проекций? как узнать проекцию растра?
Re: Обрезка растров по вектору
Добавлено: 03 авг 2010, 15:23
Mavka
Посмотреть:
Если автоматически не определилась проекция, то задайте вручную:
Re: Обрезка растров по вектору
Добавлено: 03 авг 2010, 15:55
Juls
gdalinfo выдает Coordynate system is ''
это значит растр не имеет географической системы координат чтоли?
Re: Обрезка растров по вектору
Добавлено: 03 авг 2010, 19:30
Максим Дубинин
это значит что система координат не указана явным образом
пропишите систему координат, сделайте так, чтобы таб и растры были в одной системе координат (т.е. если они в разной, перепроецируйте либо растр либо вектор).
Re: Обрезка растров по вектору
Добавлено: 04 авг 2010, 12:21
asgs
Вот тут
http://asgs.narod.ru/programs.html лежит программа TiffMosaic. Вообще, как видно из названия, разрабатывалась для создания мозаики в MapInfo из ортофотопланов или космоснимков, но можно использовать и для обрезки растров, и как раз по вектору. Может и пригодится кому

Re: Обрезка растров по вектору
Добавлено: 09 авг 2010, 11:03
Juls
Как определить охват векторного объекта/слоя, чтобы потом по нему обрезать?
Re: Обрезка растров по вектору
Добавлено: 09 авг 2010, 11:13
Denis Rykov
Пример результата:
Код: Выделить всё
Layer name: altay-a
Geometry: Polygon
Feature Count: 2
Extent: (77.802216, 49.083084) - (89.869980, 54.489159)
Layer SRS WKT:
GEOGCS["GCS_WGS_1984",
DATUM["WGS_1984",
SPHEROID["WGS_1984",6378137,298.257223563]],
PRIMEM["Greenwich",0],
UNIT["Degree",0.017453292519943295]]
ID: Real (32.3)
F_CODE: String (80.0)
F_CODE_DES: String (80.0)
NAM: String (80.0)
NA2: String (80.0)
NA2_DESCRI: String (80.0)
NA3: String (80.0)
NA3_DESCRI: String (80.0)
TILE_ID: Integer (10.0)
FAC_ID: Real (32.3)
Re: Обрезка растров по вектору
Добавлено: 09 авг 2010, 11:26
Juls
подскажите еще, как отсюда вытащить экстент? чтобы загнать их в gdal_translate -projwin ulx uly lrx lry
Re: Обрезка растров по вектору
Добавлено: 27 окт 2010, 15:08
lady_green
Добрый день! Объясните кто-нибудь популярно и доступно, пошагово на выполнить обрезку растра и какие в этом процессе "подводные камни".Help!
Re: Обрезка растров по вектору
Добавлено: 27 окт 2010, 15:19
nadiopt
типо читайте выше
Re: Обрезка растров по вектору
Добавлено: 01 ноя 2010, 13:37
kryl
На самом деле подводные камни есть.
Код: Выделить всё
gdal_rasterize -i -b 1 -b 2 -b 3 -burn 255 -l 1 D:/1.shp D:/2.img
при сложном векторе дает артефакты.
Код: Выделить всё
gdalwarp -cutline shape_file raster_clip.tif raster_clip2.tif
артефактов не дает, но никак не могу заставить заливать отрезаемое белым цветом (вернее заливать то заливает(-dstnodata "255 255 255" ), но вместе с полями прихватывает все пиксели, где хотя бы в 1 канале есть 255). По-моему это баг.
Re: Обрезка растров по вектору
Добавлено: 14 дек 2015, 09:55
Озарян Юлия
Denis Rykov писал(а):Не уверен, что правильно, но как вариант:
1. Открываем в QGIS вектор, по которому нужно произвести обрезку. В свойствах символики выставляем сплошную заливку. Для определенности будем считать, что цвет заливки 255 0 0 (красный).
2. File - Save As Image..., сохраняем в tiff.
3. Создаем новый проект.
4. Добавляем растр, который нужно обрезать и сверху накладываем растр, созданный по вектору.
5. Заходим в свойства растра, который был создан по вектору и задаем 100% прозрачность для цвета 255 0 0.
6. File - Save As Image.
Пример результата:
Все сделала, сработало! Интересно, что растр, созданный по вектору был в виде определенной фигуры, обрисованной по интересующей территории, а в итоге получился прямоугольный растр, в который попала вся обрисованная территория. В-принципе устраивает, но почему так получилось? В вашем примере обрезка была четко по заданному полю.
Re: Обрезка растров по вектору
Добавлено: 15 дек 2015, 04:04
prospektor
Озарян Юлия писал(а):Denis Rykov писал(а):Не уверен, что правильно, но как вариант:
1. Открываем в QGIS вектор, по которому нужно произвести обрезку. В свойствах символики выставляем сплошную заливку. Для определенности будем считать, что цвет заливки 255 0 0 (красный).
2. File - Save As Image..., сохраняем в tiff.
3. Создаем новый проект.
4. Добавляем растр, который нужно обрезать и сверху накладываем растр, созданный по вектору.
5. Заходим в свойства растра, который был создан по вектору и задаем 100% прозрачность для цвета 255 0 0.
6. File - Save As Image.
Пример результата:
Все сделала, сработало! Интересно, что растр, созданный по вектору был в виде определенной фигуры, обрисованной по интересующей территории, а в итоге получился прямоугольный растр, в который попала вся обрисованная территория. В-принципе устраивает, но почему так получилось? В вашем примере обрезка была четко по заданному полю.
Еще, в качестве варианта, все элементарно делается в SAGA:
в инструментах вкладки: shapes\grid\spatial extent\ clip grid with rectangle