在JupyterHub for K8s的SuperMap iObjects Python简单教程,演示在JupyterHub的Notebook基本操作。

在JupyterHub for K8s的SuperMap iObjects Python简单教程-LMLPHP

在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即可运行。

稍微等待,可以看到相应的输出。

然后到目录下去检查输出文件。

更多参考:

07-09 12:09