Страница 1 из 2
Удалить пересечения растра
Добавлено: 23 янв 2012, 19:40
Syllion
Время доброе!
есть несколько больших растров (несколько гигов). Они немного накладываются друг на друга. При уменьшении их прозрачности становится заметна зона наложения. Как проще всего ее удалить?
Интересует самый простой вариант. Работаю в ArcGIS 9.3.1
Может не в гисах, а в другом ПО проще? В Глобалмеппеер что-то похожей возможности не нашел..
Re: Удалить пересечения растра
Добавлено: 23 янв 2012, 20:29
Дмитрий Барышников
Если растров немного обрежьте в ArcMap по графике. Если много - можно разбить на тайлы (Split Raster) и сделать из пересекающихся тайлов мозаику. Из открытого - можно воспользоваться gdal -
viewtopic.php?f=2&t=6800&p=37195&hilit=gdal_warp#p37195 и
viewtopic.php?f=20&t=5711&p=41237&hilit ... ate#p41237 и
viewtopic.php?f=27&t=5088&hilit=gdal_translate
Re: Удалить пересечения растра
Добавлено: 23 янв 2012, 21:21
Syllion
А нельзя чтобы оно как-то автоматом нашло границы пересечения растров?
Re: Удалить пересечения растра
Добавлено: 23 янв 2012, 21:50
Дмитрий Барышников
Вам нужен полигон общей площади или идеальная линия для стыковки?
Re: Удалить пересечения растра
Добавлено: 23 янв 2012, 21:51
Syllion
идеальная линия для стыков.
Думаю бы подошел и вариант объединить полигоны - тогда бы зона пересечения стала не видна. Но встроенные инструменты в ГИС зависают на таких объемах. Нужно что-то другое. Смотрел на gdal, но не понял как как пользоваться.
http://www.gdal.org/gdal_merge.html тут вроде бы надо просто скрипт запустить и указать входные, выходные данные, только я распаковал архив с гдал, открыл консоль, запустил скрипт, но он походу свои же библиотеки не нашло.
Re: Удалить пересечения растра
Добавлено: 23 янв 2012, 22:24
Дмитрий Барышников
Способов автоматического формирования идеальной линии для стыковки я не знаю.
По поводу мозаики - я и предложил вначале на тайлы порезать - потом уже мозаику делать - размер двух тайлов уж ArcGIS потянет. У меня в 10-ке инструмент нарезки называется Split Raster.
По поводу gdal - обычно рекомендуют ставить из
OSGEO4W Installer - просто я не пользуюсь им (gdal) "напрямую", а через программирование.
Re: Удалить пересечения растра
Добавлено: 23 янв 2012, 22:30
Максим Дубинин
вот так устанавливайте, только включайте только gdal
http://gis-lab.info/qa/qgis-osgeo4w.html
Re: Удалить пересечения растра
Добавлено: 23 янв 2012, 23:05
Александр Мурый
В GRASS я бы сделал, например, так:
-- сделал по одному из растров растровую маску (пардон за тафтологию)
-- обрезал бы второй растр по этой маске --> так удалится его "лишний" край и он по идее должен примыкать к первому вплотную.
Наверняка это можно сделать и утилитами GDAL -- надо разбираться.
В аркгисе вроде есть растровые маски (
webhelp.esri.com/arcgiSDEsktop/9.3/index.cfm?TopicName=Mask)
Re: Удалить пересечения растра
Добавлено: 23 янв 2012, 23:39
Дмитрий Барышников
Я же не просто так спрашивал про "формирование идеальной линии для стыковки" - резать один растр по краю другого не входило в это понятие.
Re: Удалить пересечения растра
Добавлено: 24 янв 2012, 09:59
Syllion
Bishop, я немного не пойму вас.
У меня есть карта из кусков. Эти куски накладываются друг на друга. Если карта не прозрачная, то все окей, но если ее сделать прозрачной, то получаются такие полосы
http://clip2net.com/s/1w1Rm
Мне от них нужно избавиться. Любым способом.
С GDAL не разобрался. Поставил его по ссылке, которую вы предложили. Оно поставилось. Из CMD не запускается. Попробовал руками добавить в переменные окружения
http://clip2net.com/s/1w1SU - тоже результата не дало.
В том, что поставилось почему-то не оказалось следующего скрипта
http://gdal.org/gdal_merge.html
да и как его вызывать не понятно. Что-то какая-то утилита замороченая.
Re: Удалить пересечения растра
Добавлено: 24 янв 2012, 16:47
Александр Мурый
Обрезка одного из пересекающихся растров по границе другого (это логическая модель с командами из GRASS

):
-- создаём растровую маску по первому растру
Код: Выделить всё
r.mapcalc 'rast_1.mask = if(rast_1,1,null())'
-- задаём маску
-- создаём растр пересечения со вторым растром
Код: Выделить всё
r.mapcalc 'rast_1.cross = if(isnull(rast_2),null(),1)'
-- вырезаем из первого растра непересекающийся кусок
Код: Выделить всё
r.mapcalc 'rast_1.cut = if(isnull(rast_1.cross),rast_1,null())'
-- удаляем маску
Что такое "идеальная линия для стыковки" -- даже не представляю.. Посередине пересечения, что ли?

Re: Удалить пересечения растра
Добавлено: 24 янв 2012, 20:18
Дмитрий Барышников
К сожалению в поставке ArcGIS 9.3 нарезки на тайлы я не нашел (в 10-ке есть). Нашел вот для 9-ки
http://arcscripts.esri.com/details.asp?dbid=13978 . Но после нарезки придется "вручную" мозаичить перекрывающиеся области. Не знаю насколько это облегчит работу.
Re: Удалить пересечения растра
Добавлено: 27 янв 2012, 07:48
Syllion
спасибо большое за GRASS, пока им правда не пользовался, но если Гисами вырезать не смогу придется его использовать.
Вчера пробовал просто слить все куски и получить один большой растр, соответсвенно уже без перекрытий. Когда пробовал на выходе формат jp2 поставить, все вылетало сразу. Если оставить по умолчанию (по умолчанию надо понимать грид), то спустя 14 часов работы вылетела ошибка.
Не подскажете, каким там инструментом в десятке надо пользоваться? Как он называется?
Re: Удалить пересечения растра
Добавлено: 02 фев 2012, 07:20
biryukov
Добрый день!
Проблема похожая, поэтому не буду создавать отдельную тему.
Имеется несколько растров, полученных через topo to raster. Все территорию целиком сделать не получается, т.к. при необходимом размере ячейки, программа отказывается строить модель. После разделения векторов на кусочки и создания моделей для каждого необходимо все собрать в кучу, т.е. получить на выходе один цельный растр. При создании мозаики видны линии стыковки, что вызывает ошибки при дальнейшей работе.
Подскажите, как быть.....
Работаю в ArcGis 9.3.1
Re: Удалить пересечения растра
Добавлено: 02 фев 2012, 11:20
novia
когда вы делаете модель, она делает интерполяцию для указанной территории...
когда вы делаете интерполяцию для области1, области2 и т.п. неизбежно значения на стыках будут разными.
какой размер ячейки и какой охват территории вы используете?