From a08e9761471674e09c2be4f16d769a3289a63877 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Mon, 29 May 2023 12:52:31 +0000 Subject: automatic import of python-adptc-lib --- .gitignore | 1 + python-adptc-lib.spec | 372 ++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 374 insertions(+) create mode 100644 python-adptc-lib.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..41712b1 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/ADPTC_LIB-0.0.7.tar.gz diff --git a/python-adptc-lib.spec b/python-adptc-lib.spec new file mode 100644 index 0000000..d0e96e5 --- /dev/null +++ b/python-adptc-lib.spec @@ -0,0 +1,372 @@ +%global _empty_manifest_terminate_build 0 +Name: python-ADPTC-LIB +Version: 0.0.7 +Release: 1 +Summary: 自适应密度峰值树聚类(Adaptive Density Peak Tree Clustering) +License: MIT License +URL: https://pypi.org/project/ADPTC-LIB/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/0d/20/58fd440c18463dc9bb222d4e6af39b8fd11fb91768230058407e2674e9f8/ADPTC_LIB-0.0.7.tar.gz +BuildArch: noarch + + +%description + + +## 自适应密度峰值树聚类(Adaptive Density Peak Tree Clustering) +本算法是在快速搜索与发现密度峰值聚类算法(Clustering by fast search and find of density peaks)CFSFDP的基础上进行改进的成果,主要解决的问题有: +- 手动选择聚类中心 +- 单簇多密度峰值导致类簇误分 +- 面向时空数据聚类时,无法顾及时空耦合 +### 原理: +通过CFSFDP算法的核心概念:局部密度和斥群值,构建密度峰值树,通过直达点、连通点和切割点分离子树,达到类簇划分的目的。 + +image-20210409210616098 + +![image-20210409210731545](https://cdn.jsdelivr.net/gh/SuilandCoder/PicStorage//img/image-20210409210731545.png) + +![image-20210409212843640](https://cdn.jsdelivr.net/gh/SuilandCoder/PicStorage//img/image-20210409212843640.png) + +### 使用方法: +#### 1. 安装: + +```python +pip install ADPTC-LIB +``` + +#### 2. 空间数据聚类: + +```python +import numpy as np +from ADPTC_LIB.cluster import ADPTC +from ADPTC_LIB import visual +X = np.loadtxt(r"../test_data/Aggregation.txt", delimiter="\t") +X = X[:,[0,1]] +atdpc_obj = ADPTC(X) +atdpc_obj.clustering(2) +visual.show_result(atdpc_obj.labels,X,np.array(list(atdpc_obj.core_points))) +``` + +![image-20210410095608378](https://cdn.jsdelivr.net/gh/SuilandCoder/PicStorage//img/image-20210410095608378.png) + +#### 3. 空间属性数据聚类: + +```python +from ADPTC_LIB.cluster import ADPTC +from ADPTC_LIB import visual +import xarray as xr +import os +import numpy as np +filePath = os.path.join(r'Z:\regions_daily_010deg\\05\\2013.nc') +dataset = xr.open_dataset(filePath) +pre_ds = dataset['precipitation'] +lon = pre_ds.lon +lat = pre_ds.lat +lon_range = lon[(lon>-30)&(lon<70)] +lat_range = lat[(lat>30)&(lat<90)] +var = pre_ds.sel(lon=lon_range,lat = lat_range) +var = var.resample(time='1M',skipna=True).sum() +var_t = var.sel(time=var.time[0]) +reduced = var_t.coarsen(lon=5).mean().coarsen(lat=5).mean() +data_nc = np.array(reduced) +spatial_eps=4 +attr_eps=8 +density_metric='gauss' +spre = ADPTC(data_nc) +spre.spacial_clustering_raster(spatial_eps,attr_eps,density_metric,knn_num=100,leaf_size=3000,connect_eps=0.9) +visual.show_result_2d(reduced,spre.labels) +``` + +![image-20210410104300578](https://cdn.jsdelivr.net/gh/SuilandCoder/PicStorage//img/image-20210410104300578.png) + +#### 4.时空属性聚类: + +```python +from ADPTC_LIB.cluster import ADPTC +from ADPTC_LIB import visual +import xarray as xr +import numpy as np +temp= xr.open_dataset(r'Z:\MSWX\temp\2020.nc') +temp_2020 = temp['air_temperature'] +lon = temp_2020.lon +lat = temp_2020.lat +time = temp_2020.time +lon_range = lon[(lon>70)&(lon<140)] +lat_range = lat[(lat>15)&(lat<55)] +var = temp_2020.sel(lon=lon_range,lat = lat_range) +reduced = var.coarsen(lon=5).mean().coarsen(lat=5).mean() +data_nc = np.array(reduced) +s_eps = 5 +t_eps = 1 +attr_eps = 2.5 +density_metric='gauss' +spre = ADPTC(data_nc) +spre.st_clustering_raster(s_eps,t_eps,attr_eps,density_metric,knn_num=100,leaf_size=3000,connect_eps=0.9) +visual.show_result_3d(reduced,spre,[70, 140, 15, 50],[0,12],21) +``` + +![image-20210412095947596](https://cdn.jsdelivr.net/gh/SuilandCoder/PicStorage//img/image-20210412095947596.png) + +%package -n python3-ADPTC-LIB +Summary: 自适应密度峰值树聚类(Adaptive Density Peak Tree Clustering) +Provides: python-ADPTC-LIB +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-ADPTC-LIB + + +## 自适应密度峰值树聚类(Adaptive Density Peak Tree Clustering) +本算法是在快速搜索与发现密度峰值聚类算法(Clustering by fast search and find of density peaks)CFSFDP的基础上进行改进的成果,主要解决的问题有: +- 手动选择聚类中心 +- 单簇多密度峰值导致类簇误分 +- 面向时空数据聚类时,无法顾及时空耦合 +### 原理: +通过CFSFDP算法的核心概念:局部密度和斥群值,构建密度峰值树,通过直达点、连通点和切割点分离子树,达到类簇划分的目的。 + +image-20210409210616098 + +![image-20210409210731545](https://cdn.jsdelivr.net/gh/SuilandCoder/PicStorage//img/image-20210409210731545.png) + +![image-20210409212843640](https://cdn.jsdelivr.net/gh/SuilandCoder/PicStorage//img/image-20210409212843640.png) + +### 使用方法: +#### 1. 安装: + +```python +pip install ADPTC-LIB +``` + +#### 2. 空间数据聚类: + +```python +import numpy as np +from ADPTC_LIB.cluster import ADPTC +from ADPTC_LIB import visual +X = np.loadtxt(r"../test_data/Aggregation.txt", delimiter="\t") +X = X[:,[0,1]] +atdpc_obj = ADPTC(X) +atdpc_obj.clustering(2) +visual.show_result(atdpc_obj.labels,X,np.array(list(atdpc_obj.core_points))) +``` + +![image-20210410095608378](https://cdn.jsdelivr.net/gh/SuilandCoder/PicStorage//img/image-20210410095608378.png) + +#### 3. 空间属性数据聚类: + +```python +from ADPTC_LIB.cluster import ADPTC +from ADPTC_LIB import visual +import xarray as xr +import os +import numpy as np +filePath = os.path.join(r'Z:\regions_daily_010deg\\05\\2013.nc') +dataset = xr.open_dataset(filePath) +pre_ds = dataset['precipitation'] +lon = pre_ds.lon +lat = pre_ds.lat +lon_range = lon[(lon>-30)&(lon<70)] +lat_range = lat[(lat>30)&(lat<90)] +var = pre_ds.sel(lon=lon_range,lat = lat_range) +var = var.resample(time='1M',skipna=True).sum() +var_t = var.sel(time=var.time[0]) +reduced = var_t.coarsen(lon=5).mean().coarsen(lat=5).mean() +data_nc = np.array(reduced) +spatial_eps=4 +attr_eps=8 +density_metric='gauss' +spre = ADPTC(data_nc) +spre.spacial_clustering_raster(spatial_eps,attr_eps,density_metric,knn_num=100,leaf_size=3000,connect_eps=0.9) +visual.show_result_2d(reduced,spre.labels) +``` + +![image-20210410104300578](https://cdn.jsdelivr.net/gh/SuilandCoder/PicStorage//img/image-20210410104300578.png) + +#### 4.时空属性聚类: + +```python +from ADPTC_LIB.cluster import ADPTC +from ADPTC_LIB import visual +import xarray as xr +import numpy as np +temp= xr.open_dataset(r'Z:\MSWX\temp\2020.nc') +temp_2020 = temp['air_temperature'] +lon = temp_2020.lon +lat = temp_2020.lat +time = temp_2020.time +lon_range = lon[(lon>70)&(lon<140)] +lat_range = lat[(lat>15)&(lat<55)] +var = temp_2020.sel(lon=lon_range,lat = lat_range) +reduced = var.coarsen(lon=5).mean().coarsen(lat=5).mean() +data_nc = np.array(reduced) +s_eps = 5 +t_eps = 1 +attr_eps = 2.5 +density_metric='gauss' +spre = ADPTC(data_nc) +spre.st_clustering_raster(s_eps,t_eps,attr_eps,density_metric,knn_num=100,leaf_size=3000,connect_eps=0.9) +visual.show_result_3d(reduced,spre,[70, 140, 15, 50],[0,12],21) +``` + +![image-20210412095947596](https://cdn.jsdelivr.net/gh/SuilandCoder/PicStorage//img/image-20210412095947596.png) + +%package help +Summary: Development documents and examples for ADPTC-LIB +Provides: python3-ADPTC-LIB-doc +%description help + + +## 自适应密度峰值树聚类(Adaptive Density Peak Tree Clustering) +本算法是在快速搜索与发现密度峰值聚类算法(Clustering by fast search and find of density peaks)CFSFDP的基础上进行改进的成果,主要解决的问题有: +- 手动选择聚类中心 +- 单簇多密度峰值导致类簇误分 +- 面向时空数据聚类时,无法顾及时空耦合 +### 原理: +通过CFSFDP算法的核心概念:局部密度和斥群值,构建密度峰值树,通过直达点、连通点和切割点分离子树,达到类簇划分的目的。 + +image-20210409210616098 + +![image-20210409210731545](https://cdn.jsdelivr.net/gh/SuilandCoder/PicStorage//img/image-20210409210731545.png) + +![image-20210409212843640](https://cdn.jsdelivr.net/gh/SuilandCoder/PicStorage//img/image-20210409212843640.png) + +### 使用方法: +#### 1. 安装: + +```python +pip install ADPTC-LIB +``` + +#### 2. 空间数据聚类: + +```python +import numpy as np +from ADPTC_LIB.cluster import ADPTC +from ADPTC_LIB import visual +X = np.loadtxt(r"../test_data/Aggregation.txt", delimiter="\t") +X = X[:,[0,1]] +atdpc_obj = ADPTC(X) +atdpc_obj.clustering(2) +visual.show_result(atdpc_obj.labels,X,np.array(list(atdpc_obj.core_points))) +``` + +![image-20210410095608378](https://cdn.jsdelivr.net/gh/SuilandCoder/PicStorage//img/image-20210410095608378.png) + +#### 3. 空间属性数据聚类: + +```python +from ADPTC_LIB.cluster import ADPTC +from ADPTC_LIB import visual +import xarray as xr +import os +import numpy as np +filePath = os.path.join(r'Z:\regions_daily_010deg\\05\\2013.nc') +dataset = xr.open_dataset(filePath) +pre_ds = dataset['precipitation'] +lon = pre_ds.lon +lat = pre_ds.lat +lon_range = lon[(lon>-30)&(lon<70)] +lat_range = lat[(lat>30)&(lat<90)] +var = pre_ds.sel(lon=lon_range,lat = lat_range) +var = var.resample(time='1M',skipna=True).sum() +var_t = var.sel(time=var.time[0]) +reduced = var_t.coarsen(lon=5).mean().coarsen(lat=5).mean() +data_nc = np.array(reduced) +spatial_eps=4 +attr_eps=8 +density_metric='gauss' +spre = ADPTC(data_nc) +spre.spacial_clustering_raster(spatial_eps,attr_eps,density_metric,knn_num=100,leaf_size=3000,connect_eps=0.9) +visual.show_result_2d(reduced,spre.labels) +``` + +![image-20210410104300578](https://cdn.jsdelivr.net/gh/SuilandCoder/PicStorage//img/image-20210410104300578.png) + +#### 4.时空属性聚类: + +```python +from ADPTC_LIB.cluster import ADPTC +from ADPTC_LIB import visual +import xarray as xr +import numpy as np +temp= xr.open_dataset(r'Z:\MSWX\temp\2020.nc') +temp_2020 = temp['air_temperature'] +lon = temp_2020.lon +lat = temp_2020.lat +time = temp_2020.time +lon_range = lon[(lon>70)&(lon<140)] +lat_range = lat[(lat>15)&(lat<55)] +var = temp_2020.sel(lon=lon_range,lat = lat_range) +reduced = var.coarsen(lon=5).mean().coarsen(lat=5).mean() +data_nc = np.array(reduced) +s_eps = 5 +t_eps = 1 +attr_eps = 2.5 +density_metric='gauss' +spre = ADPTC(data_nc) +spre.st_clustering_raster(s_eps,t_eps,attr_eps,density_metric,knn_num=100,leaf_size=3000,connect_eps=0.9) +visual.show_result_3d(reduced,spre,[70, 140, 15, 50],[0,12],21) +``` + +![image-20210412095947596](https://cdn.jsdelivr.net/gh/SuilandCoder/PicStorage//img/image-20210412095947596.png) + +%prep +%autosetup -n ADPTC-LIB-0.0.7 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-ADPTC-LIB -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 29 2023 Python_Bot - 0.0.7-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..db0bd6b --- /dev/null +++ b/sources @@ -0,0 +1 @@ +0c39b6ef6a8c44f7f910af5f6d1082e2 ADPTC_LIB-0.0.7.tar.gz -- cgit v1.2.3