在GA的rest页面查看工具,可以看到runpythonscript的入口。
这个工具主要的目的有:
- 串联处理的中间数据不用保存到本地,节省了数据保存的时间,提高了工具效率。
有的小伙伴已经使用过arcgispythonapi调用GA,但是使用runpythonscript写Python代码与前者不太一致,但是想要入门也不难,我们一起来看下。
arcgispytonapi可以运行在Pro中或者以独立脚本执行,但是runpythonscript的代码块目前只能在这个固定的位置执行。
我们分别从数据源,调用工具处理以及保存三个角度考虑。
1.数据源主要是bigdatafileshare和要素服务,不管哪种数据源,都需要转换成为dataframe格式,如此spark才能读取,示例:
#找到大数据文件共享路径
sensor_data = "https://host.domain.com/arcgis ... ot%3B
# 将大数据文件共享加载成为一个dataframe
sensor_data_df = spark.read.format("webgis").load(sensor_data)
或者
#找到待分析的服务图层
url = "https://services.arcgis.com/P3 ... ot%3B
# 将图层加载成为一个dataframe
USA_HistoricSites = spark.read.format("webgis").load(url)
2.读取到数据源后,在runpythonscript中调用GA的广义线性回归工具,示例:
results = geoanalytics.generalized_linear_regression(input_layer, dependent_variable='landarea', explanatory_variables='constarea', regression_family='Continuous', generate_coefficient_table = False)
3 经过GA处理之后的结果写出成为图层,继续以广义线性回归为例:
#这个工具的结果是字典形式
out_put_name = results['output']
#将结果保存成webgis的模式
out_put_name.write.format("webgis").save("your result name")
在runpythonscript中使用GA的广义线性回归的完整示例:
input_layer= spark.read.format("webgis").load("https://ggxl.esrichina.com/arc ... 6quot;)
results = geoanalytics.generalized_linear_regression(input_layer, dependent_variable='calls', explanatory_variables=['pop'], regression_family='Continuous', generate_coefficient_table = False)
out_put_name = results['output']
out_put_name.write.format("webgis").save("xl_test")
参考资料:
更多GA工具调用参考
https://developers.arcgis.com/rest/services-reference/using-geoanalytics-tools-in-pyspark.htm
如何将数据源转呈spark可读详细参考
https://developers.arcgis.com/rest/services-reference/using-webgis-layers-in-pyspark.htm
参考上述连接将GA处理结果保存。