Страница 1 из 1
выборочная замена шейпов
Добавлено: 05 ноя 2011, 12:24
balbes
Уважаемые форумчане!
Прошу прощения — не владею специальной терминалогией, поэтому свою проблему буду объяснять «на пальцах».
Итак вводная. Есть социологические данные в R. Есть границы административных образований некоторой территории в шейпах. Присутствует желание поделать тематические карты в R – что-то вроде
этого. Проблема — границы городских округов (городов) на общей карте выглядят слишком мелкими по сравнению с границами муниципальных районов. Карта в таком виде будет плохо читаться. Как мне заменить шейпы городских округов (городов) на «кружки» увеличенного размера?
В наличии — Квантум, R с библиотеками. Спасибо.
Re: выборочная замена шейпов
Добавлено: 05 ноя 2011, 13:01
gamm
balbes писал(а):Как мне заменить шейпы городских округов (городов) на «кружки» увеличенного размера?
грузить шейпы через rgdal вы видимо умеете; там внутри (после загрузки) просто таблица координат. Посчитайте среднее для ваших городов, будет вам центр. Посадите вокруг него точки по кругу (желаемого радиуса), будет вам "кружок" (24-48 точек достаточно); и подмените то, что было, на них (и число точек скорректируйте).
Посмотреть, что внутри загруженного шейпа, можно использовав str()
Re: выборочная замена шейпов
Добавлено: 05 ноя 2011, 13:03
Максим Дубинин
Первое что приходит в голову.
1. посчитать сначала как есть, допустим что shape со значениями в таблице есть
Дальше в QGIS
2. выделить нужные (мелкие полигоны), правая кнопка, сохранить выборку
3. загрузить выборку и сделать Вектор-обработка геометрии-центроиды
4. настроить вид точек-центроидов по вкусу, по желанию можно удалить не устраивающие вас мелкие полигоны или оставить
Re: выборочная замена шейпов
Добавлено: 05 ноя 2011, 14:48
balbes
gamm писал(а):
грузить шейпы через rgdal вы видимо умеете
Если бы. Я, так понимаю, шейпы грузятся через команду
Не знаю - что указывать в названии слоя - в моих данных слой один. Пытался найти его наименование в метаданных - не нашел. При загрузке данных в "Квантум" - поле названия слоя пустое. Пробовал пустым его делать в строке экспорта данных в R - не принимает.
Максим Дубинин писал(а):посчитать сначала как есть, допустим что shape со значениями в таблице есть
В таблице значений 5 полей: "NAME", "DISTRICT", "EX_GOV", "SHAPE_Leng", "SHAPE_Area".
Максим Дубинин писал(а):2. выделить нужные (мелкие полигоны), правая кнопка, сохранить выборку
В режиме выделения объектов никакого всплывающего меню по правой кнопке не вызывается (Quantum GIS 1.7.0). В подменю есть раздел "Вектор/Выборка", но ничего похожего на "сохранить выборку" я там не нашел. Зато нашел "центроиды" )))). Вот еще бы допереть как до них добраться.
Re: выборочная замена шейпов
Добавлено: 05 ноя 2011, 15:23
Voltron
balbes писал(а):gamm писал(а):
грузить шейпы через rgdal вы видимо умеете
Если бы. Я, так понимаю, шейпы грузятся через команду
Это и есть вызов одной из функций 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 писал(а):Зато нашел "центроиды" )))). Вот еще бы допереть как до них добраться.
В каком смысле «допереть»? Просто откройте окно инструмента, там все понятно.
Re: выборочная замена шейпов
Добавлено: 05 ноя 2011, 15:39
Максим Дубинин
Re: выборочная замена шейпов
Добавлено: 05 ноя 2011, 19:39
balbes
Максим Дубинин писал(а):Первое что приходит в голову.
1. посчитать сначала как есть, допустим что shape со значениями в таблице есть
Дальше в QGIS
2. выделить нужные (мелкие полигоны), правая кнопка, сохранить выборку
3. загрузить выборку и сделать Вектор-обработка геометрии-центроиды
4. настроить вид точек-центроидов по вкусу, по желанию можно удалить не устраивающие вас мелкие полигоны или оставить
Спасибо. Получилось. А как размер "кружков" увеличить.
Re: выборочная замена шейпов
Добавлено: 05 ноя 2011, 20:39
Максим Дубинин
в зависимости от типа символики и символа
например так:

Re: выборочная замена шейпов
Добавлено: 05 ноя 2011, 20:46
balbes
Да, конечно же.
Спасибо всем за помощь!
Re: выборочная замена шейпов
Добавлено: 10 ноя 2011, 12:28
balbes
Извините неуча, коллеги, но мой марлезонский балет имеет продолжение.
Благодаря советам с картинками получил в одном проекте два шейпа - с границами районов и с центроидами на месте поселений.
1. Пытался их слить средствами Quantuma - не одолел:
- С помощью подменю Вектор/Геообработка/Объединение - образуется новый шейп, в котором районы "поглощают", расположенные на их территории поселения. Варьировал настройки слияния - не помогло;
- Посредством буфера обмена - копирование "поселения" в буфер обмена и с последующей попыткой в режиме редактирования вставить в слой с районами. Выдает ошибку при попытке выйти из режима редактирования - "Не добавлен 1 объект".
- Почитал руководство - в разделе "Работа с векторными данными" ничего про слитие не нашел (плохо искал?).
2. Пытался объединить шейпы средствами R по
этому рецепту. Итог аналогичен подпункту 1 - в новообразованном шейпе одни районы.
Буду признателен за любые попытки понести высокий свет геоинформационных истин в массы... в темные массы.
Re: выборочная замена шейпов
Добавлено: 10 ноя 2011, 12:41
Александр Мурый
balbes писал(а):Благодаря советам с картинками получил в одном проекте два шейпа - с границами районов и с центроидами на месте поселений.
1. Пытался их слить средствами Quantuma - не одолел:
В shp-файлах хранится геометрия только какого-то одного типа (точки / линии / полигоны), "слить" их просто так не выйдет. А зачем их объединять в один слой?
Re: выборочная замена шейпов
Добавлено: 10 ноя 2011, 14:00
gamm
сливайте в MIF/MID, Мапинфе все равно, что в слое намешано ...
Re: выборочная замена шейпов
Добавлено: 10 ноя 2011, 14:18
balbes
amuriy писал(а):
В shp-файлах хранится геометрия только какого-то одного типа (точки / линии / полигоны), "слить" их просто так не выйдет. А зачем их объединять в один слой?
Что бы в R создать тематическую карту. Мне кажется, данные лучше слить заблаговременно, чем работать в R с двумя массивами.
gamm писал(а):сливайте в MIF/MID, Мапинфе все равно, что в слое намешано ...
Предполагаю экспортировать данные в R, а не в Мапинфо.
Re: выборочная замена шейпов
Добавлено: 10 ноя 2011, 14:29
Игорь Черниенко
В R слои накладываются примерно так:
plot(polygons)
plot(lines,add=T)
plot(points,add=T)
Re: выборочная замена шейпов
Добавлено: 10 ноя 2011, 14:32
Игорь Черниенко
Я так понимаю, Вы это знаете. Но почему Вы считаете, что если слить все слои в один, работать с ним будет удобнее? По-моему, наоборот