Генерализация больших наборов данных с использованием сегментов

Для выполнения обработки необходимо сначала загрузить все входные данные в память инструментов геообработки, которые учитывают различные темы контекста данных. При загрузке больших наборов данных или нескольких входных наборов данных высока вероятность превышения допустимых ресурсов памяти этих инструментов. Разделение на части – это способ, позволяющий разбить большой объем данных на наборы данных меньшего размера, которыми легче управлять.

При применении инструментов к разделенным на части данным эти части обрабатываются поочередно. Объекты, входящие в пределы той или иной части или расположенные рядом с ними, рассматриваются в совокупности во избежание расхождений. В дополнение к каждой части инструмент загружает вспомогательные данные. Эти данные учитываются при обработке, но изменяются только объекты внутри раздела. Результатом этого являются бесшовные выходные данные.

Как правило, если общее количество объектов во всех входных слоях превышает 100 000, подумайте о том, чтобы выполнить разделение на части с помощью этого инструмента. Разделение на части поддерживают перечисленные ниже инструменты.

Как включить разделение на части

Чтобы включить разделение на части для перечисленных выше инструментов геообработки, необходимо указать класс объектов разделов в параметре среды геообработки Картографические части (Cartographic Partitions). Если этот параметр используется, соответствующие инструменты будут получать указание обрабатывать входные объекты последовательно (по частям), а не все одновременно.

Частичными объектами могут быть любые объекты, относящиеся к полигональному классу, разделяющие входные данные на логически завершенные кластеры. Класс объектов разделов должен максимально полно покрывать область интереса и обеспечивать максимально равномерное распределение входных объектов. В идеале каждый раздел должен содержать не более 50 000 объектов (учитываются объекты всех входных слоев). Слишком большие разделы все равно будут приводить к превышению ограничений использования памяти. Однако использование слишком маленьких частей тоже нежелательно, поскольку оно приведет к уменьшению чувствительности инструмента к контексту, что может ухудшить качество результатов.

Что можно использовать в качестве разделов

Объекты разделов могут основываться на различных источниках. Некоторые рабочие процессы могут изначально включать в себя логически завершенные части (например, экстенты данных, показанные на непрерывном наборе напечатанных карт). Если листы карты смоделированы в виде полигонов, с большой вероятностью из них получатся идеальные части. В таком случае с помощью инструмента Объекты индексной сетки (Grid Index Features) можно создать сетку прямоугольных полигональных объектов. Это позволит создать части разумного размера, при условии, что входные данные относительно равномерно распределены по области интереса.

При построении веб-карт приемлемый набор разделов может получиться из схемы разбиения на листы при кэшировании. При этом можно воспользоваться инструментом Сохранить схему листов кэша картографического сервиса как полигоны (Map Server Cache Tiling Scheme To Polygons) для создания сетки полигонов, отображающих эту схему. Так же, как и использование экстентов листов карты, этот рабочий процесс применим в том случае, если входные объекты распределены приблизительно равномерно.

В некоторых рабочих процессах наборы данных могут включать классы объектов, которые формируют естественные непрерывные части (например, области или участки, соответствующие почтовым индексам). Если эти объекты равномерно распределены по входным данным и разделяют их соответствующим образом, их можно использовать как разделы. Это эффективный подход к обработке данных, распределенных с различной плотностью. Например, полигональные участки, соответствующие почтовым индексам, вероятно, будут иметь меньший размер при более высокой плотности населения, поэтому из этих участков могут получаться части, хорошо подходящие для разрешения конфликтов зданий.

Если во входных данных отсутствуют подходящие полигоны, можно создать специальные полигоны для разделения на части. С помощью инструмента Создать картографические разделы (Create Cartographic Partitions) можно создать непрерывный набор полигонов, включающих в себя примерно равное количество входных объектов.

Требования к разделению

  • Размер каждого раздела (то есть объем включенных в него входных данных) не должен превышать ограничения производительности инструмента. Как правило, этот порог выражается в количестве объектов из всех входных слоев и сложности этих объектов. Он также может изменяться в зависимости от используемого инструмента и заданных параметров. Практическое правило гласит, что разделы не должны содержать более 50 000 входных объектов.
  • Частичные объекты должны относиться к классу полигональных объектов или к классу полигональных объектов шейп-файла с корректной пространственной привязкой.
  • Частичные объекты должны быть правильны с топологической точки зрения. Очертания границ смежных полигонов должны совпадать, не должно быть перекрытий. Допускаются пробелы между частичными объектами, но частичные объекты не могут быть составными полигонами или полигонами с пробелами. Полигоны должны иметь простую геометрию без перекрытий.
  • Каждый составной полигон должен иметь значение параметра площади больше нуля. Части с нулевой площадью или пустые части не будут обработаны, и относительно них будет выводиться предупреждение. При обработке эти части будут игнорироваться.
  • Объекты разделов должны представлять собой логические составные части входных объектов, обрабатываемых инструментами, которые поддерживают этот параметр. Входные объекты должны быть по возможности равномерно распределены между объектами разделов.
  • Объекты разделов должны охватывать экстент входных объектов.
  • Геометрия разделов должна быть максимально простой. Сложные геометрические формы ухудшат производительность инструмента при включении разделения на формы.

Как выполняется обработка с разделением на части

Если включено разделение на партиции (разделы) (путем указания класса объектов разделов в параметре среды геообработки Картографические разделы (Cartographic Partitions), то инструменты, поддерживающие обработку по разделам, будут обрабатывать входные данные посекционно, как задано в разделах. Разделы будут обрабатываться в последовательности, определяемой идентификатором каждого из них. Для обработки только определенных участков карты следует использовать слой карты как переменную среды, а затем выбрать только соответствующие частичные объекты, прежде чем запускать обработку.

Даже если данные разделены на части, могут возникать ситуации, в которых объем входных данных, относящихся к одной и той же части, все равно будет превышать ограничения использования памяти инструмента геообработки. В этом случае инструменту не удастся обработать раздел, и он перейдет к обработке следующего. В сообщениях геообработки будет указываться, какие разделы не были обработаны. К классу объектов разделов будет добавлено поле STATUS; в это поле будет подставляться одно из указанных ниже значений, соответствующих статусу, полученному после обработки.

ПодсказкаПодсказка:

Если необходимо сохранить состояние обработки, указанное в поле STATUS, то перед запуском следующего инструмента обработки разделов добавьте к этим данным новое поле и вычислите значения поля, эквивалентные полю STATUS.

Связанные темы

6/5/2014