在JupyterHub for K8s的SuperMap iObjects Python简单教程,演示在JupyterHub的Notebook基本操作。
在Notebook中依次输入下面的内容,按shift+enter即可运行。
1、添加引用库
import iobjectspy as smo
from iobjectspy import (aggregate_points, Unit)
import os
import sys
2、准备数据目录
# 设置示例数据路径
example_data_dir = '/home/jovyan/data/smdata/'
# 设置结果输出路径
out_dir = os.path.join(example_data_dir, 'out')
print("Output dir: ", out_dir)
if not os.path.exists(out_dir):
os.makedirs(out_dir)
print("Makedir: ", out_dir)
else:
print("Existed dir: ", out_dir)
Output dir: /home/jovyan/data/smdata/out Existed dir: /home/jovyan/data/smdata/out
测试一下,文件存储路径是否正确:
os.path.exists("/home/jovyan/data/smdata/out")
输出信息:
True
检查path下的文件:
!ls -l ~/data/smdata/out
输出信息:
total 98 -rw-r--r-- 1 jovyan root 2396 Jul 8 09:18 out_aggregate_point.udb -rw-r--r-- 1 jovyan root 67584 Jul 8 09:18 out_aggregate_point.udd -rw-r--r-- 1 jovyan root 0 Jul 8 09:16 out_import_data_county_p.udb -rw-r--r-- 1 jovyan root 29696 Jul 8 09:16 out_import_data_county_p.udd
3、定义操作函数
def progress_func(step_event):
sys.stdout.write('%s,%s %%\n' % (step_event.title, step_event.message))
def aggregate_points_test():
""" 对点数据集 Town_P 进行点密度聚类,密度聚类的聚类点数目阈值为4, 聚类半径为3 千米"""
result = aggregate_points(os.path.join(example_data_dir, 'example_data.udb/Town_P'), 4, 3, Unit.KILOMETER,
out_data=os.path.join(out_dir, 'out_aggregate_point.udb'), progress=progress_func)
if result is not None:
if isinstance(result, str):
print('点密度聚类成功,结果面数据集为 ' + result)
else:
print('点密度聚类成功,结果面数据集为 ' + result.name)
else:
print('点密度聚类失败')
4、运行操作函数
aggregate_points_test()
按shift+enter即可运行。
稍微等待,可以看到相应的输出。
然后到目录下去检查输出文件。