Ручна класифікація градуйованих даних поза діапазоном в ArcGIS for Desktop?


13

У мене є два профілі форми, які представляють сітки зі значеннями, що символізуються градуйованими кольорами, наведеними нижче:

Оригінал

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

Однак, коли я намагаюся класифікувати діапазони з ручним інтервалом, ArcGIS змушує те, що має бути найвищим діапазоном, щоб також включати мінімальне значення набору даних. Ви можете бачити це в діапазоні "-81.64 - 10.00" у лівому кадрі даних нижче. Це змушує весь шар символізувати цей колір. По суті, ArcGIS вимагає, щоб мінімальне значення в наборі даних використовувалося як значення в одному з діапазонів.

Нові інтервали

Чи є спосіб обійти цю особливість?


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

@GISKid, як тільки я двічі клацну, класифікація повертається до "Вручну", на жаль.
hfisch

Як щодо коригування значень на самій гістограмі?
GISKid

@GISKid значення повертаються до мінімального значення, якщо перетягнути їх нижче мінімального значення.
hfisch

2
Я вважаю, що найкраща і найпростіша відповідь на це - gis.stackexchange.com/a/136497 - перша (і наразі прийнята) відповідь занадто довга для мого вподобання.
PolyGeo

Відповіді:


12

Це, безумовно, головний біль, коли ArcMap намагається бути, гм, корисним, навіть коли ти справді не хочеш, щоб це було.

Одне вирішення, яке я знайшов, - це створити новий тимчасовий набір даних і додати кілька пунктів із мінімальними та максимальними значеннями, які знаєте, що вам знадобиться у висновку - просто не забудьте охопити весь діапазон.

Створіть свою символіку на основі цього підробленого набору даних і збережіть цю символіку у файлі шару :

введіть тут опис зображення

... тоді імпортуйте символіку з файлу * .lyr на ваш реальний набір даних:

введіть тут опис зображення


1
Це рішення менш хакізне, ніж моє. Я переходжу на вашу відповідь.
hfisch

Дякую, працює як шарм, якщо ви читаєте всі діалоги, які arcmap кидає на вас з достатньою обережністю.
Лууклаг

6

@ChrisW сказав:

Наскільки я знаю і можу знайти докази, ви не можете встановити діапазон класифікації нижче мінімального значення в даних.

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

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


Ось відправна точка, яку я використав для класифікації. Кожен з шарів у чотирьох кадрах даних був класифікований, використовуючи визначений інтервал 10 футів, без відношення до діапазонів даних інших шарів.

Відправна точка

Максимальний діапазон класифікації в будь-якому з чотирьох кадрів даних становить "0,01 до 10,00", а мінімальний діапазон класифікації "від -110,62 до -110,00" (який в ідеалі стане "-119,00 до -110,00"). Оскільки я намагаюся підтримувати 10 футових інтервалів, це означає 13 інтервалів.


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

Крок 1а

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

Крок 1б


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

Крок 2а

Тепер, якщо я прокручую донизу списку діапазонів (де відображається найвищий діапазон) і почну визначати правильні інтервали знизу вгору, ArcGIS запам’ятає діапазони, які я визначаю:

Крок 2b

На цьому зображенні я визначив верхнє значення в 5 з 14 діапазонів, починаючи з найбільшого значення (10,00) і працюючи вниз.


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

Крок 3а

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

Крок 3b


Наступним кроком є ​​розповсюдження цих змін до решти кадрів даних. Однак деякі проблеми очевидні, коли я намагаюся імпортувати символіку до інших кадрів даних:

Крок 4а

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

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

Однак найпростіше рішення - почати процес класифікації із шару, який має найменше значення. Опція Імпорт символіки може бути використана належним чином для інших кадрів даних.

Крок 4б


Нарешті, я можу видалити три легенди та або заховати діапазон манекенів у решті легенди, або перетворити його на графіку та видалити діапазон манекенів.

Кінцева точка


Радий, що ти зміг щось розробити. Я відредагував свою відповідь, щоб виправити цитовану вами помилку (я не впевнений, чому я це сказав - ваші оригінальні зображення показали, що ви можете).
Кріс Ш

Насправді у мене виникають проблеми з тиражуванням цього. Щоб зробити відповідь трохи кориснішою, ви могли б змінити, як саме ви створили ці діапазони нижче мінімального значення?
Chris W

@ChrisW Я значно розширив процес. Дайте мені знати, якщо це все ще не має сенсу!
hfisch

