Створення дуг між двома точками в ArcPy?


11

Я працюю над сценарієм пітона, що автоматизує візуалізацію даних живої точки. У мене є таблиця з двома парами координат. Я хотів би з'єднати ці дві точки дугою кола або подібного (парабола ??).

Мені вдалося з'єднати дві точки прямою лінією, але це дає мені нудне зорове зображення.

Однією з основних перешкод є рівень моєї ліцензії: ArcView.

Хто-небудь має уявлення, як я можу генерувати набір точок, які представляють шлях лінії між цими двома точками?

Потім я можу використовувати точки для полілінійної команди.


5
Ви дійсно не надаєте достатньо інформації: "покращити нудну візуальну" - це ні конкретна, ні хороша постановка проблеми. Але, можливо, ви отримаєте кілька ідей із подібної теми на gis.stackexchange.com/questions/5204/… .
whuber

1
Ви одночасно переглядаєте багато рядків або лише один (або кілька) одночасно?
Енді Ш

Номер точки може бути від 2 до приблизно 50.
Піксель

Відповіді:


28

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

Хоча я не сумніваюся, що я пропустив деякі запропоновані «можливі рішення», я спробую підсумувати деякі способи, які люди намагалися вирішити проблему в роботі, яку я натрапив.

Спотворення ліній

Якщо ви ознайомитесь з деякими іншими нитками на очах, ви побачите кілька прикладів того, як люди вирішили цю проблему. Зокрема, лінії спотворені, щоб вони не перетиналися один з одним чи іншими об’єктами на карті. Whuber в відповідь на інший аналогічний питання (вже згадувалося в коментарях) є прикладом цього. Презентація деяких дослідників в Стенфорд демонструє цю ж ідею (Phan і ін., 2005). Дякуємо за те, що презентація переходить до dslamb за цю відповідь на іншій темі (і всі відповіді на цю тему також будуть цікаві для вашого запитання). Мені особливо цікаво, що одним із кардинальних прикладів цього є стара імміграційна карта Мінарда - приклад бажаного результату (близько 1864!).

Зважаючи на конкретний випадок використання (невелика кількість вузлів і ліній), це здається достатнім. Інші "рішення", які я представляю, більше призначені для візуалізації даних із багатьма лініями та багатьма джерелами-напрямками (хоча я припускаю, що вони будуть корисними підсумками для спільноти загалом, тому я продовжую незалежно).

Використання альфа-змішування, кольору та ширини / висоти ліній

Карти, які я перераховував у цій самій нитці раніше, зазначили, Представлення мережевих потоків - приклади цього. Друзі у фейсбуці - це гарний випадок коригування альфа-рівня ліній, тому потрібно набагато більше потоків, щоб представити темніший (або яскравіший у цьому випадку) зв’язок між двома місцями. Це також дефамізує більш довгі лінії, оскільки вони, як правило, трапляються рідше. Аналогічна логіка виходить із карт цінності за альфами для полігонових областей (Roth et al., 2010), про які вже згадувалося на цьому форумі .

Інша карта, яку я привожу в тій самій відповіді, використовує кольорові та нетрадиційні тривимірні тривимірні стрілові лінії (Ratti et al., 2010). Автори використовували критерії кластеризації для групування однорідних зон разом та кольорового коду (тому за визначенням області в кольорі мають більше схожих шаблонів потоку, ніж між кольорами). Критерії кластеризації самі по собі можуть бути цікавими для виявлення закономірностей у даних, хоча, мабуть, проблема в цьому, як згадував Ендрю Гелман , полягає в тому, що він говорить вам майже все, що ви вже знаєте, що ставить ближче один до одного. мають тенденцію мати більше зв’язків.

Нарешті, до цієї категорії я включаю методи, які зважують лінії (подібні до альфа-змішування), використовуючи або ширину лінії, або у випадку 3d перспективної висоти лінії, щоб передати об'єм потоку. Дивіться сторінку на сторінці програмного забезпечення для відображення потоку Tobler, щоб ознайомитись із деякими прикладами у 2d (а інша я, про яку я згадував, є прикладом у 3d із використанням висот рядків). Також на цій сторінці Tobler є дуже корисна стаття, що описує проблеми з потоковою картографією та їх історичне застосування (Tobler, 1987).

Ще один приклад в 3d - це відповідь, яку манкуф на цьому веб-сайті. Ця публікація в блозі «Соціологічні образи» показує корисний спосіб на схемі потоків для розрізнення вхідних потоків і потоків (хоча, знову ж таки, це працює, оскільки кількість вузлів і порівняно невелика, і вузли в мережі можуть бути розміщені в довільний спосіб зменшити перезволоження). Ці ж типи стрілок (і кілька інших, що використовують хешинг) також є в (Tobler, 1987).

Зрештою, хоча ширина та колір рядків насправді не вирішують проблему надмірного накреслення. Дуги в 3d допомагають дещо, хоча при більш складних моделях потоку я думаю, що вони матимуть обмежену корисність. Змішування альфа-IMO, здається, є найбільш корисним у найрізноманітніших ситуаціях із цих трьох, але колір та ширина ліній можуть / повинні використовуватися у поєднанні із спотворенням лінії, зазначеним вище.

Зменшення даних

