Создать произвольно расположенные точки (Управление данными)

Краткая информация

Создает заданное количество случайных точечных объектов. Произвольно расположенные точки могут быть созданы в окне экстента, внутри полигональных объектов, на точечных объектах или вдоль линейных объектов.

Более подробно о том, как работает инструмент Создать произвольно расположенные точки (Create Random Points)

Использование

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

  • Параметр Число точек можно указать как количество или как числовое поле в Ограничивающем классе пространственных объектов, содержащем значения количества случайных точек, которые требуется разместить в каждом пространственном объекте. Опция поля используется только для ограничивающих полигональных или линейных объектов. Если число точек используется как число, каждый пространственный объект в ограничивающем классе объектов будет иметь количество случайных точек, созданные внутри или вдоль его границы.

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

  • Cистема координат выходного класса пространственных объектов будет системой координат

    • Ограничивающий класс пространственных объектов, если указан
    • Фрейм данных карты, если задан ограничивающий экстент, использующий слой карты или путь к классу пространственных объектов
    • Класс пространственных объектов, если в Python задан ограничивающий экстент использующий путь к классу пространственных объектов
    • Выходная система координат (Output Coordinate System) среды геообработки, если задана (и если замещает все остальные поведения описанные выше)
    • Неизвестен, если не применяется ничего из вышеперечисленного

  • Чтобы присвоить случайные значения для произвольно размещенных точек, во-первых, сгенерируйте случайные точки с помощью этого инструмента. Во-вторых, используйте инструмент Добавить поле для создания нового числового поля в классе произвольно расположенных точек. Предлагаемые типы полей: длинное целое или с плавающей точкой В-третьих, используйте инструмент Вычислить поле, чтобы добавить случайные значения в пустое поле класса произвольно расположенных точек. Для получения случайного целого числа между a и b (включительно), используйте выражение Python random.randint(a,b). Для получения случайного числа с плавающей точкой между a и b (не включая пограничные значения), воспользуйтесь выражением Python random.uniform(a,b). В блоке кода, импортируйте модуль случайных чисел, используя выражение import random.

  • Параметр Ограничивающий экстент (Constraining Extent) можно ввести как набор минимальных и максимальных значений координат x и y или равных экстенту векторного слоя или класса пространственных объектов.

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

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

  • Параметр Минимальное допустимое расстояние (Minimum Allowed Distance) можно указать как линейную единицу или поле из ограничивающих объектов, содержащих числовые значения. Это значение будет определять минимально допустимое расстояние между произвольно расположенными точками внутри каждого входного объекта. Опция поля используется только для ограничивающих полигональных или линейных объектов. Произвольно расположенные точки могут находиться в пределах минимального допустимого расстояния, если они были созданы внутри или на границе различных ограничивающих частей объектов.

  • Использование точечных объектов в качестве класса ограничивающих объектов создает произвольное подмножество ограничивающих точечных объектов. Новые точечные местоположения не создаются.

  • Нецелочисленные (целые) положительные значения параметров Число точек (Number of Points) и Минимально допустимое расстояние (Minimum Allowed Distance) будут округлены до ближайшего целого числа. Нечисловые и отрицательные значения будут установлены на 0.

Параметры

ПодписьОписаниеТип данных
Выходное местоположение

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

Feature Dataset;Workspace
Выходной класс точечных объектов

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

String
Ограничивающий класс пространственных объектов
(Дополнительный)

Произвольно расположенные точки буду созданы внутри или вдоль объектов в этом классе пространственных объектов. Ограничивающий класс пространственных объектов может быть точечным, мультиточечным, линейным или полигональным. Точки будут случайным образом размещены внутри полигональных объектов, вдоль линейных объектов или в местах расположения точечных объектов. В каждом объекте этого класса пространственных объектов будет создано определенное количество точек (например, если вы указываете 100 точек, а в ограничивающем классе объектов содержится 5 объектов, то в каждом объекте будет создано по 100 случайных точек – в общей сумме 500 точек).

