白话空间统计二十一:密度分析(一)

124 篇文章 280 订阅
白话空间统计二十一:密度分析(一)


密度分析这个概念其实很早就想写了,也有无数同学都问过我,虾神你能不能讲讲那些漂亮的热度图是怎么做的啊?比如下面这种:


如果说,这是互联网地图里面,最让人喜闻乐见的一种空间分析模式(或者是看热闹的同学就认为是一种漂亮的可视化方式也行),让以百度热力地图为代表的这种可视化方式,成为了即缓冲查询和路径分析之后,最为广大人民群众所熟知的一种空间分析方式。

那么既然大家这么关心,所以我觉得花一段不短的时间,来把密度分析这个东西从头到尾讲一遍。继续虾神一贯的方式,我们仅仅是作为科普和入门。更深入的东西,需要大家自己去研究和学习。

嗯,开始之前,还是用GIS专业术语给大家说一句:上面那个东东,不叫热点分析,叫做热度图……具体的内容请去看虾神公众号里面白话空间统计十九:热点分析。

首先,我们来简单看看密度这个概念——中学物理说得很清楚了,单位体积内的质量就叫做密度:而且最重要的一点,密度不是绝对数值,而是一个相对值。

比如物理上面的密度,都是以水为基准单位的,如果说水的密度为1((在常温常压下,单位g/cm3),那么铁的密度是7.8,这个7.8就是指与水相比较得出来的。同等体积的铁是同等体积的水的质量的7.8倍。

OK,物理上的对比非常容易,那么是不是空间上也是一样呢?实际上很多分析里面,都直接套用了物理上的一些思维,比如:人口密度,普遍的计算方法就是以平方公里为单位,来进行计算,得出的结果一般都是下面这样的示意图:


这种对比方式,可以较为明显识别世界上各个区域的人口密度情况,这种密度就是最容易做的一种密度了,直接划分网格,然后把每个网格包含多少个点(人)计数进去就可以了。

但是实际上,空间的密度的计算可能要更加复杂一点。

比如,针对上面的密度图形,提出一个问题,中国和印度,那个国家的人口密度更大?这种问题一提出来,肯定各种被喷,话说你的条件太不严谨了等等等的。。。中国东部很多地方的密度比印度还要高,但是中国还有大片西部没人的地方……这怎么比较啊。

所以不论是计算总体密度还是计算网格密度的方式,都还是在某些方面有限制……特别是用于比较的时候。

下面我们来看看古往今来,一些关于点密度计算的方式。

最简单的一种,就是借用了一维统计分析中的技术,看看下面这个例子。



如果我们有5个事件,把他们画到直线上,正好是在7、8、9、12、13,因为总的数量是20,所以总体的密度就应该是应该是5/20 = 0.25个点每单位长度。

而如果我们就整个事件分成两段,每段10个长度,那么一部分的密度就变成了0.33个点每单位,而第二段就变成了0.2个点每单位了……

再继续分成4段——第一段和最后一段,密度就变成了0,而第二段的密度是0.6,第三段的密度变成了0.4。

这种细分总体段的方法,在空间分析里面,是空间尺度的一种,不同的空间尺度下,可能得出不同的结果。所以如果将所有的点分配到线的整个长度上,是没有唯一答案的。

比如对中国人口密度的描述,总分一段肯定就是:14亿人/960万平方公里,但是如果按东西部分两段,得出的密度又不一样了……按省、按市就变化得更厉害了。

从这里可以看出一些个重要概念:
最计算的时候,采用的线段的长度,对密度值有着重要的影响,而因为这个长度是任意的,所以我们要想办法来去除对于这种线段长度的依赖性。这种关于空间尺度的论述,汗牛充栋了,大家有兴趣自己去阅读相关论文。

那么去除线段依赖性的方法有哪些呢?最简单的就是去切分线段,把线分割成若干段。但是切开始之后,我们会发现在分割处,我们的密度值会突然发现间断——这种情况在很多时候我们并不希望。回到最上面那张百度热力地图,它的可视化效果在内行人的眼中,观察到的最大的一个优点,就是非常平滑的过度;而如果出现了断崖式的变化的话,效果就差很远了,比如下面这种:

这样效果无疑就差很远了。

而且因为点数据的分布,还有可能出现密度为0的区域,如果密度为0,那么计算出来的密度可能有部分出现了空缺的情况,像这样:当然,这种情况是肯定有出现。


最后,我们可能会尽可能的细化——以至于进行了太多的细分,就有可能变成了二值化的区域:每个部分仅包含1或者0……这样又回到了我们最初始的状态,如下:且分成若干网格之后,每个网格要么是1(红色),要么没值是0(灰色)……



所以,挑选合适的空间尺度,在密度计算里面是最最重要的事情之一,如果没有合适的尺度,密度计算的结果会让你抓狂,而至于如何来处理,我们下次继续说。
  • 9
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虾神说D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值