Я групую два типи прийомів, 1) використовуючи невеликі численні карти (тобто багато карт із суттєво меншими об'єктами для візуалізації, щоб перегрузка зменшилася), або 2) інші графічні зображення, які не є лініями, але представляють деякі потоки через щільність або хороплетські карти. Приклади цього можна знайти у (Corcoran et al., 2009; Rae, 2009; Wood et al., 2010) (завдяки iant для посилання на Rae). Вони, як правило, зменшують кількість візуальної інформації, представленої або представленням серії малих численних карт (або просто меншої площі), або використовуючи схему хороплетівського відображення для представлення деякої статистики (прикладами можуть бути кількість вхідних потоків, кількість відпливів , напрям потоків, середня відстань потоків). Якщо у вас є дані про рівень точок, ви можете представити цю статистику за допомогою растрових карт щільності ядра або об'єднати їх у квадрати.

Коли інформація зменшується таким чином, перезволоження не є стільки проблемою. Дуже класний інтерактивний приклад в Інтернеті - це карта міграції журналу Forbes . Ви можете бачити лише одну округу за один раз, але зменшення інформації значно спрощує розбір ліній (і різницю між потоками та потоками). Нещодавній пост у блозі ESRI mapping також використовує аналогічну техніку з невеликими кратними (вони також вибирають певну проекцію для карти світу, щоб вона мала «гарні вигляд» лінії, і добре використовувати кольори для подальшого підкреслення різних міжнародних джерел). У цьому прикладі це спрацьовує досить добре, оскільки кінцеве призначення однакове для всіх потоків, але якщо потоки можуть бути зворотними, це, ймовірно, також не вийде.

Використання інших представлень потоків без карт

Інші на цьому веб-сайті пропонують використовувати альтернативні діаграми для фактичної карти для представлення потоків (просто відображення джерел та напрямків в інший спосіб, ніж їх фактичне географічне положення). Прикладами цього є або кутикулярні візуалізації (такі, які виробляються Circos ), дугові діаграми (див. Цей приклад на Protovis; вони також називаються крискограмами (Xiao & Chun, 2009)), або матричні теплові карти ( ось ще один приклад з Веб-сайт Protovis). Іншим варіантом було б використання певного типу автоматизованого компонування мережі для ідентифікації шаблонів у потоках (таких, як це можливо у Graphviz ). Окрім Graphviz, популярними інструментами є також Gephi, бібліотека пітонів NetworkX та деякі бібліотеки R (див.ця відповідь на сайті статистики).

Бібліотеки, які я цитую, є досить крутими, оскільки вони також розробили інтерактивні візуалізації. Ось приклад із подібним стилем до кругової графіки (хоча не кругової!). Ось ще одна інтерактивна візуалізація з використанням деяких методів спотворень ліній, обговорених раніше, розміщення мережі (схоже на кругові картограми Dorling), а також інших корисних статистичних підсумків (я бачив обидва ці приклади спочатку в блозі інформаційної естетики ).


Деякі інші ресурси, які я вважаю корисними, - це програмне забезпечення та статті, що надходять із лабораторії просторового обміну даними та візуальної аналітики . Також моделювання попиту на подорож на злочинність у програмі CrimeStat - це легке введення у застосовні методи регресії для таких даних про потоки. Будь-який з цих інструментів може допомогти вам виявити цікаві співвідношення у моделях потоку з іншою географічною інформацією. Ще одне місце, яке, можливо, отримає корисну натхнення для графічного відображення даних або статистичного аналізу, - це нещодавній випуск журналу обчислювальної та графічної статистики, том 20, випуск 2, вивчаючи статистику прибуття / вильоту рейсів для комерційних перевізників у США з 1987 по 2008 рік (якщо ви зацікавлені в обробці великих даних, це також варто вивчити). Всі статті безкоштовні, і вони мають пов’язані плакати з кожним документом.

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


Цитати

* Зауважте, посилання на необгрунтовані PDF-файли включаються, коли я можу їх знайти


2
Наразі я пропустив будь-яку графіку, але за запитом я можу включити будь-яку, якщо люди хочуть бачити приклади, не переходячи за посиланнями.
Енді Ш

Нічого !! ... У комплекті з цитатами! Якби я міг проголосувати двічі, я би! Дивовижна відповідь, людина :)
R Thiede

Наразі я знайшов ще одну досить круту інтерактивну візуалізацію за допомогою зменшення даних (та чудових ліній кола). Дізнайтеся, яке місто в США найбільше популярне серед міжнародних мисливців на будинки за допомогою блогу Trulia Insights.
Енді Ш

5

Там хороша процедура тут , на нашому власному Подземья.

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

Я якось перестав використовувати Arc, оскільки це коштує грошей, але, щоб ця процедура працювала, я не думаю, що вам потрібно платити ESRI будь-які додаткові хабарі, щоб забезпечити вам основну функціональність. Я маю на увазі, я не думаю, що вам не потрібно купувати будь-які "розширення". Я кажу, що виправляється, тому що я не впевнений у тому, чи підрозділення рядка є частиною просторового аналітика. Можливо, хтось із більш схильних до ESRI може допомогти мені тут? :)


1
Раніше ви не могли робити справжні криві з ArcView, але ArcView зможе робити справжні криві з версії 9 зараз.
blord-castillo


2

Можна створити візуально привабливі полілінії з двох точок на карті, використовуючи метод великого кола. Перевірте http://www.esri.com/software/arcgis/defense-solutions/military-analyst.html - військовий аналітик. Потрібно мати те, що ви шукаєте!


Я вже не дуже швидко рухаюся на дузі, але хіба це неможливо зробити з деякими перепроектами? Тому що військовий аналітик, ймовірно, коштуватиме вам грошей ...
R Thiede

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

Військовий аналітик безкоштовний @RThiede Так, це працюватиме краще в більшій мірі. Однак ви, можливо, зможете редагувати лінії після їх створення, щоб дати вам те, що ви хочете (оскільки вони використовують беззієві криві для отримання сотні точок уздовж поліліній для створення кривої)
Michael Markieta

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