地学分析与算法
其他
社区发现算法--FN算法Python实现
Q)。当无法获取真实社区划分结果时,可以采用模块度Q来评价。Modularity用于评判社区划分结果的优劣。模块度越大则表明社区划分效果越好,其范围在,论文(Newman,
2020年5月29日
其他
深度学习--卷积神经网络基础
之前的推送介绍了一些深度学习中一些简单的模型,如线性回归、softmax回归、多层感知机,今天将介绍卷积神经网络的一些基础知识,主要包括互相关运算、卷积层、特征图与感受野、多输入通道与多输出通道以及池化层。01卷积层卷积神经网络中最常见的是二维卷积层,常用于处理图像数据。在介绍卷积层之前,先介绍一下互相关运算,以二维互相关运算为例。二维互相关(cross-correlation)运算的输入是一个二维输入数组和一个二维核(kernel)数组,输出也是一个二维数组,其中核数组通常称为卷积核或过滤器(filter)。卷积核的尺寸通常小于输入数组,卷积核在输入数组上滑动,在每个位置上,卷积核与该位置处的输入子数组按元素相乘并求和,得到输出数组中相应位置的元素。例如,
2020年3月19日
其他
深度学习--Pytorch实现分类模型
今天将介绍深度学习中的分类模型,以下主要介绍Softmax的基本概念、神经网络模型、交叉熵损失函数、准确率以及Pytorch实现图像分类。01Softmax基本概念在分类问题中,通常标签都为类别,可以用离散值来代替。例如,在图像分类问题中,假设一张图片是的灰度图片,那么图片中的4个像素值便是特征。假设对应的标签是猫狗等动物,其都是离散值,在深度学习模型中都是采用这样的离散值来代替。02神经网络模型Softmax回归同线性回归一样,也是一个单层神经网络。由于每个输出
2020年3月12日
其他
深度学习--线性回归模型
今天来介绍深度学习中的线性回归,并以空气质量数据为例,得出AQI指数和PM2.5、PM10、SO2等监测量之间的关系。最后采用Pytorch实现该例子。数据来源可参考文章:[空气质量指数]线性回归模型主要包括模型部分(即线性关系)、数据集、损失函数、优化函数这几个基本要素。01模型根据我们所拥有的数据,假设AQI指数只取决于PM25,
2020年3月5日
其他
高斯混合模型判定交通拥堵状态
K-Means是聚类算法中一个常用的方法,是一种非监督学习方法。该方法是从杂乱的数据中找到k个簇。该方法简单,但是依然存在一些缺点,如:1.K-Means方法在划分簇时通常是呈圆形,但是,如果数据的实际分布可能为椭圆形时,K-Means方法效果可能不佳。2.
2020年2月13日
其他
Python散点图矩阵示例--以空气质量数据为例
散点图矩阵近来在数据分析和可视化中得到了很好的应用。它同时包含了直方图和散点图,位于对角线位置的直方图表示每一个变量的分布,对角线上下的散点图展示了变量两两之间的关系。在R、python和MATLAB中都提供了相应的包或函数进行散点图矩阵的绘制。本文以之前爬取的空气质量数据为例,使用python绘制散点图矩阵,分析空气质量数据指标间的关系。01使用seaborn.pairplot初步实现。用法:df
2020年1月10日
其他
分享一套数据---GIMMS NDVI 3gv1(1982-2015)
NDVI3g更新到v1版本,空间覆盖全球,时间范围1981-2015年,空间分辨率1/12°(约8km),时间分辨率为15天。是目前时间范围最长的NDVI数据产品。2.GIMMS
2019年12月31日
其他
MATLAB绘制带置信区间的拟合曲线
曲线拟合是已知离散点上的数据集,构造一个解析函数(其图形为一曲线),使在原离散点上尽可能接近给定的值。MATLAB中与曲线拟合有关的函数主要有polyfit、polyval和polyconf。01polyfit:基于最小二乘法,用于曲线拟合的函数。用法:(1)p=polyfit(x,y,n)。其中,x和y为拟合数据向量,n为拟合多项式次数,缺省时默认为1次。p中的系数按降幂排列,p的长度为
2019年12月21日
其他
VOSviewer文献综述
文献综述在科技论文和学位论文中占据着重要地位,是论文中的一个重要且不可或缺的部分。它是研究者在对某一学科、专业或专题的大量文献进行阅读、整理、筛选、分析、综合和提炼的基础上,用自己的语言综合叙述研究状况的情报研究成果。因此,文献综述的好坏直接关系到论文的成功与否。目前,已有一些专门的软件可用来进行文献分析和可视化,能够定量的分析某个领域或某个主题的研究现状和研究进展,如Citespace、VOSviewer、Pajeck等。今天分享一下VOSviewer的使用,希望能在大家论文文献综述写作中有所帮助。1软件介绍及下载安装VOSviewer是一款用来构建和查看文献计量图谱的免费的文献计量分析软件,可以用于生成多种基于文献计量关系的图谱:如作者或期刊的共引关系图,关键词共现关系图。其主要特点为图形化展现的方式较为丰富,显示清晰,使得文献计量学的分析结果易于解释。下载网址:https://www.vosviewer.com/。2参考文献整理我们以“乡村振兴”为主题,分析CNKI中中文相关文献。这里我们只选择200篇文献进行分析。选择200篇文献,然后导出参考文献,文献导出格式选择“EndNote”,保存为“参考文献.txt”。3格式转换EndNote格式的参考文献VOSviewer中无法识别,我们可以将其转换成ris格式。转换需要在EndNote中进行。注意导入导出时候的格式。导出后将txt格式改为ris格式。4文献分析
2019年10月11日
其他
EndNote引文编排
EndNote是一款功能强大的文献管理软件,可以在线搜索文献、建立文献库和图片库、定制文稿、引文编排。今天分享其在引文编排上的使用。通俗讲,就是如何在word中快速插入参考文献,并可以设置需要的格式,免于手动收集和整理参考文献的繁琐工作。1软件下载安装自行百度。2参考文献整理在知网中搜索你的所有参考文献,依次选中,最后导出为EndNote格式。如果你已经将你所有的参考文献PDF文件下载下来了,此步骤省略。3插入参考文献启动EndNote,新建EndNote库(文章1.enl),导入上一步下载的Endnote参考文献文件(参考文献1.txt),注意导入选项选择“EndNote导入”。这里如果你已经将你所有的参考文献PDF文件下载下来了,导入的就是你的PDF文件。导入成功后,可以看到每篇参考文献的基本信息都是基本齐全的。如果乱码或者空白,可能是参考文献格式选择有问题。打开你的文章的word文档,同时EndNote界面不要关闭。首先在EndNote中选择你要插入的文献,一篇或者多篇均可,然后切换到word,光标放在你要插入引用的位置,点击Insert
2019年9月25日
其他
水位时态数据在地图上的动态展示
后台有同学询问如何在地图上动态展示水位随时间变化,并且用不同颜色表示该点的水位量,今天介绍如何通过Python来实现这个目标(有问必答)。01数据数据主要是某城市的每天的水位量,包含4个字段:日期、水位量、经度、纬度。(所有数据都经过处理,非原始数据)02实现主要运用Python中pyshp包来实现将地图作为底图,然后加上水位的变化。#Python#coding=utf-8import
2019年9月23日
其他
多时间序列数据MK突变检验突变点提取
之前推送了一篇MK突变分析的文章【Manner-Kendall(M-K)---突变检验】,针对的是如何获得单个时间序列数据的突变点,这个时候突变点可以直接从图中看出。后台有同学询问如何自动提取多个时间序列的突变点,即假如数据有很多列,如何自动判断提取。这个的场景比如我们需要知道区域的降雨突变时间,我们获取了区域内n个气象站点每个站点的逐年降雨观测数据,现在要找到各个站点降雨突变点,从而进行统计,确定区域整个的一个突变点或者突变的时间范围。今天使用Matlab尝试做一下。1数据31年,100列数据(kk.xlsx的2到101列,代表100个站点)。逐站点提取突变点。2实现A=xlsread('C:\Users\Desktop\mk突变检验\MKtest\kk.xlsx','Sheet1');x=A(:,1);
2019年9月10日
其他
Manner-Kendall(M-K)---突变检验
1原理对于具有n个样本量的时间序列X1,X2,…,Xn,构造一秩序列:式中:Ri表示Xi大于Xj(1≤j≤i)的累积数。在时间序列随机独立的假设下,定义统计量:式中:当k=1时,UF1=0。E(Sk),Var(Sk)是累积数Sk的均值和方差,在X1,X2,…,Xn相互独立,且有相同连续分布时,它们可由下式算出:按时间序列X逆序Xn,Xn-1,…,X1,再重复上述过程,同时使UBk=-UFk,k=n,n-1,…,1,且当k=1时,UB1=0。分析UBk和UFk曲线图,如果UBk和UFk两条曲线出现交点,且交点在临界线之间,那么交点对应的时刻便是突变开始的时间。2实现data=xlsread('C:\Users\Desktop\mk突变检验\data.xls','Sheet1','A2:B52');x=data(:,1);
2019年9月2日
其他
1960-2018年世界各国GDP排名变化--Python动图实现
上一期用MATLAB实现了世界各国GDP排名变化的动态图:1960-2018年世界各国GDP排名变化--Matlab动图实现。今天在这里用Python实现一下。数据来源:https://data.worldbank.org.cn/1代码#coding=utf-8import
2019年8月9日
其他
1960-2018年世界各国GDP排名变化--Matlab动图实现
前段时间在网上看到一个世界GDP排名变化的视频,反映了我国国内生产总值多年来发生的翻天覆地的变化,效果十分酷炫。今天使用MATLAB尝试一下,做一个类似的图。数据来源:https://data.worldbank.org.cn/1代码[data,name]=xlsread('C:\Users\Desktop\MATLAB世界GDP动态变化\data.xls','Data','A5:BK268');for
2019年8月5日
其他
Python爬取高德地图--瓦片图
01源码后台有人留言问有没有高德地图瓦片图的爬取资料,其实这个爬虫的过程和之前推送的百度地图瓦片图的爬取过程是一样的,如果对爬取的过程有什么不了解的话,可以查看Python爬取百度地图--(瓦片图)。视频讲解:(大约30M,源码见文末)02说明由于爬虫过程中用到了phantomJs,所以需要对phantomJs说明一下。phantomJS是一个无界面的浏览器,它能够把网站的代码加载到内存并执行里面的JavaScript代码,也能执行自己写的一些JavaScript代码,所以你能够很方便的操作网站页面中的元素,模拟点击、浏览等行为,并且它不显示界面,所以比完整的浏览器更高效。下载地址:http://phantomjs.org/download.html下载完成后,将其放入
2019年5月18日
其他
利用GN算法进行社区发现
上一篇推送提出了如何从社会关系网中发现不同的团体:如何从社会关系网中发现不同的团体?。今天来介绍通过GN算法来发现这些团体。01算法原理这个算法是这样做的。根据边的重要性将边一条一条的删去,那么随着边的删除,那些节点也会慢慢变成独立的子连通图。如下图:所以,怎么来确定边的重要性了?一种估量方式就是Edge
2019年5月13日
其他
机器人局部规划算法--DWA算法原理
之前的推送通过视频展示了小车过直角弯(科目二直角拐弯)的过程:机器人局部规划算法--科目二直角拐弯今天将介绍其背后的算法原理。在这里采用了动态窗口法(Dynamic
2019年3月11日
其他
K最短路径算法之Yen算法
前几篇推送详细介绍了部分最短路径算法:(一)Dijkstra算法;(二)双向Dijkstra算法;(三)A*算法。今天来介绍最短路径算法的扩展系列--K最短路径算法之Yen算法。K最短路径就是要求出前K条最短路径。例如,我们经常用的导航App会给出几条路径给用户选择,如从大雁塔到咸阳机场在百度地图上给出了3条驾车出行方案。今天我将介绍如何通过Yen算法来计算前K条最短路径。1定义关于图的定义以及斐波那契堆(F堆)的定义请参考:Dijkstra算法。K最短路径即找出第一条最短路径,第二条最短路径,...,直到第K条最短路径,且这K条最短路径是按权重之和大小排序。2算法原理先通过最短路径算法,例如Dijkstra算法、A*算法等,计算第一条最短路径,如上图中的路径P1
2019年3月5日
其他
ArcPy---重采样
重采样是指更改栅格数据集的空间分辨率并针对所有新像素大小的聚合值或插值设置规则,简而言之,重采样可以改变像元大小,但栅格数据集的范围将保持不变。原始数据为下载得到的MODIS
2019年2月27日
其他
ArcGIS时间滑块实现车辆轨迹动态展示
在上一篇推送中,结合出租车GPS点位数据,介绍了多点转线功能,将多个位置点转换成了轨迹线,显得更加直观。但是由于出租车传回的信息包含时间属性,所以本质上是一种时态数据。今天主要是基于出租车点位数据,介绍ArcGIS中的时间滑块,使用该功能,展示车辆轨迹的动态变化。
2019年2月6日
其他
A*算法
前几期推送详细介绍了比较常见的最短路径算法:(一)Dijkstra算法;(二)双向Dijkstra算法。今天介绍最短路径的启发式算法。01算法介绍A*算法是一个目标导向的算法。为什么这么说了,这是因为A*在Dijkstra算法的基础上利用了一个启发式函数,该函数被定义为某个节点到目标点的距离(欧式距离、曼哈顿距离等),可以表示为h(u,t),其中u是任意一个节点,t是目标点,所以A*算法的每个节点的优先值为f(u)=dist(s,u)+h(u,t)。这个启发式函数的作用就是能够让那些靠近目标点的节点先被访问到,从而驱动搜索方向朝目标点方向推进。就是这个小小的改进就可以让算法的效率有一定提升。它的搜索空间是这样的:02算法原理A*算法的基本步骤和Dijkstra算法是一样的,也需要一个优先队列,唯一不一样的便是这个启发值,当你把启发值设为0时,也就是Dijkstra算法。03代码这是松弛函数,红色框中便是加入了欧式距离启发值。04算法测试测试部分比较了单向Dijkstra算法、双向Dijkstra算法以及A*算法的效率。随机从武汉路网中取了100对OD,分别记录每对OD最短路径计算的运行时间以及扩展节点数量。为了方便阅读,两幅图中结果都根据Dijkstra算法的测试结果进行了排序。从图中,我们可以很清楚的看到A*的运行时间还是要优于Dijkstra算法的,搜索空间A*算法也是比Dijkstra算法要小,但是A*算法运行效率略慢于双向Dijkstra算法。▼更多精彩推荐,敬请关注我们▼
2019年1月26日
其他
机器人局部规划算法--科目二直角拐弯
前几期介绍了部分全局规划算法:(一)最短路径算法--Dijkstra(二)双向Dijkstra算法今天来介绍一下局部规划算法,局部规划算法是有区别于全局规划算法的。全局规划需要给定全局的环境信息(比如路网地图),根据路网地图进行路径规划,给出机器人需要经过的一些节点和道路线段(路网情况下)。局部规划就是需要利用一些传感器(如激光雷达、视觉传感器、深度相机等)实时获取机器人周围环境信息(即环境数据,如点云、深度图等),从而获取机器人局部环境内的障碍物分布,然后根据机器人的位置和姿态控制机器人避障运动。在机器人系统(ROS)里面,通过计算,给出避障的最佳速度v和角速度w,就可以控制机器人的运动。在下面这个视频中模拟了科目二中的直角拐弯,并给出小车运动的速度和角速度(分别对应右边的小图1和图3).下一期将介绍:直角拐弯算法实现原理。▼更多精彩,敬请关注▼
2019年1月20日
其他
GPS数据处理---在野外采样寻点中的应用
手持式GPS是一种体积小巧、携带方便、独立使用的定位导航设备,已广泛应用于大地测量、地质调查、资源勘查等众多领域。今天分享一个手持GPS在野外调查定点中的应用,内容包括三方面:一.内业如何使用ArcGIS取采样点?二.如何将内业采样点坐标批量导入GPS?三.如何将野外GPS采集数据导入ArcGIS?01如何使用ArcGIS取采样点?根据实验内容和实验要求,选取采样方案。这里假设选择网格均匀布点方案,结合研究区大小,设置合适的采样网格大小。这里设置为30mX30m,即30mX30m的网格内中心附近选取一个样点。首先在ArcGIS中加载采样区的高清影像图,下载的影像图通常没有投影,需要定义投影,定义为WGS
2019年1月18日
其他
(一)Python爬虫--POI数据获取
做数据分析,数据是不可少的。尤其是做时空数据分析,时不时还需要一点POI数据,所以今天来说说如何爬取你需要的POI数据。今天先说说比较常规的爬虫,主要用到的Python中的urllib2+BeautifulSoup+lxml。比如,我需要一些美食店的数据来做可达性分析,那么我们可以去百度地图输入关键字“美食
2019年1月5日
其他
(四)ArcPy批量定义投影和批量投影转换
投影变换工具的批处理窗口获取:历史消息:(四)ArcGIS中的投影(三)ArcPy批量裁剪和批量镶嵌(二)如何使用ArcPy▼更多精彩,敬请关注▼
2018年12月19日
其他
(四)ArcGIS中的投影
坐标系统是GIS数据重要的数学基础,用于表示地理要素、图像和观测结果的参照系统,坐标系统的定义能够保证地理数据在软件中正确的显示其位置、方向和距离,缺少坐标系统的GIS数据是不完善的,因此在ArcGIS软件中正确的定义坐标系统以及进行投影转换的操作非常重要。1地理坐标系和投影坐标系GIS中的坐标系统分为地理坐标系和投影坐标系两种。地理坐标系(GCS)
2018年12月10日
其他
(二)最短路径算法--Dijkstra
定义:最短路径问题是指在有权图中的两点之间找到一条权重最小的路径。今天来讲讲比较经典的Dijkstra算法。在开始将算法之前,先对图(网络)做一个基本定义。
2018年12月2日
其他
(三)ArcPy批量裁剪和批量镶嵌
01ArcPy批量裁剪单个栅格的裁剪,ArcGIS中提供了按掩膜提取的工具,裁剪的矢量要素通常是一个要素图层或shapefile文件。但是如果涉及到多个栅格数据的裁剪,可以使用ArcToolBox中的批量处理工具(工具右键选择批处理),但是这样需要大量的输入,比较耗时。使用ArcPy仅需简单的几行代码即可完成。输入数据是tif格式,但是批量裁剪后输出一般为GRID格式,这时我们通常需要的是tif,可以通过ArcPy将GRID格式批量转换成tif。代码如下:需要注意的是如果文件路径中有中文,需要声明编码方式,否则无法识别。代码如下:02ArcPy批量镶嵌ArcGIS中提供了两个镶嵌工具:镶嵌和镶嵌至新栅格。镶嵌工具,无需设置输出栅格,是将多个栅格与一个目标栅格镶嵌,输出镶嵌后的目标栅格,即目标栅格会改变;镶嵌至新栅格,顾名思义,就是镶嵌到一个新的栅格,原始数据不会发生改变。使用ArcPy镶嵌多个栅格代码如下:
2018年11月30日