выборочная замена шейпов

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Ответить
balbes
Новоприбывший
Сообщения: 6
Зарегистрирован: 05 ноя 2011, 12:00
Репутация: 0

выборочная замена шейпов

Сообщение balbes » 05 ноя 2011, 12:24

Уважаемые форумчане!

Прошу прощения — не владею специальной терминалогией, поэтому свою проблему буду объяснять «на пальцах».
Итак вводная. Есть социологические данные в R. Есть границы административных образований некоторой территории в шейпах. Присутствует желание поделать тематические карты в R – что-то вроде этого. Проблема — границы городских округов (городов) на общей карте выглядят слишком мелкими по сравнению с границами муниципальных районов. Карта в таком виде будет плохо читаться. Как мне заменить шейпы городских округов (городов) на «кружки» увеличенного размера?

В наличии — Квантум, R с библиотеками. Спасибо.

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

Re: выборочная замена шейпов

Сообщение gamm » 05 ноя 2011, 13:01

balbes писал(а):Как мне заменить шейпы городских округов (городов) на «кружки» увеличенного размера?
грузить шейпы через rgdal вы видимо умеете; там внутри (после загрузки) просто таблица координат. Посчитайте среднее для ваших городов, будет вам центр. Посадите вокруг него точки по кругу (желаемого радиуса), будет вам "кружок" (24-48 точек достаточно); и подмените то, что было, на них (и число точек скорректируйте).

Посмотреть, что внутри загруженного шейпа, можно использовав str()

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

Re: выборочная замена шейпов

Сообщение Максим Дубинин » 05 ноя 2011, 13:03

Первое что приходит в голову.

1. посчитать сначала как есть, допустим что shape со значениями в таблице есть
Дальше в QGIS
2. выделить нужные (мелкие полигоны), правая кнопка, сохранить выборку
3. загрузить выборку и сделать Вектор-обработка геометрии-центроиды
4. настроить вид точек-центроидов по вкусу, по желанию можно удалить не устраивающие вас мелкие полигоны или оставить
пристегивайтесь, турбулентность прямо по курсу

balbes
Новоприбывший
Сообщения: 6
Зарегистрирован: 05 ноя 2011, 12:00
Репутация: 0

Re: выборочная замена шейпов

Сообщение balbes » 05 ноя 2011, 14:48

gamm писал(а): грузить шейпы через rgdal вы видимо умеете
Если бы. Я, так понимаю, шейпы грузятся через команду

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

readOGR(dsn="MO", layer="NAME")
Не знаю - что указывать в названии слоя - в моих данных слой один. Пытался найти его наименование в метаданных - не нашел. При загрузке данных в "Квантум" - поле названия слоя пустое. Пробовал пустым его делать в строке экспорта данных в R - не принимает.
Максим Дубинин писал(а):посчитать сначала как есть, допустим что shape со значениями в таблице есть
В таблице значений 5 полей: "NAME", "DISTRICT", "EX_GOV", "SHAPE_Leng", "SHAPE_Area".
Максим Дубинин писал(а):2. выделить нужные (мелкие полигоны), правая кнопка, сохранить выборку
В режиме выделения объектов никакого всплывающего меню по правой кнопке не вызывается (Quantum GIS 1.7.0). В подменю есть раздел "Вектор/Выборка", но ничего похожего на "сохранить выборку" я там не нашел. Зато нашел "центроиды" )))). Вот еще бы допереть как до них добраться.

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

Re: выборочная замена шейпов

Сообщение Voltron » 05 ноя 2011, 15:23

balbes писал(а):
gamm писал(а): грузить шейпы через rgdal вы видимо умеете
Если бы. Я, так понимаю, шейпы грузятся через команду

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

readOGR(dsn="MO", layer="NAME")
Это и есть вызов одной из функций rgdal.
balbes писал(а):Не знаю - что указывать в названии слоя - в моих данных слой один. Пытался найти его наименование в метаданных - не нашел. При загрузке данных в "Квантум" - поле названия слоя пустое. Пробовал пустым его делать в строке экспорта данных в R - не принимает.
Документацию, значит не читаем. Плохо, там все написано:
If reading a shapefile, the data source name (dsn= argument) is the folder (directory) where the shapefile is, and the layer is the name of the shapefile (without the .shp extencion)
Т.е. открывать надо так

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

readOGR(dsn="<путь к shape-файлу>", layer="<имя_файла_без_расширения>")
Максим Дубинин писал(а):посчитать сначала как есть, допустим что shape со значениями в таблице есть
Здесь очевидно имелось в виду, что шейп уже загружен в R и нужная таблица там построена
balbes писал(а):В режиме выделения объектов никакого всплывающего меню по правой кнопке не вызывается (Quantum GIS 1.7.0). В подменю есть раздел "Вектор/Выборка", но ничего похожего на "сохранить выборку" я там не нашел.
Не там смотрите, вам нужно контекстное меню слоя. Т.е. выделяете полигоны, потом из контекстного меню слоя сохраняете выделение в отдельный шейп. Потом загружаете этот новый слой и создаете центроиды. Где находится нужный инструмент вам уже подсказали
balbes писал(а):Зато нашел "центроиды" )))). Вот еще бы допереть как до них добраться.
В каком смысле «допереть»? Просто откройте окно инструмента, там все понятно.

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

