标注 | 说明 | 数据类型 |
输入点要素 | 点要素表示已知发生感兴趣现象的位置。 | Feature Layer |
包含背景点 (可选) | 指定输入点要素是否包含背景点。 如果输入点不包含背景点,该工具将使用解释训练栅格中的像元生成背景点。 该工具使用背景点对未知位置的景观特征进行建模,并将它们与已知存在位置的景观特征进行比较。 因此,可以将背景点视为研究区域。 通常情况下,这些是未知感兴趣现象存在的位置。 然而,如果任何关于背景点的信息是已知的,则可以使用存在与背景的相对权重参数来指示此内容。
| Boolean |
存在指示器字段 (可选) | 来自输入点要素的字段,其中包含指示每个点为存在 (1) 或背景 (0) 的二进制值。 该字段必须为数值型。 | Field |
解释训练变量 (可选) | 表示解释变量的字段列表,这些变量将有助于预测存在概率。 可以指定每个变量是分类变量还是数值变量。 选中代表类或类别(例如土地覆被)的每个变量的分类复选框。 | Value Table |
解释训练距离要素 (可选) | 将用于自动创建解释变量的要素图层或要素类列表,这些解释变量表示从输入点要素到最近提供的距离要素的距离。 如果输入解释训练距离要素为面要素或线要素,则距离属性将计算为最近线段和点之间的距离。 | Feature Layer |
解释训练栅格 (可选) | 将用于在模型中自动创建解释训练变量的栅格列表,其值是从栅格中提取的。 对于输入点要素中的每个要素(存在点和背景点),将在此确切位置提取栅格像元的值。 提取连续栅格的栅格值时,将使用双线性栅格重采样。 从分类栅格中提取栅格值时,将使用最邻近分配法。 可以指定每个栅格值是分类变量还是数值变量。 选中代表类或类别(例如土地覆被)的每个栅格的分类复选框。 | Value Table |
解释变量扩展(基函数) (可选) | 指定将用于变换提供的解释变量以在模型中使用的基函数。 如果选择了多个基函数,该工具将生成多个变换后的变量并尝试在模型中使用它们。
| String |
节数 (可选) | 铰链和阈值解释变量扩展将使用的节数。 该值控制创建的阈值数量,并将使用每个阈值创建多个解释变量扩展。 该值必须介于 2 到 50 之间。 默认值为 10。 | Long |
研究区域 (可选) | 指定将用于定义当输入点要素不包含背景点时可能存在的位置的研究区域类型。
| String |
研究区域面 (可选) | 包含定义自定义研究区域的面要素类。 输入点要素必须位于面要素覆盖的自定义研究区域内。 一个研究区域可以由多个面组成。 | Feature Layer |
应用空间细化 (可选) | 指定在训练模型之前是否将空间细化应用于存在点和背景点。 空间细化通过移除点并确保剩余点具有最小最近邻距离(在最小最近邻参数中设置)来帮助减少采样偏差。 空间细化也适用于背景点,无论它们是在输入点要素中提供还是由工具生成。
| Boolean |
最小最近邻距离 (可选) | 应用空间细化时任何两个存在点或任何两个背景点之间的最小距离。 | Linear Unit |
细化迭代次数 (可选) | 将用于寻找最佳空间细化解决方案的运行次数,力求在保持尽可能多的存在点和背景点的同时,确保任何两个存在点或两个背景点之间的距离均不在指定的最小最近邻距离参数值内。 最少可能是 1 次迭代,最多可能是 50 次迭代。 默认值为 10。 此参数仅适用于应用于输入点要素中的存在点和背景点的空间细化。 应用于从栅格单元生成的背景点的空间细化通过将栅格单元重新采样到指定的最小最近距离参数值来进行空间细化,而无需迭代以获得最佳解决方案。 | Long |
存在与背景的相对权重 (可选) | 一个介于 1 和 100 之间的值,用于指定存在点与背景点的相对信息权重。 默认值为 100。 较高的值表明存在点是主要的信息来源;背景点是否代表存在或缺失是未知的,背景点在模型中的权重较低。 较低的值表示背景点也提供可与存在点结合使用的有价值的信息;背景点代表缺失的可信度更高,它们的信息可以在模型中用作缺失位置。 | Long |
存在概率变换(链接函数) (可选) | 指定将模型的无界输出转换为 0 到 1 之间的数字的函数。 该值可以解释为该位置的存在概率。 每个选项将相同的连续值转换为不同的概率。
| String |
存在概率中断值 (可选) | 中断值介于 0.01 和 0.99 之间,用于确定哪些概率与结果分类中的存在相对应。 中断值用于使用训练数据和已知存在点帮助评估模型的性能。 在地理处理消息和输出训练要素中提供分类诊断信息。 | Double |
输出训练要素 (可选) | 将包含模型训练中使用的所有要素和解释变量的输出要素类。 | Feature Class |
输出训练栅格 (可选) | 具有像元值的输出栅格,使用所选链接函数指示存在概率。 默认像元大小为解释训练栅格中像元大小的最大值。 仅当输入点要素不包含背景点时,才能创建输出训练栅格。 | Raster Dataset |
输出响应曲线表 (可选) | 输出表将包含来自训练模型的诊断,这些诊断表明在考虑模型中所有其他解释变量的平均影响的情况下,每个解释变量对存在概率的影响。 该表将有最多两个部分依赖性图的派生图表:一组连续变量的折线图和一组分类变量的条形图。 | Table |
输出灵敏度表 (可选) | 当概率存在中断值从 0 变为 1 时,输出表将包含训练模型准确性的诊断信息。 | Table |
输入预测要素 (可选) | 表示将进行预测的位置的要素类。 要素类必须包含从输入点要素中使用的任何提供的解释变量字段。 使用空间细化时,可以使用原始输入点要素作为输入预测要素来接收对整个数据集的预测。 | Feature Layer |
输出预测要素 (可选) | 输出要素类将包含应用于输入预测要素的预测模型的结果。 | Feature Class |
输出预测栅格 (可选) | 包含匹配解释栅格的每个像元的预测结果的输出栅格。 默认像元大小为解释训练栅格中像元大小的最大值。 | Raster Dataset |
匹配解释变量 (可选) | 输入点要素和输入预测要素的匹配解释变量字段。 | Value Table |
匹配距离要素 (可选) |
用于训练和预测的匹配距离要素。 | Value Table |
匹配解释栅格 (可选) | 用于训练和预测的匹配栅格。 | Value Table |
允许数据范围之外的预测 (可选) | 指定当解释变量值超出训练中使用的值范围时,预测是否允许外推。
| Boolean |
重采样方案 (可选) | 指定将用于执行预测模型的交叉验证的方法。 交叉验证会在模型训练期间排除一部分数据,并在模型训练后使用该数据来测试模型的性能。
| String |
组数 (可选) | 将用于随机重采样方案的交叉验证的组数。 输出训练要素中的字段指示每个点分配到的组。 默认值为 3。 最少 2 组,最多 10 组。 | Long |
输出已训练模型文件 (可选) | 将保存训练后模型的输出模型文件,稍后可用于预测。 | File |
摘要
使用最大熵方法 (MaxEnt) 对已知存在位置和解释变量的现象的存在进行建模。 该工具提供包含存在概率的输出要素和栅格,可应用于仅存在已知和缺失未知的问题。
插图
使用情况
该工具使用三个主要输入来创建存在预测模型:已知存在位置、可能存在的研究区域和解释变量。
- 输入点要素参数值用于指定感兴趣现象的已知存在位置。
- 研究区以背景点为特征。 背景点是分布在整个研究区域的位置,其中可能存在感兴趣的现象但未知。 这些可以由工具自动创建,也可以通过检查包含背景点参数手动包含在输入点要素中。
- 该工具接受栅格、字段和距离要素形式的解释变量。
包含背景点参数指定了该工具的两种运行方式:
- 取消选中 - 该工具将使用仅存在的点运行,并且仅接受来自栅格源的解释变量。
- 选中 - 该工具将使用存在点和背景点运行,并允许解释变量源包括栅格、输入点要素中的字段和距离要素。
使用栅格作为工具的输入或输出需要 ArcGIS Spatial Analyst extension 许可。
输出训练模型文件参数可用于将训练模型结果保存为可重复使用的文件。 使用空间统计模型文件预测工具可用于使用模型文件预测新要素。
该工具需要在输入点要素中至少有两个存在点才能创建模型。 如果输入要素包含背景点,该工具还需要至少两个背景点来创建模型。
未选中包含背景点参数时,解释训练距离要素参数将处于非活动状态。 要将到要素的距离作为仅存在数据的解释变量,可以使用距离累积工具计算距离栅格,并且可以将距离栅格包括在解释训练栅格参数中。
解释训练栅格参数值的空间分辨率在以下方面很重要:
- 像元大小对处理时间有显著影响。 栅格分辨率越高,则处理时间越长。
- 当使用仅存在数据(未选中包含背景点参数)时,该工具将使用栅格的像元质心来生成背景点。 背景点与存在点的比例会影响模型;建议考虑栅格的像元大小并使用输出训练要素参数调查生成的背景点,以确保研究区域的假设适合您的问题。
注:
重采样工具可用于降低解释训练栅格的空间分辨率。
定义的研究区域,无论是来自研究区域参数还是来自包含背景点的输入点要素的位置,都会将构成模型结果。 使用的范围将决定哪些栅格单元用作背景点。 这建立了与存在条件进行比较的环境条件并建立了相对发生率,并且会影响预测结果。
使用存在与背景的相对权重参数来指定背景点的含义。 当背景点表示存在未知的位置时,将使用值 100。 当背景点表示观测到缺失的位置时,将使用值 1。
- 该值将影响模型的运行方式和工具的结果预测。 当该值接近 100 时,模型对每个错误分类的存在点的罚分是每个错误分类的背景点的 100 倍(假设背景的正确分类是缺失),并将应用传统的 MaxEnt 方法。 当值为 1 时,模型将平等对每个存在点和背景点进行罚分,类似于逻辑回归。
- 使用仅存在模式(未选中包含背景点参数)时应谨慎使用值 1,因为该工具生成的背景点将被视为缺失,而权重与提供的存在点相同。
大多数存在数据固有的采样偏差会影响分析结果。 空间细化参数可用于帮助降低这种影响。 然而,虽然空间细化是减少采样偏差影响的有用补救措施,但仍建议使用结构化调查的数据进一步减少采样偏差的影响。
分类诊断可从地理处理消息和分类结果百分比图表中获得,此图表随输出训练要素参数值的结果图层一起提供。 该图表显示了观测的和预测的分类的比较,可用于评估模型在已知存在点上预测性能的能力。 例如,您可以通过关注训练输入点要素中错误分类的存在点部分来评估模型预测存在的能力。 在背景点的存在预测很重要的用例中,还可以使用图表来查看和选择预测为存在的背景点。
可通过两种方式使用此工具: 可以专注于训练和评估候选模型,也可以专注于预测新数据集的存在概率。
- 训练和评估候选模型 - 在不指定输出的情况下运行该工具以评估地理处理消息中包含的模型诊断。 诊断结果满足要求后,指定输出训练要素参数值并使用分类诊断图表进一步评估训练数据的预测性能。 输出灵敏度表和输出响应曲线表参数值中包含的图表是训练数据的诊断指标,在您调整和找到合适的模型时也很有用。
- 预测 - 在预测输出参数类别中指定参数 以将模型应用于不属于训练数据的新位置。 输入预测要素和生成的输出预测要素参数值表示需要预测的新点位置。 除了点要素之外,还可以通过指定输出预测栅格参数值来创建预测表面。 预测要素和预测栅格必须与训练数据(栅格、字段或距离要素)中使用的相同形式的匹配解释变量结合使用。
空间细化可能导致训练数据不包括所有输入点要素。 要在使用空间细化时在所有点上测试模型的性能,需要为输入点要素和输入预测要素参数提供相同的要素类。
该工具基于输出路径中使用的要素数据集的坐标系来指定输出坐标系。 否则,该工具将使用在输出坐标系环境中指定的坐标系。 如果您未指定要素数据集或环境设置,该工具将对每个输出使用以下方法:
- 对于输出训练要素和输出训练栅格参数值,该工具将使用输入点要素参数值的坐标系。
- 对于输出预测要素参数值,该工具将使用输入预测要素参数值的坐标系。
- 对于输出预测栅格参数值,该工具将使用输出预测要素参数值定义的坐标系。 如果未指定输出预测要素,该工具将使用匹配解释栅格参数中提供的第一个栅格的坐标系。
解释变量扩展(基函数)参数选项具有限制。 平滑步长(铰链)和离散步长(阈值)选项是互斥选项;当一个被选中时,将无法选中另一个。 当解释变量被指定为分类时,将只使用原始(线性)选项。
当重采样方案参数设置为随机时,该工具将对数据进行分组并验证模型在分组数据子集上的性能。 每个训练组都受制于更广泛模型的相同数据要求:至少需要两个存在点和两个背景点。 如果在 10 次尝试后仍未满足这些要求,该工具将停止尝试交叉验证并警告无法进行交叉验证。
参数
arcpy.stats.PresenceOnlyPrediction(input_point_features, {contains_background}, {presence_indicator_field}, {explanatory_variables}, {distance_features}, {explanatory_rasters}, {basis_expansion_functions}, {number_knots}, {study_area_type}, {study_area_polygon}, {spatial_thinning}, {thinning_distance_band}, {number_of_iterations}, {relative_weight}, {link_function}, {presence_probability_cutoff}, {output_trained_features}, {output_trained_raster}, {output_response_curve_table}, {output_sensitivity_table}, {features_to_predict}, {output_pred_features}, {output_pred_raster}, {explanatory_variable_matching}, {explanatory_distance_matching}, {explanatory_rasters_matching}, {allow_predictions_outside_of_data_ranges}, {resampling_scheme}, {number_of_groups}, {output_trained_model})
名称 | 说明 | 数据类型 |
input_point_features | 点要素表示已知发生感兴趣现象的位置。 | Feature Layer |
contains_background (可选) | 指定输入点要素是否包含背景点。 如果输入点不包含背景点,该工具将使用解释训练栅格中的像元生成背景点。 该工具使用背景点对未知位置的景观特征进行建模,并将它们与已知存在位置的景观特征进行比较。 因此,可以将背景点视为研究区域。 通常情况下,这些是未知感兴趣现象存在的位置。 然而,如果任何关于背景点的信息是已知的,则可以使用 relative_weight 参数来指示此内容。
| Boolean |
presence_indicator_field (可选) | 来自输入点要素的字段,其中包含指示每个点为存在 (1) 或背景 (0) 的二进制值。 该字段必须为数值型。 | Field |
explanatory_variables [[Variable, Categorical],...] (可选) | 表示解释变量的字段列表,这些变量将有助于预测存在概率。 可以指定每个变量是分类变量还是数值变量。 为代表类或类别(例如土地覆被)的每个变量指定 CATEGORICAL 选项。 | Value Table |
distance_features [distance_features,...] (可选) | 将用于自动创建解释变量的要素图层或要素类列表,这些解释变量表示从输入点要素到最近提供的距离要素的距离。 如果输入解释训练距离要素为面要素或线要素,则距离属性将计算为最近线段和点之间的距离。 | Feature Layer |
explanatory_rasters [[Variable, Categorical],...] (可选) | 将用于在模型中自动创建解释训练变量的栅格列表,其值是从栅格中提取的。 对于输入点要素中的每个要素(存在点和背景点),将在此确切位置提取栅格像元的值。 提取连续栅格的栅格值时,将使用双线性栅格重采样。 从分类栅格中提取栅格值时,将使用最邻近分配法。 可以指定每个栅格值是分类变量还是数值变量。 为代表类或类别(例如土地覆被)的每个栅格指定 CATEGORICAL 选项。 | Value Table |
basis_expansion_functions [basis_expansion_functions,...] (可选) | 指定将用于变换提供的解释变量以在模型中使用的基函数。 如果选择了多个基函数,该工具将生成多个变换后的变量并尝试在模型中使用它们。
| String |
number_knots (可选) | 铰链和阈值解释变量扩展将使用的节数。 该值控制创建的阈值数量,并将使用每个阈值创建多个解释变量扩展。 该值必须介于 2 到 50 之间。 默认值为 10。 | Long |
study_area_type (可选) | 指定将用于定义当输入点要素不包含背景点时可能存在的位置的研究区域类型。
| String |
study_area_polygon (可选) | 包含定义自定义研究区域的面要素类。 输入点要素必须位于面要素覆盖的自定义研究区域内。 一个研究区域可以由多个面组成。 | Feature Layer |
spatial_thinning (可选) | 指定在训练模型之前是否将空间细化应用于存在点和背景点。 空间细化通过移除点并确保剩余点具有最小最近邻距离(在 thinning_distance_band 参数中设置)来帮助减少采样偏差。 空间细化也适用于背景点,无论它们是在输入点要素中提供还是由工具生成。
| Boolean |
thinning_distance_band (可选) | 应用空间细化时任何两个存在点或任何两个背景点之间的最小距离。 | Linear Unit |
number_of_iterations (可选) | 将用于寻找最佳空间细化解决方案的运行次数,力求在保持尽可能多的存在点和背景点的同时,确保任何两个存在点或两个背景点之间的距离均不在指定的 thinning_distance_band 参数值内。 最少可能是 1 次迭代,最多可能是 50 次迭代。 默认值为 10。 此参数仅适用于应用于输入点要素中的存在点和背景点的空间细化。 应用于从栅格单元生成的背景点的空间细化通过将栅格单元重新采样到指定的 thinning_distance_band 参数值来进行空间细化,而无需迭代以获得最佳解决方案。 | Long |
relative_weight (可选) | 一个介于 1 和 100 之间的值,用于指定存在点与背景点的相对信息权重。 默认值为 100。 较高的值表明存在点是主要的信息来源;背景点是否代表存在或缺失是未知的,背景点在模型中的权重较低。 较低的值表示背景点也提供可与存在点结合使用的有价值的信息;背景点代表缺失的可信度更高,它们的信息可以在模型中用作缺失位置。 | Long |
link_function (可选) | 指定将模型的无界输出转换为 0 到 1 之间的数字的函数。 该值可以解释为该位置的存在概率。 每个选项将相同的连续值转换为不同的概率。
| String |
presence_probability_cutoff (可选) | 中断值介于 0.01 和 0.99 之间,用于确定哪些概率与结果分类中的存在相对应。 中断值用于使用训练数据和已知存在点帮助评估模型的性能。 在地理处理消息和输出训练要素中提供分类诊断信息。 | Double |
output_trained_features (可选) | 将包含模型训练中使用的所有要素和解释变量的输出要素类。 | Feature Class |
output_trained_raster (可选) | 具有像元值的输出栅格,使用所选链接函数指示存在概率。 默认像元大小为解释训练栅格中像元大小的最大值。 仅当输入点要素不包含背景点时,才能创建输出训练栅格。 | Raster Dataset |
output_response_curve_table (可选) | 输出表将包含来自训练模型的诊断,这些诊断表明在考虑模型中所有其他解释变量的平均影响的情况下,每个解释变量对存在概率的影响。 该表将有最多两个部分依赖性图的派生图表:一组连续变量的折线图和一组分类变量的条形图。 | Table |
output_sensitivity_table (可选) | 当概率存在中断值从 0 变为 1 时,输出表将包含训练模型准确性的诊断信息。 | Table |
features_to_predict (可选) | 表示将进行预测的位置的要素类。 要素类必须包含从输入点要素中使用的任何提供的解释变量字段。 使用空间细化时,可以使用原始输入点要素作为输入预测要素来接收对整个数据集的预测。 | Feature Layer |
output_pred_features (可选) | 输出要素类将包含应用于输入预测要素的预测模型的结果。 | Feature Class |
output_pred_raster (可选) | 包含匹配解释栅格的每个像元的预测结果的输出栅格。 默认像元大小为解释训练栅格中像元大小的最大值。 | Raster Dataset |
explanatory_variable_matching [[Prediction, Training],...] (可选) | 输入点要素和输入预测要素的匹配解释变量字段。 | Value Table |
explanatory_distance_matching [[Prediction, Training],...] (可选) |
用于训练和预测的匹配距离要素。 | Value Table |
explanatory_rasters_matching [[Prediction, Training],...] (可选) | 用于训练和预测的匹配栅格。 | Value Table |
allow_predictions_outside_of_data_ranges (可选) |
| Boolean |
resampling_scheme (可选) | 指定将用于执行预测模型的交叉验证的方法。 交叉验证会在模型训练期间排除一部分数据,并在模型训练后使用该数据来测试模型的性能。
| String |
number_of_groups (可选) | 将用于随机重采样方案的交叉验证的组数。 输出训练要素中的字段指示每个点分配到的组。 默认值为 3。 最少 2 组,最多 10 组。 | Long |
output_trained_model (可选) | 将保存训练后模型的输出模型文件,稍后可用于预测。 | File |
代码示例
以下 Python 脚本演示了如何使用 PresenceOnlyPrediction 函数。
# Import system modules
import arcpy
# Call Presence-only Prediction (MaxEnt)
arcpy.stats.PresenceOnlyPrediction(
input_point_features=r"C:\MyData.gdb\Presence_Points",
contains_background="PRESENCE_ONLY_POINTS",
presence_indicator_field=None,
explanatory_variables=None,
distance_features=None,
explanatory_rasters=[[r"C:\MyData.gdb\Elevation", "false"],
[r"C:\MyData.gdb\Canopy", "false"],
[r"C:\MyData.gdb\ClimacticWaterDeficit", "false"],
[r"C:\MyData.gdb\LandCoverClassification", "true"],
[r"C:\MyData.gdb\UpperSlope", "false"],
[r"C:\MyData.gdb\LowerSlope", "false"]],
basis_expansion_functions="LINEAR;QUADRATIC;PRODUCT;HINGE",
number_knots=10,
study_area_type="CONVEX_HULL",
study_area_polygon=None,
spatial_thinning="THINNING",
thinning_distance_band="500 Meters",
number_of_iterations=10
relative_weight=100
link_function="CLOGLOG"
presence_probability_cutoff=0.5
output_trained_features=r"C:\MyData.gdb\Out_Trained_Features"
output_trained_raster=r"C:\MyData.gdb\Out_Trained_Raster"
output_response_curve_table=r"C:\MyData.gdb\Out_Response_Curve_Table"
output_sensitivity_table=r"C:\MyData.gdb\Out_Sensitivity_Table"
features_to_predict=r"C:\MyData.gdb\In_Prediction_Features"
output_pred_features=r"C:\MyData.gdb\Out_Prediction_Features"
output_pred_raster=r"C:\MyData.gdb\Out_Prediction_Raster",
explanatory_variable_matching=None
explanatory_distance_matching=None
explanatory_rasters_matching=[[r"C:\MyData.gdb\Prediction_Elevation", "false"],
[r"C:\MyData.gdb\Prediction_Canopy", "false"],
[r"C:\MyData.gdb\Prediction_ClimacticWaterDeficit", "false"],
[r"C:\MyData.gdb\Prediction_LandCoverClassification", "true"],
[r"C:\MyData.gdb\Prediction_UpperSlope", "false"],
[r"C:\MyData.gdb\Prediction_LowerSlope", "false"]],
allow_predictions_outside_of_data_ranges="ALLOWED"
resampling_scheme="RANDOM"
number_of_groups=3)
以下 Python 脚本演示了如何使用 PresenceOnlyPrediction 函数。
# This example is a simple run of the tool using presence-only points and
# explanatory training rasters to train an initial model. No outputs are
# specified, as the intent is to interrogate geoprocessing messages to gain
# an initial sense of model performance.
# Import system modules
import arcpy
try:
# Set the workspace and overwrite properties
arcpy.env.workspace = r"C:\MyData.gdb"
arcpy.env.overwriteOutput = True
# Set the input point feature parameters
in_point_features = "presence_observations"
contains_background = "PRESENCE_ONLY_POINTS”
# Set the explanatory Training variables, using only explanatory rasters
# Note the categorical setting for the LandCoverClassification raster
explanatory_rasters = [["Elevation", "false"],
["Canopy", "false"],
["ClimacticWaterDeficit", "false"],
["LandCoverClassification", "true"],
["UpperSlope", "false"],
["LowerSlope", "false"]]
# Set basis functions, adding quadratic to use the square of each variable
basis_functions = "LINEAR;QUADRATIC"
number_knots = 10
# Set the study area
study_area_type = "CONVEX_HULL"
study_area_polygon = None
# Set cross-validation options
resampling_scheme = "RANDOM"
number_of_groups = 3
# Call the tool using the parameters defined above.
arcpy.stats.PresenceOnlyPrediction(
input_point_features=in_point_features,
contains_background=contains_background,
explanatory_rasters=explanatory_rasters,
basis_expansion_functions=basis_functions,
study_area_type=study_area_type,
resampling_scheme=resampling_scheme,
number_of_groups=number_of_groups)
以下 Python 脚本演示了如何使用 PresenceOnlyPrediction 函数。
# This example uses presence and background points and explanatory
# variables from rasters, fields, and distance features to train a
# model, using additional parameters to apply basis functions, use
# spatial thinning, perform cross-validation, and receive diagnostic
# training outputs.
# Import system modules
import arcpy
try:
# Set the workspace and overwrite properties
arcpy.env.workspace = r"C:\MyData.gdb"
arcpy.env.overwriteOutput = True
### MODEL INPUTS ###
# Set the input point feature parameters
in_point_features = "presence_observations"
contains_background = "PRESENCE_AND_BACKGROUND_POINTS
presence_indicator_field = "Presence"
# Set the explanatory Training variables
explanatory_fields = [["Survey_Region", "true"],
["Temperature", "false"],
["Humidity", "false"]]
explanatory_rasters = [["Elevation", "false"],
["Canopy", "false"],
["ClimacticWaterDeficit", "false"],
["LandCoverClassification", "true"],
["UpperSlope", "false"],
["LowerSlope", "false"]]
explanatory_dist_features = [["Streams", "false"],
["Lakes", "false"],
["Roads", "false"]]
### MODEL CONFIGURATION ###
# Set basis functions
basis_functions = "LINEAR;QUADRATIC;PRODUCT;HINGE"
number_knots = 10
# Set the study area
study_area_type = "CONVEX_HULL"
study_area_polygon = None
# Set spatial thinning
spatial_thinning = "THINNING"
min_nearest_neighbor_distance = "500 Meters"
number_of_iterations = 10
# Set the relative weight of presence to background and link function, using
# background points as observed absence
relative_weight = 1
link_function = "LOGISTIC"
# Set the presence probability cutoff
cutoff = 0.3
### MODEL OUTPUTS AND VALIDATION ###
# Set training outputs for model evaluation
out_trained_features = "Out_Trained_Features"
out_trained_raster = "Out_Trained_Raster"
out_response_curve_table = "Out_Response_Curves"
out_sensitivity_table = "Out_Sensitivity_Table"
# Set cross-validation options
resampling_scheme = "RANDOM"
number_of_groups = 3
# Call the tool using the parameters defined above.
arcpy.stats.PresenceOnlyPrediction(
input_point_features=in_point_features,
contains_background=contains_background,
explanatory_variables=explanatory_fields,
explanatory_rasters=explanatory_rasters,
distance_features=explanatory_dist_features,
basis_expansion_functions=basis_functions,
number_knots=number_knots,
study_area_type=study_area_type,
spatial_thinning=spatial_thinning,
thinning_distance_band=min_nearest_neighbor_distance,
number_of_iterations=number_of_iterations,
relative_weight=relative_weight,
link_function=link_function,
presence_probability_cutoff=cutoff,
output_trained_features=out_trained_features,
output_trained_raster=out_trained_raster,
output_response_curve_table=out_response_curve_table,
output_sensitivity_table=out_sensitivity_table,
resampling_scheme=resampling_scheme,
number_of_groups=number_of_groups)