Использование направленного затенения на границах для картографического эффекта в ArcGIS Desktop?

39

Прикрепленный скриншот карты National Geographic показывает красивое направленное затенение границ. Я пытаюсь воспроизвести этот вид затенения для карты периметра прожига, поскольку хочу выделить элементы внутри периметра прожига, а не затенять их прозрачным многоугольником или штриховкой. Есть ли способ добиться такого рода граничного затенения с помощью ArcGIS 10?

Ссылка на большую карту под названием: «Политические подразделения Индии 1946 года по National Geographic.jpg»

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

Аарон
источник
Можно ли сделать ссылку на большое изображение? Я хотел бы изучить детали более подробно
Мэтт Уилки
@matt Я добавил ссылку на карту большего размера. При ближайшем рассмотрении эти границы должны были быть нарисованы от руки, чтобы увидеть, что карта была создана в 1946 году.
Аарон

Ответы:

48

Я обычно использовал один из двух методов, чтобы заштриховать внутренность полигонов. Предполагая, что это наш набор входных полигонов:

Входные данные

Вариант 1 - использовать инструмент Буфер, создать буфер с отрицательным расстоянием (например, -500 метров) и установить для line_sideпараметра значение OUTSIDE_ONLY. Это создаст области внутри каждого многоугольника, давая красивый вид границ страны на политической карте в сочетании с настройкой прозрачности:

Внутренний буфер

Вариант 2 - преобразовать полигоны в линии, а затем использовать инструмент Евклидово расстояние (в Spatial Analyst), чтобы создать растр расстояний. Используйте ExtractByAttributes для удаления областей дальше, чем вы хотите закрасить, измените растровую символику на Растянутую со значениями min / max, равными 0, и вашим максимальным расстоянием. Добавьте немного прозрачности, и это выглядит довольно хорошо:

Растр расстояния

Если вы хотите использовать разные цвета для каждой области растра, вы можете растеризовать значения R / G / B для каждого полигона, умножить их на долю максимального расстояния и объединить их обратно в многоканальный растр. Дайте мне знать, если вы хотите более подробные инструкции по этой части.

dmahr
источник
9
+1 Последнее решение отличное. Часто вы можете получить более приятный внешний вид, вычисляя exp (- (x / k) ^ 2/2), где «x» - евклидова сетка расстояний, а «k» - это примерно треть предполагаемого видимого радиуса затенения. это будет похоже на эффект "размытия по Гауссу". Сначала убедитесь, что экстент сетки увеличен как минимум на 3 КБ, чтобы он не обрезался вокруг верхней, нижней и боковых сторон (как на рисунке)! Можно также с помощью небольшой части «алгебры карт» ограничить затенение как внешней, так и внутренней частью многоугольника: это отличный способ выделить область.
whuber
@whuber Хороший звонок с размытием по Гауссу. Я поиграл с растровой растровой символикой, чтобы получить более плавный градиент, но это выглядело не очень хорошо. И я должен был знать, что ты поймаешь растр на отрезанном расстоянии, Билл. :)
dmahr
13

Мы достигаем чего-то подобного в Arcmap, используя концентрический или многополюсный буфер с атрибутами и применяя разные уровни прозрачности для каждого. Возьмите буферы, произведенные упомянутым там сценарием, и поле для прозрачности, уровни от 70 до 80%, кажется, работают хорошо.

Использование полигонов вместо растра, как в отличном ответе @dmahr , означает заметное снижение скорости рисования, однако вы получаете преимущество в том, что можете легко изменять символы по мере необходимости для каждого объекта и для каждой карты во время выполнения.

Чтобы получить вид стопки или ступеньки, видимый ниже, каждая прозрачность должна как минимум на 1 число отличаться от соседа, перекрывающего друг друга, например, фиолетовый и коричневый - 70 и 71, а не 70 и 70.

Отображение нескольких кольцевых буферов с уникальными атрибутами нескольких полей

Мэтт Уилки
источник
1
«Чтобы получить сложенный или лестничный вид» = умный!
RyanDalton
9

Взгляните на статью « Символизирующие береговые линии » в картографическом центре Esri, где демонстрируются некоторые приемы, которые вы, возможно, захотите попробовать. Это похоже на то, что вы хотите достичь.

Там также есть еще одна хорошая статья под названием «Эффект выцветания на белом фоне», который является обратным эффектом того, к чему вы стремитесь, но должны применяться те же принципы.

RyanDalton
источник
2

Я сделал это, добавив несколько копий одного слоя и используя последовательность оттенков, толщины, смещения и прозрачности, чтобы получить градацию. Он работает как в Arc, так и в QGIS (за исключением того, что функция смещения может иногда не работать в QGIS - что выглядит как ошибка). Это немного неудобно, но работает.

MappaGnosis
источник