本文简要介绍 python 语言中 arcgis.geoanalytics.manage_data.run_python_script
的用法。
用法:
arcgis.geoanalytics.manage_data.run_python_script(code, layers=None, gis=None, context=None, future=False, parameters=None, param_as_input=False)
返回:
来自提供的代码的消息字典。
run_python_script
方法在您的 ArcGIS GeoAnalytics Server 站点上执行 Python 脚本。在脚本中,您可以通过将多个GeoAnalytics 工具链接在一起来创建分析管道,而无需将中间结果写入数据存储。您还可以在脚本中使用其他 Python 函数,这些函数可以分布在您的 GeoAnalytics 服务器上。例如,假设您每周都会收到一个包含数十亿点特征的新车辆位置数据集。每次收到新数据集时,您都必须执行涉及多个GeoAnalytics 工具的相同工作流,以创建您在组织内共享的信息产品。此工作流创建了几个大型中间层,它们在您的数据存储中占用了大量空间。通过在 Python 中编写此工作流脚本并执行 Run Python Script 任务中的代码,您可以避免创建这些不必要的中间层,同时简化创建信息产品的步骤。
当您使用
run_python_script
时,Python 代码将在您的 GeoAnalytics 服务器上执行。该脚本在随GeoAnalytics Server 一起安装的 Python 3.6 环境中运行,所有控制台输出都作为作业消息返回。某些 Python 模块可在您的脚本中使用 Spark 2.2.0(为 GeoAnalytics 工具分发分析的计算平台)在您的 GeoAnalytics 服务器中的一台或多台机器的多个内核上执行代码。地理分析模块可用,并允许您在脚本中运行 GeoAnalytics 工具。使用 Run Python Script 时会自动导入此包。
要在 Run Python Script 任务中直接与 Spark 交互,请使用 pyspark 模块,该模块会在您运行任务时自动导入。 pyspark 模块是 Spark 的 Python API,它提供了一组分布式分析工具,用于数据管理、集群、回归等,可以在 Run Python Script 中调用并在 GeoAnalytics 服务器上运行。
使用 geoanalytics 和 pyspark 包时,大多数函数都会将分析结果作为 Spark DataFrame 返回到内存中。 Spark 数据帧可以写入数据存储或在脚本中使用。这允许将多个地理分析和 pyspark 工具链接在一起,同时仅将最终结果写入数据存储,从而无需创建任何中间结果层。
对于高级用户,SparkContext 的实例会自动实例化为 sc,并可在脚本中用于与 Spark 交互。这允许跨您的GeoAnalytics 服务器执行自定义分布式分析。
建议您使用集成开发环境 (IDE) 编写 Python 脚本,并将脚本文本复制到运行 Python 脚本工具中。这使得在运行脚本之前更容易识别语法错误和拼写错误。还建议您首先使用一小部分输入数据运行脚本,以验证没有逻辑错误或异常。为此,您可以使用说明数据集任务创建示例图层。
code
必需的字符串。将在GeoAnalytics 服务器上运行的 Python 脚本。这必须是作为字符串的完整脚本。
inputLayers 中提供的图层可以使用图层对象在脚本中访问。要了解更多信息,请参阅Reading and writing layers in pyspark。
GeoAnalytics 可以使用 geoanalytics 对象访问工具,该对象在脚本环境中自动实例化。要了解更多信息,请参阅Using GeoAnalytics Tools in Run Python Script。
有关示例脚本的集合,请参阅示例:使用 Run Python Script 任务编写自定义分析脚本.
layers
可选列表。要操作的
Feature Layers
列表。请参阅特征输入。gis
可选的
GIS
将在其上进行分析。context
可选字典。
run_python_script
工具不使用此参数。To control the output data store, use the “dataStore” option when writing DataFrames.
To set the processing or output spatial reference, use the project tool in the geoanalytics package.
To filter a layer when converting it to a DataFrame, use the “where” or “fields” option when loading the layer’s URL.
To limit the extent of a layer when converting it to a DataFrame, use the “extent” option when loading the layer’s URL.
future
可选布尔值。如果是
True
,将返回一个 future 对象,并且进程不会等待任务完成。默认为False
,表示等待结果。parameters
可选字典。将加载到给定代码中的全局级别变量。变量名称称为user_variables。
>>> parameters = {"param1": "example", "param2": 1, "val1": 2.0, "more_params": [False, True, None], "status": 4.0}
仅支持内置类型。
param_as_input
可选布尔值。如果
True,
,如果方法过去,则将添加user_variable。如果是False
,则该变量不会被赋予到方法中。例子:
# Usage Example: Execute calculate_density tool using run_python_script. def density(): def code(ss=None): import time if ss is None: ss = user_variables['ss'] res = geoanalytics.describe_dataset(input_layer=layers[0], extent_output=True, sample_size=ss) res.write.format('webgis').save('RunPythonScriptTest_{0}'.format(time.time())) run_python_script(code=code, layers=[lyr0], parameters={'ss' : 10000})
相关用法
- Python ArcGIS reverse_geocode用法及代码示例
- Python ArcGIS round_up用法及代码示例
- Python ArcGIS relation用法及代码示例
- Python ArcGIS reconstruct_tracks用法及代码示例
- Python ArcGIS round_down用法及代码示例
- Python ArcGIS power用法及代码示例
- Python ArcGIS APIKeyManager.get用法及代码示例
- Python ArcGIS KnowledgeGraph.named_object_type_delete用法及代码示例
- Python ArcGIS ContentManager.unshare_items用法及代码示例
- Python ArcGIS ImageryLayer.thumbnail用法及代码示例
- Python ArcGIS FormFieldElement用法及代码示例
- Python ArcGIS Geometry.true_centroid用法及代码示例
- Python ArcGIS Site.delete用法及代码示例
- Python ArcGIS GeoAccessor.bbox用法及代码示例
- Python arcgis.apps.hub.Initiative.update用法及代码示例
- Python ArcGIS generate_service_areas用法及代码示例
- Python ArcGIS build_overview用法及代码示例
- Python ArcGIS RunInterval用法及代码示例
- Python ArcGIS describe_dataset用法及代码示例
- Python ArcGIS acos用法及代码示例
- Python ArcGIS Item.publish用法及代码示例
- Python ArcGIS MapImageLayer.find用法及代码示例
- Python ArcGIS Group.get_members用法及代码示例
- Python ArcGIS Geometry.last_point用法及代码示例
- Python ArcGIS Worker用法及代码示例
注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 arcgis.geoanalytics.manage_data.run_python_script。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。