2
Дякуємо за оновлення. Я вирішив проблему - є значна різниця в способі визначення перерв між діалогами класифікації та симвології, що стосується того, що ви ставите під сумнів як помилку. В основному він автоматично сортує значення перерви, але найнижча перерва нижче мінімального значення завжди прив'язується до мінімальної величини та з’являється у верхній частині (або знизу залежно від сортування). FYI, хоча ви не можете вказати загальну кількість, ви можете додати або видалити класи в посібнику, клацнувши правою кнопкою миші на гістограмі.
Кріс Ш

1
Що стосується застосування символіки до інших кадрів даних, як це було зазначено у моїй відповіді, спробуйте почати з даних, що мають найменше значення (-110,62), використовуючи це для початкової символіки. Я зауважу, що у вашому третьому до останнього зображення фіктивне значення мінімального класу все ще становить -61,01 для всіх чотирьох, і я вважаю, чому нічого нижче цього не відображається, навіть якщо для нього є клас. Якщо ви почнете з найнижчого і мінімальне значення вище, я вважаю, що воно буде включати або підводити символіку min до даних min, коли ви застосовуєте символіку до інших наборів даних.
Кріс Ш

5

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

Я вирішив це:

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

введіть тут опис зображення

  1. Створіть ваш другий набір даних, але поки не хвилюйтесь про будь-яку символіку. На другому наборі даних Властивості шару> Символогія виберіть той же тип класифікації, що і для першого набору даних, для цього прикладу я використовую Категорії> Унікальні значення, а потім натисніть кнопку Додати всі значення .

введіть тут опис зображення

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

введіть тут опис зображення

  1. На цьому етапі мені простіше відновити категорії, щоб було легше відстежувати. На даний момент ви можете побачити п'ять із семи заселених категорій.

введіть тут опис зображення

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

введіть тут опис зображення

  1. Нарешті, відновіть нові порожні категорії, щоб вони відповідали першому набору даних, а потім перефарбували кожну категорію, щоб вона відповідала першим.

введіть тут опис зображення

Вибачте, якщо це трохи більше спрощеного або навіть просто неправильної / поганої практики. Я давно користувався GIS Stack Exchange і думав про час, коли я почав робити свій внесок, тому це моє перше повідомлення!


2
Вибачте щойно зрозумів, що ОП призначений для Graduated Data, і після швидкої перевірки зараз зрозумійте, що моє рішення недійсне. Я прочитаю докладніше наступного разу ....
Nige

4
  1. Виберіть потрібну кількість класів.
  2. Клацніть правою кнопкою миші на символах і виберіть save class breaks
  3. це зберігає XML-файл, який ви можете відкривати та редагувати в будь-якому текстовому редакторі
  4. відредагуйте потрібні перерви класу у файлі xml та збережіть
  5. клацніть правою кнопкою миші знову та імпортуйте щойно відредагований файл перерв класу

Зроблено


3

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

Почніть з нижнього лівого результату та перетворіть цю легенду у графічну. Відредагуйте текст, щоб отримати потрібні діапазони. Я помічаю, що всі ваші інші зображення мають 10 одиниць, але це 20 і перекривається. Наприклад, три зображення мають від -49,99 до -40,00, але в нижній лівій частині від -49,99 до -60,00, а в наступному класі від -59,99 до -70,00. Зображення також мають протилежні діапазони - тобто три - нижнє значення зліва, тоді як нижнє ліве нижнє значення праворуч (яке читає набагато більше практично для мене, збільшуючи цифри, якщо не значення зліва направо). Можливо, ці питання потрібно вирішити спочатку, щоб заощадити час, а не просто вручну редагувати текст.

Коли у вас є легенда з діапазонами та кольоровою рампою, яка вам подобається, ви можете повернутися до своїх перших двох шарів (які вже класифіковані правильно) та вручну відредагувати кольоровий патч кожного діапазону, щоб відповідати кольору, який ви визначили для діапазону в легенді. . Оскільки два шари не відображатимуть власні легенди, не має значення, що в одному з них діапазон насправді становить від -89,99 до -80,00, а в іншому - від 81,64 до -80,00, оскільки вони мають однаковий колір .

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


Альтернативне рішення:

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

Отже, встановіть свою символіку, використовуючи растр, який містить найменше / мінімальне значення всіх растрових. Ознайомтесь із цими символами. Потім ви можете відредагувати мітку класу, щоб сказати все, що завгодно. Отже, якщо ваше найнижче значення було 0,4, ви все одно можете змінити мітку на 0.

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


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