Feature Layer
Ограничивающий экстент
(Дополнительный)

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

  • Текущий экстент отображения Вид карты — Экстент будет основан на активной карте или сцене. Эта опция доступна только при наличии активной карты.
  • Нарисовать экстент Закончить прямым углом - экстент будет основан прямоугольнике, нарисованном на карте или сцене. Эта опция создает класс пространственных объектов в базе геоданных проекта и добавляет слой на карту. Класс объектов будет иметь ту же систему координат, что и карта.
    Примечание:

    Данная опция не доступна в диалоговом окне Параметры среды. Он доступен только из параметра инструмента, с экстентом в качестве типа данных, или на вкладке Среды диалогового окна инструмента.

    Примечание:

    Если включена опция Включать и отключать редактирование на вкладке Редактирование, вы должны включить редактирование на вкладке ленты Редактирование, чтобы нарисовать экстент.

  • Экстент слоя Layer — Экстент будет основан на активном слое карты. Используйте раскрывающийся список, чтобы выбрать доступный слой, или используйте опцию Экстент данных во всех слоях, чтобы получить объединенный экстент всех активных слоев карты, за исключением базовой карты. Эта опция доступна только при наличии активной карты со слоями.

    У каждого слоя карте есть следующие опции:

    • Все объекты Выбрать все - экстент всех объектов слоя.
    • Выбранные объектыArea from Selected Features - экстент всех выбранных объектов слоя.
    • Отображаемые объекты Extent Indicator - экстент всех отображаемых объектов слоя.
      Примечание:

      Экстенты опций Выбранные объекты Area from Selected Features и Отображаемые объекты Extent Indicator доступны только для векторных слоев.

  • Обзор Обзор — Экстент будет основан на существующем наборе данных.
  • Буфер обмена Вставить - экстент может быть скопирован в буфер обмена и вставлен из него.
    • Копировать экстент Копировать - копирует координаты экстента и систему координат в буфер обмена.
    • Использовать Вставить экстент Вставить - вставляет координаты экстента и, дополнительно, систему координат из буфера обмена. Если значения буфера обмена не содержат систему координат, экстент будет использовать систему координат карты.
    Примечание:

    Координаты экстента копируются в буфер обмена и вставляются из него с использованием того же форматирования и порядка, что и для объекта ArcPy Extent: x-min, y-min, x-max, y-max и пространственная привязка.

  • Сбросить экстент Сбросить — Экстент будет сброшен до значения по умолчанию.
  • Координаты, введенные вручную – Координаты должны быть числовыми значениями и находиться в системе координат активной карты.
    Внимание:

    На карте могут использоваться единицы отображения, отличные от введенных координат. Использование направления по сторонам света (N, S, E, W) не поддерживается. Используйте знак отрицательного значения для координат юга и запада.

Extent; Feature Layer; Raster Layer
Число точек [значение или поле]
(Дополнительный)

Количество произвольно расположенных точек, которые будут созданы.

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

Field; Long
Минимально допустимое расстояние [значение или поле]
(Дополнительный)

Кратчайшее допустимое расстояние между любыми двумя случайно расположенными точками. Если задано значение «1 метр», все случайные точки будут дальше, чем на 1 метр, отстоять от ближайшей точки.

Field; Linear Unit
Построить выходные данные Мультиточки
(Дополнительный)

Определяет, будет ли выходной класс объектов составным или состоящим из одной части объектом.

  • Отключено — результатом будет геометрия точечного типа (каждая точка является отдельным объектом). Используется по умолчанию.
  • Отмечено: результатом будет геометрия мультиточечного типа (все точки: единый объект).
Boolean
Максимальное количество точек на один объект-мультиточку
(Дополнительный)

Если отмечена опция Построить выходные данные мультиточки, укажите число произвольно расположенных точек, которые должны быть размещены в каждом мультиточечном объекте.

Long

Производные выходные данные

ПодписьОписаниеТип данных
Выходной класс пространственных объектов

Выходной класс объектов случайных точек.

Feature Class

arcpy.management.CreateRandomPoints(out_path, out_name, {constraining_feature_class}, {constraining_extent}, {number_of_points_or_field}, {minimum_allowed_distance}, {create_multipoint_output}, {multipoint_size})
ИмяОписаниеТип данных
out_path

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

Feature Dataset;Workspace
out_name

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

String
constraining_feature_class
(Дополнительный)

Произвольно расположенные точки буду созданы внутри или вдоль объектов в этом классе пространственных объектов. Ограничивающий класс пространственных объектов может быть точечным, мультиточечным, линейным или полигональным. Точки будут случайным образом размещены внутри полигональных объектов, вдоль линейных объектов или в местах расположения точечных объектов. В каждом объекте этого класса пространственных объектов будет создано определенное количество точек (например, если вы указываете 100 точек, а в ограничивающем классе объектов содержится 5 объектов, то в каждом объекте будет создано по 100 случайных точек – в общей сумме 500 точек).

Feature Layer
constraining_extent
(Дополнительный)

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

  • MAXOF – Будет использоваться максимальный экстент всех входных данных.
  • MINOF – Будет использоваться минимальная область, которая является общей для всех входных данных.
  • DISPLAY — Экстент равен видимому отображению.
  • Имя слоя - будет использоваться тот же экстент, что и в указанном слое.
  • Объект Extent — будет использоваться экстент указанного объекта.
  • Строка координат, разделенных пробелами – будет использоваться экстент из заданной строки. Координаты должны быть выражены в таком порядке: x-min, y-min, x-max, y-max.
