Чи існує інструмент «Безкоштовні сукупні точки» для ArcGIS 10?


10

Мені потрібно зробити аналіз Гетіс-Орда, але спочатку мені потрібно зібрати свої моменти. Я знаю про XToolsPro, але функція сукупних точок заблокована, і ви повинні придбати ліцензію на її використання. Мені цікаво, чи є вільний інструмент там, чи вирішення в ArcMap, яке мені не вистачає для збору балів.

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

Point A overlaps Point B and Point C.  
Point A field value = 1.4
Point B = 2.4, and 
Point C = 5.2.  

Сукупність точок A, B і C поверне точку D зі значенням 9,0

Сподіваюся, це має сенс. Можливо, я міг би відійти від використання чогось насправді базового, але просто ще не встановив це разом. Будь-яка допомога, яку ви можете запропонувати, буде вдячна!

Відповіді:


13

ArcGIS v10 зробить це. Спочатку запустіть "Додати XY координати". Потім запустіть Dissolve, виберіть Point_X та Point_Y в якості полів розчинення, додайте поле статистики, Sum. Я щойно перевірив це на точках, що перекриваються. Вихід має одну точку в кожному місці перекриття, а числове поле підсумовується для цього місця.


+1 Приємно почути, що через 10 років після вилучення цієї функціональності зі свого програмного забезпечення ESRI знову повернув її. (Він існував у ArcView 2/3 як частина операції підведення підсумкових таблиць.)
whuber

Дякую @klewis! Однак одне - точки точно не перетинаються одна з одною (тобто координати xy близькі, але не рівні одна від одної), але мені просто потрібно зібрати точки, які потрапляють в 100 футів одна від одної. Це не здається, що функція розчинення є способом розчинення в межах певного відстані. Тож я припускаю, що мені доведеться зробити чистку за допомогою аналізу близькості?
myClone

2
Це безкоштовний інструмент, який виконує кластеризацію Kmeans разом з багатьма іншими інструментами. Він потребує ArcGIS 10, але працює з ліцензією рівня ArcView. Я не пробував програмне забезпечення, але в ньому є інструменти, доступні лише з ліцензією ArcInfo. Ви повинні встановити GME, R та Statconn. spatialecology.com/gme/kmeans.htm BTW, Arc 10.1 матиме кмеоризацію kmeans. forums.arcgis.com/threads/20288-fuzzy-c-means-cluster-analysis
klewis

6

Є багато способів зробити це. Один прямо ефективний складається з:

  1. Обчисліть координати x і y як поля в таблиці атрибутів.

  2. Об'єднайте ці координати в ідентифікатор.

  3. Підсумуйте таблицю за цим ідентифікатором, запитуючи суму числового поля, а також перші екземпляри і x, і y.

  4. Створіть тему подій точки підсумкової таблиці, використовуючи (x, y) для координат.

Редагувати

У коментарі пише @myClone

точки точно не перетинаються одна з одною (тобто координати xy близькі, але не дорівнюють одна одній), але мені просто потрібно об'єднати точки, що потрапляють в 100 футів один від одного.

Загалом єдиного рішення немає. Розглянемо, наприклад, три точки в лінії, де кожна відокремлена на 75 футів від свого сусіда:

*     *     *    
a     b     c

Ви кластеризуєте всі три, незважаючи на відстань (a, c)> 100? Якщо ні, то яке рішення ви обрали: (a, b), (c) або (a), (b, c)?

Два підходи , що дають різні відповіді в таких випадках, це:

(i) Буферуйте всі точки на 50 = 100/2 футів, вимагаючи об'єднання буферів. Просторово приєднайте буфери назад до точок: це надає кожній точці атрибут об'єднаного буфера, що містить її. Це досягає мети кроку (2) у моєму вихідному рішенні. Виходити звідти точно так, як раніше. У прикладі це об'єднає групи a, b і c разом.

(ii) Створіть сітку 100 на 100 футів та визначте точки за їх осередками сітки. Для цього не потрібно насправді малювати сітку або навіть зберігати її функції, тому що комірка, у якій лежить (x, y), визначається впорядкованою парою (Floor ((x-x0) / 100), Floor ((y-y0 ) / 100)) де (x0, y0) - будь-яке джерело сітки, яке вам подобається. Об'єднайте ці координати, щоб ідентифікувати комірку, знову досягаючи кроку (2) у моєму вихідному рішенні. Продовжуйте, як і раніше.

Очевидно, що метод (ii) не зовсім агрегує всі пари точок в межах 100 футів, оскільки він здатний агрегувати пари до 100 * Sqrt (2) = 141 футів одна від одної. Ви можете компенсувати зменшення розміру сітки до 100 / Sqrt (2) = 71 фут, але тоді деякі пари в межах 100 футів не будуть агреговані. Виберіть свою отруту.

Зауважимо, що рішення способу (ii) залежать від походження сітки та інтервалу. Використовуючи сітку на 100 футів, це дасть або {(a, b), (c)} або {(a), (b, c)}, залежно від походження. Використовуючи сітку для 71 футів, це дозволить зберегти всі три точки окремо, незалежно від походження.

Є й інші методи , за допомогою яких я буду об'єднати групи:

(iii) Використовуйте процедуру статистичного кластеризації , таку як k-засоби або ієрархічна кластеризація, щоб виконати цю роботу. На нашому сестринському сайті, статистики @ SE, є багато практичної інформації про це . Зазвичай програмне забезпечення статистики приймає (id, x, y) трійки як вхідні та вихідні (або можна переконати їх вивести) таблицю (id, кластер) трійки. Приєднайте цю таблицю виводу назад до таблиці атрибутів точки, ще раз повернувши нас до кроку (2) у вихідному рішенні тощо.

(iv) Деякі геостатистичні програмні засоби , такі як GSLib , включають різні "стихійні" процедури, призначені для підготовки даних для варіографії та Kriging. Їх вихід, як правило, можна імпортувати назад у програмне забезпечення ГІС та перетворити на точковий шар.

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

Нарешті, це варто згадати

(v) останні копії ArcGIS мають інструмент для знецінення . Як я пам’ятаю, незрозуміло, як це працює; ви повинні прочитати основний код, щоб зрозуміти, що відбувається.

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