基于地理位置标记的空间聚类分析(python-DBSCAN)
数据来源:通过www.flickr.com/services/api接口抓取带地理标记的flickr图片及属性数据,筛选年份,经过数据清洗,得到样本数据。
使用软件:python 3
需求:得到热点区域AOI
参考文献:
1.《基于地理标记照片的北京市入境旅游流空间特征》
2. https://www.cnblogs.com/pinard/p/6208966.html
具体思路:
首先将数据进行整理、清洗;然后使用Python scikit-learn中的DBSCAN聚类方法,选择合适的搜索半径,以及个数点,得到聚类结果;求出没个聚类点的中心位置,就可得到热点区域AOI。
聚类DBSCAN算法:
DBSCAN是基于一组邻域来描述样本集的紧密程度的,参数(ϵϵ, MinPts)用来描述邻域的样本分布紧密程度。其中,ϵϵ描述了某一样本的邻域距离阈值,MinPts描述了某一样本的距离为ϵϵ的邻域中样本个数的阈值。
假设我的样本集是D=(x1,x2,...,xm)(x1,x2,...,xm),则DBSCAN具体的密度描述定义如下:
1) ϵϵ-邻域:对于xj∈Dxj∈D,其ϵϵ-邻域包含样本集D中与xjxj的距离不大于ϵϵ的子样本集,即Nϵ(xj)={xi∈D|distance(xi,xj)≤ϵ}Nϵ(xj)={xi∈D|distance(xi,xj)≤ϵ}, 这个子样本集的个数记为|Nϵ(xj)||Nϵ(xj)|
2) 核心对象:对于任一样本xj∈Dxj∈D,如果其ϵϵ-邻域对应的Nϵ(xj)Nϵ(xj)至少包含MinPts个样本,即如果|Nϵ(xj)|≥MinPts|Nϵ(xj)|≥MinPts,则xjxj是核心对象。
3)密度直达:如果xixi位于xjxj的ϵϵ-邻域中,且xjxj是核心对象,则称xixi由xjxj密度直达。注意反之不一定成立,即此时不能说xjxj由xixi密度直达, 除非且xixi也是核心对象。
4)密度可达:对于xixi和xjxj,如果存在样本样本序列p1,p2,...,pTp1,p2,...,pT,满足p1=xi,pT=xjp1=xi,pT=xj, 且pt+1pt+1由ptpt密度直达,则称xjxj由xixi密度可达。也就是说,密度可达满足传递性。此时序列中的传递样本p1,p2,...,pT−1p1,p2,...,pT−1均为核心对象,因为只有核心对象才能使其他样本密度直达。注意密度可达也不满足对称性,这个可以由密度直达的不对称性得出。
5)密度相连:对于xixi和xjxj,如果存在核心对象样本xkxk,使xixi和xjxj均由xkxk密度可达,则称xixi和xjxj密度相连。注意密度相连关系是满足对称性的。
效果图:
Python代码:
import numpy as np,pandas as pd
from sklearn.cluster import DBSCAN
from shapely.geometry import MultiPoint
import geopandas
import shapefilefrom matplotlib import pyplot as plt
plt.title("北京市游客地理标记城区空间聚类结果")
plt.scatter(latlngs[:,0],latlngs[:,1], s=1, c="black", marker='.')
border_shape=shapefile.Reader(shape_path)
border_shape_2=shapefile.Reader(shape_path_2huan)
border_shape_5=shapefile.Reader(shape_path_5huan)
border=border_shape.shapes()
border_2=border_shape_2.shapes()
border_5=border_shape_5.shapes()
#聚类中心区域
def get_centermost_point(cluster):centroid = (MultiPoint(cluster).centroid.x, MultiPoint(cluster).centroid.y)print(centroid)return tuple(centroid)
# #渲染聚类结果
for border_detail in clusters:x ,y= [],[]for cell in border_detail:x.append(cell[0])y.append(cell[1])plt.scatter(x, y,marker='o')
plt.show()
基于地理位置标记的空间聚类分析(python-DBSCAN)相关推荐
- 基于JTS实现对空间绘图的WTK语言标记
在项目中用到在地图上绘图进行区域标记,为了便于存储这些区域的绘图信息,以及方便其他GIS工具识别,于是采用WTK标记语言作为空间图形存储,可以方便地将点.圆.多边形的经纬度转成可识别的字符串存储到数据 ...
- (LBS)基于地理位置的社交应用大战
社交是人们生活的一部分,当工作越来越忙碌的都市人的社交遭遇时间与空间的障碍的时候,解决这些问题的方法随之涌现. 最开始是单纯的社交网站,注册,填写信息,交友,主要在于用户主动的寻找.圈子形式,社区形式 ...
- deap软件结果分析_绿港科技之窗:基于InDel标记的黄瓜种质资源遗传多样性分析...
基于InDel标记的黄瓜种质资源遗传多样性分析 | 摘要 | 为明确黄瓜自交系间的亲缘关系,筛选适宜作杂交亲本的种质资源,利用InDel标记对48份黄瓜自交系进行遗传多样性分析. 结果表明,68对In ...
- 基于地理位置服务(LBS)技术平台
以互联网为代表的新媒体诞生以来,技术平台的更新便令人目不暇接,从最初以Blog Bus.新浪为代表的博客,发展到以人人网.开心网为代表的SNS,以及以新浪微博为代表的Twitter,各种平台的不断涌现 ...
- 基于模糊等价关系的模糊聚类分析
基于模糊等价关系的模糊聚类分析 http://blog.csdn.net/laviewpbt/article/details/1361460 假设R是X上的模糊等价关系,则对任意的a,R的a-截集是X ...
- 各个省肺炎感染类型及人数可视化R语言基于地理位置进行分面
(各个省肺炎感染类型及人数可视化)R语言基于地理位置进行分面 不知道大家有没有看过这样的图:乍一看还以为是元素周期表(哈哈哈,化学都还给老师了).实际上他这个是根据美国各个州的地理位置进行分面(在R语 ...
- 基于强化学习的坦克大战python语言实现
这个项目是基于一个人工智能算法(基于全连接线性BP网络的增强学习模型)代理玩经典游戏坦克大战. 在个游戏中,机器控制的坦克主要目标是射击敌方坦克并保卫自家的根据地. 游戏中坦克的动作空 ...
- 基于树莓派的追光系统(python)
目录 前言 一.材料 二.硬件--控制逻辑 1.主设备的准备 1.启用树莓派的i2c设备 2.安装python-smbus 2.从设备的准备 1.BH1750 2.L298N驱动芯片 3.云台的准备 ...
- 使用AR.js打造WebAR入门课程(三)——基于地理位置的示例
前面的两篇文章都是写的关于基于图像的示例,这一篇文章来写一下基于地理位置的示例. 基于地理位置也很好理解,就是通过经纬度来确定目标点,然后在目标点显示你想要的的东西. 首先还是直接放一下官方的示例代码 ...
- 基于TF-IDF编码进行文本聚类分析:文档成对相似性计算、层次聚类(链接矩阵、树形图dendrogram绘制、聚类标签)
基于TF-IDF编码进行文本聚类分析:文档成对相似性计算.层次聚类(链接矩阵.树形图dendrogram绘制.聚类标签) 目录
最新文章
- Python一键转Java?“Google翻译”你别闹
- hdu1874 畅通project续 最短路 floyd或dijkstra或spfa
- Chrome 打印PDF技巧
- App字体大小不随系统改变而改变
- PAT甲级1149 Dangerous Goods Packaging :[C++题解]哈希表、逆向思维
- linux下打开配置文件命令_Linux下用户权限相关命令
- ASP.NET Web API 简介
- SQLServer 与 MySQL
- bool可以是java得标识符嘛_Java-标识符--修饰符--关键字
- 解决EasyDSS、EasyNVR流媒体RTMP、HLS(m3u8)、HTTP-FLV播放提示H5播放错误的问题
- 详解.NET IL代码
- 宏碁Aspire 4560试用手记
- 力扣143 链表重排
- mkv格式用什么播放器打开?视频转换器怎样操作
- PTA 新浪微博热门话题 详细题解 附额外样例
- 2021年茶艺师(初级)考试资料及茶艺师(初级)模拟试题
- 深度精简版XP如何安装IIS
- Java13都要来了,你还不了解Java8的新(旧)特性?
- IE浏览器快速切换各个版本
- 百度网盘不限速(小白亲测)
热门文章
- (day 22 - 全排列问题 dfs+剪枝+回溯 )剑指 Offer 38. 字符串的排列
- 阿里云centos 7下安装jdk
- Node.js:模块化思想中一个Javascript文件分析以及exports 和 module.exports的区别
- SQL:解决PostgreSQL数据库传输出现ERROR: invalid byte sequence for encoding “UTF8“: 0xe5 0x9b 0x20
- Java中操作SFTP服务器上的文件下载上传
- Java中的几种设计模式:创建型模式,结构型模式
- Twitter数据抓取的方法(二)
- 那年,三支玫瑰的花语是我们每人一支
- 树的存储_ 双亲表示法 及 双亲孩子表示法
- [论文评析] ArXiv-2021,Pyramid Vision Transformer A Versatile Backbone for Dense Prediction without Convo