@JWallace True, якщо ваші інші растри вже завантажені в один і той же документ з картою (можливо, той самий кадр даних - не можу згадати, чи дозволить вам імпортувати символіку з іншого), і ви готові дозволити вашій роботі над налаштуванням символіка знаходиться лише в mxd (і ви можете зберегти її резервну копію у випадку, якщо ви зміните речі). У мене є графічна відповідь, що висвітлює ці кроки тут .
Chris W

Хороший улов дивних одиниць для нижнього лівого результату. Я думаю, що це був артефакт моїх спроб вручну визначити діапазони, і я визначив їх у зворотному порядку. Використання 'до' замість '-' також є хорошим. Проблема, яку я маю з вашим оригінальним рішенням, полягає в тому, що воно вимагає багато ручної роботи з фарбуванням та маркуванням, і мені потрібно генерувати ряд цих фігур. Але ваше альтернативне рішення дало мені кілька ідей. Я думаю, що я знайшов спосіб зробити його трохи елегантнішим і усунути питання мінімального значення.
hfisch

3

Простіше, але й брудніше рішення, яке працювало на мене. Не забудьте створити резервну копію своїх вихідних даних.

  1. Відкрийте таблицю атрибутів і починайте редагування
  2. Відредагуйте будь-які два значення вручну, щоб включити мінімальне та максимальне значення, на яких базується ваша класифікація (запам'ятайте початкові значення)
  3. Збережіть та припиніть редагування
  4. Класифікуйте на основі нового екстремуму
  5. Почніть спочатку і вручну замініть змінені значення вихідними
  6. На існуючу класифікацію це не вплине

2

Я вважаю, що мова йде про легенду про функції, але не про растри. Якщо мова йде про растри, ігноруйте мою пропозицію. Зазвичай я використовую такі:

  • Об’єднайте 2 (або кілька форм-файлів) ДІТЕЙ в одну, назвемо її СІМ'Я
  • створити легенду для СІМ'Я
  • імпорт символіки для кожної ДІТИ з СІМ’Ї

Сподіваюся, це допоможе, FP


Тільки зрозумійте, що він дуже схожий на JWallace
FelixIP

2

Я зробив наступне рішення. Я створив власні перерви класу в документі XML і завантажив його в класифіковану символіку обох шарів.

  1. Щоб отримати шаблон класу break-XML-документ: у властивостях шару клацніть праворуч на діапазоні класифікації, а потім «збережіть перерви класу».
  2. Редагувати XML документ: введіть перерви класів у XML-документ, ви також можете ввести числа, які будуть поза діапазоном ваших наборів даних.
  3. Завантажте розриви класів XML: те саме меню, де ви зберегли шаблон (див. 1), натисніть «завантаження перерв класу»

    Крок 1 і 3

Крок 2


1
Яка версія ArcMap? У мене немає можливості зберігати перерви класу в v10.6: i.imgur.com/znDqUpQ.png
matt wilkie

@mattwilkie Це не питання версії, а тип даних. Ви переглядаєте діалогове вікно символіки для векторних даних, а збереження розривів класів, як це, доступне лише для растрових даних. Ця відповідь, по суті, повторює Крейга, але з ілюстраціями.
Кріс Ш

1

Альтернативний спосіб - об’єднати всі значення кожного шару в один шар, використовуючи таким чином, ви матимете мінімальне та максимальне значення на шарі.

Ілюстрація:
1.об’єднайте значення всіх шарів в один стовпець (назвемо його як All_Vals) в аркуші Excel

  1. поруч із стовпцем All_Vals додайте два нові стовпці, названі як X і Y, і заповніть їх нулями.

  2. У arcmap додайте аркуш excel у вигляді таблиці та використовуйте його для створення класу характеристик точки за допомогою команди / інструмента відображення даних xy, а потім експортуйте шар події у файл формату (я назву його NB_Point) та додайте його у кадр даних.

4. Перетворіть файл форми NB_Point у багато типів класів характеристик ваших шарів, наприклад, якщо тип вашого функціонального шару є багатокутником, використовуйте інструмент буфера для створення класу характеристик багатокутника з файлу форми NB_Point (назвемо його як NB_polygon).

  1. Тепер все, що вам потрібно зробити, - це клацнути правою кнопкою миші заключний шар NB_polygon і застосувати градуйовану символіку кольорів, використовуючи класифікацію природних розривів, експортуйте його у файл .lyr, щоб використовувати його як вхідний шар при використанні утиліти символів рівня імпорту для кожного початкових шарів.

Сподіваюся, це допоможе і вибачте за помилки.

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