Сводка
Создает указанное количество случайно расположенных точечных объектов. Произвольно расположенные точки могут быть созданы в окне экстента, внутри полигональных объектов, на точечных объектах или вдоль линейных объектов.
Более подробно о том, как работает инструмент Создать произвольно расположенные точки
Использование
Область, в которой будут созданы произвольно расположенные точки, можно определить либо с помощью ограничивающих полигональных, точечных или линейных объектов, либо с помощью окна ограничивающего экстента.
Параметр Число точек можно указать как количество или как числовое поле в Ограничивающем классе пространственных объектов, содержащем значения количества случайных точек, которые требуется разместить в каждом пространственном объекте. Опция поля является корректной только для полигональных и линейных ограничивающих объектов. Если число точек используется как число, каждый пространственный объект в ограничивающем классе объектов будет иметь количество случайных точек, созданные внутри или вдоль его границы.
Если вы используете ограничивающий класс объектов, имеющий несколько объектов, и хотите указать число создаваемых произвольно расположенных точек (а не число случайных точек, размещенных внутри каждого объекта), воспользуйтесь инструментом Слияние по атрибуту, чтобы класс состоял только из одного объекта, а затем воспользуйтесь этим слитым классом объектов в качестве ограничивающего.
Система координат выходного класса пространственных объектов будет системой координат
- Ограничивающий класс пространственных объектов, если указан
- Фрейм данных карты, если на карте задан ограничивающий экстент, использующий слой карты или путь к классу пространственных объектов
- Класс пространственных объектов, если в Python задан ограничивающий экстент использующий путь к классу пространственных объектов
- Выходная система координат среды геообработки, если задана (и если замещает все остальные поведения описанные выше)
- Неизвестен, если не применяется ничего из вышеперечисленного
Чтобы присвоить случайные значения произвольно расположенным точкам, сначала создайте произвольно расположенные точки с помощью этого инструмента. Во-вторых, используйте инструмент Добавить поле для создания нового числового поля в классе произвольно расположенных точек. Предлагаемый тип полей – длинное целое или с плавающей точкой. В-третьих, используйте инструмент Вычислить поле, чтобы добавить случайные значения в пустое поле класса произвольно расположенных точек. Для получения случайного целого числа между a и b (включительно), используйте выражение Python random.randint(a,b). Для получения случайного числа с плавающей точкой между a и b (не включая пограничные значения), воспользуйтесь выражением Python random.uniform(a,b). В блоке кода, импортируйте модуль случайных чисел, используя выражение import random.
Параметр Ограничивающий экстент можно ввести как набор минимальных и максимальных значений координат x и y или равных экстенту векторного слоя или класса пространственных объектов.
Если заданы значения как для Ограничивающего класса объектов, так и для Ограничивающего экстента, то будет использоваться значение Ограничивающего класса объектов, а значение Ограничивающего экстента будет игнорироваться.
Если больше не удается поместить произвольно расположенные точки в ограничивающую область, не нарушая минимальную допустимую спецификацию расстояния, количество случайных точек в ограничивающей области будет уменьшено до минимально возможного в рамках минимального допустимого расстояния.
Параметр Минимальное допустимое расстояние можно указать как линейную единицу или поле из ограничивающих объектов, содержащих числовые значения. Это значение будет определять минимальное допустимое расстояние между случайными точками в пределах каждого входного объекта. Опция поля является корректной только для полигональных и линейных ограничивающих объектов. Произвольно расположенные точки могут находиться в пределах минимального допустимого расстояния, если они были созданы внутри или на границе различных ограничивающих частей объектов.
Использование точечных объектов как ограничивающего класса пространственных объектов создаст случайный поднабор ограничивающих точечных объектов. Новые точечные местоположения не создаются.
Нецелочисленные (целые) положительные значения параметров Число точек и Минимально допустимое расстояние будут округлены до ближайшего целого числа. Нечисловые и отрицательные значения будут установлены на 0.
Синтаксис
CreateRandomPoints(out_path, out_name, {constraining_feature_class}, {constraining_extent}, {number_of_points_or_field}, {minimum_allowed_distance}, {create_multipoint_output}, {multipoint_size})
Parameter | Объяснение | Тип данных |
out_path | Местоположение или рабочая область, в которой будет создан класс пространственных объектов со случайными точками. Местоположение или рабочая область должны уже существовать. | Feature Dataset;Workspace |
out_name | Имя класса пространственных объектов со случайными точками, который будет создан. | String |
constraining_feature_class (Дополнительный) | Случайные точки будут созданы внутри или на границах пространственных объектов в этом классе пространственных объектов. Ограничивающий класс объектов может представлять собой точку, мультиточку, линию или полигон. Точки будут размещены в случайном порядке внутри полигональных объектов вместе с линейными объектами или в местах расположения точечных объектов. В каждом объекте этого класса пространственных объектов будет создано определенное количество точек (например, если вы указываете 100 точек, а в ограничивающем классе объектов содержится 5 объектов, то в каждом объекте будет создано по 100 случайных точек – в общей сумме 500 точек). | Feature Layer |
constraining_extent (Дополнительный) | Произвольно расположенные точки будут созданы внутри экстента. Ограничивающий экстент будет использоваться, только если не задан ограничивающий класс пространственных объектов. | Extent;Feature Layer;Raster Layer |
number_of_points_or_field (Дополнительный) | Количество произвольно расположенных точек, которые будут созданы. Количество точек может быть задано как длинное целое число или как поле из ограничивающих пространственных объектов, содержащих числовые значения для того, как много случайных точек будут размещены в пределах каждого объекта. Опция поля является корректной только для полигональных и линейных ограничивающих объектов. Если количество точек задано числом, для каждого пространственного объекта в ограничивающем классе пространственных объектов будет создано это количество произвольных точек, расположенных внутри его или на границах. | Field; Long |
minimum_allowed_distance (Дополнительный) | Наикратчайшее допустимое расстояние между любыми двумя произвольно размещенными точками. Если задано значение «1 метр», все случайные точки будут дальше, чем на 1 метр, отстоять от ближайшей точки. | Field; Linear Unit |
create_multipoint_output (Дополнительный) | Определяет, будет ли выходной класс объектов составным или состоящим из одной части объектом.
| Boolean |
multipoint_size (Дополнительный) | Если create_multipoint_output задано как MULTIPOINT, укажите число произвольно расположенных точек, которые должны быть размещены в каждом мультиточечном объекте. Значение по умолчанию равно 10. | Long |
Производные выходные данные
Name | Объяснение | Тип данных |
out_feature_class | Выходной класс объектов случайных точек. | Класс пространственных объектов |
Пример кода
Пример скрипта Python для использования инструмента CreateRandomPoints в режиме прямого запуска.
import arcpy
arcpy.CreateRandomPoints_management("c:/data/project", "samplepoints",
"c:/data/studyarea.shp", "", 500, "",
"POINT")
На следующем автономном скрипте 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.CreateRandomPoints_management(outGDB, outName, conFC, "", numField)
# set workspace
arcpy.env.workspace = "C:/data/county.gdb"
# Create fields for random values
fieldInt = "fieldInt"
fieldFlt = "fieldFlt"
arcpy.AddField_management(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.CalculateField_management(outName, fieldInt, "random.randint(1,100)",
"PYTHON", "import random")
arcpy.CalculateField_management(outName, fieldFlt, "random.uniform(1,100)",
"PYTHON", "import random")
В следующем автономном скрипте 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.CreateRandomPoints_management(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.CreateRandomPoints_management(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.CreateRandomPoints_management(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.CreateRandomPoints_management(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.CreateRandomPoints_management(outGDB, outName, "", fcExtent, numPoints,
"", "MULTIPOINT", numMP)
Environments
Информация о лицензиях
- Basic: Требуется Дополнительный модуль 3D Analyst или Spatial Analyst
- Standard: Требуется Дополнительный модуль 3D Analyst или Spatial Analyst
- Advanced: Да