Re: выборочная замена шейпов

Сообщение Максим Дубинин » 05 ноя 2011, 15:39

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

balbes
Новоприбывший
Сообщения: 6
Зарегистрирован: 05 ноя 2011, 12:00
Репутация: 0

Re: выборочная замена шейпов

Сообщение balbes » 05 ноя 2011, 19:39

Максим Дубинин писал(а):Первое что приходит в голову.

1. посчитать сначала как есть, допустим что shape со значениями в таблице есть
Дальше в QGIS
2. выделить нужные (мелкие полигоны), правая кнопка, сохранить выборку
3. загрузить выборку и сделать Вектор-обработка геометрии-центроиды
4. настроить вид точек-центроидов по вкусу, по желанию можно удалить не устраивающие вас мелкие полигоны или оставить
Спасибо. Получилось. А как размер "кружков" увеличить.

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

Re: выборочная замена шейпов

Сообщение Максим Дубинин » 05 ноя 2011, 20:39

в зависимости от типа символики и символа
например так:

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

balbes
Новоприбывший
Сообщения: 6
Зарегистрирован: 05 ноя 2011, 12:00
Репутация: 0

Re: выборочная замена шейпов

Сообщение balbes » 05 ноя 2011, 20:46

Да, конечно же.
Спасибо всем за помощь!

balbes
Новоприбывший
Сообщения: 6
Зарегистрирован: 05 ноя 2011, 12:00
Репутация: 0

Re: выборочная замена шейпов

Сообщение balbes » 10 ноя 2011, 12:28

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

Благодаря советам с картинками получил в одном проекте два шейпа - с границами районов и с центроидами на месте поселений.
1. Пытался их слить средствами Quantuma - не одолел:
- С помощью подменю Вектор/Геообработка/Объединение - образуется новый шейп, в котором районы "поглощают", расположенные на их территории поселения. Варьировал настройки слияния - не помогло;
- Посредством буфера обмена - копирование "поселения" в буфер обмена и с последующей попыткой в режиме редактирования вставить в слой с районами. Выдает ошибку при попытке выйти из режима редактирования - "Не добавлен 1 объект".
- Почитал руководство - в разделе "Работа с векторными данными" ничего про слитие не нашел (плохо искал?).
2. Пытался объединить шейпы средствами R по этому рецепту. Итог аналогичен подпункту 1 - в новообразованном шейпе одни районы.

Буду признателен за любые попытки понести высокий свет геоинформационных истин в массы... в темные массы.

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

Re: выборочная замена шейпов

Сообщение Александр Мурый » 10 ноя 2011, 12:41

balbes писал(а):Благодаря советам с картинками получил в одном проекте два шейпа - с границами районов и с центроидами на месте поселений.
1. Пытался их слить средствами Quantuma - не одолел:
В shp-файлах хранится геометрия только какого-то одного типа (точки / линии / полигоны), "слить" их просто так не выйдет. А зачем их объединять в один слой?
Редактор материалов, модератор форума

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

Re: выборочная замена шейпов

Сообщение gamm » 10 ноя 2011, 14:00

сливайте в MIF/MID, Мапинфе все равно, что в слое намешано ...

balbes
Новоприбывший
Сообщения: 6
Зарегистрирован: 05 ноя 2011, 12:00
Репутация: 0

Re: выборочная замена шейпов

Сообщение balbes » 10 ноя 2011, 14:18

amuriy писал(а): В shp-файлах хранится геометрия только какого-то одного типа (точки / линии / полигоны), "слить" их просто так не выйдет. А зачем их объединять в один слой?
Что бы в R создать тематическую карту. Мне кажется, данные лучше слить заблаговременно, чем работать в R с двумя массивами.
gamm писал(а):сливайте в MIF/MID, Мапинфе все равно, что в слое намешано ...
Предполагаю экспортировать данные в R, а не в Мапинфо.

Аватара пользователя
Игорь Черниенко
Активный участник
Сообщения: 137
Зарегистрирован: 28 мар 2009, 01:05
Репутация: 11
Откуда: Хабаровск, Южно-Сахалинск

Re: выборочная замена шейпов

Сообщение Игорь Черниенко » 10 ноя 2011, 14:29

В R слои накладываются примерно так:
plot(polygons)
plot(lines,add=T)
plot(points,add=T)

Аватара пользователя
Игорь Черниенко
Активный участник
Сообщения: 137
Зарегистрирован: 28 мар 2009, 01:05
Репутация: 11
Откуда: Хабаровск, Южно-Сахалинск

Re: выборочная замена шейпов

Сообщение Игорь Черниенко » 10 ноя 2011, 14:32

Я так понимаю, Вы это знаете. Но почему Вы считаете, что если слить все слои в один, работать с ним будет удобнее? По-моему, наоборот

Ответить

Вернуться в «Общие вопросы»

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

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