Зменшіть роздільну здатність файлу форми на R (або QGIS, якщо необхідно)


12

Я використовую формати історії кордонів США з NHGIS, щоб зробити карти в Р. Ці формати мають набагато більшу роздільну здатність, ніж мені потрібно для створення карт у масштабі країни: понад 2 мільйони спостережень за один файл. Чи є спосіб, щоб я міг зменшити роздільну здатність цих файлів у форматі R? Якщо потрібно, я можу це зробити на QGIS.


Чи можете ви пояснити більше. Роздільна здатність пов'язана з зображеннями. Ви маєте на увазі, що у багатокутнику занадто багато вузлів, які надають занадто багато деталей? Або це занадто багато точок у файлі форм-файлів?
Райан Гарнетт

2
@Ryan Хоча роздільна здатність і справді пов'язана з зображеннями, це поняття, яке має сенс і для векторних даних. Для ознак полілінії та багатокутника його можна оцінити за кількістю вершин, що використовуються на одиницю довжини дуги. Роздільну здатність не завжди можна точно визначити, перевіривши векторні дані (розглянемо, наприклад, набір особливостей точок високої роздільної здатності, але широко розставлених точок).
whuber

Я маю на увазі, що у формі форм набагато більше точок, ніж це потрібно для складання карти нації. Я хотів би такого рівня деталізації зробити, скажімо, карту міста. Причиною, що це важливо для мене, є те, що це робить генерування сюжетів повільним і тим самим забирає багато часу для ітерації.
Лінкольн Маллен

Відповіді:


9

Ви можете використовувати gSimplifyз rgeosпакету, і якщо ви додасте topologyPreserve=TRUEпрапор, він збереже топологію.

Зауважте, що ви все ще можете закінчити перекриття рядків - нам потрібна реалізація цього надійного алгоритму DP в R:

http://www.sciencedirect.com/science/article/pii/S0098300413002380

[посилання, можливо за платною стіною]


+1 Приємно знати. У rgeosдокументах знаходяться на cran.r-project.org/web/packages/rgeos/rgeos.pdf .
whuber

1

Стандартним методом «витончення» лінійних фігур (включаючи межі багатокутника) є алгоритм Дугласа-Пейкера . Щонайменше два Rпакети реалізують це: dpу пакеті shapefiles та thinnedSpatialPolyв пакеті Guerry .

Зауважимо, що витончення суміжних багатокутників, як правило, створює невеликі прогалини та перекриття в їхніх межах: це не поважає топологічних зв’язків між ними. Мені невідомий жоден Rпакет, який підтримує топологію при проріджуванні. Для дрібномасштабних цілей картографування, таких як це, не повинно бути серйозною проблемою.


Між іншим, оскільки ніхто вже не знає, як вимовляти німецьку мову :-), Том Пойкер деякий час тому змінив правопис свого імені.


Ви хочете бути дуже обережними, коли ви «стоншуєте» геометрію. Якщо у вас є декілька шарів, які розділяють межі, витончення може створити прогалини, викликаючи візуальні та точні помилки. Над витонченням можна зробити межі зубчастими і надто спрощеними. Ви захочете пограти і випробувати з допущеннями в межах спрощення.
Райан Гарнетт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.