矢量大数据(Geoanalytics Server)之run python script入门基础篇

1
分享 2020-04-24
在GA的rest页面查看工具,可以看到runpythonscript的入口。

这个工具主要的目的有:
 
  • 串联调用GA中的工具;

 
  • 利用pyspark包功能的能力;

 
  • 串联处理的中间数据不用保存到本地,节省了数据保存的时间,提高了工具效率。

 
有的小伙伴已经使用过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处理结果保存。
 

1 个评论

今天遇到一个用户的使用方式很有趣,我想在这里声明一下,目前我们想要直接调用runpythonscript的方式,只能将代码内容作为参数直接输入到runpythonscript的参数中,不能将.py脚本作为参数。
如果想要在独立py脚本中使用GA功能,需要使用arcgis api for python, 参考:https://developers.arcgis.com/python/api-reference/

要回复文章请先登录注册