Extent; Feature Layer; Raster Layer
number_of_points_or_field
(Дополнительный)

Количество произвольно расположенных точек, которые будут созданы.

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

Field; Long
minimum_allowed_distance
(Дополнительный)

Кратчайшее допустимое расстояние между любыми двумя случайно расположенными точками. Если задано значение «1 метр», все случайные точки будут дальше, чем на 1 метр, отстоять от ближайшей точки.

Field; Linear Unit
create_multipoint_output
(Дополнительный)

Определяет, будет ли выходной класс объектов составным или состоящим из одной части объектом.

  • POINTРезультатом будет геометрия точечного типа (каждая точка является отдельным объектом). Используется по умолчанию.
  • MULTIPOINTРезультатом будет геометрия мультиточечного типа (все точки – единый объект).
Boolean
multipoint_size
(Дополнительный)

Если create_multipoint_output задано как MULTIPOINT, укажите число произвольно расположенных точек, которые должны быть размещены в каждом мультиточечном объекте. Значение по умолчанию равно 10.

Long

Производные выходные данные

ИмяОписаниеТип данных
out_feature_class

Выходной класс объектов случайных точек.

Feature Class

Пример кода

CreateRandomPoints, пример 1 (окно Python)

Следующий скрипт окна Python показывает, как использовать инструмент CreateRandomPoints в режиме прямого запуска.

import arcpy
arcpy.management.CreateRandomPoints("c:/data/project", "samplepoints", 
                                    "c:/data/studyarea.shp", "", 500, "", 
                                    "POINT")
CreateRandomPoints, пример 2 (автономный скрипт)

На следующем автономном скрипте Python демонстрируется, как создавать произвольно расположенные точки со случайными значениями.

# Name: RandomPointsRandomValues.py
# Purpose: create random points with random values

# Import system modules
import arcpy

# Create random points in the features of a constraining feature class
# Number of points for each feature determined by the value in the field 
# specified
outGDB = "C:/data/county.gdb"
outName = "randpeople"
conFC = "C:/data/county.gdb/blocks"
numField = "POP2000"
arcpy.management.CreateRandomPoints(outGDB, outName, conFC, "", numField)

# set workspace
arcpy.env.workspace = "C:/data/county.gdb"

# Create fields for random values
fieldInt = "fieldInt"
fieldFlt = "fieldFlt"
arcpy.management.AddField(outName, fieldInt, "LONG")  # add long integer field
arcpy.AddField_management(outName, fieldFlt, "FLOAT") # add float field

# Calculate random values between 1-100 in the new fields
arcpy.management.CalculateField(outName, fieldInt, "random.randint(1,100)", 
                                "PYTHON", "import random")
arcpy.management.CalculateField(outName, fieldFlt, "random.uniform(1,100)", 
                                "PYTHON", "import random")
CreateRandomPoints, пример 3 (автономный скрипт)

Следующий автономный скрипт на Python демонстрирует несколько методов использования инструмента CreateRandomPoints.

# Name: RandomPoints.py
# Purpose: create several types of random points feature classes

# Import system modules
import arcpy

# set environment settings
arcpy.env.overwriteOutput = True

# Create random points in an extent defined simply by numbers
outFolder = "C:/data"
numExtent = "0 0 1000 1000"
numPoints = 100
outName = "myRandPnts.shp"
arcpy.env.outputCoordinateSystem = "Coordinate Systems/Projected Coordinate Systems/World/Miller Cylindrical (world).prj"
arcpy.management.CreateRandomPoints(outFolder, outName, "", numExtent, numPoints)
arcpy.env.outputCoordinateSystem = ""
 
# Create random points in an extent defined by another feature class
outName = "testpoints.shp"
fcExtent = "C:/data/studyarea.shp"
arcpy.management.CreateRandomPoints(outFolder, outName, "", fcExtent, numPoints)
 
# Create random points in the features of a constraining feature class
# Number of points for each feature determined by the value in the field specified
outGDB = "C:/data/county.gdb"
outName = "randpeople"
conFC = "C:/data/county.gdb/blocks"
numField = "POP2000"
arcpy.management.CreateRandomPoints(outGDB, outName, conFC, "", numField)

# Create random points in the features of a constraining 
# Feature class with a minimum allowed distance
outName = "constparcelpnts"
conFC = "C:/data/county.gdb/parcels"
numPoints = 10
minDistance = "5 Feet"
arcpy.management.CreateRandomPoints(outGDB, outName, conFC, "", numPoints, 
                                    minDistance) 

# Create random points with a multipoint output
outName = "randomMPs"
fcExtent = "C:/data/county.gdb/county"
numPoints = 100
numMP = 10
arcpy.management.CreateRandomPoints(outGDB, outName, "", fcExtent, numPoints, 
                                    "", "MULTIPOINT", numMP)

Связанные разделы